From 01ac52d8b412f65d1b69296b2701085133caff11 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Sun, 8 Mar 2026 22:02:58 -0700 Subject: [PATCH 01/76] feat: add i18n infrastructure (Phase 0) Add the foundational i18n system following Ecotale's proven pattern with Hytale's native I18nModule: - HFMessages: translation resolution engine with player/server language support and {0}/{1} placeholder formatting - MessageKeys: static key constants organized by nested inner classes covering common, commands, protection, territory, GUI nav, and more - MessageUtil: i18n-aware overloads (PlayerRef + key) alongside existing string-literal methods for gradual migration - ServerConfig: defaultLanguage and usePlayerLanguage settings with JSON load/write support - ConfigManager: convenience accessors for language settings - PlayerData: languagePreference and notification preference fields (territoryAlerts, deathAnnouncements, powerNotifications) - en-US/hyperfactions.lang: initial common.* translation keys (~25 keys) --- .../hyperfactions/config/ConfigManager.java | 11 + .../config/modules/ServerConfig.java | 29 ++ .../com/hyperfactions/data/PlayerData.java | 51 +++ .../com/hyperfactions/util/HFMessages.java | 154 ++++++++ .../com/hyperfactions/util/MessageKeys.java | 362 ++++++++++++++++++ .../com/hyperfactions/util/MessageUtil.java | 71 ++++ .../Server/Languages/en-US/hyperfactions.lang | 30 ++ 7 files changed, 708 insertions(+) create mode 100644 src/main/java/com/hyperfactions/util/HFMessages.java create mode 100644 src/main/java/com/hyperfactions/util/MessageKeys.java create mode 100644 src/main/resources/Server/Languages/en-US/hyperfactions.lang diff --git a/src/main/java/com/hyperfactions/config/ConfigManager.java b/src/main/java/com/hyperfactions/config/ConfigManager.java index d00ed242..300980e3 100644 --- a/src/main/java/com/hyperfactions/config/ConfigManager.java +++ b/src/main/java/com/hyperfactions/config/ConfigManager.java @@ -1225,6 +1225,17 @@ public int getChatHistoryCleanupIntervalMinutes() { return chatConfig.getHistoryCleanupIntervalMinutes(); } + // Language / i18n (from server config) + /** Returns the default server language code (e.g. "en-US"). */ + @NotNull public String getDefaultLanguage() { + return serverConfig.getDefaultLanguage(); + } + + /** Whether to respect each player's client language for translations. */ + public boolean isUsePlayerLanguage() { + return serverConfig.isUsePlayerLanguage(); + } + // Permissions (from server config) public boolean isAdminRequiresOp() { return serverConfig.isAdminRequiresOp(); diff --git a/src/main/java/com/hyperfactions/config/modules/ServerConfig.java b/src/main/java/com/hyperfactions/config/modules/ServerConfig.java index 01a8e2c2..28836632 100644 --- a/src/main/java/com/hyperfactions/config/modules/ServerConfig.java +++ b/src/main/java/com/hyperfactions/config/modules/ServerConfig.java @@ -76,6 +76,11 @@ public class ServerConfig extends ModuleConfig { private int mobClearIntervalSeconds = 10; + // Language / i18n settings + private String defaultLanguage = "en-US"; + + private boolean usePlayerLanguage = true; + // HyperProtect-Mixin management private boolean hyperProtectAutoDownload = false; @@ -165,6 +170,13 @@ protected void loadModuleSettings(@NotNull JsonObject root) { allowWithoutPermissionMod = getBool(permissions, "allowWithoutPermissionMod", allowWithoutPermissionMod); } + // Language / i18n settings + if (hasSection(root, "language")) { + JsonObject language = root.getAsJsonObject("language"); + defaultLanguage = getString(language, "default", defaultLanguage); + usePlayerLanguage = getBool(language, "usePlayerLanguage", usePlayerLanguage); + } + // Mob clearing settings if (hasSection(root, "mobClearing")) { JsonObject mobClearing = root.getAsJsonObject("mobClearing"); @@ -244,6 +256,12 @@ protected void writeModuleSettings(@NotNull JsonObject root) { permissions.addProperty("allowWithoutPermissionMod", allowWithoutPermissionMod); root.add("permissions", permissions); + // Language / i18n settings + JsonObject language = new JsonObject(); + language.addProperty("default", defaultLanguage); + language.addProperty("usePlayerLanguage", usePlayerLanguage); + root.add("language", language); + // Mob clearing settings JsonObject mobClearing = new JsonObject(); mobClearing.addProperty("enabled", mobClearEnabled); @@ -377,6 +395,17 @@ public int getMobClearIntervalSeconds() { return mobClearIntervalSeconds; } + // Language / i18n + /** Returns the default server language code (e.g. "en-US"). */ + @NotNull public String getDefaultLanguage() { + return defaultLanguage; + } + + /** Whether to respect each player's client language for translations. */ + public boolean isUsePlayerLanguage() { + return usePlayerLanguage; + } + // HyperProtect-Mixin /** Checks if hyper protect auto download. */ public boolean isHyperProtectAutoDownload() { diff --git a/src/main/java/com/hyperfactions/data/PlayerData.java b/src/main/java/com/hyperfactions/data/PlayerData.java index c0168811..4b19aa3a 100644 --- a/src/main/java/com/hyperfactions/data/PlayerData.java +++ b/src/main/java/com/hyperfactions/data/PlayerData.java @@ -47,6 +47,15 @@ public class PlayerData { private boolean adminBypassEnabled; + // === Player Preferences (i18n + notifications) === + private String languagePreference; + + private boolean territoryAlertsEnabled = true; + + private boolean deathAnnouncementsEnabled = true; + + private boolean powerNotificationsEnabled = true; + /** Creates a new PlayerData. */ public PlayerData() {} @@ -315,4 +324,46 @@ public boolean isAdminBypassEnabled() { public void setAdminBypassEnabled(boolean adminBypassEnabled) { this.adminBypassEnabled = adminBypassEnabled; } + + // === Player Preferences === + + /** Returns the player's preferred language, or null for auto-detect. */ + @Nullable public String getLanguagePreference() { + return languagePreference; + } + + /** Sets the player's preferred language (null = auto-detect from client/server). */ + public void setLanguagePreference(@Nullable String languagePreference) { + this.languagePreference = languagePreference; + } + + /** Whether territory entry/exit alerts are enabled for this player. */ + public boolean isTerritoryAlertsEnabled() { + return territoryAlertsEnabled; + } + + /** Sets territory entry/exit alerts enabled. */ + public void setTerritoryAlertsEnabled(boolean territoryAlertsEnabled) { + this.territoryAlertsEnabled = territoryAlertsEnabled; + } + + /** Whether faction death location broadcasts are enabled for this player. */ + public boolean isDeathAnnouncementsEnabled() { + return deathAnnouncementsEnabled; + } + + /** Sets faction death announcement broadcasts enabled. */ + public void setDeathAnnouncementsEnabled(boolean deathAnnouncementsEnabled) { + this.deathAnnouncementsEnabled = deathAnnouncementsEnabled; + } + + /** Whether power change notifications are enabled for this player. */ + public boolean isPowerNotificationsEnabled() { + return powerNotificationsEnabled; + } + + /** Sets power change notifications enabled. */ + public void setPowerNotificationsEnabled(boolean powerNotificationsEnabled) { + this.powerNotificationsEnabled = powerNotificationsEnabled; + } } diff --git a/src/main/java/com/hyperfactions/util/HFMessages.java b/src/main/java/com/hyperfactions/util/HFMessages.java new file mode 100644 index 00000000..aee46d40 --- /dev/null +++ b/src/main/java/com/hyperfactions/util/HFMessages.java @@ -0,0 +1,154 @@ +package com.hyperfactions.util; + +import com.hyperfactions.config.ConfigManager; +import com.hypixel.hytale.server.core.modules.i18n.I18nModule; +import com.hypixel.hytale.server.core.universe.PlayerRef; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Centralized i18n message resolution for HyperFactions. + * + *

+ * Uses Hytale's native {@link I18nModule} for translations. + * Supports server-wide language and per-player client language. + * + *

+ * Language resolution order: + *

    + *
  1. Player's client language via {@link PlayerRef#getLanguage()} (if {@code usePlayerLanguage=true})
  2. + *
  3. Server default language from config
  4. + *
+ * + *

+ * Per-player saved language preferences (from PlayerData) will be added + * when the Player Settings GUI is implemented. + * + *

Usage: + *

+ *   HFMessages.get(playerRef, MessageKeys.Common.NO_PERMISSION);
+ *   HFMessages.get(playerRef, MessageKeys.Create.SUCCESS, factionName);
+ *   HFMessages.get(MessageKeys.Common.LOADING); // server language
+ * 
+ */ +public final class HFMessages { + + private HFMessages() {} + + /** + * Gets a translated message for a specific player. + * Uses the player's resolved language (preference → client → server default). + * + * @param player The player (null falls back to server language) + * @param key The full message key (e.g. "hyperfactions.common.no_permission") + * @param args Replacement arguments for {0}, {1}, etc. + * @return Translated and formatted message, or the key itself if not found + */ + @NotNull + public static String get(@Nullable PlayerRef player, @NotNull String key, Object... args) { + String lang = getLanguageFor(player); + return getForLanguage(lang, key, args); + } + + /** + * Gets a translated message using the server default language. + * + * @param key The full message key + * @param args Replacement arguments for {0}, {1}, etc. + * @return Translated and formatted message + */ + @NotNull + public static String get(@NotNull String key, Object... args) { + return get((PlayerRef) null, key, args); + } + + /** + * Gets a translated message for a specific language code. + * + * @param language The language code (e.g. "en-US", "es-ES") + * @param key The full message key + * @param args Replacement arguments + * @return Translated and formatted message + */ + @NotNull + public static String getForLanguage(@NotNull String language, @NotNull String key, Object... args) { + I18nModule i18n = I18nModule.get(); + if (i18n == null) { + return formatFallback(key, args); + } + + String message = i18n.getMessage(language, key); + if (message == null) { + // Try fallback to en-US + message = i18n.getMessage("en-US", key); + } + if (message == null) { + // Key not found — return key itself for debugging + return key; + } + + return format(message, args); + } + + /** + * Determines the language to use for a player. + * + *

Resolution order: + *

    + *
  1. Player's client language (if {@code usePlayerLanguage} enabled in config)
  2. + *
  3. Server default language
  4. + *
+ * + * @param player The player (null returns server default) + * @return The resolved language code + */ + @NotNull + public static String getLanguageFor(@Nullable PlayerRef player) { + ConfigManager config = ConfigManager.get(); + String serverDefault = config.getDefaultLanguage(); + + if (player == null) { + return serverDefault; + } + + // Use client language if enabled + if (config.isUsePlayerLanguage()) { + return player.getLanguage(); + } + + return serverDefault; + } + + /** + * Formats a message by replacing {0}, {1}, etc. with provided arguments. + */ + @NotNull + private static String format(@NotNull String message, Object... args) { + if (args == null || args.length == 0) { + return message; + } + + String result = message; + for (int i = 0; i < args.length; i++) { + String placeholder = "{" + i + "}"; + String replacement = args[i] != null ? args[i].toString() : ""; + result = result.replace(placeholder, replacement); + } + return result; + } + + /** + * Fallback formatting when I18nModule is not available. + */ + @NotNull + private static String formatFallback(@NotNull String key, Object... args) { + StringBuilder sb = new StringBuilder(key); + if (args != null && args.length > 0) { + sb.append(": "); + for (Object arg : args) { + sb.append(arg).append(" "); + } + } + return sb.toString().trim(); + } +} diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java new file mode 100644 index 00000000..9f7465ef --- /dev/null +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -0,0 +1,362 @@ +package com.hyperfactions.util; + +/** + * Static constants for all HyperFactions i18n message keys. + * + *

+ * Organized by nested inner classes — one per feature domain. + * Key format: {@code {file_prefix}.{domain}.{action}} + * + *

+ * File prefixes map to .lang file names: + *

+ */ +public final class MessageKeys { + + private MessageKeys() {} + + // ===================================================================== + // Common — shared messages used across multiple features + // ===================================================================== + + /** Shared messages used across multiple features (commands, GUI, protection). */ + public static final class Common { + public static final String NO_PERMISSION = "hyperfactions.common.no_permission"; + public static final String NOT_IN_FACTION = "hyperfactions.common.not_in_faction"; + public static final String ALREADY_IN_FACTION = "hyperfactions.common.already_in_faction"; + public static final String PLAYER_NOT_FOUND = "hyperfactions.common.player_not_found"; + public static final String FACTION_NOT_FOUND = "hyperfactions.common.faction_not_found"; + public static final String PLAYER_NOT_ONLINE = "hyperfactions.common.player_not_online"; + public static final String MUST_BE_LEADER = "hyperfactions.common.must_be_leader"; + public static final String MUST_BE_OFFICER = "hyperfactions.common.must_be_officer"; + public static final String COMBAT_TAGGED = "hyperfactions.common.combat_tagged"; + public static final String CANCEL = "hyperfactions.common.cancel"; + public static final String CONFIRM = "hyperfactions.common.confirm"; + public static final String SAVE = "hyperfactions.common.save"; + public static final String CLOSE = "hyperfactions.common.close"; + public static final String YES = "hyperfactions.common.yes"; + public static final String NO = "hyperfactions.common.no"; + public static final String LOADING = "hyperfactions.common.loading"; + public static final String ONLINE = "hyperfactions.common.online"; + public static final String OFFLINE = "hyperfactions.common.offline"; + public static final String ENABLED = "hyperfactions.common.enabled"; + public static final String DISABLED = "hyperfactions.common.disabled"; + public static final String NONE = "hyperfactions.common.none"; + public static final String PAGE = "hyperfactions.common.page"; + public static final String UNKNOWN = "hyperfactions.common.unknown"; + public static final String ERROR_GENERIC = "hyperfactions.common.error_generic"; + + private Common() {} + } + + // ===================================================================== + // Commands — organized by command group + // ===================================================================== + + /** /f create command messages. */ + public static final class Create { + public static final String SUCCESS = "hyperfactions.cmd.create.success"; + public static final String NAME_TAKEN = "hyperfactions.cmd.create.name_taken"; + public static final String NAME_INVALID = "hyperfactions.cmd.create.name_invalid"; + public static final String NAME_TOO_SHORT = "hyperfactions.cmd.create.name_too_short"; + public static final String NAME_TOO_LONG = "hyperfactions.cmd.create.name_too_long"; + public static final String NAME_PROFANITY = "hyperfactions.cmd.create.name_profanity"; + public static final String MAX_FACTIONS = "hyperfactions.cmd.create.max_factions"; + + private Create() {} + } + + /** /f disband command messages. */ + public static final class Disband { + public static final String SUCCESS = "hyperfactions.cmd.disband.success"; + public static final String CONFIRM_PROMPT = "hyperfactions.cmd.disband.confirm_prompt"; + + private Disband() {} + } + + /** /f invite command messages. */ + public static final class Invite { + public static final String SENT = "hyperfactions.cmd.invite.sent"; + public static final String RECEIVED = "hyperfactions.cmd.invite.received"; + public static final String ALREADY_INVITED = "hyperfactions.cmd.invite.already_invited"; + public static final String TARGET_IN_FACTION = "hyperfactions.cmd.invite.target_in_faction"; + public static final String REVOKED = "hyperfactions.cmd.invite.revoked"; + public static final String MAX_INVITES = "hyperfactions.cmd.invite.max_invites"; + + private Invite() {} + } + + /** /f join, /f accept, /f request command messages. */ + public static final class Join { + public static final String SUCCESS = "hyperfactions.cmd.join.success"; + public static final String BROADCAST = "hyperfactions.cmd.join.broadcast"; + public static final String FACTION_FULL = "hyperfactions.cmd.join.faction_full"; + public static final String NOT_INVITED = "hyperfactions.cmd.join.not_invited"; + public static final String FACTION_CLOSED = "hyperfactions.cmd.join.faction_closed"; + public static final String REQUEST_SENT = "hyperfactions.cmd.join.request_sent"; + public static final String REQUEST_RECEIVED = "hyperfactions.cmd.join.request_received"; + + private Join() {} + } + + /** /f leave command messages. */ + public static final class Leave { + public static final String SUCCESS = "hyperfactions.cmd.leave.success"; + public static final String BROADCAST = "hyperfactions.cmd.leave.broadcast"; + public static final String LEADER_CANNOT = "hyperfactions.cmd.leave.leader_cannot"; + + private Leave() {} + } + + /** /f kick command messages. */ + public static final class Kick { + public static final String SUCCESS = "hyperfactions.cmd.kick.success"; + public static final String KICKED = "hyperfactions.cmd.kick.kicked"; + public static final String BROADCAST = "hyperfactions.cmd.kick.broadcast"; + public static final String CANNOT_KICK_SELF = "hyperfactions.cmd.kick.cannot_kick_self"; + public static final String CANNOT_KICK_HIGHER = "hyperfactions.cmd.kick.cannot_kick_higher"; + public static final String NOT_IN_YOUR_FACTION = "hyperfactions.cmd.kick.not_in_your_faction"; + + private Kick() {} + } + + /** /f promote, /f demote, /f transfer command messages. */ + public static final class Rank { + public static final String PROMOTED = "hyperfactions.cmd.rank.promoted"; + public static final String DEMOTED = "hyperfactions.cmd.rank.demoted"; + public static final String TRANSFERRED = "hyperfactions.cmd.rank.transferred"; + public static final String ALREADY_HIGHEST = "hyperfactions.cmd.rank.already_highest"; + public static final String ALREADY_LOWEST = "hyperfactions.cmd.rank.already_lowest"; + + private Rank() {} + } + + /** /f claim, /f unclaim, /f overclaim command messages. */ + public static final class Claim { + public static final String SUCCESS = "hyperfactions.cmd.claim.success"; + public static final String UNCLAIMED = "hyperfactions.cmd.claim.unclaimed"; + public static final String ALREADY_CLAIMED = "hyperfactions.cmd.claim.already_claimed"; + public static final String ALREADY_YOURS = "hyperfactions.cmd.claim.already_yours"; + public static final String NOT_CONNECTED = "hyperfactions.cmd.claim.not_connected"; + public static final String NOT_ENOUGH_POWER = "hyperfactions.cmd.claim.not_enough_power"; + public static final String OVERCLAIMED = "hyperfactions.cmd.claim.overclaimed"; + public static final String CANNOT_OVERCLAIM = "hyperfactions.cmd.claim.cannot_overclaim"; + public static final String NOT_YOUR_CLAIM = "hyperfactions.cmd.claim.not_your_claim"; + public static final String IN_ZONE = "hyperfactions.cmd.claim.in_zone"; + + private Claim() {} + } + + /** /f home, /f sethome, /f delhome, /f stuck command messages. */ + public static final class Home { + public static final String TELEPORTING = "hyperfactions.cmd.home.teleporting"; + public static final String SET = "hyperfactions.cmd.home.set"; + public static final String DELETED = "hyperfactions.cmd.home.deleted"; + public static final String NO_HOME = "hyperfactions.cmd.home.no_home"; + public static final String NOT_IN_TERRITORY = "hyperfactions.cmd.home.not_in_territory"; + public static final String WARMUP = "hyperfactions.cmd.home.warmup"; + public static final String WARMUP_CANCELLED = "hyperfactions.cmd.home.warmup_cancelled"; + public static final String COOLDOWN = "hyperfactions.cmd.home.cooldown"; + public static final String STUCK_TELEPORTING = "hyperfactions.cmd.home.stuck_teleporting"; + + private Home() {} + } + + /** /f power command messages. */ + public static final class Power { + public static final String PERSONAL = "hyperfactions.cmd.power.personal"; + public static final String FACTION = "hyperfactions.cmd.power.faction"; + public static final String DEATH_LOSS = "hyperfactions.cmd.power.death_loss"; + public static final String REGEN = "hyperfactions.cmd.power.regen"; + + private Power() {} + } + + /** /f ally, /f enemy, /f neutral, /f relations command messages. */ + public static final class Relation { + public static final String ALLY_SENT = "hyperfactions.cmd.relation.ally_sent"; + public static final String ALLY_RECEIVED = "hyperfactions.cmd.relation.ally_received"; + public static final String ALLY_FORMED = "hyperfactions.cmd.relation.ally_formed"; + public static final String ENEMY_DECLARED = "hyperfactions.cmd.relation.enemy_declared"; + public static final String ENEMY_RECEIVED = "hyperfactions.cmd.relation.enemy_received"; + public static final String NEUTRAL_SET = "hyperfactions.cmd.relation.neutral_set"; + public static final String ALREADY_RELATION = "hyperfactions.cmd.relation.already_relation"; + public static final String CANNOT_SELF = "hyperfactions.cmd.relation.cannot_self"; + public static final String MAX_ALLIES = "hyperfactions.cmd.relation.max_allies"; + + private Relation() {} + } + + /** /f c (chat) command messages. */ + public static final class Chat { + public static final String MODE_FACTION = "hyperfactions.cmd.chat.mode_faction"; + public static final String MODE_ALLY = "hyperfactions.cmd.chat.mode_ally"; + public static final String MODE_PUBLIC = "hyperfactions.cmd.chat.mode_public"; + + private Chat() {} + } + + /** /f rename, /f desc, /f color, /f open, /f close, /f settings command messages. */ + public static final class Settings { + public static final String RENAMED = "hyperfactions.cmd.settings.renamed"; + public static final String DESCRIPTION_SET = "hyperfactions.cmd.settings.description_set"; + public static final String COLOR_SET = "hyperfactions.cmd.settings.color_set"; + public static final String OPENED = "hyperfactions.cmd.settings.opened"; + public static final String CLOSED = "hyperfactions.cmd.settings.closed"; + + private Settings() {} + } + + /** /f balance, /f deposit, /f withdraw, /f money command messages. */ + public static final class Economy { + public static final String BALANCE = "hyperfactions.cmd.economy.balance"; + public static final String DEPOSITED = "hyperfactions.cmd.economy.deposited"; + public static final String WITHDRAWN = "hyperfactions.cmd.economy.withdrawn"; + public static final String TRANSFERRED = "hyperfactions.cmd.economy.transferred"; + public static final String INSUFFICIENT = "hyperfactions.cmd.economy.insufficient"; + public static final String INVALID_AMOUNT = "hyperfactions.cmd.economy.invalid_amount"; + public static final String ECONOMY_DISABLED = "hyperfactions.cmd.economy.economy_disabled"; + + private Economy() {} + } + + /** /f info, /f who, /f list, /f members command messages. */ + public static final class Info { + public static final String FACTION_HEADER = "hyperfactions.cmd.info.faction_header"; + public static final String PLAYER_HEADER = "hyperfactions.cmd.info.player_header"; + + private Info() {} + } + + /** /f admin command messages. */ + public static final class Admin { + public static final String RELOAD_SUCCESS = "hyperfactions.cmd.admin.reload_success"; + public static final String SYNC_SUCCESS = "hyperfactions.cmd.admin.sync_success"; + public static final String BYPASS_ON = "hyperfactions.cmd.admin.bypass_on"; + public static final String BYPASS_OFF = "hyperfactions.cmd.admin.bypass_off"; + public static final String NOT_ADMIN = "hyperfactions.cmd.admin.not_admin"; + + private Admin() {} + } + + // ===================================================================== + // Protection — denial messages + // ===================================================================== + + /** Protection denial messages shown when actions are blocked. */ + public static final class Protection { + public static final String BUILD = "hyperfactions.protection.build"; + public static final String BREAK = "hyperfactions.protection.break_block"; + public static final String INTERACT = "hyperfactions.protection.interact"; + public static final String CONTAINER = "hyperfactions.protection.container"; + public static final String PVP_DISABLED = "hyperfactions.protection.pvp_disabled"; + public static final String SAFEZONE = "hyperfactions.protection.safezone"; + public static final String WARZONE = "hyperfactions.protection.warzone"; + + private Protection() {} + } + + // ===================================================================== + // Territory — entry/exit notifications, announcements + // ===================================================================== + + /** Territory entry/exit and announcement messages. */ + public static final class Territory { + public static final String ENTER_OWN = "hyperfactions.territory.enter_own"; + public static final String ENTER_ALLY = "hyperfactions.territory.enter_ally"; + public static final String ENTER_ENEMY = "hyperfactions.territory.enter_enemy"; + public static final String ENTER_NEUTRAL = "hyperfactions.territory.enter_neutral"; + public static final String ENTER_WILDERNESS = "hyperfactions.territory.enter_wilderness"; + public static final String ENTER_SAFEZONE = "hyperfactions.territory.enter_safezone"; + public static final String ENTER_WARZONE = "hyperfactions.territory.enter_warzone"; + public static final String INTRUDER_ALERT = "hyperfactions.territory.intruder_alert"; + + private Territory() {} + } + + // ===================================================================== + // Announcements — faction-wide broadcasts + // ===================================================================== + + /** Faction-wide broadcast messages. */ + public static final class Announce { + public static final String MEMBER_JOIN = "hyperfactions.announce.member_join"; + public static final String MEMBER_LEAVE = "hyperfactions.announce.member_leave"; + public static final String MEMBER_KICK = "hyperfactions.announce.member_kick"; + public static final String MEMBER_PROMOTED = "hyperfactions.announce.member_promoted"; + public static final String MEMBER_DEMOTED = "hyperfactions.announce.member_demoted"; + public static final String MEMBER_DEATH = "hyperfactions.announce.member_death"; + public static final String TERRITORY_CLAIMED = "hyperfactions.announce.territory_claimed"; + public static final String TERRITORY_LOST = "hyperfactions.announce.territory_lost"; + public static final String POWER_LOW = "hyperfactions.announce.power_low"; + public static final String RAIDABLE = "hyperfactions.announce.raidable"; + + private Announce() {} + } + + // ===================================================================== + // GUI — Navigation and shared GUI elements + // ===================================================================== + + /** Navigation bar labels. */ + public static final class Nav { + public static final String DASHBOARD = "hyperfactions_gui.nav.dashboard"; + public static final String CHAT = "hyperfactions_gui.nav.chat"; + public static final String MEMBERS = "hyperfactions_gui.nav.members"; + public static final String INVITES = "hyperfactions_gui.nav.invites"; + public static final String BROWSER = "hyperfactions_gui.nav.browser"; + public static final String MAP = "hyperfactions_gui.nav.map"; + public static final String LEADERBOARD = "hyperfactions_gui.nav.leaderboard"; + public static final String RELATIONS = "hyperfactions_gui.nav.relations"; + public static final String TREASURY = "hyperfactions_gui.nav.treasury"; + public static final String SETTINGS = "hyperfactions_gui.nav.settings"; + public static final String LOGS = "hyperfactions_gui.nav.logs"; + public static final String HELP = "hyperfactions_gui.nav.help"; + public static final String ADMIN = "hyperfactions_gui.nav.admin"; + + private Nav() {} + } + + /** Dashboard page labels. */ + public static final class Dashboard { + public static final String POWER_LABEL = "hyperfactions_gui.dashboard.power_label"; + public static final String LAND_LABEL = "hyperfactions_gui.dashboard.land_label"; + public static final String MEMBERS_LABEL = "hyperfactions_gui.dashboard.members_label"; + public static final String ONLINE_LABEL = "hyperfactions_gui.dashboard.online_label"; + public static final String ALLIES_LABEL = "hyperfactions_gui.dashboard.allies_label"; + public static final String ENEMIES_LABEL = "hyperfactions_gui.dashboard.enemies_label"; + + private Dashboard() {} + } + + /** Help GUI category display names. */ + public static final class HelpGui { + public static final String WELCOME = "hyperfactions_gui.help.category.welcome"; + public static final String YOUR_FACTION = "hyperfactions_gui.help.category.your_faction"; + public static final String POWER_LAND = "hyperfactions_gui.help.category.power_land"; + public static final String DIPLOMACY = "hyperfactions_gui.help.category.diplomacy"; + public static final String COMBAT = "hyperfactions_gui.help.category.combat"; + public static final String ECONOMY = "hyperfactions_gui.help.category.economy"; + public static final String QUICK_REF = "hyperfactions_gui.help.category.quick_ref"; + + private HelpGui() {} + } + + /** Player settings page labels. */ + public static final class PlayerSettings { + public static final String TITLE = "hyperfactions_gui.player_settings.title"; + public static final String LANGUAGE_SECTION = "hyperfactions_gui.player_settings.language_section"; + public static final String AUTO_DETECT = "hyperfactions_gui.player_settings.auto_detect"; + public static final String NOTIFICATIONS_SECTION = "hyperfactions_gui.player_settings.notifications_section"; + public static final String TERRITORY_ALERTS = "hyperfactions_gui.player_settings.territory_alerts"; + public static final String DEATH_ANNOUNCEMENTS = "hyperfactions_gui.player_settings.death_announcements"; + public static final String POWER_NOTIFICATIONS = "hyperfactions_gui.player_settings.power_notifications"; + + private PlayerSettings() {} + } +} diff --git a/src/main/java/com/hyperfactions/util/MessageUtil.java b/src/main/java/com/hyperfactions/util/MessageUtil.java index 92c5b4f4..fd162fde 100644 --- a/src/main/java/com/hyperfactions/util/MessageUtil.java +++ b/src/main/java/com/hyperfactions/util/MessageUtil.java @@ -2,6 +2,7 @@ import com.hyperfactions.config.ConfigManager; import com.hypixel.hytale.server.core.Message; +import com.hypixel.hytale.server.core.universe.PlayerRef; import org.jetbrains.annotations.NotNull; /** @@ -68,6 +69,76 @@ public static Message adminPrefix() { .insert(Message.raw("] ").color(bracketColor)); } + // ==================== i18n-aware (PlayerRef + key) ==================== + + /** + * Creates a prefixed red error message using i18n key resolution. + * + * @param player The player (for language resolution) + * @param key The message key + * @param args Replacement arguments for {0}, {1}, etc. + */ + @NotNull + public static Message error(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return prefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_RED)); + } + + /** + * Creates a prefixed green success message using i18n key resolution. + */ + @NotNull + public static Message success(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return prefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_GREEN)); + } + + /** + * Creates a prefixed info message with custom color using i18n key resolution. + */ + @NotNull + public static Message info(@NotNull PlayerRef player, @NotNull String key, @NotNull String color, Object... args) { + return prefix().insert(Message.raw(HFMessages.get(player, key, args)).color(color)); + } + + /** + * Creates a red error message (no prefix) using i18n key resolution. + */ + @NotNull + public static Message errorText(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return Message.raw(HFMessages.get(player, key, args)).color(COLOR_RED); + } + + /** + * Creates a green success message (no prefix) using i18n key resolution. + */ + @NotNull + public static Message successText(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return Message.raw(HFMessages.get(player, key, args)).color(COLOR_GREEN); + } + + /** + * Creates an admin-prefixed red error message using i18n key resolution. + */ + @NotNull + public static Message adminError(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return adminPrefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_RED)); + } + + /** + * Creates an admin-prefixed green success message using i18n key resolution. + */ + @NotNull + public static Message adminSuccess(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return adminPrefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_GREEN)); + } + + /** + * Creates an admin-prefixed gray info message using i18n key resolution. + */ + @NotNull + public static Message adminInfo(@NotNull PlayerRef player, @NotNull String key, Object... args) { + return adminPrefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_GRAY)); + } + // ==================== Unprefixed (GUI pages) ==================== /** diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang new file mode 100644 index 00000000..822ae91d --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -0,0 +1,30 @@ +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. From 5d71da8d314e32d6776fcb62cefab6ef2bcfaeae Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Sun, 8 Mar 2026 22:10:57 -0700 Subject: [PATCH 02/76] feat: migrate faction management and claim commands to i18n keys (Phase 1a) Migrate hardcoded English strings to MessageKeys constants for: - FactionSubCommand.requireFaction() - Create, Disband, Rename, Desc, Open, Close, Color commands - Claim command (territory) Add corresponding keys to MessageKeys.java and hyperfactions.lang. --- .../command/FactionSubCommand.java | 3 +- .../command/faction/CloseSubCommand.java | 13 +-- .../command/faction/ColorSubCommand.java | 23 +++-- .../command/faction/CreateSubCommand.java | 25 +++--- .../command/faction/DescSubCommand.java | 10 ++- .../command/faction/DisbandSubCommand.java | 18 ++-- .../command/faction/OpenSubCommand.java | 13 +-- .../command/faction/RenameSubCommand.java | 21 +++-- .../command/territory/ClaimSubCommand.java | 33 ++++--- .../com/hyperfactions/util/MessageKeys.java | 86 +++++++++++++++++-- .../Server/Languages/en-US/hyperfactions.lang | 72 ++++++++++++++++ 11 files changed, 235 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/FactionSubCommand.java b/src/main/java/com/hyperfactions/command/FactionSubCommand.java index 901deb50..1a7f117f 100644 --- a/src/main/java/com/hyperfactions/command/FactionSubCommand.java +++ b/src/main/java/com/hyperfactions/command/FactionSubCommand.java @@ -4,6 +4,7 @@ import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.data.Faction; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -109,7 +110,7 @@ protected FactionCommandContext parseContext(String[] args) { protected Faction requireFaction(@NotNull CommandContext ctx, @NotNull PlayerRef player) { Faction faction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(MessageUtil.error("You are not in a faction.")); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return null; } return faction; diff --git a/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java b/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java index ab1e0303..20ded497 100644 --- a/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java @@ -9,6 +9,8 @@ import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -38,7 +40,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.CLOSE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Close.NO_PERMISSION)); return; } @@ -49,12 +51,12 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isLeader()) { - ctx.sendMessage(prefix().insert(msg("Only the leader can change this setting.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Close.NOT_LEADER)); return; } if (!faction.open()) { - ctx.sendMessage(prefix().insert(msg("Your faction is already closed.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Close.ALREADY_CLOSED, COLOR_YELLOW)); return; } @@ -64,9 +66,8 @@ protected void execute(@NotNull CommandContext ctx, hyperFactions.getFactionManager().updateFaction(updated); - ctx.sendMessage(prefix().insert(msg("Your faction is now invite-only.", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" closed the faction to invite-only.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Close.SUCCESS)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Close.BROADCAST, player.getUsername())); // After action, open settings page if not text mode String[] rawArgs = CommandUtil.parseRawArgs(ctx.getInputString(), 2); diff --git a/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java b/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java index 7eced8f4..6d54beec 100644 --- a/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java @@ -10,8 +10,12 @@ import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.universe.PlayerRef; @@ -39,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.COLOR)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Color.NO_PERMISSION)); return; } @@ -50,12 +54,12 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isOfficerOrHigher()) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to change the color.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Color.NOT_OFFICER)); return; } if (!ConfigManager.get().isAllowColors()) { - ctx.sendMessage(prefix().insert(msg("Faction colors are disabled.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Color.COLORS_DISABLED)); return; } @@ -73,8 +77,8 @@ protected void execute(@NotNull CommandContext ctx, // Text mode requires args if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f color ", COLOR_RED))); - ctx.sendMessage(msg("Valid codes: 0-9, a-f or #RRGGBB hex", COLOR_GRAY)); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Color.USAGE)); + ctx.sendMessage(Message.raw(HFMessages.get(player, MessageKeys.Color.USAGE_HINT)).color(COLOR_GRAY)); return; } @@ -87,7 +91,7 @@ protected void execute(@NotNull CommandContext ctx, // Legacy color code - convert to hex hexColor = com.hyperfactions.util.LegacyColorParser.codeToHex(colorInput.charAt(0)); } else { - ctx.sendMessage(prefix().insert(msg("Invalid color. Use 0-9, a-f, or #RRGGBB.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Color.INVALID)); return; } @@ -100,9 +104,10 @@ protected void execute(@NotNull CommandContext ctx, // Refresh world maps to show new faction color (respects configured refresh mode) hyperFactions.getWorldMapService().triggerFactionWideRefresh(faction.id()); - ctx.sendMessage(prefix().insert(msg("Faction color updated to ", COLOR_GREEN)) - .insert(msg("this color", null).color(hexColor)) - .insert(msg("!", COLOR_GREEN))); + // Show success with the actual color swatch + ctx.sendMessage(MessageUtil.prefix().insert( + Message.raw(HFMessages.get(player, MessageKeys.Color.SUCCESS) + " ").color(COLOR_GREEN)) + .insert(Message.raw("\u2588\u2588").color(hexColor))); // After action, open settings page if not text mode if (fctx.shouldOpenGuiAfterAction()) { diff --git a/src/main/java/com/hyperfactions/command/faction/CreateSubCommand.java b/src/main/java/com/hyperfactions/command/faction/CreateSubCommand.java index 17d6dae8..e7f5c366 100644 --- a/src/main/java/com/hyperfactions/command/faction/CreateSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/CreateSubCommand.java @@ -8,6 +8,8 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -37,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.CREATE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to create factions.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.NO_PERMISSION)); return; } @@ -55,7 +57,7 @@ protected void execute(@NotNull CommandContext ctx, // Text mode or with args: create directly if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f create ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.USAGE)); return; } @@ -66,8 +68,7 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { - ctx.sendMessage(prefix().insert(msg("Faction '", COLOR_GREEN)) - .insert(msg(name, COLOR_CYAN)).insert(msg("' created!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Create.SUCCESS, name)); // Open dashboard after creation (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -80,18 +81,16 @@ protected void execute(@NotNull CommandContext ctx, case ALREADY_IN_FACTION -> { Faction existingFaction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (existingFaction != null) { - ctx.sendMessage(prefix().insert(msg("You are already in ", COLOR_RED)) - .insert(msg(existingFaction.name(), COLOR_CYAN)) - .insert(msg(".", COLOR_RED))); - ctx.sendMessage(prefix().insert(msg("Use /f leave first if you want to create a new faction.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.ALREADY_IN_NAMED, existingFaction.name())); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Create.USE_LEAVE_FIRST, COLOR_YELLOW)); } else { - ctx.sendMessage(prefix().insert(msg("You are already in a faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.ALREADY_IN_FACTION)); } } - case NAME_TAKEN -> ctx.sendMessage(prefix().insert(msg("That faction name is already taken.", COLOR_RED))); - case NAME_TOO_SHORT -> ctx.sendMessage(prefix().insert(msg("Faction name is too short.", COLOR_RED))); - case NAME_TOO_LONG -> ctx.sendMessage(prefix().insert(msg("Faction name is too long.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to create faction.", COLOR_RED))); + case NAME_TAKEN -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.NAME_TAKEN)); + case NAME_TOO_SHORT -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.NAME_TOO_SHORT)); + case NAME_TOO_LONG -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.NAME_TOO_LONG)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Create.FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java b/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java index 716a6c95..bd9476a2 100644 --- a/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java @@ -9,6 +9,8 @@ import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -39,7 +41,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.DESC)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Desc.NO_PERMISSION)); return; } @@ -50,7 +52,7 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isOfficerOrHigher()) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to set the description.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Desc.NOT_OFFICER)); return; } @@ -76,9 +78,9 @@ protected void execute(@NotNull CommandContext ctx, hyperFactions.getFactionManager().updateFaction(updated); if (description != null) { - ctx.sendMessage(prefix().insert(msg("Faction description set!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Desc.SET)); } else { - ctx.sendMessage(prefix().insert(msg("Faction description cleared.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Desc.CLEARED)); } // After action, open settings page if not text mode diff --git a/src/main/java/com/hyperfactions/command/faction/DisbandSubCommand.java b/src/main/java/com/hyperfactions/command/faction/DisbandSubCommand.java index b461b81c..2e91d1fc 100644 --- a/src/main/java/com/hyperfactions/command/faction/DisbandSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/DisbandSubCommand.java @@ -12,6 +12,8 @@ import com.hyperfactions.manager.ConfirmationManager; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -42,7 +44,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.DISBAND)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to disband factions.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Disband.NO_PERMISSION)); return; } @@ -54,7 +56,7 @@ protected void execute(@NotNull CommandContext ctx, // Check if leader FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isLeader()) { - ctx.sendMessage(prefix().insert(msg("Only the faction leader can disband.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Disband.NOT_LEADER)); return; } @@ -78,10 +80,8 @@ protected void execute(@NotNull CommandContext ctx, switch (confirmResult) { case NEEDS_CONFIRMATION, EXPIRED_RECREATED -> { - ctx.sendMessage(prefix().insert(msg("Are you sure you want to disband your faction?", COLOR_YELLOW))); - ctx.sendMessage(prefix().insert(msg("Type ", COLOR_YELLOW)) - .insert(msg("/f disband --text", COLOR_WHITE)) - .insert(msg(" again within " + confirmManager.getTimeoutSeconds() + " seconds to confirm.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Disband.CONFIRM_PROMPT, COLOR_YELLOW)); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Disband.CONFIRM_INSTRUCTION, COLOR_YELLOW, confirmManager.getTimeoutSeconds())); } case CONFIRMED -> { UUID factionId = faction.id(); @@ -93,13 +93,13 @@ protected void execute(@NotNull CommandContext ctx, hyperFactions.getInviteManager().clearFactionInvites(factionId); hyperFactions.getJoinRequestManager().clearFactionRequests(factionId); hyperFactions.getRelationManager().clearAllRelations(factionId); - ctx.sendMessage(prefix().insert(msg("Your faction has been disbanded.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Disband.SUCCESS)); } else { - ctx.sendMessage(prefix().insert(msg("Failed to disband faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Disband.FAILED)); } } case DIFFERENT_ACTION -> { - ctx.sendMessage(prefix().insert(msg("Previous confirmation cancelled. Type again to confirm disband.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Disband.CANCELLED, COLOR_YELLOW)); } default -> throw new IllegalStateException("Unexpected value"); } diff --git a/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java b/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java index 2e934b7d..01a26041 100644 --- a/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java @@ -9,6 +9,8 @@ import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -38,7 +40,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.OPEN)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Open.NO_PERMISSION)); return; } @@ -49,12 +51,12 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isLeader()) { - ctx.sendMessage(prefix().insert(msg("Only the leader can change this setting.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Open.NOT_LEADER)); return; } if (faction.open()) { - ctx.sendMessage(prefix().insert(msg("Your faction is already open.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Open.ALREADY_OPEN, COLOR_YELLOW)); return; } @@ -64,9 +66,8 @@ protected void execute(@NotNull CommandContext ctx, hyperFactions.getFactionManager().updateFaction(updated); - ctx.sendMessage(prefix().insert(msg("Your faction is now open! Anyone can join with /f join.", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" opened the faction to public joining.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Open.SUCCESS)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Open.BROADCAST, player.getUsername())); // After action, open settings page if not text mode String[] rawArgs = CommandUtil.parseRawArgs(ctx.getInputString(), 2); diff --git a/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java b/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java index a9ee6341..1a026b04 100644 --- a/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java @@ -10,6 +10,8 @@ import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -39,7 +41,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.RENAME)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.NO_PERMISSION)); return; } @@ -50,7 +52,7 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isLeader()) { - ctx.sendMessage(prefix().insert(msg("Only the leader can rename the faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.NOT_LEADER)); return; } @@ -68,7 +70,7 @@ protected void execute(@NotNull CommandContext ctx, // Text mode requires args if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f rename ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.USAGE)); return; } @@ -76,15 +78,15 @@ protected void execute(@NotNull CommandContext ctx, ConfigManager config = ConfigManager.get(); if (newName.length() < config.getMinNameLength()) { - ctx.sendMessage(prefix().insert(msg("Name is too short (min " + config.getMinNameLength() + " chars).", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.TOO_SHORT, config.getMinNameLength())); return; } if (newName.length() > config.getMaxNameLength()) { - ctx.sendMessage(prefix().insert(msg("Name is too long (max " + config.getMaxNameLength() + " chars).", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.TOO_LONG, config.getMaxNameLength())); return; } if (hyperFactions.getFactionManager().isNameTaken(newName) && !newName.equalsIgnoreCase(faction.name())) { - ctx.sendMessage(prefix().insert(msg("That name is already taken.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rename.NAME_TAKEN)); return; } @@ -100,11 +102,8 @@ protected void execute(@NotNull CommandContext ctx, hyperFactions.getWorldMapService().triggerFactionWideRefresh(faction.id()); } - ctx.sendMessage(prefix().insert(msg("Faction renamed to ", COLOR_GREEN)) - .insert(msg(newName, COLOR_CYAN)).insert(msg("!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" renamed the faction to ", COLOR_GREEN)) - .insert(msg(newName, COLOR_CYAN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Rename.SUCCESS, newName)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Rename.BROADCAST, player.getUsername(), newName)); // After action, open settings page if not text mode if (fctx.shouldOpenGuiAfterAction()) { diff --git a/src/main/java/com/hyperfactions/command/territory/ClaimSubCommand.java b/src/main/java/com/hyperfactions/command/territory/ClaimSubCommand.java index 329887f5..ce30da3d 100644 --- a/src/main/java/com/hyperfactions/command/territory/ClaimSubCommand.java +++ b/src/main/java/com/hyperfactions/command/territory/ClaimSubCommand.java @@ -9,6 +9,7 @@ import com.hyperfactions.manager.ClaimManager; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -42,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.CLAIM)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to claim territory.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.NO_PERMISSION)); return; } @@ -71,7 +72,7 @@ protected void execute(@NotNull CommandContext ctx, if (playerFactionId != null && playerFactionId.equals(chunkOwner) && !fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); if (playerEntity != null) { - ctx.sendMessage(prefix().insert(msg("Your faction already owns this chunk.", COLOR_GRAY))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Claim.ALREADY_YOURS, COLOR_GRAY)); hyperFactions.getGuiManager().openChunkMap(playerEntity, ref, store, player); return; } @@ -81,11 +82,9 @@ protected void execute(@NotNull CommandContext ctx, if (chunkOwner != null && !chunkOwner.equals(playerFactionId) && !fctx.isTextMode()) { boolean isAlly = playerFactionId != null && hyperFactions.getRelationManager().areAllies(playerFactionId, chunkOwner); if (isAlly) { - ctx.sendMessage(prefix().insert(msg("You cannot claim ally territory.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.CANNOT_CLAIM_ALLY)); } else { - ctx.sendMessage(prefix().insert(msg("This chunk is claimed. Use ", COLOR_RED)) - .insert(msg("/f overclaim", COLOR_WHITE)) - .insert(msg(" if they are raidable.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.ALREADY_CLAIMED_HINT)); } Player playerEntity = store.getComponent(ref, Player.getComponentType()); if (playerEntity != null) { @@ -101,7 +100,7 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { - ctx.sendMessage(prefix().insert(msg("Claimed chunk at " + chunkX + ", " + chunkZ + "!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Claim.SUCCESS, chunkX, chunkZ)); // Show map after claiming (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -110,16 +109,16 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to claim land.", COLOR_RED))); - case ALREADY_CLAIMED_SELF -> ctx.sendMessage(prefix().insert(msg("Your faction already owns this chunk.", COLOR_RED))); - case ALREADY_CLAIMED_OTHER -> ctx.sendMessage(prefix().insert(msg("This chunk is already claimed.", COLOR_RED))); - case MAX_CLAIMS_REACHED -> ctx.sendMessage(prefix().insert(msg("Your faction has reached max claims. Get more power!", COLOR_RED))); - case NOT_ADJACENT -> ctx.sendMessage(prefix().insert(msg("You must claim adjacent to existing territory.", COLOR_RED))); - case WORLD_NOT_ALLOWED -> ctx.sendMessage(prefix().insert(msg("Claiming is not allowed in this world.", COLOR_RED))); - case ORBISGUARD_PROTECTED -> ctx.sendMessage(prefix().insert(msg("This area is protected by OrbisGuard.", COLOR_RED))); - case ZONE_PROTECTED -> ctx.sendMessage(prefix().insert(msg("This chunk is in a safezone or warzone.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to claim chunk.", COLOR_RED))); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.NOT_OFFICER)); + case ALREADY_CLAIMED_SELF -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.ALREADY_YOURS)); + case ALREADY_CLAIMED_OTHER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.ALREADY_CLAIMED)); + case MAX_CLAIMS_REACHED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.MAX_CLAIMS)); + case NOT_ADJACENT -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.NOT_CONNECTED)); + case WORLD_NOT_ALLOWED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.WORLD_NOT_ALLOWED)); + case ORBISGUARD_PROTECTED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.ORBISGUARD)); + case ZONE_PROTECTED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.ZONE_PROTECTED)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 9f7465ef..c604dc7d 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -60,25 +60,91 @@ private Common() {} /** /f create command messages. */ public static final class Create { + public static final String NO_PERMISSION = "hyperfactions.cmd.create.no_permission"; + public static final String USAGE = "hyperfactions.cmd.create.usage"; public static final String SUCCESS = "hyperfactions.cmd.create.success"; + public static final String ALREADY_IN_NAMED = "hyperfactions.cmd.create.already_in_named"; + public static final String USE_LEAVE_FIRST = "hyperfactions.cmd.create.use_leave_first"; public static final String NAME_TAKEN = "hyperfactions.cmd.create.name_taken"; - public static final String NAME_INVALID = "hyperfactions.cmd.create.name_invalid"; public static final String NAME_TOO_SHORT = "hyperfactions.cmd.create.name_too_short"; public static final String NAME_TOO_LONG = "hyperfactions.cmd.create.name_too_long"; - public static final String NAME_PROFANITY = "hyperfactions.cmd.create.name_profanity"; - public static final String MAX_FACTIONS = "hyperfactions.cmd.create.max_factions"; + public static final String FAILED = "hyperfactions.cmd.create.failed"; private Create() {} } /** /f disband command messages. */ public static final class Disband { - public static final String SUCCESS = "hyperfactions.cmd.disband.success"; + public static final String NO_PERMISSION = "hyperfactions.cmd.disband.no_permission"; + public static final String NOT_LEADER = "hyperfactions.cmd.disband.not_leader"; public static final String CONFIRM_PROMPT = "hyperfactions.cmd.disband.confirm_prompt"; + public static final String CONFIRM_INSTRUCTION = "hyperfactions.cmd.disband.confirm_instruction"; + public static final String SUCCESS = "hyperfactions.cmd.disband.success"; + public static final String FAILED = "hyperfactions.cmd.disband.failed"; + public static final String CANCELLED = "hyperfactions.cmd.disband.cancelled"; private Disband() {} } + /** /f rename command messages. */ + public static final class Rename { + public static final String NO_PERMISSION = "hyperfactions.cmd.rename.no_permission"; + public static final String NOT_LEADER = "hyperfactions.cmd.rename.not_leader"; + public static final String USAGE = "hyperfactions.cmd.rename.usage"; + public static final String TOO_SHORT = "hyperfactions.cmd.rename.too_short"; + public static final String TOO_LONG = "hyperfactions.cmd.rename.too_long"; + public static final String NAME_TAKEN = "hyperfactions.cmd.rename.name_taken"; + public static final String SUCCESS = "hyperfactions.cmd.rename.success"; + public static final String BROADCAST = "hyperfactions.cmd.rename.broadcast"; + + private Rename() {} + } + + /** /f desc command messages. */ + public static final class Desc { + public static final String NO_PERMISSION = "hyperfactions.cmd.desc.no_permission"; + public static final String NOT_OFFICER = "hyperfactions.cmd.desc.not_officer"; + public static final String SET = "hyperfactions.cmd.desc.set"; + public static final String CLEARED = "hyperfactions.cmd.desc.cleared"; + + private Desc() {} + } + + /** /f open command messages. */ + public static final class Open { + public static final String NO_PERMISSION = "hyperfactions.cmd.open.no_permission"; + public static final String NOT_LEADER = "hyperfactions.cmd.open.not_leader"; + public static final String ALREADY_OPEN = "hyperfactions.cmd.open.already_open"; + public static final String SUCCESS = "hyperfactions.cmd.open.success"; + public static final String BROADCAST = "hyperfactions.cmd.open.broadcast"; + + private Open() {} + } + + /** /f close command messages. */ + public static final class Close { + public static final String NO_PERMISSION = "hyperfactions.cmd.close.no_permission"; + public static final String NOT_LEADER = "hyperfactions.cmd.close.not_leader"; + public static final String ALREADY_CLOSED = "hyperfactions.cmd.close.already_closed"; + public static final String SUCCESS = "hyperfactions.cmd.close.success"; + public static final String BROADCAST = "hyperfactions.cmd.close.broadcast"; + + private Close() {} + } + + /** /f color command messages. */ + public static final class Color { + public static final String NO_PERMISSION = "hyperfactions.cmd.color.no_permission"; + public static final String NOT_OFFICER = "hyperfactions.cmd.color.not_officer"; + public static final String COLORS_DISABLED = "hyperfactions.cmd.color.colors_disabled"; + public static final String USAGE = "hyperfactions.cmd.color.usage"; + public static final String USAGE_HINT = "hyperfactions.cmd.color.usage_hint"; + public static final String INVALID = "hyperfactions.cmd.color.invalid"; + public static final String SUCCESS = "hyperfactions.cmd.color.success"; + + private Color() {} + } + /** /f invite command messages. */ public static final class Invite { public static final String SENT = "hyperfactions.cmd.invite.sent"; @@ -138,12 +204,20 @@ private Rank() {} /** /f claim, /f unclaim, /f overclaim command messages. */ public static final class Claim { + public static final String NO_PERMISSION = "hyperfactions.cmd.claim.no_permission"; public static final String SUCCESS = "hyperfactions.cmd.claim.success"; public static final String UNCLAIMED = "hyperfactions.cmd.claim.unclaimed"; public static final String ALREADY_CLAIMED = "hyperfactions.cmd.claim.already_claimed"; public static final String ALREADY_YOURS = "hyperfactions.cmd.claim.already_yours"; - public static final String NOT_CONNECTED = "hyperfactions.cmd.claim.not_connected"; - public static final String NOT_ENOUGH_POWER = "hyperfactions.cmd.claim.not_enough_power"; + public static final String CANNOT_CLAIM_ALLY = "hyperfactions.cmd.claim.cannot_claim_ally"; + public static final String ALREADY_CLAIMED_HINT = "hyperfactions.cmd.claim.already_claimed_hint"; + public static final String NOT_OFFICER = "hyperfactions.cmd.claim.not_officer"; + public static final String NOT_CONNECTED = "hyperfactions.cmd.claim.not_adjacent"; + public static final String MAX_CLAIMS = "hyperfactions.cmd.claim.max_claims"; + public static final String WORLD_NOT_ALLOWED = "hyperfactions.cmd.claim.world_not_allowed"; + public static final String ORBISGUARD = "hyperfactions.cmd.claim.orbisguard"; + public static final String ZONE_PROTECTED = "hyperfactions.cmd.claim.zone_protected"; + public static final String FAILED = "hyperfactions.cmd.claim.failed"; public static final String OVERCLAIMED = "hyperfactions.cmd.claim.overclaimed"; public static final String CANNOT_OVERCLAIM = "hyperfactions.cmd.claim.cannot_overclaim"; public static final String NOT_YOUR_CLAIM = "hyperfactions.cmd.claim.not_your_claim"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 822ae91d..46a0d840 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -28,3 +28,75 @@ common.none = None common.page = Page {0} of {1} common.unknown = Unknown common.error_generic = Something went wrong. Please try again. + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.failed = Failed to claim chunk. From 18398b4dff65eaa63788bc7edc268b10b5e0db7c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Sun, 8 Mar 2026 22:18:27 -0700 Subject: [PATCH 03/76] feat: migrate member commands to i18n keys (Phase 1b) Migrate hardcoded English strings to MessageKeys constants for: - Invite, Accept/Join, Kick, Leave commands - Promote, Demote, Transfer commands Add corresponding keys to MessageKeys.java and hyperfactions.lang. --- .../command/member/AcceptSubCommand.java | 30 ++++----- .../command/member/DemoteSubCommand.java | 20 +++--- .../command/member/InviteSubCommand.java | 21 +++--- .../command/member/KickSubCommand.java | 22 +++---- .../command/member/LeaveSubCommand.java | 20 +++--- .../command/member/PromoteSubCommand.java | 20 +++--- .../command/member/TransferSubCommand.java | 28 ++++---- .../com/hyperfactions/util/MessageKeys.java | 60 +++++++++++++---- .../Server/Languages/en-US/hyperfactions.lang | 66 +++++++++++++++++++ 9 files changed, 190 insertions(+), 97 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/member/AcceptSubCommand.java b/src/main/java/com/hyperfactions/command/member/AcceptSubCommand.java index d08bbb92..0c45d138 100644 --- a/src/main/java/com/hyperfactions/command/member/AcceptSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/AcceptSubCommand.java @@ -9,6 +9,8 @@ import com.hyperfactions.data.PendingInvite; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -41,19 +43,17 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.JOIN)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to join factions.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.NO_PERMISSION)); return; } if (hyperFactions.getFactionManager().isInFaction(player.getUuid())) { Faction existingFaction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (existingFaction != null) { - ctx.sendMessage(prefix().insert(msg("You are already in ", COLOR_RED)) - .insert(msg(existingFaction.name(), COLOR_CYAN)) - .insert(msg(".", COLOR_RED))); - ctx.sendMessage(prefix().insert(msg("Use /f leave first if you want to join another faction.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.ALREADY_IN_NAMED, existingFaction.name())); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Join.USE_LEAVE_HINT, COLOR_YELLOW)); } else { - ctx.sendMessage(prefix().insert(msg("You are already in a faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.ALREADY_IN_FACTION)); } return; } @@ -73,7 +73,7 @@ protected void execute(@NotNull CommandContext ctx, } if (invites.isEmpty()) { - ctx.sendMessage(prefix().insert(msg("You have no pending invites.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.NO_INVITES)); return; } @@ -82,12 +82,12 @@ protected void execute(@NotNull CommandContext ctx, String factionName = fctx.joinArgs(); Faction targetFaction = hyperFactions.getFactionManager().getFactionByName(factionName); if (targetFaction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.FACTION_NOT_FOUND, factionName)); return; } invite = hyperFactions.getInviteManager().getInvite(targetFaction.id(), player.getUuid()); if (invite == null) { - ctx.sendMessage(prefix().insert(msg("You have no invite from that faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.NOT_INVITED)); return; } } else { @@ -96,7 +96,7 @@ protected void execute(@NotNull CommandContext ctx, Faction faction = hyperFactions.getFactionManager().getFaction(invite.factionId()); if (faction == null) { - ctx.sendMessage(prefix().insert(msg("That faction no longer exists.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.FACTION_GONE)); hyperFactions.getInviteManager().removeInvite(invite.factionId(), player.getUuid()); return; } @@ -108,14 +108,12 @@ protected void execute(@NotNull CommandContext ctx, if (result == FactionManager.FactionResult.SUCCESS) { hyperFactions.getInviteManager().clearPlayerInvites(player.getUuid()); hyperFactions.getJoinRequestManager().clearPlayerRequests(player.getUuid()); - ctx.sendMessage(prefix().insert(msg("You have joined ", COLOR_GREEN)) - .insert(msg(faction.name(), COLOR_CYAN)).insert(msg("!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" has joined the faction!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Join.SUCCESS, faction.name())); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Join.BROADCAST, player.getUsername())); } else if (result == FactionManager.FactionResult.FACTION_FULL) { - ctx.sendMessage(prefix().insert(msg("That faction is full.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.FACTION_FULL)); } else { - ctx.sendMessage(prefix().insert(msg("Failed to join faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Join.FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/member/DemoteSubCommand.java b/src/main/java/com/hyperfactions/command/member/DemoteSubCommand.java index c8cbf833..757ec1b4 100644 --- a/src/main/java/com/hyperfactions/command/member/DemoteSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/DemoteSubCommand.java @@ -11,6 +11,8 @@ import com.hyperfactions.data.FactionRole; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -40,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.DEMOTE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to demote members.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.DEMOTE_NO_PERMISSION)); return; } @@ -53,7 +55,7 @@ protected void execute(@NotNull CommandContext ctx, FactionCommandContext fctx = parseContext(rawArgs); if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f demote ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.DEMOTE_USAGE)); return; } @@ -63,7 +65,7 @@ protected void execute(@NotNull CommandContext ctx, .findFirst().orElse(null); if (target == null) { - ctx.sendMessage(prefix().insert(msg("Player not found in your faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PLAYER_NOT_IN_FACTION)); return; } @@ -74,10 +76,8 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { String memberName = ConfigManager.get().getRoleDisplayName(FactionRole.MEMBER); - ctx.sendMessage(prefix().insert(msg("Demoted ", COLOR_GREEN)) - .insert(msg(target.username(), COLOR_YELLOW)).insert(msg(" to " + memberName + ".", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(target.username(), COLOR_YELLOW)) - .insert(msg(" was demoted to " + memberName + ".", COLOR_RED))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Rank.DEMOTED, target.username(), memberName)); + broadcastToFaction(faction.id(), MessageUtil.error(player, MessageKeys.Rank.DEMOTE_BROADCAST, target.username(), memberName)); // Show members page after action (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -86,9 +86,9 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_LEADER -> ctx.sendMessage(prefix().insert(msg("Only the leader can demote members.", COLOR_RED))); - case CANNOT_DEMOTE_MEMBER -> ctx.sendMessage(prefix().insert(msg("That player is already a Member.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to demote player.", COLOR_RED))); + case NOT_LEADER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_LEADER)); + case CANNOT_DEMOTE_MEMBER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.ALREADY_LOWEST)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.DEMOTE_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/member/InviteSubCommand.java b/src/main/java/com/hyperfactions/command/member/InviteSubCommand.java index f6c2fd43..d231a190 100644 --- a/src/main/java/com/hyperfactions/command/member/InviteSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/InviteSubCommand.java @@ -8,6 +8,8 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -37,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.INVITE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to invite players.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invite.NO_PERMISSION)); return; } @@ -48,7 +50,7 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isOfficerOrHigher()) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to invite players.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invite.NOT_OFFICER)); return; } @@ -65,29 +67,26 @@ protected void execute(@NotNull CommandContext ctx, } if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f invite ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invite.USAGE)); return; } String targetName = fctx.getArg(0); PlayerRef target = findOnlinePlayer(targetName); if (target == null) { - ctx.sendMessage(prefix().insert(msg("Player '" + targetName + "' not found or offline.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invite.PLAYER_NOT_FOUND, targetName)); return; } if (hyperFactions.getFactionManager().isInFaction(target.getUuid())) { - ctx.sendMessage(prefix().insert(msg("That player is already in a faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invite.TARGET_IN_FACTION)); return; } hyperFactions.getInviteManager().createInvite(faction.id(), target.getUuid(), player.getUuid()); - ctx.sendMessage(prefix().insert(msg("Invited ", COLOR_GREEN)) - .insert(msg(target.getUsername(), COLOR_YELLOW)).insert(msg(" to your faction.", COLOR_GREEN))); - target.sendMessage(prefix().insert(msg("You have been invited to join ", COLOR_YELLOW)) - .insert(msg(faction.name(), COLOR_CYAN)).insert(msg("!", COLOR_YELLOW))); - target.sendMessage(prefix().insert(msg("Type ", COLOR_YELLOW)) - .insert(msg("/f accept " + faction.name(), COLOR_GREEN)).insert(msg(" to join.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Invite.SENT, target.getUsername())); + target.sendMessage(MessageUtil.info(target, MessageKeys.Invite.RECEIVED, COLOR_YELLOW, faction.name())); + target.sendMessage(MessageUtil.info(target, MessageKeys.Invite.ACCEPT_HINT, COLOR_YELLOW, faction.name())); } } diff --git a/src/main/java/com/hyperfactions/command/member/KickSubCommand.java b/src/main/java/com/hyperfactions/command/member/KickSubCommand.java index 694fadb9..0a796747 100644 --- a/src/main/java/com/hyperfactions/command/member/KickSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/KickSubCommand.java @@ -9,6 +9,8 @@ import com.hyperfactions.data.FactionMember; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -38,7 +40,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.KICK)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to kick members.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.NO_PERMISSION)); return; } @@ -51,7 +53,7 @@ protected void execute(@NotNull CommandContext ctx, FactionCommandContext fctx = parseContext(rawArgs); if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f kick ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.USAGE)); return; } @@ -61,7 +63,7 @@ protected void execute(@NotNull CommandContext ctx, .findFirst().orElse(null); if (target == null) { - ctx.sendMessage(prefix().insert(msg("Player '" + targetName + "' is not in your faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.NOT_IN_YOUR_FACTION, targetName)); return; } @@ -71,13 +73,11 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { - ctx.sendMessage(prefix().insert(msg("Kicked ", COLOR_GREEN)) - .insert(msg(target.username(), COLOR_YELLOW)).insert(msg(" from the faction.", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(target.username(), COLOR_YELLOW)) - .insert(msg(" was kicked from the faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Kick.SUCCESS, target.username())); + broadcastToFaction(faction.id(), MessageUtil.error(player, MessageKeys.Kick.BROADCAST, target.username())); PlayerRef targetPlayer = plugin.getTrackedPlayer(target.uuid()); if (targetPlayer != null) { - targetPlayer.sendMessage(prefix().insert(msg("You have been kicked from the faction.", COLOR_RED))); + targetPlayer.sendMessage(MessageUtil.error(targetPlayer, MessageKeys.Kick.KICKED)); } // Show members page after action (if not text mode) @@ -88,9 +88,9 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You don't have permission to kick that player.", COLOR_RED))); - case CANNOT_KICK_LEADER -> ctx.sendMessage(prefix().insert(msg("You cannot kick the faction leader.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to kick player.", COLOR_RED))); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.CANNOT_KICK_HIGHER)); + case CANNOT_KICK_LEADER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.CANNOT_KICK_LEADER)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Kick.FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/member/LeaveSubCommand.java b/src/main/java/com/hyperfactions/command/member/LeaveSubCommand.java index 20977ea1..91176bca 100644 --- a/src/main/java/com/hyperfactions/command/member/LeaveSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/LeaveSubCommand.java @@ -13,6 +13,8 @@ import com.hyperfactions.manager.ConfirmationManager; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -43,7 +45,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.LEAVE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to leave factions.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Leave.NO_PERMISSION)); return; } @@ -78,10 +80,9 @@ protected void execute(@NotNull CommandContext ctx, switch (confirmResult) { case NEEDS_CONFIRMATION, EXPIRED_RECREATED -> { - ctx.sendMessage(prefix().insert(msg("Are you sure you want to leave your faction?", COLOR_YELLOW))); - ctx.sendMessage(prefix().insert(msg("Type ", COLOR_YELLOW)) - .insert(msg("/f leave --text", COLOR_WHITE)) - .insert(msg(" again within " + confirmManager.getTimeoutSeconds() + " seconds to confirm.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Leave.CONFIRM_PROMPT, COLOR_YELLOW)); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Leave.CONFIRM_INSTRUCTION, COLOR_YELLOW, + confirmManager.getTimeoutSeconds())); } case CONFIRMED -> { UUID factionId = faction.id(); @@ -89,15 +90,14 @@ protected void execute(@NotNull CommandContext ctx, factionId, player.getUuid(), player.getUuid(), false ); if (result == FactionManager.FactionResult.SUCCESS) { - ctx.sendMessage(prefix().insert(msg("You have left your faction.", COLOR_GREEN))); - broadcastToFaction(factionId, prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" has left the faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Leave.SUCCESS)); + broadcastToFaction(factionId, MessageUtil.error(player, MessageKeys.Leave.BROADCAST, player.getUsername())); } else { - ctx.sendMessage(prefix().insert(msg("Failed to leave faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Leave.FAILED)); } } case DIFFERENT_ACTION -> { - ctx.sendMessage(prefix().insert(msg("Previous confirmation cancelled. Type again to confirm leave.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Leave.CANCELLED, COLOR_YELLOW)); } default -> throw new IllegalStateException("Unexpected value"); } diff --git a/src/main/java/com/hyperfactions/command/member/PromoteSubCommand.java b/src/main/java/com/hyperfactions/command/member/PromoteSubCommand.java index 7548a6f4..2ecd1f23 100644 --- a/src/main/java/com/hyperfactions/command/member/PromoteSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/PromoteSubCommand.java @@ -11,6 +11,8 @@ import com.hyperfactions.data.FactionRole; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -40,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.PROMOTE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to promote members.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PROMOTE_NO_PERMISSION)); return; } @@ -53,7 +55,7 @@ protected void execute(@NotNull CommandContext ctx, FactionCommandContext fctx = parseContext(rawArgs); if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f promote ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PROMOTE_USAGE)); return; } @@ -63,7 +65,7 @@ protected void execute(@NotNull CommandContext ctx, .findFirst().orElse(null); if (target == null) { - ctx.sendMessage(prefix().insert(msg("Player not found in your faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PLAYER_NOT_IN_FACTION)); return; } @@ -74,10 +76,8 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { String officerName = ConfigManager.get().getRoleDisplayName(FactionRole.OFFICER); - ctx.sendMessage(prefix().insert(msg("Promoted ", COLOR_GREEN)) - .insert(msg(target.username(), COLOR_YELLOW)).insert(msg(" to " + officerName + "!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(target.username(), COLOR_YELLOW)) - .insert(msg(" was promoted to " + officerName + "!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Rank.PROMOTED, target.username(), officerName)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Rank.PROMOTE_BROADCAST, target.username(), officerName)); // Show members page after action (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -86,9 +86,9 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_LEADER -> ctx.sendMessage(prefix().insert(msg("Only the leader can promote members.", COLOR_RED))); - case CANNOT_PROMOTE_LEADER -> ctx.sendMessage(prefix().insert(msg("Cannot promote further. Use /f transfer to change leader.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to promote player.", COLOR_RED))); + case NOT_LEADER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_LEADER)); + case CANNOT_PROMOTE_LEADER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.ALREADY_HIGHEST)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PROMOTE_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/member/TransferSubCommand.java b/src/main/java/com/hyperfactions/command/member/TransferSubCommand.java index ca766ec8..8d0cdaac 100644 --- a/src/main/java/com/hyperfactions/command/member/TransferSubCommand.java +++ b/src/main/java/com/hyperfactions/command/member/TransferSubCommand.java @@ -12,6 +12,8 @@ import com.hyperfactions.manager.ConfirmationManager; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -41,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.TRANSFER)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to transfer leadership.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.TRANSFER_NO_PERMISSION)); return; } @@ -53,7 +55,7 @@ protected void execute(@NotNull CommandContext ctx, // Check if leader FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isLeader()) { - ctx.sendMessage(prefix().insert(msg("Only the leader can transfer leadership.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_LEADER)); return; } @@ -61,7 +63,7 @@ protected void execute(@NotNull CommandContext ctx, FactionCommandContext fctx = parseContext(rawArgs); if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f transfer ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.TRANSFER_USAGE)); return; } @@ -71,7 +73,7 @@ protected void execute(@NotNull CommandContext ctx, .findFirst().orElse(null); if (target == null) { - ctx.sendMessage(prefix().insert(msg("Player not found in your faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.PLAYER_NOT_IN_FACTION)); return; } @@ -93,27 +95,23 @@ protected void execute(@NotNull CommandContext ctx, switch (confirmResult) { case NEEDS_CONFIRMATION, EXPIRED_RECREATED -> { - ctx.sendMessage(prefix().insert(msg("Are you sure you want to transfer leadership to ", COLOR_YELLOW)) - .insert(msg(target.username(), COLOR_WHITE)).insert(msg("?", COLOR_YELLOW))); - ctx.sendMessage(prefix().insert(msg("Type ", COLOR_YELLOW)) - .insert(msg("/f transfer " + target.username() + " --text", COLOR_WHITE)) - .insert(msg(" again within " + confirmManager.getTimeoutSeconds() + " seconds to confirm.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Rank.TRANSFER_CONFIRM, COLOR_YELLOW, target.username())); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Rank.TRANSFER_CONFIRM_INSTRUCTION, COLOR_YELLOW, + target.username(), confirmManager.getTimeoutSeconds())); } case CONFIRMED -> { FactionManager.FactionResult result = hyperFactions.getFactionManager().transferLeadership( faction.id(), target.uuid(), player.getUuid() ); if (result == FactionManager.FactionResult.SUCCESS) { - ctx.sendMessage(prefix().insert(msg("Transferred leadership to ", COLOR_GREEN)) - .insert(msg(target.username(), COLOR_YELLOW)).insert(msg("!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(target.username(), COLOR_YELLOW)) - .insert(msg(" is now the faction leader!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Rank.TRANSFERRED, target.username())); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Rank.TRANSFER_BROADCAST, target.username())); } else { - ctx.sendMessage(prefix().insert(msg("Failed to transfer leadership.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Rank.TRANSFER_FAILED)); } } case DIFFERENT_ACTION -> { - ctx.sendMessage(prefix().insert(msg("Previous confirmation cancelled. Type again to confirm transfer.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Rank.TRANSFER_CANCELLED, COLOR_YELLOW)); } default -> throw new IllegalStateException("Unexpected value"); } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index c604dc7d..0bdc950f 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -147,57 +147,89 @@ private Color() {} /** /f invite command messages. */ public static final class Invite { + public static final String NO_PERMISSION = "hyperfactions.cmd.invite.no_permission"; + public static final String NOT_OFFICER = "hyperfactions.cmd.invite.not_officer"; + public static final String USAGE = "hyperfactions.cmd.invite.usage"; + public static final String PLAYER_NOT_FOUND = "hyperfactions.cmd.invite.player_not_found"; + public static final String TARGET_IN_FACTION = "hyperfactions.cmd.invite.target_in_faction"; public static final String SENT = "hyperfactions.cmd.invite.sent"; public static final String RECEIVED = "hyperfactions.cmd.invite.received"; - public static final String ALREADY_INVITED = "hyperfactions.cmd.invite.already_invited"; - public static final String TARGET_IN_FACTION = "hyperfactions.cmd.invite.target_in_faction"; - public static final String REVOKED = "hyperfactions.cmd.invite.revoked"; - public static final String MAX_INVITES = "hyperfactions.cmd.invite.max_invites"; + public static final String ACCEPT_HINT = "hyperfactions.cmd.invite.accept_hint"; private Invite() {} } /** /f join, /f accept, /f request command messages. */ public static final class Join { + public static final String NO_PERMISSION = "hyperfactions.cmd.join.no_permission"; + public static final String ALREADY_IN_NAMED = "hyperfactions.cmd.join.already_in_named"; + public static final String USE_LEAVE_HINT = "hyperfactions.cmd.join.use_leave_hint"; + public static final String NO_INVITES = "hyperfactions.cmd.join.no_invites"; + public static final String FACTION_NOT_FOUND = "hyperfactions.cmd.join.faction_not_found"; + public static final String NOT_INVITED = "hyperfactions.cmd.join.not_invited"; + public static final String FACTION_GONE = "hyperfactions.cmd.join.faction_gone"; public static final String SUCCESS = "hyperfactions.cmd.join.success"; public static final String BROADCAST = "hyperfactions.cmd.join.broadcast"; public static final String FACTION_FULL = "hyperfactions.cmd.join.faction_full"; - public static final String NOT_INVITED = "hyperfactions.cmd.join.not_invited"; - public static final String FACTION_CLOSED = "hyperfactions.cmd.join.faction_closed"; - public static final String REQUEST_SENT = "hyperfactions.cmd.join.request_sent"; - public static final String REQUEST_RECEIVED = "hyperfactions.cmd.join.request_received"; + public static final String FAILED = "hyperfactions.cmd.join.failed"; private Join() {} } /** /f leave command messages. */ public static final class Leave { + public static final String NO_PERMISSION = "hyperfactions.cmd.leave.no_permission"; + public static final String CONFIRM_PROMPT = "hyperfactions.cmd.leave.confirm_prompt"; + public static final String CONFIRM_INSTRUCTION = "hyperfactions.cmd.leave.confirm_instruction"; public static final String SUCCESS = "hyperfactions.cmd.leave.success"; public static final String BROADCAST = "hyperfactions.cmd.leave.broadcast"; - public static final String LEADER_CANNOT = "hyperfactions.cmd.leave.leader_cannot"; + public static final String FAILED = "hyperfactions.cmd.leave.failed"; + public static final String CANCELLED = "hyperfactions.cmd.leave.cancelled"; private Leave() {} } /** /f kick command messages. */ public static final class Kick { + public static final String NO_PERMISSION = "hyperfactions.cmd.kick.no_permission"; + public static final String USAGE = "hyperfactions.cmd.kick.usage"; + public static final String NOT_IN_YOUR_FACTION = "hyperfactions.cmd.kick.not_in_your_faction"; public static final String SUCCESS = "hyperfactions.cmd.kick.success"; - public static final String KICKED = "hyperfactions.cmd.kick.kicked"; public static final String BROADCAST = "hyperfactions.cmd.kick.broadcast"; - public static final String CANNOT_KICK_SELF = "hyperfactions.cmd.kick.cannot_kick_self"; + public static final String KICKED = "hyperfactions.cmd.kick.kicked"; public static final String CANNOT_KICK_HIGHER = "hyperfactions.cmd.kick.cannot_kick_higher"; - public static final String NOT_IN_YOUR_FACTION = "hyperfactions.cmd.kick.not_in_your_faction"; + public static final String CANNOT_KICK_LEADER = "hyperfactions.cmd.kick.cannot_kick_leader"; + public static final String FAILED = "hyperfactions.cmd.kick.failed"; private Kick() {} } /** /f promote, /f demote, /f transfer command messages. */ public static final class Rank { + // Promote + public static final String PROMOTE_NO_PERMISSION = "hyperfactions.cmd.rank.promote_no_permission"; + public static final String PROMOTE_USAGE = "hyperfactions.cmd.rank.promote_usage"; public static final String PROMOTED = "hyperfactions.cmd.rank.promoted"; - public static final String DEMOTED = "hyperfactions.cmd.rank.demoted"; - public static final String TRANSFERRED = "hyperfactions.cmd.rank.transferred"; + public static final String PROMOTE_BROADCAST = "hyperfactions.cmd.rank.promote_broadcast"; public static final String ALREADY_HIGHEST = "hyperfactions.cmd.rank.already_highest"; + public static final String PROMOTE_FAILED = "hyperfactions.cmd.rank.promote_failed"; + // Demote + public static final String DEMOTE_NO_PERMISSION = "hyperfactions.cmd.rank.demote_no_permission"; + public static final String DEMOTE_USAGE = "hyperfactions.cmd.rank.demote_usage"; + public static final String DEMOTED = "hyperfactions.cmd.rank.demoted"; + public static final String DEMOTE_BROADCAST = "hyperfactions.cmd.rank.demote_broadcast"; public static final String ALREADY_LOWEST = "hyperfactions.cmd.rank.already_lowest"; + public static final String DEMOTE_FAILED = "hyperfactions.cmd.rank.demote_failed"; + // Transfer + public static final String TRANSFER_NO_PERMISSION = "hyperfactions.cmd.rank.transfer_no_permission"; + public static final String TRANSFER_USAGE = "hyperfactions.cmd.rank.transfer_usage"; + public static final String PLAYER_NOT_IN_FACTION = "hyperfactions.cmd.rank.player_not_in_faction"; + public static final String TRANSFER_CONFIRM = "hyperfactions.cmd.rank.transfer_confirm"; + public static final String TRANSFER_CONFIRM_INSTRUCTION = "hyperfactions.cmd.rank.transfer_confirm_instruction"; + public static final String TRANSFERRED = "hyperfactions.cmd.rank.transferred"; + public static final String TRANSFER_BROADCAST = "hyperfactions.cmd.rank.transfer_broadcast"; + public static final String TRANSFER_FAILED = "hyperfactions.cmd.rank.transfer_failed"; + public static final String TRANSFER_CANCELLED = "hyperfactions.cmd.rank.transfer_cancelled"; private Rank() {} } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 46a0d840..209b5b07 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -100,3 +100,69 @@ cmd.claim.world_not_allowed = Claiming is not allowed in this world. cmd.claim.orbisguard = This area is protected by OrbisGuard. cmd.claim.zone_protected = This chunk is in a safezone or warzone. cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. From 7f47fe9c5d52e24e3b1ba68a1dc4b66570a57fe0 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 07:28:38 -0700 Subject: [PATCH 04/76] feat: migrate territory and teleport commands to i18n keys (Phase 1c) Migrate hardcoded English strings to MessageKeys constants for: - Unclaim, Overclaim, Stuck commands (territory) - Home, SetHome, DelHome commands (teleport) Add corresponding keys to MessageKeys.java and hyperfactions.lang. --- .../command/teleport/DelHomeSubCommand.java | 15 +++--- .../command/teleport/HomeSubCommand.java | 11 ++-- .../command/teleport/SetHomeSubCommand.java | 17 +++--- .../territory/OverclaimSubCommand.java | 21 ++++---- .../command/territory/StuckSubCommand.java | 12 +++-- .../command/territory/UnclaimSubCommand.java | 19 +++---- .../com/hyperfactions/util/MessageKeys.java | 54 +++++++++++++++---- .../Server/Languages/en-US/hyperfactions.lang | 50 +++++++++++++++++ 8 files changed, 145 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/teleport/DelHomeSubCommand.java b/src/main/java/com/hyperfactions/command/teleport/DelHomeSubCommand.java index c005f946..7102fc14 100644 --- a/src/main/java/com/hyperfactions/command/teleport/DelHomeSubCommand.java +++ b/src/main/java/com/hyperfactions/command/teleport/DelHomeSubCommand.java @@ -6,6 +6,8 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -34,7 +36,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.DELHOME)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to delete faction home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.DELHOME_NO_PERMISSION)); return; } @@ -44,20 +46,19 @@ protected void execute(@NotNull CommandContext ctx, } if (faction.home() == null) { - ctx.sendMessage(prefix().insert(msg("Your faction does not have a home set.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Home.DELHOME_NO_HOME, COLOR_YELLOW)); return; } FactionManager.FactionResult result = hyperFactions.getFactionManager().setHome(faction.id(), null, player.getUuid()); if (result == FactionManager.FactionResult.SUCCESS) { - ctx.sendMessage(prefix().insert(msg("Faction home deleted!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" deleted the faction home.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Home.DELETED)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Home.DELHOME_BROADCAST, player.getUsername())); } else if (result == FactionManager.FactionResult.NOT_OFFICER) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to delete the home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.DELHOME_NOT_OFFICER)); } else { - ctx.sendMessage(prefix().insert(msg("Failed to delete home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.DELHOME_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/teleport/HomeSubCommand.java b/src/main/java/com/hyperfactions/command/teleport/HomeSubCommand.java index 96de5b6f..7f2a1726 100644 --- a/src/main/java/com/hyperfactions/command/teleport/HomeSubCommand.java +++ b/src/main/java/com/hyperfactions/command/teleport/HomeSubCommand.java @@ -6,6 +6,7 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.TeleportManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -41,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.HOME)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to teleport to faction home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.NO_PERMISSION)); return; } @@ -79,11 +80,11 @@ protected void execute(@NotNull CommandContext ctx, // Handle immediate results (warmup teleports are handled by TerritoryTickingSystem) switch (result) { - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NO_HOME -> ctx.sendMessage(prefix().insert(msg("Your faction has no home set.", COLOR_RED))); - case COMBAT_TAGGED -> ctx.sendMessage(prefix().insert(msg("You cannot teleport while in combat!", COLOR_RED))); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NO_HOME -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.NO_HOME)); + case COMBAT_TAGGED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.COMBAT_TAGGED)); case ON_COOLDOWN -> {} // Message sent by TeleportManager - case SUCCESS_INSTANT -> ctx.sendMessage(prefix().insert(msg("Teleported to faction home!", COLOR_GREEN))); + case SUCCESS_INSTANT -> ctx.sendMessage(MessageUtil.success(player, MessageKeys.Home.TELEPORTED)); case SUCCESS_WARMUP -> {} // Message sent by TeleportManager, teleport executed by TerritoryTickingSystem default -> {} } diff --git a/src/main/java/com/hyperfactions/command/teleport/SetHomeSubCommand.java b/src/main/java/com/hyperfactions/command/teleport/SetHomeSubCommand.java index 56ee1bf5..40f43c99 100644 --- a/src/main/java/com/hyperfactions/command/teleport/SetHomeSubCommand.java +++ b/src/main/java/com/hyperfactions/command/teleport/SetHomeSubCommand.java @@ -8,6 +8,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.math.vector.Vector3d; @@ -40,12 +42,12 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.SETHOME)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to set faction home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.SETHOME_NO_PERMISSION)); return; } if (!ConfigManager.get().isWorldAllowed(currentWorld.getName())) { - ctx.sendMessage(prefix().insert(msg("Cannot set home in this world.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.SETHOME_WORLD_NOT_ALLOWED)); return; } @@ -66,7 +68,7 @@ protected void execute(@NotNull CommandContext ctx, UUID claimOwner = hyperFactions.getClaimManager().getClaimOwner(currentWorld.getName(), chunkX, chunkZ); if (claimOwner == null || !claimOwner.equals(faction.id())) { - ctx.sendMessage(prefix().insert(msg("You can only set home in your faction's territory.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.NOT_IN_TERRITORY)); return; } @@ -78,13 +80,12 @@ protected void execute(@NotNull CommandContext ctx, FactionManager.FactionResult result = hyperFactions.getFactionManager().setHome(faction.id(), home, player.getUuid()); if (result == FactionManager.FactionResult.SUCCESS) { - ctx.sendMessage(prefix().insert(msg("Faction home set!", COLOR_GREEN))); - broadcastToFaction(faction.id(), prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" set the faction home.", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Home.SET)); + broadcastToFaction(faction.id(), MessageUtil.success(player, MessageKeys.Home.SETHOME_BROADCAST, player.getUsername())); } else if (result == FactionManager.FactionResult.NOT_OFFICER) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to set the home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.SETHOME_NOT_OFFICER)); } else { - ctx.sendMessage(prefix().insert(msg("Failed to set home.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.SETHOME_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/territory/OverclaimSubCommand.java b/src/main/java/com/hyperfactions/command/territory/OverclaimSubCommand.java index b905585a..96fb5374 100644 --- a/src/main/java/com/hyperfactions/command/territory/OverclaimSubCommand.java +++ b/src/main/java/com/hyperfactions/command/territory/OverclaimSubCommand.java @@ -9,6 +9,7 @@ import com.hyperfactions.manager.ClaimManager; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -41,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.OVERCLAIM)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to overclaim territory.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_NO_PERMISSION)); return; } @@ -68,7 +69,7 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { - ctx.sendMessage(prefix().insert(msg("Overclaimed enemy territory!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Claim.OVERCLAIMED)); // Show map after overclaiming (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -77,14 +78,14 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to overclaim.", COLOR_RED))); - case CHUNK_NOT_CLAIMED -> ctx.sendMessage(prefix().insert(msg("This chunk is not claimed. Use /f claim.", COLOR_RED))); - case ALREADY_CLAIMED_SELF -> ctx.sendMessage(prefix().insert(msg("Your faction already owns this chunk.", COLOR_RED))); - case ALREADY_CLAIMED_ALLY -> ctx.sendMessage(prefix().insert(msg("You cannot overclaim ally territory.", COLOR_RED))); - case TARGET_HAS_POWER -> ctx.sendMessage(prefix().insert(msg("This faction still has enough power.", COLOR_RED))); - case MAX_CLAIMS_REACHED -> ctx.sendMessage(prefix().insert(msg("Your faction has reached max claims.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to overclaim.", COLOR_RED))); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_NOT_OFFICER)); + case CHUNK_NOT_CLAIMED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_NOT_CLAIMED)); + case ALREADY_CLAIMED_SELF -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_OWN)); + case ALREADY_CLAIMED_ALLY -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_ALLY)); + case TARGET_HAS_POWER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.TARGET_HAS_POWER)); + case MAX_CLAIMS_REACHED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.MAX_CLAIMS)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.OVERCLAIM_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/territory/StuckSubCommand.java b/src/main/java/com/hyperfactions/command/territory/StuckSubCommand.java index 0d2aacfa..85acaa86 100644 --- a/src/main/java/com/hyperfactions/command/territory/StuckSubCommand.java +++ b/src/main/java/com/hyperfactions/command/territory/StuckSubCommand.java @@ -5,6 +5,8 @@ import com.hyperfactions.command.FactionSubCommand; import com.hyperfactions.config.ConfigManager; import com.hyperfactions.data.Faction; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hyperfactions.manager.TeleportManager; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; @@ -47,7 +49,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.STUCK)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to use /f stuck.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.STUCK_NO_PERMISSION)); return; } @@ -67,20 +69,20 @@ protected void execute(@NotNull CommandContext ctx, Faction playerFaction = hyperFactions.getFactionManager().getPlayerFaction(playerUuid); if (claimOwner == null) { - ctx.sendMessage(prefix().insert(msg("You're not stuck - this is wilderness.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.STUCK_NOT_STUCK)); return; } // Combat check if (hyperFactions.getCombatTagManager().isTagged(playerUuid)) { - ctx.sendMessage(prefix().insert(msg("You cannot use /f stuck while in combat!", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.STUCK_COMBAT_TAGGED)); return; } // Find nearest safe chunk int[] safeChunk = findNearestSafeChunk(currentWorld.getName(), chunkX, chunkZ); if (safeChunk == null) { - ctx.sendMessage(prefix().insert(msg("Could not find a safe location.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Home.STUCK_NO_SAFE)); return; } @@ -112,7 +114,7 @@ protected void execute(@NotNull CommandContext ctx, "Teleported to safety!" ); - ctx.sendMessage(prefix().insert(msg("Teleporting to safety in " + warmupSeconds + " seconds. Don't move!", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Home.STUCK_TELEPORTING, COLOR_YELLOW, warmupSeconds)); } /** diff --git a/src/main/java/com/hyperfactions/command/territory/UnclaimSubCommand.java b/src/main/java/com/hyperfactions/command/territory/UnclaimSubCommand.java index 06f656d8..ebc90d48 100644 --- a/src/main/java/com/hyperfactions/command/territory/UnclaimSubCommand.java +++ b/src/main/java/com/hyperfactions/command/territory/UnclaimSubCommand.java @@ -9,6 +9,7 @@ import com.hyperfactions.manager.ClaimManager; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -41,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.UNCLAIM)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to unclaim territory.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.UNCLAIM_NO_PERMISSION)); return; } @@ -68,7 +69,7 @@ protected void execute(@NotNull CommandContext ctx, switch (result) { case SUCCESS -> { - ctx.sendMessage(prefix().insert(msg("Unclaimed chunk at " + chunkX + ", " + chunkZ + ".", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Claim.UNCLAIMED, chunkX, chunkZ)); // Show map after unclaiming (if not text mode) if (!fctx.isTextMode()) { Player playerEntity = store.getComponent(ref, Player.getComponentType()); @@ -77,13 +78,13 @@ protected void execute(@NotNull CommandContext ctx, } } } - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to unclaim land.", COLOR_RED))); - case CHUNK_NOT_CLAIMED -> ctx.sendMessage(prefix().insert(msg("This chunk is not claimed.", COLOR_RED))); - case NOT_YOUR_CLAIM -> ctx.sendMessage(prefix().insert(msg("Your faction doesn't own this chunk.", COLOR_RED))); - case CANNOT_UNCLAIM_HOME -> ctx.sendMessage(prefix().insert(msg("Cannot unclaim the chunk with faction home.", COLOR_RED))); - case WOULD_DISCONNECT -> ctx.sendMessage(prefix().insert(msg("Cannot unclaim — it would disconnect your territory.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to unclaim chunk.", COLOR_RED))); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.UNCLAIM_NOT_OFFICER)); + case CHUNK_NOT_CLAIMED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.CHUNK_NOT_CLAIMED)); + case NOT_YOUR_CLAIM -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.NOT_YOUR_CLAIM)); + case CANNOT_UNCLAIM_HOME -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.CANNOT_UNCLAIM_HOME)); + case WOULD_DISCONNECT -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.WOULD_DISCONNECT)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Claim.UNCLAIM_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 0bdc950f..d6f35cf6 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -236,9 +236,9 @@ private Rank() {} /** /f claim, /f unclaim, /f overclaim command messages. */ public static final class Claim { + // Claim public static final String NO_PERMISSION = "hyperfactions.cmd.claim.no_permission"; public static final String SUCCESS = "hyperfactions.cmd.claim.success"; - public static final String UNCLAIMED = "hyperfactions.cmd.claim.unclaimed"; public static final String ALREADY_CLAIMED = "hyperfactions.cmd.claim.already_claimed"; public static final String ALREADY_YOURS = "hyperfactions.cmd.claim.already_yours"; public static final String CANNOT_CLAIM_ALLY = "hyperfactions.cmd.claim.cannot_claim_ally"; @@ -250,25 +250,59 @@ public static final class Claim { public static final String ORBISGUARD = "hyperfactions.cmd.claim.orbisguard"; public static final String ZONE_PROTECTED = "hyperfactions.cmd.claim.zone_protected"; public static final String FAILED = "hyperfactions.cmd.claim.failed"; - public static final String OVERCLAIMED = "hyperfactions.cmd.claim.overclaimed"; - public static final String CANNOT_OVERCLAIM = "hyperfactions.cmd.claim.cannot_overclaim"; - public static final String NOT_YOUR_CLAIM = "hyperfactions.cmd.claim.not_your_claim"; - public static final String IN_ZONE = "hyperfactions.cmd.claim.in_zone"; + // Unclaim + public static final String UNCLAIM_NO_PERMISSION = "hyperfactions.cmd.unclaim.no_permission"; + public static final String UNCLAIMED = "hyperfactions.cmd.unclaim.success"; + public static final String UNCLAIM_NOT_OFFICER = "hyperfactions.cmd.unclaim.not_officer"; + public static final String CHUNK_NOT_CLAIMED = "hyperfactions.cmd.unclaim.chunk_not_claimed"; + public static final String NOT_YOUR_CLAIM = "hyperfactions.cmd.unclaim.not_your_claim"; + public static final String CANNOT_UNCLAIM_HOME = "hyperfactions.cmd.unclaim.cannot_unclaim_home"; + public static final String WOULD_DISCONNECT = "hyperfactions.cmd.unclaim.would_disconnect"; + public static final String UNCLAIM_FAILED = "hyperfactions.cmd.unclaim.failed"; + // Overclaim + public static final String OVERCLAIM_NO_PERMISSION = "hyperfactions.cmd.overclaim.no_permission"; + public static final String OVERCLAIMED = "hyperfactions.cmd.overclaim.success"; + public static final String OVERCLAIM_NOT_OFFICER = "hyperfactions.cmd.overclaim.not_officer"; + public static final String OVERCLAIM_NOT_CLAIMED = "hyperfactions.cmd.overclaim.not_claimed"; + public static final String OVERCLAIM_OWN = "hyperfactions.cmd.overclaim.own_chunk"; + public static final String OVERCLAIM_ALLY = "hyperfactions.cmd.overclaim.ally"; + public static final String TARGET_HAS_POWER = "hyperfactions.cmd.overclaim.target_has_power"; + public static final String OVERCLAIM_FAILED = "hyperfactions.cmd.overclaim.failed"; private Claim() {} } /** /f home, /f sethome, /f delhome, /f stuck command messages. */ public static final class Home { - public static final String TELEPORTING = "hyperfactions.cmd.home.teleporting"; - public static final String SET = "hyperfactions.cmd.home.set"; - public static final String DELETED = "hyperfactions.cmd.home.deleted"; + // Home + public static final String NO_PERMISSION = "hyperfactions.cmd.home.no_permission"; public static final String NO_HOME = "hyperfactions.cmd.home.no_home"; - public static final String NOT_IN_TERRITORY = "hyperfactions.cmd.home.not_in_territory"; + public static final String COMBAT_TAGGED = "hyperfactions.cmd.home.combat_tagged"; + public static final String TELEPORTED = "hyperfactions.cmd.home.teleported"; public static final String WARMUP = "hyperfactions.cmd.home.warmup"; public static final String WARMUP_CANCELLED = "hyperfactions.cmd.home.warmup_cancelled"; public static final String COOLDOWN = "hyperfactions.cmd.home.cooldown"; - public static final String STUCK_TELEPORTING = "hyperfactions.cmd.home.stuck_teleporting"; + // SetHome + public static final String SETHOME_NO_PERMISSION = "hyperfactions.cmd.sethome.no_permission"; + public static final String SETHOME_WORLD_NOT_ALLOWED = "hyperfactions.cmd.sethome.world_not_allowed"; + public static final String NOT_IN_TERRITORY = "hyperfactions.cmd.sethome.not_in_territory"; + public static final String SET = "hyperfactions.cmd.sethome.set"; + public static final String SETHOME_BROADCAST = "hyperfactions.cmd.sethome.broadcast"; + public static final String SETHOME_NOT_OFFICER = "hyperfactions.cmd.sethome.not_officer"; + public static final String SETHOME_FAILED = "hyperfactions.cmd.sethome.failed"; + // DelHome + public static final String DELHOME_NO_PERMISSION = "hyperfactions.cmd.delhome.no_permission"; + public static final String DELHOME_NO_HOME = "hyperfactions.cmd.delhome.no_home"; + public static final String DELETED = "hyperfactions.cmd.delhome.deleted"; + public static final String DELHOME_BROADCAST = "hyperfactions.cmd.delhome.broadcast"; + public static final String DELHOME_NOT_OFFICER = "hyperfactions.cmd.delhome.not_officer"; + public static final String DELHOME_FAILED = "hyperfactions.cmd.delhome.failed"; + // Stuck + public static final String STUCK_NO_PERMISSION = "hyperfactions.cmd.stuck.no_permission"; + public static final String STUCK_NOT_STUCK = "hyperfactions.cmd.stuck.not_stuck"; + public static final String STUCK_COMBAT_TAGGED = "hyperfactions.cmd.stuck.combat_tagged"; + public static final String STUCK_NO_SAFE = "hyperfactions.cmd.stuck.no_safe"; + public static final String STUCK_TELEPORTING = "hyperfactions.cmd.stuck.teleporting"; private Home() {} } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 209b5b07..8940afc0 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -166,3 +166,53 @@ cmd.rank.transferred = Transferred leadership to {0}! cmd.rank.transfer_broadcast = {0} is now the faction leader! cmd.rank.transfer_failed = Failed to transfer leadership. cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. From ecb1e077434afcf248094e59b74601090f516492 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 08:33:45 -0700 Subject: [PATCH 05/76] feat: migrate relation, social, info, and economy commands to i18n keys (Phase 1d) Migrate hardcoded English strings to MessageKeys constants for: - Ally, Enemy, Neutral, Relations commands (relation) - Chat, Invites, Request commands (social) - Info, Members, List, Help, Who, Map, Power commands (info) - Money, TreasuryCommandHandler (economy) Add Invites and Request inner classes to MessageKeys. Expand Relation, Chat, Info, Power, and Economy classes with new keys. --- .../command/economy/MoneySubCommand.java | 26 ++- .../economy/TreasuryCommandHandler.java | 158 ++++++------------ .../command/info/HelpSubCommand.java | 4 +- .../command/info/InfoSubCommand.java | 38 ++--- .../command/info/ListSubCommand.java | 15 +- .../command/info/MapSubCommand.java | 11 +- .../command/info/MembersSubCommand.java | 9 +- .../command/info/PowerSubCommand.java | 13 +- .../command/info/WhoSubCommand.java | 24 +-- .../command/relation/AllySubCommand.java | 29 ++-- .../command/relation/EnemySubCommand.java | 20 +-- .../command/relation/NeutralSubCommand.java | 17 +- .../command/relation/RelationsSubCommand.java | 19 ++- .../command/social/ChatSubCommand.java | 10 +- .../command/social/InvitesSubCommand.java | 37 ++-- .../command/social/RequestSubCommand.java | 40 ++--- .../com/hyperfactions/util/MessageKeys.java | 142 +++++++++++++++- .../Server/Languages/en-US/hyperfactions.lang | 145 ++++++++++++++++ 18 files changed, 497 insertions(+), 260 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/economy/MoneySubCommand.java b/src/main/java/com/hyperfactions/command/economy/MoneySubCommand.java index 17180827..4c67ad10 100644 --- a/src/main/java/com/hyperfactions/command/economy/MoneySubCommand.java +++ b/src/main/java/com/hyperfactions/command/economy/MoneySubCommand.java @@ -4,6 +4,9 @@ import com.hyperfactions.command.FactionSubCommand; import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -36,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, String[] parts = input != null ? input.trim().split("\\s+") : new String[0]; if (parts.length < 3) { - sendHelp(ctx); + sendHelp(ctx, player); return; } @@ -49,21 +52,16 @@ protected void execute(@NotNull CommandContext ctx, case "withdraw", "wd" -> TreasuryCommandHandler.handleWithdraw(ctx, player, hyperFactions, subArgs); case "transfer", "send" -> TreasuryCommandHandler.handleTransfer(ctx, player, hyperFactions, subArgs); case "log", "history" -> TreasuryCommandHandler.handleLog(ctx, player, hyperFactions, subArgs); - default -> sendHelp(ctx); + default -> sendHelp(ctx, player); } } - private void sendHelp(CommandContext ctx) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg("Treasury Commands:", COLOR_CYAN))); - ctx.sendMessage(CommandUtil.msg(" /f money balance [faction]", COLOR_YELLOW) - .insert(CommandUtil.msg(" - View balance", COLOR_GRAY))); - ctx.sendMessage(CommandUtil.msg(" /f money deposit ", COLOR_YELLOW) - .insert(CommandUtil.msg(" - Deposit into treasury", COLOR_GRAY))); - ctx.sendMessage(CommandUtil.msg(" /f money withdraw ", COLOR_YELLOW) - .insert(CommandUtil.msg(" - Withdraw from treasury", COLOR_GRAY))); - ctx.sendMessage(CommandUtil.msg(" /f money transfer ", COLOR_YELLOW) - .insert(CommandUtil.msg(" - Transfer between factions", COLOR_GRAY))); - ctx.sendMessage(CommandUtil.msg(" /f money log [page] [type]", COLOR_YELLOW) - .insert(CommandUtil.msg(" - View transaction history", COLOR_GRAY))); + private void sendHelp(CommandContext ctx, PlayerRef player) { + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Economy.MONEY_HELP_HEADER, COLOR_CYAN)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Economy.MONEY_HELP_BALANCE), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Economy.MONEY_HELP_DEPOSIT), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Economy.MONEY_HELP_WITHDRAW), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Economy.MONEY_HELP_TRANSFER), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Economy.MONEY_HELP_LOG), COLOR_GRAY)); } } diff --git a/src/main/java/com/hyperfactions/command/economy/TreasuryCommandHandler.java b/src/main/java/com/hyperfactions/command/economy/TreasuryCommandHandler.java index ef2aad40..93f3dd35 100644 --- a/src/main/java/com/hyperfactions/command/economy/TreasuryCommandHandler.java +++ b/src/main/java/com/hyperfactions/command/economy/TreasuryCommandHandler.java @@ -10,6 +10,9 @@ import com.hyperfactions.data.FactionPermissions; import com.hyperfactions.integration.economy.VaultEconomyProvider; import com.hyperfactions.manager.EconomyManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.universe.PlayerRef; @@ -38,15 +41,13 @@ private TreasuryCommandHandler() {} public static void handleBalance(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull HyperFactions hf, String[] args) { if (!CommandUtil.hasPermission(player, Permissions.ECONOMY_BALANCE)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have permission to view balances.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.BALANCE_NO_PERMISSION)); return; } EconomyManager econ = hf.getEconomyManager(); if (econ == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Treasury is not available.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TREASURY_UNAVAILABLE)); return; } @@ -54,23 +55,20 @@ public static void handleBalance(@NotNull CommandContext ctx, @NotNull PlayerRef if (args.length > 0) { faction = hf.getFactionManager().getFactionByName(args[0]); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Faction '" + args[0] + "' not found.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } } else { faction = hf.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You are not in a faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return; } } BigDecimal balance = econ.getFactionBalance(faction.id()); - ctx.sendMessage(CommandUtil.prefix() - .insert(CommandUtil.msg(faction.name() + "'s treasury: ", CommandUtil.COLOR_CYAN)) - .insert(CommandUtil.msg(econ.formatCurrency(balance), CommandUtil.COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Economy.BALANCE_DISPLAY, + faction.name(), econ.formatCurrency(balance))); } /** @@ -79,23 +77,20 @@ public static void handleBalance(@NotNull CommandContext ctx, @NotNull PlayerRef public static void handleDeposit(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull HyperFactions hf, String[] args) { if (!CommandUtil.hasPermission(player, Permissions.ECONOMY_DEPOSIT)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have permission to deposit.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.DEPOSIT_NO_PERMISSION)); return; } EconomyManager econ = hf.getEconomyManager(); VaultEconomyProvider vault = econ != null ? econ.getVaultProvider() : null; if (econ == null || vault == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Treasury is not available.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TREASURY_UNAVAILABLE)); return; } Faction faction = hf.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You are not in a faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return; } @@ -103,14 +98,12 @@ public static void handleDeposit(@NotNull CommandContext ctx, @NotNull PlayerRef FactionMember member = faction.getMember(player.getUuid()); if (member != null && !faction.getEffectivePermissions().get(FactionPermissions.TREASURY_DEPOSIT) && !member.isOfficerOrHigher()) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have faction permission to deposit.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.DEPOSIT_FACTION_DENIED)); return; } if (args.length < 1) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Usage: /f deposit ", CommandUtil.COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Economy.DEPOSIT_USAGE, MessageUtil.COLOR_YELLOW)); return; } @@ -118,29 +111,25 @@ public static void handleDeposit(@NotNull CommandContext ctx, @NotNull PlayerRef try { amount = new BigDecimal(args[0]); } catch (NumberFormatException e) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Invalid amount: " + args[0], CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.INVALID_AMOUNT, args[0])); return; } if (amount.compareTo(BigDecimal.ZERO) <= 0) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Amount must be positive.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.AMOUNT_POSITIVE)); return; } // Check player has enough in wallet if (!vault.has(player.getUuid(), amount)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have enough money. Wallet: " + econ.formatCurrency(vault.getBalanceBigDecimal(player.getUuid())), - CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WALLET_INSUFFICIENT, + econ.formatCurrency(vault.getBalanceBigDecimal(player.getUuid())))); return; } // Withdraw from player wallet if (!vault.withdraw(player.getUuid(), amount)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Failed to withdraw from your wallet.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WALLET_WITHDRAW_FAILED)); return; } @@ -151,15 +140,11 @@ public static void handleDeposit(@NotNull CommandContext ctx, @NotNull PlayerRef if (result != EconomyAPI.TransactionResult.SUCCESS) { // Rollback: return money to player vault.deposit(player.getUuid(), amount); - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Failed to deposit to faction treasury. Money returned.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.DEPOSIT_FAILED)); return; } - ctx.sendMessage(CommandUtil.prefix() - .insert(CommandUtil.msg("Deposited ", CommandUtil.COLOR_GREEN)) - .insert(CommandUtil.msg(econ.formatCurrency(amount), CommandUtil.COLOR_CYAN)) - .insert(CommandUtil.msg(" into the faction treasury.", CommandUtil.COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Economy.DEPOSITED, econ.formatCurrency(amount))); } /** @@ -168,23 +153,20 @@ public static void handleDeposit(@NotNull CommandContext ctx, @NotNull PlayerRef public static void handleWithdraw(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull HyperFactions hf, String[] args) { if (!CommandUtil.hasPermission(player, Permissions.ECONOMY_WITHDRAW)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have permission to withdraw.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WITHDRAW_NO_PERMISSION)); return; } EconomyManager econ = hf.getEconomyManager(); VaultEconomyProvider vault = econ != null ? econ.getVaultProvider() : null; if (econ == null || vault == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Treasury is not available.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TREASURY_UNAVAILABLE)); return; } Faction faction = hf.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You are not in a faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return; } @@ -192,14 +174,12 @@ public static void handleWithdraw(@NotNull CommandContext ctx, @NotNull PlayerRe FactionMember member = faction.getMember(player.getUuid()); if (member != null && !faction.getEffectivePermissions().get(FactionPermissions.TREASURY_WITHDRAW) && !member.isLeader()) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have faction permission to withdraw.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WITHDRAW_FACTION_DENIED)); return; } if (args.length < 1) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Usage: /f withdraw ", CommandUtil.COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Economy.WITHDRAW_USAGE, MessageUtil.COLOR_YELLOW)); return; } @@ -207,22 +187,19 @@ public static void handleWithdraw(@NotNull CommandContext ctx, @NotNull PlayerRe try { amount = new BigDecimal(args[0]); } catch (NumberFormatException e) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Invalid amount: " + args[0], CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.INVALID_AMOUNT, args[0])); return; } if (amount.compareTo(BigDecimal.ZERO) <= 0) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Amount must be positive.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.AMOUNT_POSITIVE)); return; } // Check limits before attempting String limitReason = econ.checkWithdrawLimits(faction.id(), amount); if (limitReason != null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Withdrawal denied: " + limitReason, CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WITHDRAW_LIMIT_DENIED, limitReason)); return; } @@ -235,22 +212,14 @@ public static void handleWithdraw(@NotNull CommandContext ctx, @NotNull PlayerRe // Deposit to player wallet if (!vault.deposit(player.getUuid(), amount)) { // Rollback is complex — log the error - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Warning: Failed to deposit to your wallet. Contact an admin.", - CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WALLET_DEPOSIT_FAILED)); return; } - ctx.sendMessage(CommandUtil.prefix() - .insert(CommandUtil.msg("Withdrew ", CommandUtil.COLOR_GREEN)) - .insert(CommandUtil.msg(econ.formatCurrency(amount), CommandUtil.COLOR_CYAN)) - .insert(CommandUtil.msg(" from the faction treasury.", CommandUtil.COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Economy.WITHDRAWN, econ.formatCurrency(amount))); } - case INSUFFICIENT_FUNDS -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Insufficient funds in faction treasury.", CommandUtil.COLOR_RED))); - case LIMIT_EXCEEDED -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Withdrawal denied: limit exceeded.", CommandUtil.COLOR_RED))); - default -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Withdrawal failed: " + result, CommandUtil.COLOR_RED))); + case INSUFFICIENT_FUNDS -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.INSUFFICIENT)); + case LIMIT_EXCEEDED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WITHDRAW_LIMIT_EXCEEDED)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.WITHDRAW_FAILED, result)); } } @@ -260,22 +229,19 @@ public static void handleWithdraw(@NotNull CommandContext ctx, @NotNull PlayerRe public static void handleTransfer(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull HyperFactions hf, String[] args) { if (!CommandUtil.hasPermission(player, Permissions.ECONOMY_TRANSFER)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have permission to transfer.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_NO_PERMISSION)); return; } EconomyManager econ = hf.getEconomyManager(); if (econ == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Treasury is not available.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TREASURY_UNAVAILABLE)); return; } Faction faction = hf.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You are not in a faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return; } @@ -283,27 +249,23 @@ public static void handleTransfer(@NotNull CommandContext ctx, @NotNull PlayerRe FactionMember member = faction.getMember(player.getUuid()); if (member != null && !faction.getEffectivePermissions().get(FactionPermissions.TREASURY_TRANSFER) && !member.isLeader()) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have faction permission to transfer.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_FACTION_DENIED)); return; } if (args.length < 2) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Usage: /f money transfer ", CommandUtil.COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Economy.TRANSFER_USAGE, MessageUtil.COLOR_YELLOW)); return; } Faction target = hf.getFactionManager().getFactionByName(args[0]); if (target == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Faction '" + args[0] + "' not found.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } if (target.id().equals(faction.id())) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Cannot transfer to your own faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_SELF)); return; } @@ -311,22 +273,19 @@ public static void handleTransfer(@NotNull CommandContext ctx, @NotNull PlayerRe try { amount = new BigDecimal(args[1]); } catch (NumberFormatException e) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Invalid amount: " + args[1], CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.INVALID_AMOUNT, args[1])); return; } if (amount.compareTo(BigDecimal.ZERO) <= 0) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Amount must be positive.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.AMOUNT_POSITIVE)); return; } // Check limits String limitReason = econ.checkTransferLimits(faction.id(), amount); if (limitReason != null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Transfer denied: " + limitReason, CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_LIMIT_DENIED, limitReason)); return; } @@ -334,16 +293,11 @@ public static void handleTransfer(@NotNull CommandContext ctx, @NotNull PlayerRe faction.id(), target.id(), amount, player.getUuid(), "Player transfer").join(); switch (result) { - case SUCCESS -> ctx.sendMessage(CommandUtil.prefix() - .insert(CommandUtil.msg("Transferred ", CommandUtil.COLOR_GREEN)) - .insert(CommandUtil.msg(econ.formatCurrency(amount), CommandUtil.COLOR_CYAN)) - .insert(CommandUtil.msg(" to " + target.name() + ".", CommandUtil.COLOR_GREEN))); - case INSUFFICIENT_FUNDS -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Insufficient funds in faction treasury.", CommandUtil.COLOR_RED))); - case LIMIT_EXCEEDED -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Transfer denied: limit exceeded.", CommandUtil.COLOR_RED))); - default -> ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Transfer failed: " + result, CommandUtil.COLOR_RED))); + case SUCCESS -> ctx.sendMessage(MessageUtil.success(player, MessageKeys.Economy.TRANSFERRED, + econ.formatCurrency(amount), target.name())); + case INSUFFICIENT_FUNDS -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.INSUFFICIENT)); + case LIMIT_EXCEEDED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_LIMIT_EXCEEDED)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TRANSFER_FAILED, result)); } } @@ -353,22 +307,19 @@ public static void handleTransfer(@NotNull CommandContext ctx, @NotNull PlayerRe public static void handleLog(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull HyperFactions hf, String[] args) { if (!CommandUtil.hasPermission(player, Permissions.ECONOMY_LOG)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You don't have permission to view the transaction log.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.LOG_NO_PERMISSION)); return; } EconomyManager econ = hf.getEconomyManager(); if (econ == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "Treasury is not available.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Economy.TREASURY_UNAVAILABLE)); return; } Faction faction = hf.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg( - "You are not in a faction.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); return; } @@ -395,8 +346,7 @@ public static void handleLog(@NotNull CommandContext ctx, @NotNull PlayerRef pla int totalPages = Math.max(1, (all.size() + perPage - 1) / perPage); page = Math.max(1, Math.min(page, totalPages)); - ctx.sendMessage(CommandUtil.prefix() - .insert(CommandUtil.msg("Transaction Log (page " + page + "/" + totalPages + ")", CommandUtil.COLOR_CYAN))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Economy.LOG_HEADER, MessageUtil.COLOR_CYAN, page, totalPages)); int start = (page - 1) * perPage; int end = Math.min(start + perPage, all.size()); @@ -422,7 +372,7 @@ public static void handleLog(@NotNull CommandContext ctx, @NotNull PlayerRef pla } if (all.isEmpty()) { - ctx.sendMessage(CommandUtil.msg(" No transactions found.", CommandUtil.COLOR_GRAY)); + ctx.sendMessage(CommandUtil.msg(" " + HFMessages.get(player, MessageKeys.Economy.LOG_EMPTY), CommandUtil.COLOR_GRAY)); } } } diff --git a/src/main/java/com/hyperfactions/command/info/HelpSubCommand.java b/src/main/java/com/hyperfactions/command/info/HelpSubCommand.java index f60e771b..7d0829aa 100644 --- a/src/main/java/com/hyperfactions/command/info/HelpSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/HelpSubCommand.java @@ -10,6 +10,8 @@ import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.CommandHelp; import com.hyperfactions.util.HelpFormatter; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -43,7 +45,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.HELP)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view help.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.HELP_NO_PERMISSION)); return; } diff --git a/src/main/java/com/hyperfactions/command/info/InfoSubCommand.java b/src/main/java/com/hyperfactions/command/info/InfoSubCommand.java index 061fecb3..d0dd7c07 100644 --- a/src/main/java/com/hyperfactions/command/info/InfoSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/InfoSubCommand.java @@ -11,6 +11,8 @@ import com.hyperfactions.data.RelationType; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -43,7 +45,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.INFO)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view faction info.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.NO_PERMISSION)); return; } @@ -55,13 +57,13 @@ protected void execute(@NotNull CommandContext ctx, String factionName = fctx.joinArgs(); faction = hyperFactions.getFactionManager().getFactionByName(factionName); if (faction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.FACTION_NOT_FOUND, factionName)); return; } } else { faction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (faction == null) { - ctx.sendMessage(MessageUtil.error("You are not in a faction. Use /f info ")); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.NOT_IN_FACTION_HINT)); return; } } @@ -79,39 +81,29 @@ protected void execute(@NotNull CommandContext ctx, PowerManager.FactionPowerStats stats = hyperFactions.getPowerManager().getFactionPowerStats(faction.id()); FactionMember leader = faction.getLeader(); - ctx.sendMessage(msg("=== " + faction.name() + " ===", COLOR_CYAN).bold(true)); - ctx.sendMessage(msg("Leader: ", COLOR_GRAY).insert(msg(leader != null ? leader.username() : "None", COLOR_YELLOW))); - ctx.sendMessage(msg("Members: ", COLOR_GRAY).insert(msg(faction.getMemberCount() + "/" + ConfigManager.get().getMaxMembers(), COLOR_WHITE))); - ctx.sendMessage(msg("Power: ", COLOR_GRAY).insert(msg(String.format("%.1f/%.1f", stats.currentPower(), stats.maxPower()), COLOR_WHITE))); - ctx.sendMessage(msg("Claims: ", COLOR_GRAY).insert(msg(stats.currentClaims() + "/" + stats.maxClaims(), COLOR_WHITE))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.FACTION_HEADER, faction.name()), COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.LEADER, leader != null ? leader.username() : HFMessages.get(player, MessageKeys.Common.NONE)), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.MEMBERS, faction.getMemberCount(), ConfigManager.get().getMaxMembers()), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.POWER, String.format("%.1f/%.1f", stats.currentPower(), stats.maxPower())), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.CLAIMS, stats.currentClaims() + "/" + stats.maxClaims()), COLOR_GRAY)); if (stats.isRaidable()) { - ctx.sendMessage(msg("RAIDABLE!", COLOR_RED).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.RAIDABLE), COLOR_RED).bold(true)); } // Relation info var relationManager = hyperFactions.getRelationManager(); int allyCount = relationManager.getAllies(faction.id()).size(); int enemyCount = relationManager.getEnemies(faction.id()).size(); - ctx.sendMessage(msg("Allies: ", COLOR_GRAY).insert(msg(String.valueOf(allyCount), COLOR_GREEN))); - ctx.sendMessage(msg("Enemies: ", COLOR_GRAY).insert(msg(String.valueOf(enemyCount), COLOR_RED))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.ALLIES, allyCount), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.ENEMIES, enemyCount), COLOR_GRAY)); // Show bidirectional relation if viewer is in a different faction Faction viewerFaction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (viewerFaction != null && !viewerFaction.id().equals(faction.id())) { RelationType theyThinkOfUs = relationManager.getRelation(faction.id(), viewerFaction.id()); RelationType weThinkOfThem = relationManager.getRelation(viewerFaction.id(), faction.id()); - ctx.sendMessage(msg("They consider you: ", COLOR_GRAY) - .insert(msg(theyThinkOfUs.name(), relationColor(theyThinkOfUs)))); - ctx.sendMessage(msg("You consider them: ", COLOR_GRAY) - .insert(msg(weThinkOfThem.name(), relationColor(weThinkOfThem)))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.THEY_CONSIDER, theyThinkOfUs.name()), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.YOU_CONSIDER, weThinkOfThem.name()), COLOR_GRAY)); } } - - private String relationColor(RelationType type) { - return switch (type) { - case ALLY, OWN -> COLOR_GREEN; - case ENEMY -> COLOR_RED; - case NEUTRAL -> COLOR_GRAY; - }; - } } diff --git a/src/main/java/com/hyperfactions/command/info/ListSubCommand.java b/src/main/java/com/hyperfactions/command/info/ListSubCommand.java index 7b1f25a7..b98a24fc 100644 --- a/src/main/java/com/hyperfactions/command/info/ListSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/ListSubCommand.java @@ -8,6 +8,9 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -40,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.LIST)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view faction list.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.LIST_NO_PERMISSION)); return; } @@ -59,16 +62,16 @@ protected void execute(@NotNull CommandContext ctx, // Text mode: output to chat Collection factions = hyperFactions.getFactionManager().getAllFactions(); if (factions.isEmpty()) { - ctx.sendMessage(prefix().insert(msg("There are no factions.", COLOR_GRAY))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Info.LIST_EMPTY, COLOR_GRAY)); return; } - ctx.sendMessage(msg("=== Factions (" + factions.size() + ") ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.LIST_HEADER, factions.size()), COLOR_CYAN).bold(true)); for (Faction faction : factions) { PowerManager.FactionPowerStats stats = hyperFactions.getPowerManager().getFactionPowerStats(faction.id()); - String raidable = stats.isRaidable() ? " [RAIDABLE]" : ""; - ctx.sendMessage(msg(faction.name(), COLOR_YELLOW) - .insert(msg(" - " + faction.getMemberCount() + " members, " + String.format("%.0f", stats.currentPower()) + " power" + raidable, COLOR_GRAY))); + String key = stats.isRaidable() ? MessageKeys.Info.LIST_ENTRY_RAIDABLE : MessageKeys.Info.LIST_ENTRY; + ctx.sendMessage(msg(HFMessages.get(player, key, + faction.name(), faction.getMemberCount(), String.format("%.0f", stats.currentPower())), COLOR_GRAY)); } } } diff --git a/src/main/java/com/hyperfactions/command/info/MapSubCommand.java b/src/main/java/com/hyperfactions/command/info/MapSubCommand.java index 3a0ce5e3..677bf25b 100644 --- a/src/main/java/com/hyperfactions/command/info/MapSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/MapSubCommand.java @@ -7,6 +7,9 @@ import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.math.vector.Vector3d; @@ -40,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.MAP)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view the map.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.MAP_NO_PERMISSION)); return; } @@ -68,7 +71,7 @@ protected void execute(@NotNull CommandContext ctx, UUID playerFactionId = hyperFactions.getFactionManager().getPlayerFactionId(player.getUuid()); - ctx.sendMessage(msg("=== Territory Map ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.MAP_HEADER), COLOR_CYAN).bold(true)); for (int dz = -3; dz <= 3; dz++) { StringBuilder row = new StringBuilder(); @@ -90,7 +93,7 @@ protected void execute(@NotNull CommandContext ctx, } ctx.sendMessage(Message.raw(row.toString())); } - ctx.sendMessage(msg("Legend: +You /Own /Ally /Enemy -Wild", COLOR_GRAY)); - ctx.sendMessage(msg("Use /f gui for interactive map", COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.MAP_LEGEND), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.MAP_GUI_HINT), COLOR_GRAY)); } } diff --git a/src/main/java/com/hyperfactions/command/info/MembersSubCommand.java b/src/main/java/com/hyperfactions/command/info/MembersSubCommand.java index 85a1a9b6..46de7449 100644 --- a/src/main/java/com/hyperfactions/command/info/MembersSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/MembersSubCommand.java @@ -9,6 +9,9 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -39,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.MEMBERS)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view faction members.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.MEMBERS_NO_PERMISSION)); return; } @@ -62,7 +65,7 @@ protected void execute(@NotNull CommandContext ctx, // Text mode: output member list to chat List members = faction.getMembersSorted(); - ctx.sendMessage(msg("=== " + faction.name() + " Members (" + members.size() + ") ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.MEMBERS_HEADER, faction.name(), members.size()), COLOR_CYAN).bold(true)); for (FactionMember member : members) { String roleColor = switch (member.role()) { @@ -71,7 +74,7 @@ protected void execute(@NotNull CommandContext ctx, default -> COLOR_GRAY; }; boolean isOnline = plugin.getTrackedPlayer(member.uuid()) != null; - String status = isOnline ? " [Online]" : ""; + String status = isOnline ? " " + HFMessages.get(player, MessageKeys.Info.MEMBER_ONLINE) : ""; ctx.sendMessage(msg(ConfigManager.get().getRoleDisplayName(member.role()) + " ", roleColor) .insert(msg(member.username(), COLOR_WHITE)) .insert(msg(status, isOnline ? COLOR_GREEN : COLOR_GRAY))); diff --git a/src/main/java/com/hyperfactions/command/info/PowerSubCommand.java b/src/main/java/com/hyperfactions/command/info/PowerSubCommand.java index 81d51213..bdd714dc 100644 --- a/src/main/java/com/hyperfactions/command/info/PowerSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/PowerSubCommand.java @@ -7,6 +7,9 @@ import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.data.PlayerPower; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.PlayerResolver; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -38,7 +41,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.POWER)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view power info.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Power.NO_PERMISSION)); return; } @@ -56,7 +59,7 @@ protected void execute(@NotNull CommandContext ctx, // Look up target player using centralized resolver var resolved = PlayerResolver.resolve(hyperFactions, fctx.getArg(0)); if (resolved == null) { - ctx.sendMessage(prefix().insert(msg("Player not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.PLAYER_NOT_FOUND)); return; } targetUuid = resolved.uuid(); @@ -65,8 +68,8 @@ protected void execute(@NotNull CommandContext ctx, // Power info is text-only (no GUI mode needed) PlayerPower power = hyperFactions.getPowerManager().getPlayerPower(targetUuid); - ctx.sendMessage(msg(targetName + "'s Power:", COLOR_CYAN)); - ctx.sendMessage(msg("Current: ", COLOR_GRAY).insert(msg(String.format("%.1f/%.1f (%d%%)", - power.power(), power.getEffectiveMaxPower(), power.getPowerPercent()), COLOR_WHITE))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Power.HEADER, targetName), COLOR_CYAN)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Power.CURRENT, + String.format("%.1f/%.1f (%d%%)", power.power(), power.getEffectiveMaxPower(), power.getPowerPercent())), COLOR_GRAY)); } } diff --git a/src/main/java/com/hyperfactions/command/info/WhoSubCommand.java b/src/main/java/com/hyperfactions/command/info/WhoSubCommand.java index 3c0a4e1c..f5ee9baf 100644 --- a/src/main/java/com/hyperfactions/command/info/WhoSubCommand.java +++ b/src/main/java/com/hyperfactions/command/info/WhoSubCommand.java @@ -10,6 +10,9 @@ import com.hyperfactions.data.FactionMember; import com.hyperfactions.data.PlayerPower; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.PlayerResolver; import com.hyperfactions.util.TimeUtil; import com.hypixel.hytale.component.Ref; @@ -42,7 +45,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.WHO)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view player info.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Info.WHO_NO_PERMISSION)); return; } @@ -60,7 +63,7 @@ protected void execute(@NotNull CommandContext ctx, // Look up target player using centralized resolver var resolved = PlayerResolver.resolve(hyperFactions, fctx.getArg(0)); if (resolved == null) { - ctx.sendMessage(prefix().insert(msg("Player not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.PLAYER_NOT_FOUND)); return; } targetUuid = resolved.uuid(); @@ -85,14 +88,14 @@ protected void execute(@NotNull CommandContext ctx, boolean isOnline = plugin.getTrackedPlayer(targetUuid) != null; // Display info - ctx.sendMessage(msg("=== " + targetName + " ===", COLOR_CYAN)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.PLAYER_HEADER, targetName), COLOR_CYAN)); if (faction != null && member != null) { - ctx.sendMessage(msg("Faction: ", COLOR_GRAY).insert(msg(faction.name(), COLOR_WHITE))); - ctx.sendMessage(msg("Role: ", COLOR_GRAY).insert(msg(ConfigManager.get().getRoleDisplayName(member.role()), COLOR_WHITE))); - ctx.sendMessage(msg("Joined: ", COLOR_GRAY).insert(msg(TimeUtil.formatRelative(member.joinedAt()), COLOR_WHITE))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_FACTION, faction.name()), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_ROLE, ConfigManager.get().getRoleDisplayName(member.role())), COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_JOINED, TimeUtil.formatRelative(member.joinedAt())), COLOR_GRAY)); } else { - ctx.sendMessage(msg("Faction: ", COLOR_GRAY).insert(msg("None", COLOR_WHITE))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_FACTION_NONE), COLOR_GRAY)); } // Power display — hardcore mode shows faction power, normal mode shows player power @@ -109,11 +112,12 @@ protected void execute(@NotNull CommandContext ctx, PlayerPower power = hyperFactions.getPowerManager().getPlayerPower(targetUuid); powerText = String.format("%.1f/%.1f", power.power(), power.getEffectiveMaxPower()); } - ctx.sendMessage(msg("Power: ", COLOR_GRAY).insert(msg(powerText, COLOR_WHITE))); - ctx.sendMessage(msg("Status: ", COLOR_GRAY).insert(msg(isOnline ? "Online" : "Offline", isOnline ? COLOR_GREEN : COLOR_RED))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_POWER, powerText), COLOR_GRAY)); + String statusText = isOnline ? HFMessages.get(player, MessageKeys.Common.ONLINE) : HFMessages.get(player, MessageKeys.Common.OFFLINE); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_STATUS, statusText), COLOR_GRAY)); if (!isOnline && member != null) { - ctx.sendMessage(msg("Last seen: ", COLOR_GRAY).insert(msg(TimeUtil.formatRelative(member.lastOnline()), COLOR_WHITE))); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Info.WHO_LAST_SEEN, TimeUtil.formatRelative(member.lastOnline())), COLOR_GRAY)); } } } diff --git a/src/main/java/com/hyperfactions/command/relation/AllySubCommand.java b/src/main/java/com/hyperfactions/command/relation/AllySubCommand.java index 97767485..fa48f858 100644 --- a/src/main/java/com/hyperfactions/command/relation/AllySubCommand.java +++ b/src/main/java/com/hyperfactions/command/relation/AllySubCommand.java @@ -8,6 +8,7 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.RelationManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -38,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.ALLY)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to manage alliances.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALLY_NO_PERMISSION)); return; } @@ -60,34 +61,28 @@ protected void execute(@NotNull CommandContext ctx, } if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f ally ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALLY_USAGE)); return; } String factionName = fctx.joinArgs(); Faction targetFaction = hyperFactions.getFactionManager().getFactionByName(factionName); if (targetFaction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } RelationManager.RelationResult result = hyperFactions.getRelationManager().requestAlly(player.getUuid(), targetFaction.id()); switch (result) { - case REQUEST_SENT -> { - ctx.sendMessage(prefix().insert(msg("Ally request sent to ", COLOR_GREEN)) - .insert(msg(targetFaction.name(), COLOR_CYAN)).insert(msg("!", COLOR_GREEN))); - } - case REQUEST_ACCEPTED -> { - ctx.sendMessage(prefix().insert(msg("You are now allies with ", COLOR_GREEN)) - .insert(msg(targetFaction.name(), COLOR_CYAN)).insert(msg("!", COLOR_GREEN))); - } - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to manage relations.", COLOR_RED))); - case CANNOT_RELATE_SELF -> ctx.sendMessage(prefix().insert(msg("You cannot ally with yourself.", COLOR_RED))); - case ALREADY_ALLY -> ctx.sendMessage(prefix().insert(msg("You are already allied with that faction.", COLOR_RED))); - case ALLY_LIMIT_REACHED -> ctx.sendMessage(prefix().insert(msg("You have reached the maximum number of allies.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to send ally request.", COLOR_RED))); + case REQUEST_SENT -> ctx.sendMessage(MessageUtil.success(player, MessageKeys.Relation.ALLY_SENT, targetFaction.name())); + case REQUEST_ACCEPTED -> ctx.sendMessage(MessageUtil.success(player, MessageKeys.Relation.ALLY_FORMED, targetFaction.name())); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_OFFICER)); + case CANNOT_RELATE_SELF -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.CANNOT_SELF)); + case ALREADY_ALLY -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALREADY_ALLY)); + case ALLY_LIMIT_REACHED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.MAX_ALLIES)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALLY_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/relation/EnemySubCommand.java b/src/main/java/com/hyperfactions/command/relation/EnemySubCommand.java index d5f4da6a..0a221725 100644 --- a/src/main/java/com/hyperfactions/command/relation/EnemySubCommand.java +++ b/src/main/java/com/hyperfactions/command/relation/EnemySubCommand.java @@ -8,6 +8,7 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.RelationManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -38,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.ENEMY)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to declare enemies.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ENEMY_NO_PERMISSION)); return; } @@ -60,27 +61,26 @@ protected void execute(@NotNull CommandContext ctx, } if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f enemy ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ENEMY_USAGE)); return; } String factionName = fctx.joinArgs(); Faction targetFaction = hyperFactions.getFactionManager().getFactionByName(factionName); if (targetFaction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } RelationManager.RelationResult result = hyperFactions.getRelationManager().setEnemy(player.getUuid(), targetFaction.id()); switch (result) { - case SUCCESS -> ctx.sendMessage(prefix().insert(msg(targetFaction.name(), COLOR_RED)) - .insert(msg(" is now your enemy!", COLOR_RED))); - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to manage relations.", COLOR_RED))); - case ALREADY_ENEMY -> ctx.sendMessage(prefix().insert(msg("You are already enemies with that faction.", COLOR_RED))); - case ENEMY_LIMIT_REACHED -> ctx.sendMessage(prefix().insert(msg("You have reached the maximum number of enemies.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to set enemy.", COLOR_RED))); + case SUCCESS -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ENEMY_DECLARED, targetFaction.name())); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_OFFICER)); + case ALREADY_ENEMY -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALREADY_ENEMY)); + case ENEMY_LIMIT_REACHED -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.MAX_ENEMIES)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ENEMY_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/relation/NeutralSubCommand.java b/src/main/java/com/hyperfactions/command/relation/NeutralSubCommand.java index 6a37e6af..ddadcbb9 100644 --- a/src/main/java/com/hyperfactions/command/relation/NeutralSubCommand.java +++ b/src/main/java/com/hyperfactions/command/relation/NeutralSubCommand.java @@ -8,6 +8,7 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.RelationManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -38,7 +39,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.NEUTRAL)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to set neutral relations.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.NEUTRAL_NO_PERMISSION)); return; } @@ -60,25 +61,25 @@ protected void execute(@NotNull CommandContext ctx, } if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f neutral ", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.NEUTRAL_USAGE)); return; } String factionName = fctx.joinArgs(); Faction targetFaction = hyperFactions.getFactionManager().getFactionByName(factionName); if (targetFaction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } RelationManager.RelationResult result = hyperFactions.getRelationManager().setNeutral(player.getUuid(), targetFaction.id()); switch (result) { - case SUCCESS -> ctx.sendMessage(prefix().insert(msg("Your faction is now neutral with " + targetFaction.name() + ".", COLOR_GRAY))); - case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error("You are not in a faction.")); - case NOT_OFFICER -> ctx.sendMessage(prefix().insert(msg("You must be an officer to manage relations.", COLOR_RED))); - case ALREADY_NEUTRAL -> ctx.sendMessage(prefix().insert(msg("You are already neutral with that faction.", COLOR_RED))); - default -> ctx.sendMessage(prefix().insert(msg("Failed to set neutral.", COLOR_RED))); + case SUCCESS -> ctx.sendMessage(MessageUtil.info(player, MessageKeys.Relation.NEUTRAL_SET, COLOR_GRAY, targetFaction.name())); + case NOT_IN_FACTION -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_OFFICER)); + case ALREADY_NEUTRAL -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.ALREADY_NEUTRAL)); + default -> ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.NEUTRAL_FAILED)); } } } diff --git a/src/main/java/com/hyperfactions/command/relation/RelationsSubCommand.java b/src/main/java/com/hyperfactions/command/relation/RelationsSubCommand.java index 95d94d74..878e08b6 100644 --- a/src/main/java/com/hyperfactions/command/relation/RelationsSubCommand.java +++ b/src/main/java/com/hyperfactions/command/relation/RelationsSubCommand.java @@ -7,6 +7,9 @@ import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.data.Faction; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -38,7 +41,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.RELATIONS)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to view relations.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Relation.VIEW_NO_PERMISSION)); return; } @@ -63,28 +66,28 @@ protected void execute(@NotNull CommandContext ctx, List allies = hyperFactions.getRelationManager().getAllies(faction.id()); List enemies = hyperFactions.getRelationManager().getEnemies(faction.id()); - ctx.sendMessage(msg("=== Faction Relations ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Relation.HEADER), COLOR_CYAN).bold(true)); - ctx.sendMessage(msg("Allies (" + allies.size() + "):", COLOR_GREEN)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Relation.ALLIES_COUNT, allies.size()), COLOR_GREEN)); if (allies.isEmpty()) { - ctx.sendMessage(msg(" (none)", COLOR_GRAY)); + ctx.sendMessage(msg(" (" + HFMessages.get(player, MessageKeys.Common.NONE) + ")", COLOR_GRAY)); } else { for (UUID allyId : allies) { Faction ally = hyperFactions.getFactionManager().getFaction(allyId); if (ally != null) { - ctx.sendMessage(msg(" - ", COLOR_GRAY).insert(msg(ally.name(), COLOR_GREEN))); + ctx.sendMessage(msg(" ", COLOR_GRAY).insert(msg(HFMessages.get(player, MessageKeys.Relation.LIST_ENTRY, ally.name()), COLOR_GREEN))); } } } - ctx.sendMessage(msg("Enemies (" + enemies.size() + "):", COLOR_RED)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Relation.ENEMIES_COUNT, enemies.size()), COLOR_RED)); if (enemies.isEmpty()) { - ctx.sendMessage(msg(" (none)", COLOR_GRAY)); + ctx.sendMessage(msg(" (" + HFMessages.get(player, MessageKeys.Common.NONE) + ")", COLOR_GRAY)); } else { for (UUID enemyId : enemies) { Faction enemy = hyperFactions.getFactionManager().getFaction(enemyId); if (enemy != null) { - ctx.sendMessage(msg(" - ", COLOR_GRAY).insert(msg(enemy.name(), COLOR_RED))); + ctx.sendMessage(msg(" ", COLOR_GRAY).insert(msg(HFMessages.get(player, MessageKeys.Relation.LIST_ENTRY, enemy.name()), COLOR_RED))); } } } diff --git a/src/main/java/com/hyperfactions/command/social/ChatSubCommand.java b/src/main/java/com/hyperfactions/command/social/ChatSubCommand.java index cf0dea1d..ea79b2c9 100644 --- a/src/main/java/com/hyperfactions/command/social/ChatSubCommand.java +++ b/src/main/java/com/hyperfactions/command/social/ChatSubCommand.java @@ -6,6 +6,8 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.manager.ChatManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -68,7 +70,7 @@ protected void execute(@NotNull CommandContext ctx, yield new ChatManager.ToggleResult(ChatManager.ChatResult.SUCCESS, ChatManager.ChatChannel.NORMAL); } default -> { - ctx.sendMessage(prefix().insert(msg("Usage: /f c [f|a|off]", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Chat.USAGE)); yield null; } }; @@ -79,7 +81,7 @@ protected void execute(@NotNull CommandContext ctx, } if (!result.isSuccess()) { - ctx.sendMessage(prefix().insert(msg("You don't have permission for that chat mode.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Chat.NO_PERMISSION)); return; } @@ -87,8 +89,6 @@ protected void execute(@NotNull CommandContext ctx, String display = ChatManager.getChannelDisplay(channel); String color = ChatManager.getChannelColor(channel); - ctx.sendMessage(prefix() - .insert(msg("Chat mode set to ", COLOR_GRAY)) - .insert(msg(display, color))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Chat.MODE_SET, color, display)); } } diff --git a/src/main/java/com/hyperfactions/command/social/InvitesSubCommand.java b/src/main/java/com/hyperfactions/command/social/InvitesSubCommand.java index 8c5cc52a..63bd6f43 100644 --- a/src/main/java/com/hyperfactions/command/social/InvitesSubCommand.java +++ b/src/main/java/com/hyperfactions/command/social/InvitesSubCommand.java @@ -9,6 +9,9 @@ import com.hyperfactions.data.JoinRequest; import com.hyperfactions.data.PendingInvite; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -47,7 +50,7 @@ protected void execute(@NotNull CommandContext ctx, if (faction != null) { FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isOfficerOrHigher()) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to manage invites.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Invites.NOT_OFFICER)); return; } @@ -64,32 +67,32 @@ protected void execute(@NotNull CommandContext ctx, List invites = hyperFactions.getInviteManager().getFactionInvitesList(faction.id()); List requests = hyperFactions.getJoinRequestManager().getFactionRequests(faction.id()); - ctx.sendMessage(msg("=== Faction Invites ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.HEADER), COLOR_CYAN).bold(true)); if (invites.isEmpty() && requests.isEmpty()) { - ctx.sendMessage(msg("No pending invites or requests.", COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.NO_PENDING), COLOR_GRAY)); return; } if (!invites.isEmpty()) { - ctx.sendMessage(msg("Outgoing Invites:", COLOR_YELLOW)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.OUTGOING), COLOR_YELLOW)); for (PendingInvite invite : invites) { String inviterName = plugin.getTrackedPlayer(invite.invitedBy()) != null ? plugin.getTrackedPlayer(invite.invitedBy()).getUsername() - : "Unknown"; - ctx.sendMessage(msg(" - ", COLOR_GRAY) - .insert(msg(invite.playerUuid().toString().substring(0, 8), COLOR_WHITE)) - .insert(msg(" (invited by " + inviterName + ")", COLOR_GRAY))); + : HFMessages.get(player, MessageKeys.Common.UNKNOWN); + ctx.sendMessage(msg(" ", COLOR_GRAY) + .insert(msg(HFMessages.get(player, MessageKeys.Invites.OUTGOING_ENTRY, + invite.playerUuid().toString().substring(0, 8), inviterName), COLOR_WHITE))); } } if (!requests.isEmpty()) { - ctx.sendMessage(msg("Join Requests:", COLOR_GREEN)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.REQUESTS), COLOR_GREEN)); for (JoinRequest request : requests) { String message = request.message() != null ? " \"" + request.message() + "\"" : ""; - ctx.sendMessage(msg(" - ", COLOR_GRAY) - .insert(msg(request.playerName(), COLOR_WHITE)) - .insert(msg(message, COLOR_GRAY))); + ctx.sendMessage(msg(" ", COLOR_GRAY) + .insert(msg(HFMessages.get(player, MessageKeys.Invites.REQUEST_ENTRY, + request.playerName(), message), COLOR_WHITE))); } } } else { @@ -106,19 +109,19 @@ protected void execute(@NotNull CommandContext ctx, // Text mode: show incoming invites List invites = hyperFactions.getInviteManager().getPlayerInvites(player.getUuid()); - ctx.sendMessage(msg("=== Your Invites ===", COLOR_CYAN).bold(true)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.YOUR_INVITES_HEADER), COLOR_CYAN).bold(true)); if (invites.isEmpty()) { - ctx.sendMessage(msg("You have no pending invites.", COLOR_GRAY)); + ctx.sendMessage(msg(HFMessages.get(player, MessageKeys.Invites.NO_INVITES), COLOR_GRAY)); return; } for (PendingInvite invite : invites) { Faction invitingFaction = hyperFactions.getFactionManager().getFaction(invite.factionId()); if (invitingFaction != null) { - ctx.sendMessage(msg(" - ", COLOR_GRAY) - .insert(msg(invitingFaction.name(), COLOR_YELLOW)) - .insert(msg(" - Use /f accept " + invitingFaction.name(), COLOR_GRAY))); + ctx.sendMessage(msg(" ", COLOR_GRAY) + .insert(msg(HFMessages.get(player, MessageKeys.Invites.INVITE_ENTRY, + invitingFaction.name(), invitingFaction.name()), COLOR_YELLOW))); } } } diff --git a/src/main/java/com/hyperfactions/command/social/RequestSubCommand.java b/src/main/java/com/hyperfactions/command/social/RequestSubCommand.java index 23ac510f..3af34cd4 100644 --- a/src/main/java/com/hyperfactions/command/social/RequestSubCommand.java +++ b/src/main/java/com/hyperfactions/command/social/RequestSubCommand.java @@ -10,6 +10,8 @@ import com.hyperfactions.manager.InviteManager; import com.hyperfactions.manager.JoinRequestManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -41,7 +43,7 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(player, Permissions.JOIN)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission to request faction membership.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Request.NO_PERMISSION)); return; } @@ -49,12 +51,10 @@ protected void execute(@NotNull CommandContext ctx, if (hyperFactions.getFactionManager().isInFaction(player.getUuid())) { Faction existingFaction = hyperFactions.getFactionManager().getPlayerFaction(player.getUuid()); if (existingFaction != null) { - ctx.sendMessage(prefix().insert(msg("You are already in ", COLOR_RED)) - .insert(msg(existingFaction.name(), COLOR_CYAN)) - .insert(msg(".", COLOR_RED))); - ctx.sendMessage(prefix().insert(msg("Use /f leave first if you want to join another faction.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Request.ALREADY_IN_NAMED, existingFaction.name())); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Request.USE_LEAVE_HINT, COLOR_YELLOW)); } else { - ctx.sendMessage(prefix().insert(msg("You are already in a faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.ALREADY_IN_FACTION)); } return; } @@ -73,7 +73,7 @@ protected void execute(@NotNull CommandContext ctx, // Text mode requires faction name if (!fctx.hasArgs()) { - ctx.sendMessage(prefix().insert(msg("Usage: /f request [message]", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Request.USAGE)); return; } @@ -81,31 +81,27 @@ protected void execute(@NotNull CommandContext ctx, String factionName = fctx.getArg(0); Faction faction = hyperFactions.getFactionManager().getFactionByName(factionName); if (faction == null) { - ctx.sendMessage(prefix().insert(msg("Faction '" + factionName + "' not found.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.FACTION_NOT_FOUND)); return; } // Check if faction is open (if open, just join directly) if (faction.open()) { - ctx.sendMessage(prefix().insert(msg("That faction is open! Use ", COLOR_YELLOW)) - .insert(msg("/f accept " + faction.name(), COLOR_GREEN)) - .insert(msg(" to join directly.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Request.FACTION_OPEN, COLOR_YELLOW, faction.name())); return; } // Check if player already has a pending request JoinRequestManager requestManager = hyperFactions.getJoinRequestManager(); if (requestManager.hasRequest(faction.id(), player.getUuid())) { - ctx.sendMessage(prefix().insert(msg("You already have a pending request to that faction.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Request.ALREADY_REQUESTED)); return; } // Check if player has an invite to this faction (they should accept it instead) InviteManager inviteManager = hyperFactions.getInviteManager(); if (inviteManager.hasInvite(faction.id(), player.getUuid())) { - ctx.sendMessage(prefix().insert(msg("You have been invited to that faction! Use ", COLOR_YELLOW)) - .insert(msg("/f accept " + faction.name(), COLOR_GREEN)) - .insert(msg(" to join.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Request.HAS_INVITE, COLOR_YELLOW, faction.name())); return; } @@ -122,12 +118,11 @@ protected void execute(@NotNull CommandContext ctx, // Create the join request requestManager.createRequest(faction.id(), player.getUuid(), player.getUsername(), message); - ctx.sendMessage(prefix().insert(msg("Sent join request to ", COLOR_GREEN)) - .insert(msg(faction.name(), COLOR_CYAN)).insert(msg("!", COLOR_GREEN))); + ctx.sendMessage(MessageUtil.success(player, MessageKeys.Request.SENT, faction.name())); if (message != null) { - ctx.sendMessage(prefix().insert(msg("Your message: \"" + message + "\"", COLOR_GRAY))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Request.YOUR_MESSAGE, COLOR_GRAY, message)); } - ctx.sendMessage(prefix().insert(msg("An officer will review your request.", COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Request.OFFICER_REVIEW, COLOR_YELLOW)); // Notify online officers for (UUID memberUuid : faction.members().keySet()) { @@ -135,11 +130,8 @@ protected void execute(@NotNull CommandContext ctx, if (member != null && member.isOfficerOrHigher()) { PlayerRef officer = plugin.getTrackedPlayer(memberUuid); if (officer != null) { - officer.sendMessage(prefix().insert(msg(player.getUsername(), COLOR_YELLOW)) - .insert(msg(" has requested to join your faction!", COLOR_GREEN))); - officer.sendMessage(prefix().insert(msg("Use ", COLOR_YELLOW)) - .insert(msg("/f gui", COLOR_GREEN)) - .insert(msg(" > Invites to review.", COLOR_YELLOW))); + officer.sendMessage(MessageUtil.success(officer, MessageKeys.Request.OFFICER_NOTIFY, player.getUsername())); + officer.sendMessage(MessageUtil.info(officer, MessageKeys.Request.OFFICER_REVIEW_HINT, COLOR_YELLOW)); } } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index d6f35cf6..c2d2c831 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -313,6 +313,9 @@ public static final class Power { public static final String FACTION = "hyperfactions.cmd.power.faction"; public static final String DEATH_LOSS = "hyperfactions.cmd.power.death_loss"; public static final String REGEN = "hyperfactions.cmd.power.regen"; + public static final String NO_PERMISSION = "hyperfactions.cmd.power.no_permission"; + public static final String HEADER = "hyperfactions.cmd.power.header"; + public static final String CURRENT = "hyperfactions.cmd.power.current"; private Power() {} } @@ -328,6 +331,28 @@ public static final class Relation { public static final String ALREADY_RELATION = "hyperfactions.cmd.relation.already_relation"; public static final String CANNOT_SELF = "hyperfactions.cmd.relation.cannot_self"; public static final String MAX_ALLIES = "hyperfactions.cmd.relation.max_allies"; + // Ally + public static final String ALLY_NO_PERMISSION = "hyperfactions.cmd.relation.ally_no_permission"; + public static final String ALLY_USAGE = "hyperfactions.cmd.relation.ally_usage"; + public static final String ALREADY_ALLY = "hyperfactions.cmd.relation.already_ally"; + public static final String ALLY_FAILED = "hyperfactions.cmd.relation.ally_failed"; + // Enemy + public static final String ENEMY_NO_PERMISSION = "hyperfactions.cmd.relation.enemy_no_permission"; + public static final String ENEMY_USAGE = "hyperfactions.cmd.relation.enemy_usage"; + public static final String ALREADY_ENEMY = "hyperfactions.cmd.relation.already_enemy"; + public static final String MAX_ENEMIES = "hyperfactions.cmd.relation.max_enemies"; + public static final String ENEMY_FAILED = "hyperfactions.cmd.relation.enemy_failed"; + // Neutral + public static final String NEUTRAL_NO_PERMISSION = "hyperfactions.cmd.relation.neutral_no_permission"; + public static final String NEUTRAL_USAGE = "hyperfactions.cmd.relation.neutral_usage"; + public static final String ALREADY_NEUTRAL = "hyperfactions.cmd.relation.already_neutral"; + public static final String NEUTRAL_FAILED = "hyperfactions.cmd.relation.neutral_failed"; + // Relations list + public static final String VIEW_NO_PERMISSION = "hyperfactions.cmd.relation.view_no_permission"; + public static final String HEADER = "hyperfactions.cmd.relation.header"; + public static final String ALLIES_COUNT = "hyperfactions.cmd.relation.allies_count"; + public static final String ENEMIES_COUNT = "hyperfactions.cmd.relation.enemies_count"; + public static final String LIST_ENTRY = "hyperfactions.cmd.relation.list_entry"; private Relation() {} } @@ -337,10 +362,47 @@ public static final class Chat { public static final String MODE_FACTION = "hyperfactions.cmd.chat.mode_faction"; public static final String MODE_ALLY = "hyperfactions.cmd.chat.mode_ally"; public static final String MODE_PUBLIC = "hyperfactions.cmd.chat.mode_public"; + public static final String USAGE = "hyperfactions.cmd.chat.usage"; + public static final String NO_PERMISSION = "hyperfactions.cmd.chat.no_permission"; + public static final String MODE_SET = "hyperfactions.cmd.chat.mode_set"; private Chat() {} } + /** /f invites command messages. */ + public static final class Invites { + public static final String NOT_OFFICER = "hyperfactions.cmd.invites.not_officer"; + public static final String HEADER = "hyperfactions.cmd.invites.header"; + public static final String NO_PENDING = "hyperfactions.cmd.invites.no_pending"; + public static final String OUTGOING = "hyperfactions.cmd.invites.outgoing"; + public static final String OUTGOING_ENTRY = "hyperfactions.cmd.invites.outgoing_entry"; + public static final String REQUESTS = "hyperfactions.cmd.invites.requests"; + public static final String REQUEST_ENTRY = "hyperfactions.cmd.invites.request_entry"; + public static final String YOUR_INVITES_HEADER = "hyperfactions.cmd.invites.your_invites_header"; + public static final String NO_INVITES = "hyperfactions.cmd.invites.no_invites"; + public static final String INVITE_ENTRY = "hyperfactions.cmd.invites.invite_entry"; + + private Invites() {} + } + + /** /f request command messages. */ + public static final class Request { + public static final String NO_PERMISSION = "hyperfactions.cmd.request.no_permission"; + public static final String ALREADY_IN_NAMED = "hyperfactions.cmd.request.already_in_named"; + public static final String USE_LEAVE_HINT = "hyperfactions.cmd.request.use_leave_hint"; + public static final String USAGE = "hyperfactions.cmd.request.usage"; + public static final String FACTION_OPEN = "hyperfactions.cmd.request.faction_open"; + public static final String ALREADY_REQUESTED = "hyperfactions.cmd.request.already_requested"; + public static final String HAS_INVITE = "hyperfactions.cmd.request.has_invite"; + public static final String SENT = "hyperfactions.cmd.request.sent"; + public static final String YOUR_MESSAGE = "hyperfactions.cmd.request.your_message"; + public static final String OFFICER_REVIEW = "hyperfactions.cmd.request.officer_review"; + public static final String OFFICER_NOTIFY = "hyperfactions.cmd.request.officer_notify"; + public static final String OFFICER_REVIEW_HINT = "hyperfactions.cmd.request.officer_review_hint"; + + private Request() {} + } + /** /f rename, /f desc, /f color, /f open, /f close, /f settings command messages. */ public static final class Settings { public static final String RENAMED = "hyperfactions.cmd.settings.renamed"; @@ -361,14 +423,92 @@ public static final class Economy { public static final String INSUFFICIENT = "hyperfactions.cmd.economy.insufficient"; public static final String INVALID_AMOUNT = "hyperfactions.cmd.economy.invalid_amount"; public static final String ECONOMY_DISABLED = "hyperfactions.cmd.economy.economy_disabled"; + // Balance + public static final String BALANCE_NO_PERMISSION = "hyperfactions.cmd.economy.balance_no_permission"; + public static final String TREASURY_UNAVAILABLE = "hyperfactions.cmd.economy.treasury_unavailable"; + public static final String BALANCE_DISPLAY = "hyperfactions.cmd.economy.balance_display"; + // Deposit + public static final String DEPOSIT_NO_PERMISSION = "hyperfactions.cmd.economy.deposit_no_permission"; + public static final String DEPOSIT_FACTION_DENIED = "hyperfactions.cmd.economy.deposit_faction_denied"; + public static final String DEPOSIT_USAGE = "hyperfactions.cmd.economy.deposit_usage"; + public static final String AMOUNT_POSITIVE = "hyperfactions.cmd.economy.amount_positive"; + public static final String WALLET_INSUFFICIENT = "hyperfactions.cmd.economy.wallet_insufficient"; + public static final String WALLET_WITHDRAW_FAILED = "hyperfactions.cmd.economy.wallet_withdraw_failed"; + public static final String DEPOSIT_FAILED = "hyperfactions.cmd.economy.deposit_failed"; + // Withdraw + public static final String WITHDRAW_NO_PERMISSION = "hyperfactions.cmd.economy.withdraw_no_permission"; + public static final String WITHDRAW_FACTION_DENIED = "hyperfactions.cmd.economy.withdraw_faction_denied"; + public static final String WITHDRAW_USAGE = "hyperfactions.cmd.economy.withdraw_usage"; + public static final String WITHDRAW_LIMIT_DENIED = "hyperfactions.cmd.economy.withdraw_limit_denied"; + public static final String WALLET_DEPOSIT_FAILED = "hyperfactions.cmd.economy.wallet_deposit_failed"; + public static final String WITHDRAW_LIMIT_EXCEEDED = "hyperfactions.cmd.economy.withdraw_limit_exceeded"; + public static final String WITHDRAW_FAILED = "hyperfactions.cmd.economy.withdraw_failed"; + // Transfer + public static final String TRANSFER_NO_PERMISSION = "hyperfactions.cmd.economy.transfer_no_permission"; + public static final String TRANSFER_FACTION_DENIED = "hyperfactions.cmd.economy.transfer_faction_denied"; + public static final String TRANSFER_USAGE = "hyperfactions.cmd.economy.transfer_usage"; + public static final String TRANSFER_SELF = "hyperfactions.cmd.economy.transfer_self"; + public static final String TRANSFER_LIMIT_DENIED = "hyperfactions.cmd.economy.transfer_limit_denied"; + public static final String TRANSFER_LIMIT_EXCEEDED = "hyperfactions.cmd.economy.transfer_limit_exceeded"; + public static final String TRANSFER_FAILED = "hyperfactions.cmd.economy.transfer_failed"; + // Log + public static final String LOG_NO_PERMISSION = "hyperfactions.cmd.economy.log_no_permission"; + public static final String LOG_HEADER = "hyperfactions.cmd.economy.log_header"; + public static final String LOG_EMPTY = "hyperfactions.cmd.economy.log_empty"; + // Money help + public static final String MONEY_HELP_HEADER = "hyperfactions.cmd.economy.money_help_header"; + public static final String MONEY_HELP_BALANCE = "hyperfactions.cmd.economy.money_help_balance"; + public static final String MONEY_HELP_DEPOSIT = "hyperfactions.cmd.economy.money_help_deposit"; + public static final String MONEY_HELP_WITHDRAW = "hyperfactions.cmd.economy.money_help_withdraw"; + public static final String MONEY_HELP_TRANSFER = "hyperfactions.cmd.economy.money_help_transfer"; + public static final String MONEY_HELP_LOG = "hyperfactions.cmd.economy.money_help_log"; private Economy() {} } - /** /f info, /f who, /f list, /f members command messages. */ + /** /f info, /f who, /f list, /f members, /f map, /f help command messages. */ public static final class Info { public static final String FACTION_HEADER = "hyperfactions.cmd.info.faction_header"; public static final String PLAYER_HEADER = "hyperfactions.cmd.info.player_header"; + // Info command + public static final String NO_PERMISSION = "hyperfactions.cmd.info.no_permission"; + public static final String FACTION_NOT_FOUND = "hyperfactions.cmd.info.faction_not_found"; + public static final String NOT_IN_FACTION_HINT = "hyperfactions.cmd.info.not_in_faction_hint"; + public static final String LEADER = "hyperfactions.cmd.info.leader"; + public static final String MEMBERS = "hyperfactions.cmd.info.members"; + public static final String POWER = "hyperfactions.cmd.info.power"; + public static final String CLAIMS = "hyperfactions.cmd.info.claims"; + public static final String RAIDABLE = "hyperfactions.cmd.info.raidable"; + public static final String ALLIES = "hyperfactions.cmd.info.allies"; + public static final String ENEMIES = "hyperfactions.cmd.info.enemies"; + public static final String THEY_CONSIDER = "hyperfactions.cmd.info.they_consider"; + public static final String YOU_CONSIDER = "hyperfactions.cmd.info.you_consider"; + // Members command + public static final String MEMBERS_NO_PERMISSION = "hyperfactions.cmd.info.members_no_permission"; + public static final String MEMBERS_HEADER = "hyperfactions.cmd.info.members_header"; + public static final String MEMBER_ONLINE = "hyperfactions.cmd.info.member_online"; + // List command + public static final String LIST_NO_PERMISSION = "hyperfactions.cmd.info.list_no_permission"; + public static final String LIST_EMPTY = "hyperfactions.cmd.info.list_empty"; + public static final String LIST_HEADER = "hyperfactions.cmd.info.list_header"; + public static final String LIST_ENTRY = "hyperfactions.cmd.info.list_entry"; + public static final String LIST_ENTRY_RAIDABLE = "hyperfactions.cmd.info.list_entry_raidable"; + // Help command + public static final String HELP_NO_PERMISSION = "hyperfactions.cmd.info.help_no_permission"; + // Who command + public static final String WHO_NO_PERMISSION = "hyperfactions.cmd.info.who_no_permission"; + public static final String WHO_FACTION = "hyperfactions.cmd.info.who_faction"; + public static final String WHO_ROLE = "hyperfactions.cmd.info.who_role"; + public static final String WHO_JOINED = "hyperfactions.cmd.info.who_joined"; + public static final String WHO_FACTION_NONE = "hyperfactions.cmd.info.who_faction_none"; + public static final String WHO_POWER = "hyperfactions.cmd.info.who_power"; + public static final String WHO_STATUS = "hyperfactions.cmd.info.who_status"; + public static final String WHO_LAST_SEEN = "hyperfactions.cmd.info.who_last_seen"; + // Map command + public static final String MAP_NO_PERMISSION = "hyperfactions.cmd.info.map_no_permission"; + public static final String MAP_HEADER = "hyperfactions.cmd.info.map_header"; + public static final String MAP_LEGEND = "hyperfactions.cmd.info.map_legend"; + public static final String MAP_GUI_HINT = "hyperfactions.cmd.info.map_gui_hint"; private Info() {} } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 8940afc0..6fae49b7 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -216,3 +216,148 @@ cmd.delhome.deleted = Faction home deleted! cmd.delhome.broadcast = {0} deleted the faction home. cmd.delhome.not_officer = You must be an officer to delete the home. cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history From fb6dd72518f0193bd835d69c4018be95f9235c78 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 09:46:04 -0700 Subject: [PATCH 06/76] feat: migrate UI commands and ProtectionChecker to i18n keys (Phase 1e) Migrate GuiSubCommand, SettingsSubCommand, FactionCommand to use MessageKeys constants. Convert ProtectionChecker's 40 hardcoded strings (action phrases, denial reasons, PvP, entity damage, combat tag) to HFMessages.get() with server-default language fallback. --- .../hyperfactions/command/FactionCommand.java | 6 +- .../command/ui/GuiSubCommand.java | 6 +- .../command/ui/SettingsSubCommand.java | 4 +- .../protection/ProtectionChecker.java | 88 ++++++++++--------- .../com/hyperfactions/util/MessageKeys.java | 53 +++++++++-- .../Server/Languages/en-US/hyperfactions.lang | 47 ++++++++++ 6 files changed, 149 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/FactionCommand.java b/src/main/java/com/hyperfactions/command/FactionCommand.java index bfbc94da..f9a03fca 100644 --- a/src/main/java/com/hyperfactions/command/FactionCommand.java +++ b/src/main/java/com/hyperfactions/command/FactionCommand.java @@ -15,6 +15,8 @@ import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.integration.PermissionManager; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -123,7 +125,7 @@ protected void execute(@NotNull CommandContext ctx, // No subcommand provided - open faction main dashboard GUI if (!hasPermission(player, Permissions.USE)) { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg("You don't have permission to use factions.", CommandUtil.COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.NO_PERMISSION)); return; } @@ -131,7 +133,7 @@ protected void execute(@NotNull CommandContext ctx, if (playerEntity != null) { hyperFactions.getGuiManager().openFactionMain(playerEntity, ref, store, player); } else { - ctx.sendMessage(CommandUtil.prefix().insert(CommandUtil.msg("Could not access GUI. Use /f help for commands.", CommandUtil.COLOR_YELLOW))); + ctx.sendMessage(MessageUtil.info(player, MessageKeys.Common.GUI_FALLBACK, CommandUtil.COLOR_YELLOW)); } } diff --git a/src/main/java/com/hyperfactions/command/ui/GuiSubCommand.java b/src/main/java/com/hyperfactions/command/ui/GuiSubCommand.java index 081a5b3d..bc6a200f 100644 --- a/src/main/java/com/hyperfactions/command/ui/GuiSubCommand.java +++ b/src/main/java/com/hyperfactions/command/ui/GuiSubCommand.java @@ -4,6 +4,8 @@ import com.hyperfactions.Permissions; import com.hyperfactions.command.FactionSubCommand; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -35,13 +37,13 @@ protected void execute(@NotNull CommandContext ctx, @NotNull World currentWorld) { if (!hasPermission(playerRef, Permissions.USE)) { - ctx.sendMessage(prefix().insert(msg("You don't have permission.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.NO_PERMISSION)); return; } Player player = store.getComponent(ref, Player.getComponentType()); if (player == null) { - ctx.sendMessage(prefix().insert(msg("Could not find player entity.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.ERROR_GENERIC)); return; } diff --git a/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java b/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java index 250caaba..95033a5c 100644 --- a/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java +++ b/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java @@ -5,6 +5,8 @@ import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -40,7 +42,7 @@ protected void execute(@NotNull CommandContext ctx, FactionMember member = faction.getMember(player.getUuid()); if (member == null || !member.isOfficerOrHigher()) { - ctx.sendMessage(prefix().insert(msg("You must be an officer to access settings.", COLOR_RED))); + ctx.sendMessage(MessageUtil.error(player, MessageKeys.Common.MUST_BE_OFFICER)); return; } diff --git a/src/main/java/com/hyperfactions/protection/ProtectionChecker.java b/src/main/java/com/hyperfactions/protection/ProtectionChecker.java index 51a7ae0a..f24fc510 100644 --- a/src/main/java/com/hyperfactions/protection/ProtectionChecker.java +++ b/src/main/java/com/hyperfactions/protection/ProtectionChecker.java @@ -15,7 +15,9 @@ import com.hyperfactions.manager.*; import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.ErrorHandler; +import com.hyperfactions.util.HFMessages; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.util.UUID; import java.util.function.Supplier; import org.jetbrains.annotations.NotNull; @@ -704,12 +706,12 @@ public String getDenialMessage(@NotNull ProtectionResult result) { public String getDenialMessage(@NotNull ProtectionResult result, @Nullable InteractionType type) { String action = getActionPhrase(type); return switch (result) { - case DENIED_SAFEZONE -> action + " in a SafeZone."; - case DENIED_WARZONE -> action + " in a WarZone."; - case DENIED_ENEMY_CLAIM -> action + " in enemy territory."; - case DENIED_NEUTRAL_CLAIM -> action + " in claimed territory."; - case DENIED_NO_PERMISSION -> action + " here."; - default -> action + " here."; + case DENIED_SAFEZONE -> HFMessages.get(MessageKeys.Protection.DENIED_SAFEZONE, action); + case DENIED_WARZONE -> HFMessages.get(MessageKeys.Protection.DENIED_WARZONE, action); + case DENIED_ENEMY_CLAIM -> HFMessages.get(MessageKeys.Protection.DENIED_ENEMY_CLAIM, action); + case DENIED_NEUTRAL_CLAIM -> HFMessages.get(MessageKeys.Protection.DENIED_CLAIMED, action); + case DENIED_NO_PERMISSION -> HFMessages.get(MessageKeys.Protection.DENIED_HERE, action); + default -> HFMessages.get(MessageKeys.Protection.DENIED_HERE, action); }; } @@ -722,26 +724,26 @@ public String getDenialMessage(@NotNull ProtectionResult result, @Nullable Inter @NotNull private String getActionPhrase(@Nullable InteractionType type) { if (type == null) { - return "You can't do that"; + return HFMessages.get(MessageKeys.Protection.ACTION_GENERIC); } return switch (type) { - case BUILD -> "You can't build or break blocks"; - case INTERACT, USE -> "You can't interact with that"; - case DOOR -> "You can't use doors"; - case CONTAINER -> "You can't open containers"; - case BENCH -> "You can't use crafting stations"; - case PROCESSING -> "You can't use processing stations"; - case SEAT -> "You can't use seats"; - case LIGHT -> "You can't toggle lights"; - case TELEPORTER, PORTAL -> "You can't use teleporters"; - case CRATE_PICKUP, CRATE_PLACE -> "You can't use crates"; - case NPC_TAME -> "You can't tame creatures"; - case NPC_INTERACT -> "You can't interact with NPCs"; - case MOUNT -> "You can't mount creatures"; - case PVE_DAMAGE -> "You can't damage creatures"; - case DAMAGE -> "You can't do that"; - case ITEM_DROP -> "You can't drop items"; - case ITEM_PICKUP -> "You can't pick up items"; + case BUILD -> HFMessages.get(MessageKeys.Protection.ACTION_BUILD); + case INTERACT, USE -> HFMessages.get(MessageKeys.Protection.ACTION_INTERACT); + case DOOR -> HFMessages.get(MessageKeys.Protection.ACTION_DOOR); + case CONTAINER -> HFMessages.get(MessageKeys.Protection.ACTION_CONTAINER); + case BENCH -> HFMessages.get(MessageKeys.Protection.ACTION_BENCH); + case PROCESSING -> HFMessages.get(MessageKeys.Protection.ACTION_PROCESSING); + case SEAT -> HFMessages.get(MessageKeys.Protection.ACTION_SEAT); + case LIGHT -> HFMessages.get(MessageKeys.Protection.ACTION_LIGHT); + case TELEPORTER, PORTAL -> HFMessages.get(MessageKeys.Protection.ACTION_TELEPORTER); + case CRATE_PICKUP, CRATE_PLACE -> HFMessages.get(MessageKeys.Protection.ACTION_CRATE); + case NPC_TAME -> HFMessages.get(MessageKeys.Protection.ACTION_TAME); + case NPC_INTERACT -> HFMessages.get(MessageKeys.Protection.ACTION_NPC); + case MOUNT -> HFMessages.get(MessageKeys.Protection.ACTION_MOUNT); + case PVE_DAMAGE -> HFMessages.get(MessageKeys.Protection.ACTION_PVE); + case DAMAGE -> HFMessages.get(MessageKeys.Protection.ACTION_GENERIC); + case ITEM_DROP -> HFMessages.get(MessageKeys.Protection.ACTION_ITEM_DROP); + case ITEM_PICKUP -> HFMessages.get(MessageKeys.Protection.ACTION_ITEM_PICKUP); }; } @@ -754,13 +756,13 @@ private String getActionPhrase(@Nullable InteractionType type) { @NotNull public String getDenialMessage(@NotNull PvPResult result) { return switch (result) { - case DENIED_SAFEZONE -> "PvP is disabled in SafeZones."; - case DENIED_SAME_FACTION -> "You cannot attack faction members."; - case DENIED_ALLY -> "You cannot attack allies."; - case DENIED_ATTACKER_SAFEZONE, DENIED_DEFENDER_SAFEZONE -> "PvP is disabled in SafeZones."; - case DENIED_SPAWN_PROTECTED -> "That player has spawn protection."; - case DENIED_TERRITORY_NO_PVP -> "PvP is disabled in this territory."; - default -> "You cannot attack this player."; + case DENIED_SAFEZONE -> HFMessages.get(MessageKeys.Protection.PVP_SAFEZONE); + case DENIED_SAME_FACTION -> HFMessages.get(MessageKeys.Protection.PVP_SAME_FACTION); + case DENIED_ALLY -> HFMessages.get(MessageKeys.Protection.PVP_ALLY); + case DENIED_ATTACKER_SAFEZONE, DENIED_DEFENDER_SAFEZONE -> HFMessages.get(MessageKeys.Protection.PVP_SAFEZONE); + case DENIED_SPAWN_PROTECTED -> HFMessages.get(MessageKeys.Protection.PVP_SPAWN_PROTECTED); + case DENIED_TERRITORY_NO_PVP -> HFMessages.get(MessageKeys.Protection.PVP_TERRITORY_DISABLED); + default -> HFMessages.get(MessageKeys.Protection.PVP_GENERIC); }; } @@ -824,12 +826,12 @@ private String checkMixinProtection(@NotNull UUID playerUuid, @NotNull String wo if (!zone.getEffectiveFlag(zoneFlag)) { String action = getActionPhrase(factionType); if (zone.isSafeZone()) { - return action + " in a SafeZone."; + return HFMessages.get(MessageKeys.Protection.DENIED_SAFEZONE, action); } if (zone.isWarZone()) { - return action + " in a WarZone."; + return HFMessages.get(MessageKeys.Protection.DENIED_WARZONE, action); } - return action + " in this zone."; + return HFMessages.get(MessageKeys.Protection.DENIED_ZONE, action); } if (zone.isWarZone()) { return null; @@ -856,7 +858,7 @@ private String checkMixinProtection(@NotNull UUID playerUuid, @NotNull String wo && member.role().getLevel() >= FactionRole.OFFICER.getLevel(); String level = isOfficerOrLeader ? "officer" : "member"; if (perms != null && !checkPermission(perms, level, factionType)) { - return getActionPhrase(factionType) + " here. (Faction permission: " + level + ")"; + return HFMessages.get(MessageKeys.Protection.DENIED_FACTION_PERM, getActionPhrase(factionType), level); } return null; } @@ -868,7 +870,7 @@ private String checkMixinProtection(@NotNull UUID playerUuid, @NotNull String wo if (perms != null && checkPermission(perms, "ally", factionType)) { return null; } - return getActionPhrase(factionType) + " here. (Ally territory)"; + return HFMessages.get(MessageKeys.Protection.DENIED_ALLY_TERRITORY, getActionPhrase(factionType)); } } @@ -881,15 +883,15 @@ private String checkMixinProtection(@NotNull UUID playerUuid, @NotNull String wo if (playerFactionId != null) { RelationType relation = relationManager.getRelation(playerFactionId, claimOwner); if (relation == RelationType.ENEMY) { - return getActionPhrase(factionType) + " in enemy territory."; + return HFMessages.get(MessageKeys.Protection.DENIED_ENEMY_CLAIM, getActionPhrase(factionType)); } } - return getActionPhrase(factionType) + " in claimed territory."; + return HFMessages.get(MessageKeys.Protection.DENIED_CLAIMED, getActionPhrase(factionType)); } catch (Exception e) { // Fail-closed: deny on any exception to prevent unauthorized actions ErrorHandler.report(String.format("Protection check error (fail-closed) for player %s at %s/%d/%d/%d type=%s", playerUuid, worldName, x, y, z, factionType), e); - return "Protection error — action blocked for safety."; + return HFMessages.get(MessageKeys.Protection.DENIED_ERROR); } } @@ -1067,7 +1069,7 @@ public String checkEntityDamage(@Nullable UUID attackerUuid, @Nullable UUID targ if (attackerUuid == null && targetUuid != null) { Zone zone = zoneManager.getZone(worldName, chunkX, chunkZ); if (zone != null && !zone.getEffectiveFlag(ZoneFlags.MOB_DAMAGE)) { - return "Mob damage is disabled in this zone."; + return HFMessages.get(MessageKeys.Protection.MOB_DAMAGE_DISABLED); } return null; } @@ -1076,7 +1078,7 @@ public String checkEntityDamage(@Nullable UUID attackerUuid, @Nullable UUID targ if (attackerUuid != null && targetUuid == null) { Zone zone = zoneManager.getZone(worldName, chunkX, chunkZ); if (zone != null && !zone.getEffectiveFlag(ZoneFlags.PVE_DAMAGE)) { - return "PvE damage is disabled in this zone."; + return HFMessages.get(MessageKeys.Protection.PVE_DAMAGE_DISABLED); } // Check territory claim permissions return checkPveInTerritory(attackerUuid, worldName, chunkX, chunkZ); @@ -1146,7 +1148,7 @@ private String checkPveInTerritory(@NotNull UUID attackerUuid, @NotNull String w } if (!checkPermission(perms, level, InteractionType.PVE_DAMAGE)) { - return "You cannot damage mobs in this territory."; + return HFMessages.get(MessageKeys.Protection.PVE_TERRITORY_DENIED); } return null; } @@ -1331,7 +1333,7 @@ public OrbisMixinsIntegration.CommandCheckResult checkCommandBlock( || lowerCmd.startsWith("/home") || lowerCmd.startsWith("/spawn") || lowerCmd.startsWith("/tp") || lowerCmd.startsWith("/tpa")) { return OrbisMixinsIntegration.CommandCheckResult.deny( - "You cannot use that command while combat tagged."); + HFMessages.get(MessageKeys.Protection.COMBAT_TAG_COMMAND)); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index c2d2c831..8dd9397d 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -50,6 +50,7 @@ public static final class Common { public static final String PAGE = "hyperfactions.common.page"; public static final String UNKNOWN = "hyperfactions.common.unknown"; public static final String ERROR_GENERIC = "hyperfactions.common.error_generic"; + public static final String GUI_FALLBACK = "hyperfactions.common.gui_fallback"; private Common() {} } @@ -530,13 +531,51 @@ private Admin() {} /** Protection denial messages shown when actions are blocked. */ public static final class Protection { - public static final String BUILD = "hyperfactions.protection.build"; - public static final String BREAK = "hyperfactions.protection.break_block"; - public static final String INTERACT = "hyperfactions.protection.interact"; - public static final String CONTAINER = "hyperfactions.protection.container"; - public static final String PVP_DISABLED = "hyperfactions.protection.pvp_disabled"; - public static final String SAFEZONE = "hyperfactions.protection.safezone"; - public static final String WARZONE = "hyperfactions.protection.warzone"; + // Action phrases (what the player tried to do) + public static final String ACTION_GENERIC = "hyperfactions.protection.action.generic"; + public static final String ACTION_BUILD = "hyperfactions.protection.action.build"; + public static final String ACTION_INTERACT = "hyperfactions.protection.action.interact"; + public static final String ACTION_DOOR = "hyperfactions.protection.action.door"; + public static final String ACTION_CONTAINER = "hyperfactions.protection.action.container"; + public static final String ACTION_BENCH = "hyperfactions.protection.action.bench"; + public static final String ACTION_PROCESSING = "hyperfactions.protection.action.processing"; + public static final String ACTION_SEAT = "hyperfactions.protection.action.seat"; + public static final String ACTION_LIGHT = "hyperfactions.protection.action.light"; + public static final String ACTION_TELEPORTER = "hyperfactions.protection.action.teleporter"; + public static final String ACTION_CRATE = "hyperfactions.protection.action.crate"; + public static final String ACTION_TAME = "hyperfactions.protection.action.tame"; + public static final String ACTION_NPC = "hyperfactions.protection.action.npc"; + public static final String ACTION_MOUNT = "hyperfactions.protection.action.mount"; + public static final String ACTION_PVE = "hyperfactions.protection.action.pve"; + public static final String ACTION_ITEM_DROP = "hyperfactions.protection.action.item_drop"; + public static final String ACTION_ITEM_PICKUP = "hyperfactions.protection.action.item_pickup"; + + // Denial reasons (with {0} placeholder for action phrase) + public static final String DENIED_SAFEZONE = "hyperfactions.protection.denied.safezone"; + public static final String DENIED_WARZONE = "hyperfactions.protection.denied.warzone"; + public static final String DENIED_ENEMY_CLAIM = "hyperfactions.protection.denied.enemy_claim"; + public static final String DENIED_CLAIMED = "hyperfactions.protection.denied.claimed"; + public static final String DENIED_HERE = "hyperfactions.protection.denied.here"; + public static final String DENIED_ZONE = "hyperfactions.protection.denied.zone"; + public static final String DENIED_FACTION_PERM = "hyperfactions.protection.denied.faction_perm"; + public static final String DENIED_ALLY_TERRITORY = "hyperfactions.protection.denied.ally_territory"; + public static final String DENIED_ERROR = "hyperfactions.protection.denied.error"; + + // PvP denial messages + public static final String PVP_SAFEZONE = "hyperfactions.protection.pvp.safezone"; + public static final String PVP_SAME_FACTION = "hyperfactions.protection.pvp.same_faction"; + public static final String PVP_ALLY = "hyperfactions.protection.pvp.ally"; + public static final String PVP_SPAWN_PROTECTED = "hyperfactions.protection.pvp.spawn_protected"; + public static final String PVP_TERRITORY_DISABLED = "hyperfactions.protection.pvp.territory_disabled"; + public static final String PVP_GENERIC = "hyperfactions.protection.pvp.generic"; + + // Entity damage (zone-level) + public static final String MOB_DAMAGE_DISABLED = "hyperfactions.protection.mob_damage_disabled"; + public static final String PVE_DAMAGE_DISABLED = "hyperfactions.protection.pve_damage_disabled"; + public static final String PVE_TERRITORY_DENIED = "hyperfactions.protection.pve_territory_denied"; + + // Combat tag + public static final String COMBAT_TAG_COMMAND = "hyperfactions.protection.combat_tag_command"; private Protection() {} } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 6fae49b7..ec48fd1f 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -28,6 +28,7 @@ common.none = None common.page = Page {0} of {1} common.unknown = Unknown common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. # ========== Commands - Create ========== cmd.create.no_permission = You don't have permission to create factions. @@ -361,3 +362,49 @@ cmd.economy.money_help_deposit = /f money deposit - Deposit into treasu cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury cmd.economy.money_help_transfer = /f money transfer - Transfer between factions cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. From 8336c15a315f1b78ae346a05d8f50ac2e6a564c2 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 14:36:43 -0700 Subject: [PATCH 07/76] feat: migrate AnnouncementManager, TeleportManager, ChatManager to i18n keys (Phase 1f) Convert AnnouncementManager to per-player i18n resolution for server broadcasts. Migrate TeleportManager's 10 hardcoded strings (warmup, cooldown, cancellation messages) and ChatManager's channel display names. Add mount entry/teleport blocking messages from TerritoryTickingSystem. Completes Phase 1 command/system migration. --- .../manager/AnnouncementManager.java | 43 ++++++++++++------- .../hyperfactions/manager/ChatManager.java | 8 ++-- .../manager/TeleportManager.java | 30 +++++++------ .../territory/TerritoryTickingSystem.java | 4 +- .../com/hyperfactions/util/MessageKeys.java | 41 ++++++++++++++++++ .../Server/Languages/en-US/hyperfactions.lang | 31 +++++++++++++ 6 files changed, 125 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/hyperfactions/manager/AnnouncementManager.java b/src/main/java/com/hyperfactions/manager/AnnouncementManager.java index 25f86a85..5b3213fd 100644 --- a/src/main/java/com/hyperfactions/manager/AnnouncementManager.java +++ b/src/main/java/com/hyperfactions/manager/AnnouncementManager.java @@ -3,13 +3,12 @@ import com.hyperfactions.config.ConfigManager; import com.hyperfactions.config.modules.AnnouncementConfig; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.Collection; import java.util.function.Supplier; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * Broadcasts server-wide announcements for significant faction events. @@ -40,7 +39,7 @@ public void announceFactionCreated(@NotNull String factionName, @NotNull String return; } - broadcast(MessageUtil.info(leaderName + " has founded the faction " + factionName + "!", MessageUtil.COLOR_GREEN)); + broadcastSuccess(MessageKeys.ServerAnnounce.FACTION_CREATED, leaderName, factionName); } /** @@ -54,7 +53,7 @@ public void announceFactionDisbanded(@NotNull String factionName) { return; } - broadcast(MessageUtil.error("The faction " + factionName + " has been disbanded!")); + broadcastError(MessageKeys.ServerAnnounce.FACTION_DISBANDED, factionName); } /** @@ -71,7 +70,7 @@ public void announceLeadershipTransfer(@NotNull String factionName, return; } - broadcast(MessageUtil.info(newLeader + " is now the leader of " + factionName + "!", MessageUtil.COLOR_GOLD)); + broadcastInfo(MessageKeys.ServerAnnounce.LEADERSHIP_TRANSFER, MessageUtil.COLOR_GOLD, newLeader, factionName); } /** @@ -86,7 +85,7 @@ public void announceOverclaim(@NotNull String attackerFaction, @NotNull String d return; } - broadcast(MessageUtil.error(attackerFaction + " has overclaimed territory from " + defenderFaction + "!")); + broadcastError(MessageKeys.ServerAnnounce.OVERCLAIM, attackerFaction, defenderFaction); } /** @@ -101,7 +100,7 @@ public void announceWarDeclared(@NotNull String declaringFaction, @NotNull Strin return; } - broadcast(MessageUtil.error(declaringFaction + " has declared war on " + targetFaction + "!")); + broadcastError(MessageKeys.ServerAnnounce.WAR_DECLARED, declaringFaction, targetFaction); } /** @@ -116,7 +115,7 @@ public void announceAllianceFormed(@NotNull String faction1, @NotNull String fac return; } - broadcast(MessageUtil.info(faction1 + " and " + faction2 + " are now allies!", MessageUtil.COLOR_GREEN)); + broadcastSuccess(MessageKeys.ServerAnnounce.ALLIANCE_FORMED, faction1, faction2); } /** @@ -131,20 +130,34 @@ public void announceAllianceBroken(@NotNull String faction1, @NotNull String fac return; } - broadcast(MessageUtil.info(faction1 + " and " + faction2 + " are no longer allies!", MessageUtil.COLOR_GOLD)); + broadcastInfo(MessageKeys.ServerAnnounce.ALLIANCE_BROKEN, MessageUtil.COLOR_GOLD, faction1, faction2); } /** - * Builds a formatted announcement message using the configured prefix from config.json. + * Broadcasts a success-styled message to all online players, resolving i18n per-player. */ - private Message buildMessage(@NotNull String text, @NotNull String color) { - return MessageUtil.info(text, color); + private void broadcastSuccess(@NotNull String key, Object... args) { + broadcast(player -> MessageUtil.success(player, key, args)); } /** - * Broadcasts a message to all online players. + * Broadcasts an error-styled message to all online players, resolving i18n per-player. */ - private void broadcast(@NotNull Message message) { + private void broadcastError(@NotNull String key, Object... args) { + broadcast(player -> MessageUtil.error(player, key, args)); + } + + /** + * Broadcasts an info-styled message to all online players, resolving i18n per-player. + */ + private void broadcastInfo(@NotNull String key, @NotNull String color, Object... args) { + broadcast(player -> MessageUtil.info(player, key, color, args)); + } + + /** + * Broadcasts a per-player resolved message to all online players. + */ + private void broadcast(@NotNull java.util.function.Function messageFactory) { try { Collection players = onlinePlayersSupplier.get(); if (players == null) { @@ -152,7 +165,7 @@ private void broadcast(@NotNull Message message) { } for (PlayerRef player : players) { - player.sendMessage(message); + player.sendMessage(messageFactory.apply(player)); } } catch (Exception e) { Logger.warn("Failed to broadcast announcement: %s", e.getMessage()); diff --git a/src/main/java/com/hyperfactions/manager/ChatManager.java b/src/main/java/com/hyperfactions/manager/ChatManager.java index 9e38481a..96e1a6a3 100644 --- a/src/main/java/com/hyperfactions/manager/ChatManager.java +++ b/src/main/java/com/hyperfactions/manager/ChatManager.java @@ -8,7 +8,9 @@ import com.hyperfactions.gui.ActivePageTracker; import com.hyperfactions.gui.GuiUpdateService; import com.hyperfactions.integration.PermissionManager; +import com.hyperfactions.util.HFMessages; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.List; @@ -507,9 +509,9 @@ private void notifyListeners(@NotNull ChatMessage message, @NotNull UUID faction @NotNull public static String getChannelDisplay(@NotNull ChatChannel channel) { return switch (channel) { - case NORMAL -> "Public"; - case FACTION -> "Faction"; - case ALLY -> "Ally"; + case NORMAL -> HFMessages.get((PlayerRef) null, MessageKeys.ChatDisplay.PUBLIC); + case FACTION -> HFMessages.get((PlayerRef) null, MessageKeys.ChatDisplay.FACTION); + case ALLY -> HFMessages.get((PlayerRef) null, MessageKeys.ChatDisplay.ALLY); }; } diff --git a/src/main/java/com/hyperfactions/manager/TeleportManager.java b/src/main/java/com/hyperfactions/manager/TeleportManager.java index 7f76bf55..874d4bfe 100644 --- a/src/main/java/com/hyperfactions/manager/TeleportManager.java +++ b/src/main/java/com/hyperfactions/manager/TeleportManager.java @@ -4,10 +4,13 @@ import com.hyperfactions.config.ConfigManager; import com.hyperfactions.data.Faction; import com.hyperfactions.integration.PermissionManager; +import com.hyperfactions.util.HFMessages; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.TimeUtil; import com.hypixel.hytale.server.core.Message; +import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -301,8 +304,8 @@ public TeleportResult teleportToHome( if (!PermissionManager.get().hasPermission(playerUuid, Permissions.BYPASS_COOLDOWN)) { if (isOnCooldown(playerUuid)) { int remaining = getCooldownRemaining(playerUuid); - sendMessage.accept(MessageUtil.error("You must wait " - + TimeUtil.formatDurationSeconds(remaining) + " before teleporting again.")); + sendMessage.accept(MessageUtil.error( + HFMessages.get((PlayerRef) null, MessageKeys.Teleport.COOLDOWN_WAIT, TimeUtil.formatDurationSeconds(remaining)))); return TeleportResult.ON_COOLDOWN; } } @@ -334,7 +337,8 @@ public TeleportResult teleportToHome( pendingTeleports.put(playerUuid, pending); // Send warmup message - sendMessage.accept(MessageUtil.info("Teleporting to faction home in " + warmup + " seconds...", MessageUtil.COLOR_YELLOW)); + sendMessage.accept(MessageUtil.info( + HFMessages.get((PlayerRef) null, MessageKeys.Teleport.WARMUP_START, warmup), MessageUtil.COLOR_YELLOW)); Logger.debug("Scheduled teleport for %s, will execute at %d", playerUuid, executeAt); return TeleportResult.SUCCESS_WARMUP; @@ -411,7 +415,7 @@ public PendingTeleport checkReady(@NotNull UUID playerUuid, @NotNull Consumer sendMessage) { applyCooldown(playerUuid); - String msg = customMessage != null ? customMessage : "Teleported to faction home!"; + String msg = customMessage != null ? customMessage : HFMessages.get((PlayerRef) null, MessageKeys.Teleport.SUCCESS_DEFAULT); sendMessage.accept(MessageUtil.success(msg)); } @@ -438,9 +442,9 @@ public void onTeleportSuccess(@NotNull UUID playerUuid, @Nullable String customM */ public void onTeleportFailed(@NotNull TeleportResult result, @NotNull Consumer sendMessage) { switch (result) { - case NO_HOME -> sendMessage.accept(MessageUtil.error("Your faction has no home set.")); - case WORLD_NOT_FOUND -> sendMessage.accept(MessageUtil.error("World not found.")); - default -> sendMessage.accept(MessageUtil.error("Teleportation failed.")); + case NO_HOME -> sendMessage.accept(MessageUtil.error(HFMessages.get((PlayerRef) null, MessageKeys.Teleport.NO_HOME))); + case WORLD_NOT_FOUND -> sendMessage.accept(MessageUtil.error(HFMessages.get((PlayerRef) null, MessageKeys.Teleport.WORLD_NOT_FOUND))); + default -> sendMessage.accept(MessageUtil.error(HFMessages.get((PlayerRef) null, MessageKeys.Teleport.FAILED))); } } @@ -453,8 +457,10 @@ public void onTeleportFailed(@NotNull TeleportResult result, @NotNull Consumer sendMessage) { int secondsToAnnounce = pending.checkCountdown(); if (secondsToAnnounce > 0) { - String timeText = secondsToAnnounce == 1 ? "1 second" : secondsToAnnounce + " seconds"; - sendMessage.accept(MessageUtil.info("Teleporting in " + timeText + "...", MessageUtil.COLOR_YELLOW)); + String timeText = secondsToAnnounce == 1 + ? HFMessages.get((PlayerRef) null, MessageKeys.Teleport.COUNTDOWN_ONE) + : HFMessages.get((PlayerRef) null, MessageKeys.Teleport.COUNTDOWN, secondsToAnnounce); + sendMessage.accept(MessageUtil.info(timeText, MessageUtil.COLOR_YELLOW)); } } @@ -490,7 +496,7 @@ public boolean checkMovement( if (distSq > 0.25) { // 0.5 blocks removePending(playerUuid); - sendMessage.accept(MessageUtil.error("Teleportation cancelled - you moved!")); + sendMessage.accept(MessageUtil.error(HFMessages.get((PlayerRef) null, MessageKeys.Teleport.MOVED_CANCELLED))); return true; } @@ -514,7 +520,7 @@ public boolean cancelOnDamage( if (pendingTeleports.containsKey(playerUuid)) { removePending(playerUuid); - sendMessage.accept(MessageUtil.error("Teleportation cancelled - you took damage!")); + sendMessage.accept(MessageUtil.error(HFMessages.get((PlayerRef) null, MessageKeys.Teleport.DAMAGE_CANCELLED))); return true; } diff --git a/src/main/java/com/hyperfactions/territory/TerritoryTickingSystem.java b/src/main/java/com/hyperfactions/territory/TerritoryTickingSystem.java index a93112cf..3eff31ba 100644 --- a/src/main/java/com/hyperfactions/territory/TerritoryTickingSystem.java +++ b/src/main/java/com/hyperfactions/territory/TerritoryTickingSystem.java @@ -133,7 +133,7 @@ public void tick(float dt, int index, @NotNull ArchetypeChunk arche TeleportManager.TeleportDestination dest = ready.destination(); if (!isMountEntryAllowed(dest.world(), dest.x(), dest.z())) { playerRef.sendMessage(com.hyperfactions.util.MessageUtil.error( - "You can't teleport into that zone while mounted.")); + playerRef, com.hyperfactions.util.MessageKeys.Teleport.MOUNT_TELEPORT_BLOCKED)); Logger.debugTerritory("Teleport blocked for mounted player %s to zone at (%.1f, %.1f)", playerUuid, dest.x(), dest.z()); mountBlocked = true; @@ -172,7 +172,7 @@ public void tick(float dt, int index, @NotNull ArchetypeChunk arche } }); ProtectionMessageDebounce.sendDenial(playerRef, "mount_entry", - "You can't enter this zone while mounted."); + com.hyperfactions.util.HFMessages.get(playerRef, com.hyperfactions.util.MessageKeys.Teleport.MOUNT_ENTRY_BLOCKED)); Logger.debugTerritory("Mount entry blocked for %s at zone '%s' (%s), safe=(%.1f, %.1f, %.1f)", playerUuid, zone.name(), zone.type().name(), safePos[0], safeY, safePos[1]); } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 8dd9397d..4e4adb21 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -602,6 +602,19 @@ private Territory() {} // Announcements — faction-wide broadcasts // ===================================================================== + /** Server-wide broadcast messages (AnnouncementManager). */ + public static final class ServerAnnounce { + public static final String FACTION_CREATED = "hyperfactions.server_announce.faction_created"; + public static final String FACTION_DISBANDED = "hyperfactions.server_announce.faction_disbanded"; + public static final String LEADERSHIP_TRANSFER = "hyperfactions.server_announce.leadership_transfer"; + public static final String OVERCLAIM = "hyperfactions.server_announce.overclaim"; + public static final String WAR_DECLARED = "hyperfactions.server_announce.war_declared"; + public static final String ALLIANCE_FORMED = "hyperfactions.server_announce.alliance_formed"; + public static final String ALLIANCE_BROKEN = "hyperfactions.server_announce.alliance_broken"; + + private ServerAnnounce() {} + } + /** Faction-wide broadcast messages. */ public static final class Announce { public static final String MEMBER_JOIN = "hyperfactions.announce.member_join"; @@ -666,6 +679,34 @@ public static final class HelpGui { private HelpGui() {} } + /** Teleport system messages (TeleportManager). */ + public static final class Teleport { + public static final String COOLDOWN_WAIT = "hyperfactions.teleport.cooldown_wait"; + public static final String WARMUP_START = "hyperfactions.teleport.warmup_start"; + public static final String COMBAT_CANCELLED = "hyperfactions.teleport.combat_cancelled"; + public static final String SUCCESS_DEFAULT = "hyperfactions.teleport.success_default"; + public static final String NO_HOME = "hyperfactions.teleport.no_home"; + public static final String WORLD_NOT_FOUND = "hyperfactions.teleport.world_not_found"; + public static final String FAILED = "hyperfactions.teleport.failed"; + public static final String COUNTDOWN = "hyperfactions.teleport.countdown"; + public static final String COUNTDOWN_ONE = "hyperfactions.teleport.countdown_one"; + public static final String MOVED_CANCELLED = "hyperfactions.teleport.moved_cancelled"; + public static final String DAMAGE_CANCELLED = "hyperfactions.teleport.damage_cancelled"; + public static final String MOUNT_TELEPORT_BLOCKED = "hyperfactions.teleport.mount_teleport_blocked"; + public static final String MOUNT_ENTRY_BLOCKED = "hyperfactions.teleport.mount_entry_blocked"; + + private Teleport() {} + } + + /** Chat channel display names (ChatManager). */ + public static final class ChatDisplay { + public static final String PUBLIC = "hyperfactions.chat.display.public"; + public static final String FACTION = "hyperfactions.chat.display.faction"; + public static final String ALLY = "hyperfactions.chat.display.ally"; + + private ChatDisplay() {} + } + /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index ec48fd1f..27938a19 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -408,3 +408,34 @@ protection.pve_territory_denied = You cannot damage mobs in this territory. # ========== Protection - Combat Tag ========== protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally From 06be789dcfe6cf04db3c4e919f8452a3b310c861 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 14:46:52 -0700 Subject: [PATCH 08/76] feat: add help system markdown-to-lang build pipeline (Phase 2) Replace hardcoded help content with build-generated .lang files from markdown sources. Add HelpLangGenerator build-time tool that parses 22 markdown topic files into hyperfactions_help.lang and help-manifest.json. Refactor HelpRegistry to load structure from manifest, HelpMessages to delegate to HFMessages/I18nModule, and HelpCategory to use i18n display name keys. Create initial hyperfactions_gui.lang with help category names. Add generateHelpLang Gradle task wired into processResources. --- build.gradle | 22 + src/main/help/en-US/combat/death.md | 15 + src/main/help/en-US/combat/protection.md | 17 + src/main/help/en-US/combat/tagging.md | 12 + src/main/help/en-US/combat/zones.md | 14 + src/main/help/en-US/diplomacy/alliances.md | 14 + src/main/help/en-US/diplomacy/enemies.md | 17 + src/main/help/en-US/diplomacy/relations.md | 18 + src/main/help/en-US/economy/commands.md | 21 + src/main/help/en-US/economy/funds.md | 18 + src/main/help/en-US/economy/treasury.md | 13 + src/main/help/en-US/power_land/claiming.md | 16 + .../help/en-US/power_land/losing_territory.md | 14 + .../help/en-US/power_land/territory_map.md | 13 + .../en-US/power_land/understanding_power.md | 14 + src/main/help/en-US/quick_ref/all_commands.md | 80 +++ .../help/en-US/welcome/getting_started.md | 16 + src/main/help/en-US/welcome/quick_tips.md | 18 + .../help/en-US/welcome/what_are_factions.md | 14 + src/main/help/en-US/your_faction/creating.md | 13 + src/main/help/en-US/your_faction/joining.md | 17 + src/main/help/en-US/your_faction/managing.md | 22 + src/main/help/en-US/your_faction/roles.md | 16 + .../build/HelpLangGenerator.java | 336 ++++++++++++ .../hyperfactions/gui/help/HelpCategory.java | 26 +- .../hyperfactions/gui/help/HelpMessages.java | 502 +----------------- .../hyperfactions/gui/help/HelpRegistry.java | 486 ++++------------- .../Languages/en-US/hyperfactions_gui.lang | 12 + 28 files changed, 915 insertions(+), 881 deletions(-) create mode 100644 src/main/help/en-US/combat/death.md create mode 100644 src/main/help/en-US/combat/protection.md create mode 100644 src/main/help/en-US/combat/tagging.md create mode 100644 src/main/help/en-US/combat/zones.md create mode 100644 src/main/help/en-US/diplomacy/alliances.md create mode 100644 src/main/help/en-US/diplomacy/enemies.md create mode 100644 src/main/help/en-US/diplomacy/relations.md create mode 100644 src/main/help/en-US/economy/commands.md create mode 100644 src/main/help/en-US/economy/funds.md create mode 100644 src/main/help/en-US/economy/treasury.md create mode 100644 src/main/help/en-US/power_land/claiming.md create mode 100644 src/main/help/en-US/power_land/losing_territory.md create mode 100644 src/main/help/en-US/power_land/territory_map.md create mode 100644 src/main/help/en-US/power_land/understanding_power.md create mode 100644 src/main/help/en-US/quick_ref/all_commands.md create mode 100644 src/main/help/en-US/welcome/getting_started.md create mode 100644 src/main/help/en-US/welcome/quick_tips.md create mode 100644 src/main/help/en-US/welcome/what_are_factions.md create mode 100644 src/main/help/en-US/your_faction/creating.md create mode 100644 src/main/help/en-US/your_faction/joining.md create mode 100644 src/main/help/en-US/your_faction/managing.md create mode 100644 src/main/help/en-US/your_faction/roles.md create mode 100644 src/main/java/com/hyperfactions/build/HelpLangGenerator.java create mode 100644 src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang diff --git a/build.gradle b/build.gradle index b78264f6..c49acd5a 100644 --- a/build.gradle +++ b/build.gradle @@ -128,6 +128,23 @@ public final class BuildInfo { } } +// Generate help .lang files from markdown sources +tasks.register('generateHelpLang', JavaExec) { + group = 'build' + description = 'Generate help .lang files from markdown sources' + dependsOn 'compileJava' + classpath = sourceSets.main.compileClasspath + files(sourceSets.main.java.classesDirectory) + mainClass = 'com.hyperfactions.build.HelpLangGenerator' + args = [ + file('src/main/help').absolutePath, + layout.buildDirectory.dir('generated/resources').get().asFile.absolutePath + ] + inputs.dir(file('src/main/help')) + outputs.dir(layout.buildDirectory.dir('generated/resources')) +} + +sourceSets.main.resources.srcDir(layout.buildDirectory.dir('generated/resources')) + // Expand version placeholder in manifest.json processResources { def ver = buildVersion @@ -192,6 +209,11 @@ javadoc { failOnError = false } +// Ensure help lang files are generated before processResources copies them +tasks.named('processResources') { + dependsOn 'generateHelpLang' +} + // Ensure build info is generated and HyperPerms shadowJar is built before compiling tasks.named('compileJava') { dependsOn 'generateBuildInfo' diff --git a/src/main/help/en-US/combat/death.md b/src/main/help/en-US/combat/death.md new file mode 100644 index 00000000..a123776f --- /dev/null +++ b/src/main/help/en-US/combat/death.md @@ -0,0 +1,15 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death & Recovery + +Death has real consequences: + +You lose personal power, lowering faction total. +If claims exceed power, enemies can overclaim. + +Power regenerates while online. Multiple deaths +can leave your faction dangerously vulnerable. + +> Pick your battles carefully! diff --git a/src/main/help/en-US/combat/protection.md b/src/main/help/en-US/combat/protection.md new file mode 100644 index 00000000..5f5ce945 --- /dev/null +++ b/src/main/help/en-US/combat/protection.md @@ -0,0 +1,17 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory has several protections: + +## Block Protection +Only members can place or break blocks. + +## Container Protection +Chests, barrels, etc. are secured to members. + +## Entry Alerts +You're notified when non-members enter claims. + +> Territory protects blocks, not players! diff --git a/src/main/help/en-US/combat/tagging.md b/src/main/help/en-US/combat/tagging.md new file mode 100644 index 00000000..664c6b72 --- /dev/null +++ b/src/main/help/en-US/combat/tagging.md @@ -0,0 +1,12 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +Attacking or being attacked combat tags you. +A timer shows the remaining tag duration. + +While tagged: no /f home, /f stuck, or teleports. +The tag resets with each new combat action. + +> Logging out while tagged is risky. Stay and fight! diff --git a/src/main/help/en-US/combat/zones.md b/src/main/help/en-US/combat/zones.md new file mode 100644 index 00000000..f11cb46b --- /dev/null +++ b/src/main/help/en-US/combat/zones.md @@ -0,0 +1,14 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can create zones with special rules: + +## SafeZone +No PvP, no block breaking. For spawn/trading. + +## WarZone +PvP always enabled, no protection. Battle areas. + +> Zone rules always override faction territory. diff --git a/src/main/help/en-US/diplomacy/alliances.md b/src/main/help/en-US/diplomacy/alliances.md new file mode 100644 index 00000000..b0694d30 --- /dev/null +++ b/src/main/help/en-US/diplomacy/alliances.md @@ -0,0 +1,14 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances protect both factions from friendly +fire and territorial disputes. + +`/f ally ` +Sends an alliance request. Both sides must agree. + +Benefits: no friendly fire, shared map visibility. +> There may be a limit on alliance count. diff --git a/src/main/help/en-US/diplomacy/enemies.md b/src/main/help/en-US/diplomacy/enemies.md new file mode 100644 index 00000000..180bc869 --- /dev/null +++ b/src/main/help/en-US/diplomacy/enemies.md @@ -0,0 +1,17 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy enables PvP and territorial +aggression against them. One-way action. + +`/f enemy ` +Declares enemy immediately. No agreement needed. + +PvP enabled in each other's territory. Overclaim +possible if they become weakened. + +`/f neutral ` +Resets relation to neutral, ending enemy status. diff --git a/src/main/help/en-US/diplomacy/relations.md b/src/main/help/en-US/diplomacy/relations.md new file mode 100644 index 00000000..208db5e7 --- /dev/null +++ b/src/main/help/en-US/diplomacy/relations.md @@ -0,0 +1,18 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every faction pair has a diplomatic relation: + +Ally — No friendly fire, protected from each +other's claims. Requires mutual agreement. + +Enemy — PvP enabled in each other's territory. +Overclaiming possible if target is weakened. + +Neutral — Default state. Standard rules apply. + +`/f relations` +View all alliances, enemies, and pending requests. diff --git a/src/main/help/en-US/economy/commands.md b/src/main/help/en-US/economy/commands.md new file mode 100644 index 00000000..3720eaff --- /dev/null +++ b/src/main/help/en-US/economy/commands.md @@ -0,0 +1,21 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for economy commands: + +`/f balance` +View treasury balance. + +`/f deposit ` +Deposit funds. + +`/f withdraw ` +Withdraw funds. (Officer+) + +`/f money transfer ` +Transfer to another faction. + +`/f money log [page]` +View transaction history. diff --git a/src/main/help/en-US/economy/funds.md b/src/main/help/en-US/economy/funds.md new file mode 100644 index 00000000..3b7a6da6 --- /dev/null +++ b/src/main/help/en-US/economy/funds.md @@ -0,0 +1,18 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Members deposit; Officers can withdraw/transfer. + +`/f deposit ` +Deposit from your balance into the treasury. + +`/f withdraw ` +Withdraw from treasury. (Officer+) + +`/f money transfer ` +Transfer funds to another faction's treasury. + +> All transactions are logged for review. diff --git a/src/main/help/en-US/economy/treasury.md b/src/main/help/en-US/economy/treasury.md new file mode 100644 index 00000000..6a148e82 --- /dev/null +++ b/src/main/help/en-US/economy/treasury.md @@ -0,0 +1,13 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury. Managed +by Officers and the Leader. + +`/f balance` +Check your faction's treasury balance. (Alias: bal) + +> Contribute regularly to keep your faction funded! diff --git a/src/main/help/en-US/power_land/claiming.md b/src/main/help/en-US/power_land/claiming.md new file mode 100644 index 00000000..f308f9e2 --- /dev/null +++ b/src/main/help/en-US/power_land/claiming.md @@ -0,0 +1,16 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it. Only members can +build, break, or access containers inside. + +`/f claim` +Claims the chunk you're standing in. (Officer+) + +`/f unclaim` +Releases a claim back to wilderness. (Officer+) + +> Each claim costs one power. Don't over-expand! diff --git a/src/main/help/en-US/power_land/losing_territory.md b/src/main/help/en-US/power_land/losing_territory.md new file mode 100644 index 00000000..6c6ab858 --- /dev/null +++ b/src/main/help/en-US/power_land/losing_territory.md @@ -0,0 +1,14 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +If total power drops below claim count, you're +raidable. Enemies can overclaim your chunks. + +`/f overclaim` +Takes a chunk from a weakened faction. (Officer+) + +Stay safe: stay active, avoid deaths, don't +over-expand beyond what your power supports. diff --git a/src/main/help/en-US/power_land/territory_map.md b/src/main/help/en-US/power_land/territory_map.md new file mode 100644 index 00000000..aa31f43d --- /dev/null +++ b/src/main/help/en-US/power_land/territory_map.md @@ -0,0 +1,13 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +A bird's-eye view of claimed chunks near you. + +`/f map` +Opens the territory map. Click chunks to claim. + +Your faction shows in your color. Allies in blue, +enemies in red, neutrals in gray, wilderness dark. diff --git a/src/main/help/en-US/power_land/understanding_power.md b/src/main/help/en-US/power_land/understanding_power.md new file mode 100644 index 00000000..d18b9bcb --- /dev/null +++ b/src/main/help/en-US/power_land/understanding_power.md @@ -0,0 +1,14 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power lets your faction hold territory. Every +player has personal power that adds to the total. + +`/f power` +Check your power and your faction's total. + +Power regenerates online, decreases on death. +> If claims exceed power, you're vulnerable! diff --git a/src/main/help/en-US/quick_ref/all_commands.md b/src/main/help/en-US/quick_ref/all_commands.md new file mode 100644 index 00000000..0097e8b8 --- /dev/null +++ b/src/main/help/en-US/quick_ref/all_commands.md @@ -0,0 +1,80 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core +`/f — Open faction menu (alias: gui, menu)` +`/f help — Open this help center` +`/f create — Create a faction` +`/f disband — Delete your faction (Leader)` +`/f leave — Leave your faction` + +## Membership +`/f invite — Invite player (Officer+)` +`/f accept [faction] — Accept invite (alias: join)` +`/f request — Request to join` +`/f kick — Remove member (Officer+)` +`/f promote — Promote to Officer (Leader)` +`/f demote — Demote to Member (Leader)` +`/f transfer — Transfer leadership` + +## Territory +`/f claim — Claim current chunk (Officer+)` +`/f unclaim — Release current chunk (Officer+)` +`/f overclaim — Take weakened faction's chunk` +`/f map — Open territory map` + +## Teleport +`/f home — Teleport to faction home` +`/f sethome — Set faction home (Officer+)` +`/f delhome — Delete faction home (Officer+)` +`/f stuck — Escape enemy territory` + +## Information +`/f info [faction] — View faction details` +`/f list — Browse all factions` +`/f members — View roster` +`/f who [player] — View player info` +`/f power [player] — Check power levels` +`/f invites — Manage invites/requests` +`/f relations — View diplomatic relations` + +## Diplomacy +`/f ally — Request alliance (Officer+)` +`/f enemy — Declare enemy (Officer+)` +`/f neutral — Reset to neutral` + +## Settings +`/f settings — Open settings GUI (Officer+)` +`/f rename — Rename faction (Leader)` +`/f desc [text] — Set description (Officer+)` +`/f color — Set faction color (Officer+)` +`/f open — Allow anyone to join (Leader)` +`/f close — Require invitation (Leader)` + +## Economy +`/f balance — View treasury` +`/f deposit — Deposit funds` +`/f withdraw — Withdraw (Officer+)` +`/f money transfer — Transfer` +`/f money log [page] — Transaction history` + +## Chat +`/f c — Cycle: Normal > Faction > Ally` +`/f c f — Set faction chat` +`/f c a — Set ally chat` +`/f c off — Set public chat` + +## Admin (requires hyperfactions.admin) +`/f admin — Open admin dashboard` +`/f admin reload — Reload configuration` +`/f admin sync — Sync faction data` +`/f admin factions — Faction management` +`/f admin config — Configuration editor` +`/f admin zones — Zone management` +`/f admin backup create — Create backup` +`/f admin backup restore — Restore backup` +`/f admin safezone — Create SafeZone` +`/f admin warzone — Create WarZone` +`/f admin debug toggle — Debug logging` diff --git a/src/main/help/en-US/welcome/getting_started.md b/src/main/help/en-US/welcome/getting_started.md new file mode 100644 index 00000000..8c50830c --- /dev/null +++ b/src/main/help/en-US/welcome/getting_started.md @@ -0,0 +1,16 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Ready to dive in? Here's how: + +`/f` +Opens the faction menu. Browse factions, create +your own, or check invitations. + +If invited, check the Invites tab and accept. +Otherwise, browse open factions or start fresh. + +> Once in, explore territory and start claiming! diff --git a/src/main/help/en-US/welcome/quick_tips.md b/src/main/help/en-US/welcome/quick_tips.md new file mode 100644 index 00000000..bc664023 --- /dev/null +++ b/src/main/help/en-US/welcome/quick_tips.md @@ -0,0 +1,18 @@ +--- +id: welcome_tips +--- +# Quick Tips + +## Claiming Land +`/f claim` +Protects the chunk you're standing in. + +## Faction Home +`/f home` +Teleports to your faction home. Set with /f sethome. + +## Faction Chat +`/f c` +Cycles chat mode: Normal > Faction > Ally. + +> Dying costs power, weakening your territory hold! diff --git a/src/main/help/en-US/welcome/what_are_factions.md b/src/main/help/en-US/welcome/what_are_factions.md new file mode 100644 index 00000000..17f7d901 --- /dev/null +++ b/src/main/help/en-US/welcome/what_are_factions.md @@ -0,0 +1,14 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player teams that claim territory, +build bases, and grow stronger together. + +As a member you get protected land, a faction +home, private chat, and diplomatic relations. + +Strength is measured by power. Active members +generate power; dying costs it. If power drops +below your claim count, enemies can steal land. diff --git a/src/main/help/en-US/your_faction/creating.md b/src/main/help/en-US/your_faction/creating.md new file mode 100644 index 00000000..d06b9f12 --- /dev/null +++ b/src/main/help/en-US/your_faction/creating.md @@ -0,0 +1,13 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting a faction makes you the Leader with +full control over settings, members, and land. + +`/f create ` +Creates a faction and opens your dashboard. + +> Invite friends, claim land, and start building! diff --git a/src/main/help/en-US/your_faction/joining.md b/src/main/help/en-US/your_faction/joining.md new file mode 100644 index 00000000..6f7282e5 --- /dev/null +++ b/src/main/help/en-US/your_faction/joining.md @@ -0,0 +1,17 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +Three ways to join an existing faction: + +## Browse Open Factions +Open /f and click Browse. Click Join on any open faction. + +## Accept an Invitation +Check the Invites tab and click Accept. + +## Request to Join +`/f request ` +Send a request to an invite-only faction. diff --git a/src/main/help/en-US/your_faction/managing.md b/src/main/help/en-US/your_faction/managing.md new file mode 100644 index 00000000..53560468 --- /dev/null +++ b/src/main/help/en-US/your_faction/managing.md @@ -0,0 +1,22 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders manage the roster: + +`/f invite ` +Sends an invitation. (Officer+) + +`/f kick ` +Removes a member. Officers kick Members; Leaders all. + +`/f promote ` +Promotes a Member to Officer. (Leader only) + +`/f demote ` +Demotes an Officer to Member. (Leader only) + +`/f transfer ` +> Transfers leadership. You become Officer. Cannot undo! diff --git a/src/main/help/en-US/your_faction/roles.md b/src/main/help/en-US/your_faction/roles.md new file mode 100644 index 00000000..0dcc2349 --- /dev/null +++ b/src/main/help/en-US/your_faction/roles.md @@ -0,0 +1,16 @@ +--- +id: faction_roles +--- +# Roles & Ranks + +Three ranks with different capabilities: + +## Leader (1 per faction) +Full control: disband, transfer ownership, +promote/demote, plus all Officer permissions. + +## Officer +Invite/kick, claim/unclaim, set home, relations. + +## Member +Use faction home, chat, build in territory. diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java new file mode 100644 index 00000000..ab8d2b99 --- /dev/null +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -0,0 +1,336 @@ +package com.hyperfactions.build; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.IOException; +import java.nio.file.*; +import java.util.*; +import java.util.stream.Stream; + +/** + * Build-time tool that converts help markdown files into .lang translation files + * and a help-manifest.json for the HyperFactions help system. + * + *

Usage: {@code java HelpLangGenerator } + * + *

Reads {@code src/main/help/{locale}/{category}/{topic}.md} and produces: + *

    + *
  • {@code {outputDir}/Server/Languages/{locale}/hyperfactions_help.lang}
  • + *
  • {@code {outputDir}/help-manifest.json} (generated from en-US only)
  • + *
+ */ +public class HelpLangGenerator { + + /** Fixed category processing order. */ + private static final List CATEGORY_ORDER = List.of( + "welcome", "your_faction", "power_land", "diplomacy", "combat", "economy", "quick_ref" + ); + + // ── Data structures ────────────────────────────────────────────────── + + /** A single parsed entry from a markdown topic file. */ + record Entry(String type, String key) {} + + /** A fully parsed topic ready for manifest / lang output. */ + record Topic( + String id, + String category, + String topic, + String titleKey, + String titleText, + List commands, + List entries, + List entryTexts + ) {} + + // ── Entry point ────────────────────────────────────────────────────── + + public static void main(String[] args) { + if (args.length < 2) { + System.err.println("Usage: HelpLangGenerator "); + System.exit(1); + } + + Path helpDir = Paths.get(args[0]); + Path outputDir = Paths.get(args[1]); + + if (!Files.isDirectory(helpDir)) { + System.err.println("Help directory not found: " + helpDir); + System.exit(1); + } + + try { + List locales = listSortedDirectories(helpDir); + if (locales.isEmpty()) { + System.err.println("No locale directories found under " + helpDir); + System.exit(1); + } + + System.out.println("Found locales: " + locales); + + for (String locale : locales) { + Path localeDir = helpDir.resolve(locale); + List topics = parseLocale(localeDir); + writeLangFile(outputDir, locale, topics); + + if ("en-US".equals(locale)) { + writeManifest(outputDir, topics); + } + } + + System.out.println("Help language generation complete."); + } catch (IOException e) { + System.err.println("Error generating help lang files: " + e.getMessage()); + e.printStackTrace(); + System.exit(1); + } + } + + // ── Locale parsing ─────────────────────────────────────────────────── + + private static List parseLocale(Path localeDir) throws IOException { + List topics = new ArrayList<>(); + + // Process categories in defined order, skip any that don't exist + for (String category : CATEGORY_ORDER) { + Path categoryDir = localeDir.resolve(category); + if (!Files.isDirectory(categoryDir)) { + continue; + } + + List mdFiles = listMarkdownFiles(categoryDir); + for (Path mdFile : mdFiles) { + Topic topic = parseTopic(category, mdFile); + if (topic != null) { + topics.add(topic); + System.out.println(" Parsed: " + category + "/" + mdFile.getFileName()); + } + } + } + + return topics; + } + + // ── Markdown parsing ───────────────────────────────────────────────── + + private static Topic parseTopic(String category, Path mdFile) throws IOException { + String filename = mdFile.getFileName().toString(); + String topicName = filename.substring(0, filename.length() - 3); // strip .md + + List lines = Files.readAllLines(mdFile); + + // Parse frontmatter + String id = null; + List commands = new ArrayList<>(); + int contentStart = 0; + + if (!lines.isEmpty() && "---".equals(lines.get(0).trim())) { + for (int i = 1; i < lines.size(); i++) { + String line = lines.get(i).trim(); + if ("---".equals(line)) { + contentStart = i + 1; + break; + } + if (line.startsWith("id:")) { + id = line.substring(3).trim(); + } else if (line.startsWith("commands:")) { + String commandStr = line.substring(9).trim(); + for (String cmd : commandStr.split(",")) { + String trimmed = cmd.trim(); + if (!trimmed.isEmpty()) { + commands.add(trimmed); + } + } + } + } + } + + if (id == null) { + id = category + "_" + topicName; + } + + // Parse content lines + String titleText = null; + boolean foundFirstContent = false; + String keyPrefix = category + "." + topicName; + List entries = new ArrayList<>(); + List entryTexts = new ArrayList<>(); + int lineCounter = 0; + + for (int i = contentStart; i < lines.size(); i++) { + String line = lines.get(i); + String trimmed = line.trim(); + + // Skip blank lines before the title is found + if (trimmed.isEmpty() && titleText == null) { + continue; + } + + if (trimmed.startsWith("# ") && titleText == null) { + // First H1 → title + titleText = trimmed.substring(2).trim(); + continue; + } + + // Skip blank lines between title and first content + if (trimmed.isEmpty() && !foundFirstContent) { + continue; + } + + if (trimmed.isEmpty()) { + // Blank line → SPACER (only after first content line) + entries.add(new Entry("SPACER", null)); + entryTexts.add(null); + continue; + } + + foundFirstContent = true; + + if (trimmed.startsWith("## ")) { + // H2 → HEADING + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(3).trim(); + entries.add(new Entry("HEADING", key)); + entryTexts.add(text); + continue; + } + + if (trimmed.startsWith("`") && trimmed.endsWith("`") && trimmed.length() > 2) { + // Command line (backtick-wrapped) + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(1, trimmed.length() - 1); + entries.add(new Entry("COMMAND", key)); + entryTexts.add(text); + continue; + } + + if (trimmed.startsWith("> ")) { + // Blockquote → TIP + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(2).trim(); + entries.add(new Entry("TIP", key)); + entryTexts.add(text); + continue; + } + + // Plain text → TEXT + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + entries.add(new Entry("TEXT", key)); + entryTexts.add(trimmed); + } + + if (titleText == null) { + titleText = topicName.replace('_', ' '); + } + + return new Topic(id, category, topicName, keyPrefix + ".title", titleText, commands, entries, entryTexts); + } + + // ── .lang file output ──────────────────────────────────────────────── + + private static void writeLangFile(Path outputDir, String locale, List topics) throws IOException { + Path langDir = outputDir.resolve("Server").resolve("Languages").resolve(locale); + Files.createDirectories(langDir); + Path langFile = langDir.resolve("hyperfactions_help.lang"); + + StringBuilder sb = new StringBuilder(); + sb.append("# HyperFactions Help System - ").append(locale).append("\n"); + sb.append("# AUTO-GENERATED by HelpLangGenerator — do not edit manually\n\n"); + + for (Topic topic : topics) { + sb.append("# AUTO-GENERATED from src/main/help/") + .append(locale).append("/") + .append(topic.category()).append("/") + .append(topic.topic()).append(".md\n"); + + sb.append(topic.category()).append(".").append(topic.topic()) + .append(".title = ").append(topic.titleText()).append("\n"); + + for (int i = 0; i < topic.entries().size(); i++) { + Entry entry = topic.entries().get(i); + if (entry.key() != null) { + String text = topic.entryTexts().get(i); + sb.append(entry.key()).append(" = ").append(text).append("\n"); + } + } + + sb.append("\n"); + } + + Files.writeString(langFile, sb.toString()); + System.out.println("Wrote: " + langFile); + } + + // ── Manifest output ────────────────────────────────────────────────── + + private static void writeManifest(Path outputDir, List topics) throws IOException { + List> topicList = new ArrayList<>(); + Map commandMappings = new LinkedHashMap<>(); + + for (Topic topic : topics) { + Map topicMap = new LinkedHashMap<>(); + topicMap.put("id", topic.id()); + topicMap.put("category", topic.category()); + topicMap.put("titleKey", "hyperfactions_help." + topic.titleKey()); + topicMap.put("commands", topic.commands()); + + List> entryList = new ArrayList<>(); + for (int i = 0; i < topic.entries().size(); i++) { + Entry entry = topic.entries().get(i); + Map entryMap = new LinkedHashMap<>(); + entryMap.put("type", entry.type()); + if (entry.key() != null) { + entryMap.put("key", "hyperfactions_help." + entry.key()); + } + entryList.add(entryMap); + } + topicMap.put("entries", entryList); + + topicList.add(topicMap); + + // Build command mappings + for (String cmd : topic.commands()) { + commandMappings.put(cmd, topic.category()); + } + } + + Map manifest = new LinkedHashMap<>(); + manifest.put("topics", topicList); + manifest.put("commandMappings", commandMappings); + + Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); + String json = gson.toJson(manifest); + + Path manifestFile = outputDir.resolve("help-manifest.json"); + Files.createDirectories(manifestFile.getParent()); + Files.writeString(manifestFile, json + "\n"); + System.out.println("Wrote: " + manifestFile); + } + + // ── Utility ────────────────────────────────────────────────────────── + + private static List listSortedDirectories(Path dir) throws IOException { + try (Stream stream = Files.list(dir)) { + return stream + .filter(Files::isDirectory) + .map(p -> p.getFileName().toString()) + .sorted() + .toList(); + } + } + + private static List listMarkdownFiles(Path dir) throws IOException { + try (Stream stream = Files.list(dir)) { + return stream + .filter(p -> p.toString().endsWith(".md")) + .filter(Files::isRegularFile) + .sorted() + .toList(); + } + } +} diff --git a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java index d8458761..0341e401 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java @@ -1,5 +1,7 @@ package com.hyperfactions.gui.help; +import com.hyperfactions.util.HFMessages; +import com.hypixel.hytale.server.core.universe.PlayerRef; import org.jetbrains.annotations.NotNull; /** @@ -7,26 +9,26 @@ * Each category represents a conceptual area with an accent color for UI rendering. */ public enum HelpCategory { - WELCOME("welcome", "Welcome", "#00FFFF", 0), - YOUR_FACTION("your_faction", "Your Faction", "#44CC44", 1), - POWER_AND_LAND("power_land", "Power & Land", "#FFD700", 2), - DIPLOMACY("diplomacy", "Diplomacy", "#55AAFF", 3), - COMBAT("combat", "Combat & Safety", "#FF5555", 4), - ECONOMY("economy", "Economy", "#FFAA00", 5), - QUICK_REFERENCE("quick_ref", "Quick Reference", "#888888", 6); + WELCOME("welcome", "hyperfactions_gui.help.category.welcome", "#00FFFF", 0), + YOUR_FACTION("your_faction", "hyperfactions_gui.help.category.your_faction", "#44CC44", 1), + POWER_AND_LAND("power_land", "hyperfactions_gui.help.category.power_land", "#FFD700", 2), + DIPLOMACY("diplomacy", "hyperfactions_gui.help.category.diplomacy", "#55AAFF", 3), + COMBAT("combat", "hyperfactions_gui.help.category.combat", "#FF5555", 4), + ECONOMY("economy", "hyperfactions_gui.help.category.economy", "#FFAA00", 5), + QUICK_REFERENCE("quick_ref", "hyperfactions_gui.help.category.quick_ref", "#888888", 6); private final String id; - private final String displayName; + private final String displayNameKey; private final String color; private final int order; - HelpCategory(@NotNull String id, @NotNull String displayName, + HelpCategory(@NotNull String id, @NotNull String displayNameKey, @NotNull String color, int order) { this.id = id; - this.displayName = displayName; + this.displayNameKey = displayNameKey; this.color = color; this.order = order; } @@ -40,11 +42,11 @@ public String id() { } /** - * Gets the display name shown in the UI. + * Gets the display name shown in the UI, resolved via i18n. */ @NotNull public String displayName() { - return displayName; + return HFMessages.get((PlayerRef) null, displayNameKey); } /** diff --git a/src/main/java/com/hyperfactions/gui/help/HelpMessages.java b/src/main/java/com/hyperfactions/gui/help/HelpMessages.java index b838025a..f985f5a5 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpMessages.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpMessages.java @@ -1,510 +1,44 @@ package com.hyperfactions.gui.help; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import com.hyperfactions.util.HFMessages; +import com.hypixel.hytale.server.core.universe.PlayerRef; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Key-based string store for all help content. - * Separates content from rendering code so future locale loading - * only needs to swap this class's backing map. + * Delegates to {@link HFMessages} for i18n resolution via Hytale's I18nModule. * - *

i18n future path: Replace {@link #loadDefaults()} body with a - * JSON/properties file loader keyed by locale. The {@link #get(String)} - * API stays the same.

+ *

Help content keys are prefixed {@code hyperfactions_help.} (auto-prefixed by + * I18nModule from the {@code hyperfactions_help.lang} filename). + * + *

The .lang file is build-generated from markdown sources in {@code src/main/help/}. */ public final class HelpMessages { - private static final Map MESSAGES = new LinkedHashMap<>(); - - static { - loadDefaults(); - } - private HelpMessages() {} /** - * Gets the localized string for a message key. + * Gets the localized string for a help message key. + * Uses server default language. * - * @param key The message key + * @param key The full message key (e.g. "hyperfactions_help.welcome.getting_started.title") * @return The localized string, or the key itself if not found */ @NotNull public static String get(@NotNull String key) { - return MESSAGES.getOrDefault(key, key); + return HFMessages.get((PlayerRef) null, key); } /** - * Collects ordered lines for a topic. - * Looks for keys matching {@code .line.1}, {@code .line.2}, etc. + * Gets the localized string for a help message key, resolved for a specific player's language. * - * @param topicKey The topic key prefix (e.g. "help.welcome.what_are_factions") - * @return Ordered list of line values + * @param player The player (null for server default) + * @param key The full message key + * @return The localized string, or the key itself if not found */ @NotNull - public static List getLines(@NotNull String topicKey) { - List lines = new ArrayList<>(); - for (int i = 1; ; i++) { - String key = topicKey + ".line." + i; - String value = MESSAGES.get(key); - if (value == null) { - break; - } - lines.add(value); - } - return lines; - } - - private static void put(@NotNull String key, @NotNull String value) { - MESSAGES.put(key, value); - } - - private static void loadDefaults() { - // ================================================================= - // Category names - // ================================================================= - put("help.category.welcome", "Welcome"); - put("help.category.your_faction", "Your Faction"); - put("help.category.power_land", "Power & Land"); - put("help.category.diplomacy", "Diplomacy"); - put("help.category.combat", "Combat & Safety"); - put("help.category.economy", "Economy"); - put("help.category.quick_ref", "Quick Reference"); - - // ================================================================= - // WELCOME - // ================================================================= - - // --- What Are Factions? --- - put("help.welcome.what_are_factions.title", "What Are Factions?"); - put("help.welcome.what_are_factions.line.1", - "Factions are player teams that claim territory,"); - put("help.welcome.what_are_factions.line.2", - "build bases, and grow stronger together."); - put("help.welcome.what_are_factions.line.3", - "As a member you get protected land, a faction"); - put("help.welcome.what_are_factions.line.4", - "home, private chat, and diplomatic relations."); - put("help.welcome.what_are_factions.line.5", - "Strength is measured by power. Active members"); - put("help.welcome.what_are_factions.line.6", - "generate power; dying costs it. If power drops"); - put("help.welcome.what_are_factions.line.7", - "below your claim count, enemies can steal land."); - - // --- Getting Started --- - put("help.welcome.getting_started.title", "Getting Started"); - put("help.welcome.getting_started.line.1", - "Ready to dive in? Here's how:"); - put("help.welcome.getting_started.line.2", "/f"); - put("help.welcome.getting_started.line.3", - "Opens the faction menu. Browse factions, create"); - put("help.welcome.getting_started.line.4", - "your own, or check invitations."); - put("help.welcome.getting_started.line.5", - "If invited, check the Invites tab and accept."); - put("help.welcome.getting_started.line.6", - "Otherwise, browse open factions or start fresh."); - put("help.welcome.getting_started.line.7", - "Once in, explore territory and start claiming!"); - - // --- Quick Tips --- - put("help.welcome.quick_tips.title", "Quick Tips"); - put("help.welcome.quick_tips.line.1", "Claiming Land"); - put("help.welcome.quick_tips.line.2", "/f claim"); - put("help.welcome.quick_tips.line.3", - "Protects the chunk you're standing in."); - put("help.welcome.quick_tips.line.4", "Faction Home"); - put("help.welcome.quick_tips.line.5", "/f home"); - put("help.welcome.quick_tips.line.6", - "Teleports to your faction home. Set with /f sethome."); - put("help.welcome.quick_tips.line.7", "Faction Chat"); - put("help.welcome.quick_tips.line.8", "/f c"); - put("help.welcome.quick_tips.line.9", - "Cycles chat mode: Normal > Faction > Ally."); - put("help.welcome.quick_tips.line.10", - "Dying costs power, weakening your territory hold!"); - - // ================================================================= - // YOUR FACTION - // ================================================================= - - // --- Creating a Faction --- - put("help.your_faction.creating.title", "Creating a Faction"); - put("help.your_faction.creating.line.1", - "Starting a faction makes you the Leader with"); - put("help.your_faction.creating.line.2", - "full control over settings, members, and land."); - put("help.your_faction.creating.line.3", "/f create "); - put("help.your_faction.creating.line.4", - "Creates a faction and opens your dashboard."); - put("help.your_faction.creating.line.5", - "Invite friends, claim land, and start building!"); - - // --- Joining a Faction --- - put("help.your_faction.joining.title", "Joining a Faction"); - put("help.your_faction.joining.line.1", - "Three ways to join an existing faction:"); - put("help.your_faction.joining.line.2", "Browse Open Factions"); - put("help.your_faction.joining.line.3", - "Open /f and click Browse. Click Join on any open faction."); - put("help.your_faction.joining.line.4", "Accept an Invitation"); - put("help.your_faction.joining.line.5", - "Check the Invites tab and click Accept."); - put("help.your_faction.joining.line.6", "Request to Join"); - put("help.your_faction.joining.line.7", "/f request "); - put("help.your_faction.joining.line.8", - "Send a request to an invite-only faction."); - - // --- Roles & Ranks --- - put("help.your_faction.roles.title", "Roles & Ranks"); - put("help.your_faction.roles.line.1", - "Three ranks with different capabilities:"); - put("help.your_faction.roles.line.2", "Leader (1 per faction)"); - put("help.your_faction.roles.line.3", - "Full control: disband, transfer ownership,"); - put("help.your_faction.roles.line.4", - "promote/demote, plus all Officer permissions."); - put("help.your_faction.roles.line.5", "Officer"); - put("help.your_faction.roles.line.6", - "Invite/kick, claim/unclaim, set home, relations."); - put("help.your_faction.roles.line.7", "Member"); - put("help.your_faction.roles.line.8", - "Use faction home, chat, build in territory."); - - // --- Managing Members --- - put("help.your_faction.managing.title", "Managing Members"); - put("help.your_faction.managing.line.1", - "Officers and Leaders manage the roster:"); - put("help.your_faction.managing.line.2", "/f invite "); - put("help.your_faction.managing.line.3", - "Sends an invitation. (Officer+)"); - put("help.your_faction.managing.line.4", "/f kick "); - put("help.your_faction.managing.line.5", - "Removes a member. Officers kick Members; Leaders all."); - put("help.your_faction.managing.line.6", "/f promote "); - put("help.your_faction.managing.line.7", - "Promotes a Member to Officer. (Leader only)"); - put("help.your_faction.managing.line.8", "/f demote "); - put("help.your_faction.managing.line.9", - "Demotes an Officer to Member. (Leader only)"); - put("help.your_faction.managing.line.10", "/f transfer "); - put("help.your_faction.managing.line.11", - "Transfers leadership. You become Officer. Cannot undo!"); - - // ================================================================= - // POWER & LAND - // ================================================================= - - // --- Understanding Power --- - put("help.power_land.understanding_power.title", "Understanding Power"); - put("help.power_land.understanding_power.line.1", - "Power lets your faction hold territory. Every"); - put("help.power_land.understanding_power.line.2", - "player has personal power that adds to the total."); - put("help.power_land.understanding_power.line.3", "/f power"); - put("help.power_land.understanding_power.line.4", - "Check your power and your faction's total."); - put("help.power_land.understanding_power.line.5", - "Power regenerates online, decreases on death."); - put("help.power_land.understanding_power.line.6", - "If claims exceed power, you're vulnerable!"); - - // --- Claiming Territory --- - put("help.power_land.claiming.title", "Claiming Territory"); - put("help.power_land.claiming.line.1", - "Claiming a chunk protects it. Only members can"); - put("help.power_land.claiming.line.2", - "build, break, or access containers inside."); - put("help.power_land.claiming.line.3", "/f claim"); - put("help.power_land.claiming.line.4", - "Claims the chunk you're standing in. (Officer+)"); - put("help.power_land.claiming.line.5", "/f unclaim"); - put("help.power_land.claiming.line.6", - "Releases a claim back to wilderness. (Officer+)"); - put("help.power_land.claiming.line.7", - "Each claim costs one power. Don't over-expand!"); - - // --- The Territory Map --- - put("help.power_land.territory_map.title", "The Territory Map"); - put("help.power_land.territory_map.line.1", - "A bird's-eye view of claimed chunks near you."); - put("help.power_land.territory_map.line.2", "/f map"); - put("help.power_land.territory_map.line.3", - "Opens the territory map. Click chunks to claim."); - put("help.power_land.territory_map.line.4", - "Your faction shows in your color. Allies in blue,"); - put("help.power_land.territory_map.line.5", - "enemies in red, neutrals in gray, wilderness dark."); - - // --- Losing Territory --- - put("help.power_land.losing_territory.title", "Losing Territory"); - put("help.power_land.losing_territory.line.1", - "If total power drops below claim count, you're"); - put("help.power_land.losing_territory.line.2", - "raidable. Enemies can overclaim your chunks."); - put("help.power_land.losing_territory.line.3", "/f overclaim"); - put("help.power_land.losing_territory.line.4", - "Takes a chunk from a weakened faction. (Officer+)"); - put("help.power_land.losing_territory.line.5", - "Stay safe: stay active, avoid deaths, don't"); - put("help.power_land.losing_territory.line.6", - "over-expand beyond what your power supports."); - - // ================================================================= - // DIPLOMACY - // ================================================================= - - // --- Faction Relations --- - put("help.diplomacy.relations.title", "Faction Relations"); - put("help.diplomacy.relations.line.1", - "Every faction pair has a diplomatic relation:"); - put("help.diplomacy.relations.line.2", - "Ally \u2014 No friendly fire, protected from each"); - put("help.diplomacy.relations.line.3", - "other's claims. Requires mutual agreement."); - put("help.diplomacy.relations.line.4", - "Enemy \u2014 PvP enabled in each other's territory."); - put("help.diplomacy.relations.line.5", - "Overclaiming possible if target is weakened."); - put("help.diplomacy.relations.line.6", - "Neutral \u2014 Default state. Standard rules apply."); - put("help.diplomacy.relations.line.7", "/f relations"); - put("help.diplomacy.relations.line.8", - "View all alliances, enemies, and pending requests."); - - // --- Forming Alliances --- - put("help.diplomacy.alliances.title", "Forming Alliances"); - put("help.diplomacy.alliances.line.1", - "Alliances protect both factions from friendly"); - put("help.diplomacy.alliances.line.2", - "fire and territorial disputes."); - put("help.diplomacy.alliances.line.3", "/f ally "); - put("help.diplomacy.alliances.line.4", - "Sends an alliance request. Both sides must agree."); - put("help.diplomacy.alliances.line.5", - "Benefits: no friendly fire, shared map visibility."); - put("help.diplomacy.alliances.line.6", - "There may be a limit on alliance count."); - - // --- Enemy Factions --- - put("help.diplomacy.enemies.title", "Enemy Factions"); - put("help.diplomacy.enemies.line.1", - "Declaring an enemy enables PvP and territorial"); - put("help.diplomacy.enemies.line.2", - "aggression against them. One-way action."); - put("help.diplomacy.enemies.line.3", "/f enemy "); - put("help.diplomacy.enemies.line.4", - "Declares enemy immediately. No agreement needed."); - put("help.diplomacy.enemies.line.5", - "PvP enabled in each other's territory. Overclaim"); - put("help.diplomacy.enemies.line.6", - "possible if they become weakened."); - put("help.diplomacy.enemies.line.7", "/f neutral "); - put("help.diplomacy.enemies.line.8", - "Resets relation to neutral, ending enemy status."); - - // ================================================================= - // COMBAT & SAFETY - // ================================================================= - - // --- Combat Tagging --- - put("help.combat.tagging.title", "Combat Tagging"); - put("help.combat.tagging.line.1", - "Attacking or being attacked combat tags you."); - put("help.combat.tagging.line.2", - "A timer shows the remaining tag duration."); - put("help.combat.tagging.line.3", - "While tagged: no /f home, /f stuck, or teleports."); - put("help.combat.tagging.line.4", - "The tag resets with each new combat action."); - put("help.combat.tagging.line.5", - "Logging out while tagged is risky. Stay and fight!"); - - // --- Territory Protection --- - put("help.combat.protection.title", "Territory Protection"); - put("help.combat.protection.line.1", - "Claimed territory has several protections:"); - put("help.combat.protection.line.2", "Block Protection"); - put("help.combat.protection.line.3", - "Only members can place or break blocks."); - put("help.combat.protection.line.4", "Container Protection"); - put("help.combat.protection.line.5", - "Chests, barrels, etc. are secured to members."); - put("help.combat.protection.line.6", "Entry Alerts"); - put("help.combat.protection.line.7", - "You're notified when non-members enter claims."); - put("help.combat.protection.line.8", - "Territory protects blocks, not players!"); - - // --- Special Zones --- - put("help.combat.zones.title", "Special Zones"); - put("help.combat.zones.line.1", - "Admins can create zones with special rules:"); - put("help.combat.zones.line.2", "SafeZone"); - put("help.combat.zones.line.3", - "No PvP, no block breaking. For spawn/trading."); - put("help.combat.zones.line.4", "WarZone"); - put("help.combat.zones.line.5", - "PvP always enabled, no protection. Battle areas."); - put("help.combat.zones.line.6", - "Zone rules always override faction territory."); - - // --- Death & Recovery --- - put("help.combat.death.title", "Death & Recovery"); - put("help.combat.death.line.1", - "Death has real consequences:"); - put("help.combat.death.line.2", - "You lose personal power, lowering faction total."); - put("help.combat.death.line.3", - "If claims exceed power, enemies can overclaim."); - put("help.combat.death.line.4", - "Power regenerates while online. Multiple deaths"); - put("help.combat.death.line.5", - "can leave your faction dangerously vulnerable."); - put("help.combat.death.line.6", - "Pick your battles carefully!"); - - // ================================================================= - // ECONOMY - // ================================================================= - - // --- Faction Treasury --- - put("help.economy.treasury.title", "Faction Treasury"); - put("help.economy.treasury.line.1", - "Every faction has a shared treasury. Managed"); - put("help.economy.treasury.line.2", - "by Officers and the Leader."); - put("help.economy.treasury.line.3", "/f balance"); - put("help.economy.treasury.line.4", - "Check your faction's treasury balance. (Alias: bal)"); - put("help.economy.treasury.line.5", - "Contribute regularly to keep your faction funded!"); - - // --- Managing Funds --- - put("help.economy.funds.title", "Managing Funds"); - put("help.economy.funds.line.1", - "Members deposit; Officers can withdraw/transfer."); - put("help.economy.funds.line.2", "/f deposit "); - put("help.economy.funds.line.3", - "Deposit from your balance into the treasury."); - put("help.economy.funds.line.4", "/f withdraw "); - put("help.economy.funds.line.5", - "Withdraw from treasury. (Officer+)"); - put("help.economy.funds.line.6", "/f money transfer "); - put("help.economy.funds.line.7", - "Transfer funds to another faction's treasury."); - put("help.economy.funds.line.8", - "All transactions are logged for review."); - - // --- Economy Commands --- - put("help.economy.commands.title", "Economy Commands"); - put("help.economy.commands.line.1", - "Quick reference for economy commands:"); - put("help.economy.commands.line.2", "/f balance"); - put("help.economy.commands.line.3", "View treasury balance."); - put("help.economy.commands.line.4", "/f deposit "); - put("help.economy.commands.line.5", "Deposit funds."); - put("help.economy.commands.line.6", "/f withdraw "); - put("help.economy.commands.line.7", "Withdraw funds. (Officer+)"); - put("help.economy.commands.line.8", "/f money transfer "); - put("help.economy.commands.line.9", "Transfer to another faction."); - put("help.economy.commands.line.10", "/f money log [page]"); - put("help.economy.commands.line.11", "View transaction history."); - - // ================================================================= - // QUICK REFERENCE - // ================================================================= - - // --- All Commands --- - put("help.quick_ref.all_commands.title", "All Commands"); - - // Core - put("help.quick_ref.all_commands.line.1", "Core"); - put("help.quick_ref.all_commands.line.2", "/f \u2014 Open faction menu (alias: gui, menu)"); - put("help.quick_ref.all_commands.line.3", "/f help \u2014 Open this help center"); - put("help.quick_ref.all_commands.line.4", "/f create \u2014 Create a faction"); - put("help.quick_ref.all_commands.line.5", "/f disband \u2014 Delete your faction (Leader)"); - put("help.quick_ref.all_commands.line.6", "/f leave \u2014 Leave your faction"); - - // Membership - put("help.quick_ref.all_commands.line.7", "Membership"); - put("help.quick_ref.all_commands.line.8", "/f invite \u2014 Invite player (Officer+)"); - put("help.quick_ref.all_commands.line.9", "/f accept [faction] \u2014 Accept invite (alias: join)"); - put("help.quick_ref.all_commands.line.10", "/f request \u2014 Request to join"); - put("help.quick_ref.all_commands.line.11", "/f kick \u2014 Remove member (Officer+)"); - put("help.quick_ref.all_commands.line.12", "/f promote \u2014 Promote to Officer (Leader)"); - put("help.quick_ref.all_commands.line.13", "/f demote \u2014 Demote to Member (Leader)"); - put("help.quick_ref.all_commands.line.14", "/f transfer \u2014 Transfer leadership"); - - // Territory - put("help.quick_ref.all_commands.line.15", "Territory"); - put("help.quick_ref.all_commands.line.16", "/f claim \u2014 Claim current chunk (Officer+)"); - put("help.quick_ref.all_commands.line.17", "/f unclaim \u2014 Release current chunk (Officer+)"); - put("help.quick_ref.all_commands.line.18", "/f overclaim \u2014 Take weakened faction's chunk"); - put("help.quick_ref.all_commands.line.19", "/f map \u2014 Open territory map"); - - // Teleport - put("help.quick_ref.all_commands.line.20", "Teleport"); - put("help.quick_ref.all_commands.line.21", "/f home \u2014 Teleport to faction home"); - put("help.quick_ref.all_commands.line.22", "/f sethome \u2014 Set faction home (Officer+)"); - put("help.quick_ref.all_commands.line.23", "/f delhome \u2014 Delete faction home (Officer+)"); - put("help.quick_ref.all_commands.line.24", "/f stuck \u2014 Escape enemy territory"); - - // Information - put("help.quick_ref.all_commands.line.25", "Information"); - put("help.quick_ref.all_commands.line.26", "/f info [faction] \u2014 View faction details"); - put("help.quick_ref.all_commands.line.27", "/f list \u2014 Browse all factions"); - put("help.quick_ref.all_commands.line.28", "/f members \u2014 View roster"); - put("help.quick_ref.all_commands.line.29", "/f who [player] \u2014 View player info"); - put("help.quick_ref.all_commands.line.30", "/f power [player] \u2014 Check power levels"); - put("help.quick_ref.all_commands.line.31", "/f invites \u2014 Manage invites/requests"); - put("help.quick_ref.all_commands.line.32", "/f relations \u2014 View diplomatic relations"); - - // Diplomacy - put("help.quick_ref.all_commands.line.33", "Diplomacy"); - put("help.quick_ref.all_commands.line.34", "/f ally \u2014 Request alliance (Officer+)"); - put("help.quick_ref.all_commands.line.35", "/f enemy \u2014 Declare enemy (Officer+)"); - put("help.quick_ref.all_commands.line.36", "/f neutral \u2014 Reset to neutral"); - - // Settings - put("help.quick_ref.all_commands.line.37", "Settings"); - put("help.quick_ref.all_commands.line.38", "/f settings \u2014 Open settings GUI (Officer+)"); - put("help.quick_ref.all_commands.line.39", "/f rename \u2014 Rename faction (Leader)"); - put("help.quick_ref.all_commands.line.40", "/f desc [text] \u2014 Set description (Officer+)"); - put("help.quick_ref.all_commands.line.41", "/f color \u2014 Set faction color (Officer+)"); - put("help.quick_ref.all_commands.line.42", "/f open \u2014 Allow anyone to join (Leader)"); - put("help.quick_ref.all_commands.line.43", "/f close \u2014 Require invitation (Leader)"); - - // Economy - put("help.quick_ref.all_commands.line.44", "Economy"); - put("help.quick_ref.all_commands.line.45", "/f balance \u2014 View treasury"); - put("help.quick_ref.all_commands.line.46", "/f deposit \u2014 Deposit funds"); - put("help.quick_ref.all_commands.line.47", "/f withdraw \u2014 Withdraw (Officer+)"); - put("help.quick_ref.all_commands.line.48", "/f money transfer \u2014 Transfer"); - put("help.quick_ref.all_commands.line.49", "/f money log [page] \u2014 Transaction history"); - - // Chat - put("help.quick_ref.all_commands.line.50", "Chat"); - put("help.quick_ref.all_commands.line.51", "/f c \u2014 Cycle: Normal > Faction > Ally"); - put("help.quick_ref.all_commands.line.52", "/f c f \u2014 Set faction chat"); - put("help.quick_ref.all_commands.line.53", "/f c a \u2014 Set ally chat"); - put("help.quick_ref.all_commands.line.54", "/f c off \u2014 Set public chat"); - - // Admin - put("help.quick_ref.all_commands.line.55", "Admin (requires hyperfactions.admin)"); - put("help.quick_ref.all_commands.line.56", "/f admin \u2014 Open admin dashboard"); - put("help.quick_ref.all_commands.line.57", "/f admin reload \u2014 Reload configuration"); - put("help.quick_ref.all_commands.line.58", "/f admin sync \u2014 Sync faction data"); - put("help.quick_ref.all_commands.line.59", "/f admin factions \u2014 Faction management"); - put("help.quick_ref.all_commands.line.60", "/f admin config \u2014 Configuration editor"); - put("help.quick_ref.all_commands.line.61", "/f admin zones \u2014 Zone management"); - put("help.quick_ref.all_commands.line.62", "/f admin backup create \u2014 Create backup"); - put("help.quick_ref.all_commands.line.63", "/f admin backup restore \u2014 Restore backup"); - put("help.quick_ref.all_commands.line.64", "/f admin safezone \u2014 Create SafeZone"); - put("help.quick_ref.all_commands.line.65", "/f admin warzone \u2014 Create WarZone"); - put("help.quick_ref.all_commands.line.66", "/f admin debug toggle \u2014 Debug logging"); + public static String get(@Nullable PlayerRef player, @NotNull String key) { + return HFMessages.get(player, key); } } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java index e5ffdf5e..c9f7b425 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java @@ -1,14 +1,21 @@ package com.hyperfactions.gui.help; -import static com.hyperfactions.gui.help.HelpEntry.*; - +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.hyperfactions.util.Logger; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * Central registry of all help content. - * Provides lookup by category, topic ID, or command name. + * Loads topic structure from a build-generated {@code help-manifest.json} + * and provides lookup by category, topic ID, or command name. */ public final class HelpRegistry { @@ -21,7 +28,8 @@ public final class HelpRegistry { private final Map categoryByCommand = new HashMap<>(); private HelpRegistry() { - initializeContent(); + loadFromManifest(); + registerAdditionalCommandMappings(); } /** Returns the instance. */ @@ -59,395 +67,103 @@ private void registerCommandMapping(@NotNull String command, @NotNull HelpCatego categoryByCommand.put(command.toLowerCase(), category); } - private static String k(String category, String topic, int line) { - return "help." + category + "." + topic + ".line." + line; - } - - private void initializeContent() { - // ===================================================================== - // WELCOME - // ===================================================================== - - register(HelpTopic.of("welcome_what", "help.welcome.what_are_factions.title", List.of( - text(k("welcome", "what_are_factions", 1)), - text(k("welcome", "what_are_factions", 2)), - spacer(), - text(k("welcome", "what_are_factions", 3)), - text(k("welcome", "what_are_factions", 4)), - spacer(), - text(k("welcome", "what_are_factions", 5)), - text(k("welcome", "what_are_factions", 6)), - text(k("welcome", "what_are_factions", 7)) - ), HelpCategory.WELCOME)); - - register(HelpTopic.withCommands("welcome_started", "help.welcome.getting_started.title", List.of( - text(k("welcome", "getting_started", 1)), - spacer(), - command(k("welcome", "getting_started", 2)), - text(k("welcome", "getting_started", 3)), - text(k("welcome", "getting_started", 4)), - spacer(), - text(k("welcome", "getting_started", 5)), - text(k("welcome", "getting_started", 6)), - spacer(), - tip(k("welcome", "getting_started", 7)) - ), List.of("gui", "menu"), HelpCategory.WELCOME)); - - register(HelpTopic.of("welcome_tips", "help.welcome.quick_tips.title", List.of( - heading(k("welcome", "quick_tips", 1)), - command(k("welcome", "quick_tips", 2)), - text(k("welcome", "quick_tips", 3)), - spacer(), - heading(k("welcome", "quick_tips", 4)), - command(k("welcome", "quick_tips", 5)), - text(k("welcome", "quick_tips", 6)), - spacer(), - heading(k("welcome", "quick_tips", 7)), - command(k("welcome", "quick_tips", 8)), - text(k("welcome", "quick_tips", 9)), - spacer(), - tip(k("welcome", "quick_tips", 10)) - ), HelpCategory.WELCOME)); - - // ===================================================================== - // YOUR FACTION - // ===================================================================== - - register(HelpTopic.withCommands("faction_creating", "help.your_faction.creating.title", List.of( - text(k("your_faction", "creating", 1)), - text(k("your_faction", "creating", 2)), - spacer(), - command(k("your_faction", "creating", 3)), - text(k("your_faction", "creating", 4)), - spacer(), - tip(k("your_faction", "creating", 5)) - ), List.of("create"), HelpCategory.YOUR_FACTION)); - - register(HelpTopic.withCommands("faction_joining", "help.your_faction.joining.title", List.of( - text(k("your_faction", "joining", 1)), - spacer(), - heading(k("your_faction", "joining", 2)), - text(k("your_faction", "joining", 3)), - spacer(), - heading(k("your_faction", "joining", 4)), - text(k("your_faction", "joining", 5)), - spacer(), - heading(k("your_faction", "joining", 6)), - command(k("your_faction", "joining", 7)), - text(k("your_faction", "joining", 8)) - ), List.of("accept", "join", "request"), HelpCategory.YOUR_FACTION)); - - register(HelpTopic.of("faction_roles", "help.your_faction.roles.title", List.of( - text(k("your_faction", "roles", 1)), - spacer(), - heading(k("your_faction", "roles", 2)), - text(k("your_faction", "roles", 3)), - text(k("your_faction", "roles", 4)), - spacer(), - heading(k("your_faction", "roles", 5)), - text(k("your_faction", "roles", 6)), - spacer(), - heading(k("your_faction", "roles", 7)), - text(k("your_faction", "roles", 8)) - ), HelpCategory.YOUR_FACTION)); - - register(HelpTopic.withCommands("faction_managing", "help.your_faction.managing.title", List.of( - text(k("your_faction", "managing", 1)), - spacer(), - command(k("your_faction", "managing", 2)), - text(k("your_faction", "managing", 3)), - spacer(), - command(k("your_faction", "managing", 4)), - text(k("your_faction", "managing", 5)), - spacer(), - command(k("your_faction", "managing", 6)), - text(k("your_faction", "managing", 7)), - spacer(), - command(k("your_faction", "managing", 8)), - text(k("your_faction", "managing", 9)), - spacer(), - command(k("your_faction", "managing", 10)), - tip(k("your_faction", "managing", 11)) - ), List.of("invite", "kick", "promote", "demote", "transfer"), - HelpCategory.YOUR_FACTION)); - - // ===================================================================== - // POWER & LAND - // ===================================================================== - - register(HelpTopic.withCommands("power_understanding", "help.power_land.understanding_power.title", List.of( - text(k("power_land", "understanding_power", 1)), - text(k("power_land", "understanding_power", 2)), - spacer(), - command(k("power_land", "understanding_power", 3)), - text(k("power_land", "understanding_power", 4)), - spacer(), - text(k("power_land", "understanding_power", 5)), - tip(k("power_land", "understanding_power", 6)) - ), List.of("power"), HelpCategory.POWER_AND_LAND)); - - register(HelpTopic.withCommands("power_claiming", "help.power_land.claiming.title", List.of( - text(k("power_land", "claiming", 1)), - text(k("power_land", "claiming", 2)), - spacer(), - command(k("power_land", "claiming", 3)), - text(k("power_land", "claiming", 4)), - spacer(), - command(k("power_land", "claiming", 5)), - text(k("power_land", "claiming", 6)), - spacer(), - tip(k("power_land", "claiming", 7)) - ), List.of("claim", "unclaim"), HelpCategory.POWER_AND_LAND)); - - register(HelpTopic.withCommands("power_map", "help.power_land.territory_map.title", List.of( - text(k("power_land", "territory_map", 1)), - spacer(), - command(k("power_land", "territory_map", 2)), - text(k("power_land", "territory_map", 3)), - spacer(), - text(k("power_land", "territory_map", 4)), - text(k("power_land", "territory_map", 5)) - ), List.of("map"), HelpCategory.POWER_AND_LAND)); - - register(HelpTopic.withCommands("power_losing", "help.power_land.losing_territory.title", List.of( - text(k("power_land", "losing_territory", 1)), - text(k("power_land", "losing_territory", 2)), - spacer(), - command(k("power_land", "losing_territory", 3)), - text(k("power_land", "losing_territory", 4)), - spacer(), - text(k("power_land", "losing_territory", 5)), - text(k("power_land", "losing_territory", 6)) - ), List.of("overclaim"), HelpCategory.POWER_AND_LAND)); - - // ===================================================================== - // DIPLOMACY - // ===================================================================== - - register(HelpTopic.withCommands("diplomacy_relations", "help.diplomacy.relations.title", List.of( - text(k("diplomacy", "relations", 1)), - spacer(), - text(k("diplomacy", "relations", 2)), - text(k("diplomacy", "relations", 3)), - spacer(), - text(k("diplomacy", "relations", 4)), - text(k("diplomacy", "relations", 5)), - spacer(), - text(k("diplomacy", "relations", 6)), - spacer(), - command(k("diplomacy", "relations", 7)), - text(k("diplomacy", "relations", 8)) - ), List.of("relations"), HelpCategory.DIPLOMACY)); - - register(HelpTopic.withCommands("diplomacy_alliances", "help.diplomacy.alliances.title", List.of( - text(k("diplomacy", "alliances", 1)), - text(k("diplomacy", "alliances", 2)), - spacer(), - command(k("diplomacy", "alliances", 3)), - text(k("diplomacy", "alliances", 4)), - spacer(), - text(k("diplomacy", "alliances", 5)), - tip(k("diplomacy", "alliances", 6)) - ), List.of("ally"), HelpCategory.DIPLOMACY)); - - register(HelpTopic.withCommands("diplomacy_enemies", "help.diplomacy.enemies.title", List.of( - text(k("diplomacy", "enemies", 1)), - text(k("diplomacy", "enemies", 2)), - spacer(), - command(k("diplomacy", "enemies", 3)), - text(k("diplomacy", "enemies", 4)), - spacer(), - text(k("diplomacy", "enemies", 5)), - text(k("diplomacy", "enemies", 6)), - spacer(), - command(k("diplomacy", "enemies", 7)), - text(k("diplomacy", "enemies", 8)) - ), List.of("enemy", "neutral"), HelpCategory.DIPLOMACY)); - - // ===================================================================== - // COMBAT & SAFETY - // ===================================================================== - - register(HelpTopic.of("combat_tagging", "help.combat.tagging.title", List.of( - text(k("combat", "tagging", 1)), - text(k("combat", "tagging", 2)), - spacer(), - text(k("combat", "tagging", 3)), - text(k("combat", "tagging", 4)), - spacer(), - tip(k("combat", "tagging", 5)) - ), HelpCategory.COMBAT)); - - register(HelpTopic.of("combat_protection", "help.combat.protection.title", List.of( - text(k("combat", "protection", 1)), - spacer(), - heading(k("combat", "protection", 2)), - text(k("combat", "protection", 3)), - spacer(), - heading(k("combat", "protection", 4)), - text(k("combat", "protection", 5)), - spacer(), - heading(k("combat", "protection", 6)), - text(k("combat", "protection", 7)), - spacer(), - tip(k("combat", "protection", 8)) - ), HelpCategory.COMBAT)); - - register(HelpTopic.of("combat_zones", "help.combat.zones.title", List.of( - text(k("combat", "zones", 1)), - spacer(), - heading(k("combat", "zones", 2)), - text(k("combat", "zones", 3)), - spacer(), - heading(k("combat", "zones", 4)), - text(k("combat", "zones", 5)), - spacer(), - tip(k("combat", "zones", 6)) - ), HelpCategory.COMBAT)); - - register(HelpTopic.withCommands("combat_death", "help.combat.death.title", List.of( - text(k("combat", "death", 1)), - spacer(), - text(k("combat", "death", 2)), - text(k("combat", "death", 3)), - spacer(), - text(k("combat", "death", 4)), - text(k("combat", "death", 5)), - spacer(), - tip(k("combat", "death", 6)) - ), List.of("home", "sethome", "stuck"), HelpCategory.COMBAT)); - - // ===================================================================== - // ECONOMY - // ===================================================================== - - register(HelpTopic.withCommands("economy_treasury", "help.economy.treasury.title", List.of( - text(k("economy", "treasury", 1)), - text(k("economy", "treasury", 2)), - spacer(), - command(k("economy", "treasury", 3)), - text(k("economy", "treasury", 4)), - spacer(), - tip(k("economy", "treasury", 5)) - ), List.of("balance"), HelpCategory.ECONOMY)); - - register(HelpTopic.withCommands("economy_funds", "help.economy.funds.title", List.of( - text(k("economy", "funds", 1)), - spacer(), - command(k("economy", "funds", 2)), - text(k("economy", "funds", 3)), - spacer(), - command(k("economy", "funds", 4)), - text(k("economy", "funds", 5)), - spacer(), - command(k("economy", "funds", 6)), - text(k("economy", "funds", 7)), - spacer(), - tip(k("economy", "funds", 8)) - ), List.of("deposit", "withdraw"), HelpCategory.ECONOMY)); - - register(HelpTopic.of("economy_commands", "help.economy.commands.title", List.of( - text(k("economy", "commands", 1)), - spacer(), - command(k("economy", "commands", 2)), - text(k("economy", "commands", 3)), - spacer(), - command(k("economy", "commands", 4)), - text(k("economy", "commands", 5)), - spacer(), - command(k("economy", "commands", 6)), - text(k("economy", "commands", 7)), - spacer(), - command(k("economy", "commands", 8)), - text(k("economy", "commands", 9)), - spacer(), - command(k("economy", "commands", 10)), - text(k("economy", "commands", 11)) - ), HelpCategory.ECONOMY)); - - // ===================================================================== - // QUICK REFERENCE — All Commands - // ===================================================================== - - List cmdEntries = new ArrayList<>(); - String prefix = "help.quick_ref.all_commands.line."; - - // Core (lines 1-6) - cmdEntries.add(heading(prefix + "1")); - for (int i = 2; i <= 6; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Membership (lines 7-14) - cmdEntries.add(heading(prefix + "7")); - for (int i = 8; i <= 14; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Territory (lines 15-19) - cmdEntries.add(heading(prefix + "15")); - for (int i = 16; i <= 19; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Teleport (lines 20-24) - cmdEntries.add(heading(prefix + "20")); - for (int i = 21; i <= 24; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Information (lines 25-32) - cmdEntries.add(heading(prefix + "25")); - for (int i = 26; i <= 32; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Diplomacy (lines 33-36) - cmdEntries.add(heading(prefix + "33")); - for (int i = 34; i <= 36; i++) { - cmdEntries.add(command(prefix + i)); - } - cmdEntries.add(spacer()); - - // Settings (lines 37-43) - cmdEntries.add(heading(prefix + "37")); - for (int i = 38; i <= 43; i++) { - cmdEntries.add(command(prefix + i)); + /** + * Loads help content structure from the build-generated help-manifest.json. + */ + private void loadFromManifest() { + try (InputStream is = getClass().getClassLoader().getResourceAsStream("help-manifest.json")) { + if (is == null) { + Logger.warn("help-manifest.json not found in classpath — help system will be empty"); + return; + } + + Gson gson = new Gson(); + JsonObject manifest = gson.fromJson(new InputStreamReader(is, StandardCharsets.UTF_8), JsonObject.class); + + // Load topics + JsonArray topics = manifest.getAsJsonArray("topics"); + if (topics != null) { + for (JsonElement topicElement : topics) { + JsonObject topicObj = topicElement.getAsJsonObject(); + HelpTopic topic = parseTopic(topicObj); + if (topic != null) { + register(topic); + } + } + } + + // Load additional command mappings from manifest + JsonObject cmdMappings = manifest.getAsJsonObject("commandMappings"); + if (cmdMappings != null) { + for (Map.Entry entry : cmdMappings.entrySet()) { + String cmd = entry.getKey(); + String categoryId = entry.getValue().getAsString(); + HelpCategory category = HelpCategory.fromId(categoryId); + // Only add if not already mapped by a topic's commands + categoryByCommand.putIfAbsent(cmd.toLowerCase(), category); + } + } + + Logger.info("Loaded %d help topics from manifest", topicsById.size()); + } catch (Exception e) { + Logger.warn("Failed to load help manifest: %s", e.getMessage()); } - cmdEntries.add(spacer()); + } - // Economy (lines 44-49) - cmdEntries.add(heading(prefix + "44")); - for (int i = 45; i <= 49; i++) { - cmdEntries.add(command(prefix + i)); + /** + * Parses a single topic from the manifest JSON. + */ + @Nullable + private HelpTopic parseTopic(@NotNull JsonObject topicObj) { + String id = topicObj.get("id").getAsString(); + String categoryId = topicObj.get("category").getAsString(); + String titleKey = topicObj.get("titleKey").getAsString(); + + HelpCategory category = HelpCategory.fromId(categoryId); + + // Parse commands + List commands = new ArrayList<>(); + JsonArray cmds = topicObj.getAsJsonArray("commands"); + if (cmds != null) { + for (JsonElement cmd : cmds) { + commands.add(cmd.getAsString()); + } } - cmdEntries.add(spacer()); - // Chat (lines 50-54) - cmdEntries.add(heading(prefix + "50")); - for (int i = 51; i <= 54; i++) { - cmdEntries.add(command(prefix + i)); + // Parse entries + List entries = new ArrayList<>(); + JsonArray entriesArray = topicObj.getAsJsonArray("entries"); + if (entriesArray != null) { + for (JsonElement entryElement : entriesArray) { + JsonObject entryObj = entryElement.getAsJsonObject(); + String type = entryObj.get("type").getAsString(); + String key = entryObj.has("key") ? entryObj.get("key").getAsString() : ""; + + HelpEntry entry = switch (type) { + case "TEXT" -> HelpEntry.text(key); + case "COMMAND" -> HelpEntry.command(key); + case "TIP" -> HelpEntry.tip(key); + case "HEADING" -> HelpEntry.heading(key); + case "SPACER" -> HelpEntry.spacer(); + default -> null; + }; + if (entry != null) { + entries.add(entry); + } + } } - cmdEntries.add(spacer()); - // Admin (lines 55-66) - cmdEntries.add(heading(prefix + "55")); - for (int i = 56; i <= 66; i++) { - cmdEntries.add(command(prefix + i)); + if (commands.isEmpty()) { + return HelpTopic.of(id, titleKey, entries, category); } + return HelpTopic.withCommands(id, titleKey, entries, commands, category); + } - register(HelpTopic.of("quickref_commands", "help.quick_ref.all_commands.title", - cmdEntries, HelpCategory.QUICK_REFERENCE)); - - // ===================================================================== - // Additional command → category mappings for deep-linking - // ===================================================================== - + /** + * Registers additional command → category mappings that aren't tied to specific topics. + * These provide general navigation from any command to its relevant help category. + */ + private void registerAdditionalCommandMappings() { registerCommandMapping("help", HelpCategory.WELCOME); registerCommandMapping("info", HelpCategory.YOUR_FACTION); diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang new file mode 100644 index 00000000..b36330b1 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -0,0 +1,12 @@ +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference From 9ea102a6220601190902561ef651a621697703c1 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 14:47:09 -0700 Subject: [PATCH 09/76] chore: exclude build package from gitignore pattern --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7d74e39a..af0c00dc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .gradle/ build/ !gradle/wrapper/gradle-wrapper.jar +!src/main/java/com/hyperfactions/build/ # IDE .idea/ From 5ad45e01fc106ff4d7b446a8951229285fd1e568 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 15:11:34 -0700 Subject: [PATCH 10/76] feat: localize nav system, shared pages, and modal pages (Phase 3a) Migrate navigation infrastructure to resolve display names via i18n keys instead of hardcoded English strings. NavBarUtil.buildButtons() now accepts PlayerRef and resolves keys through HFMessages. All page registry entries in GuiManager updated to use MessageKeys constants. Shared pages migrated: MainMenuPage (section titles), FactionInfoPage (status labels, descriptions), RenameModalPage, DescriptionModalPage, TagModalPage (all validation/success messages). New files: hyperfactions_admin.lang (admin nav keys). --- .../com/hyperfactions/gui/GuiManager.java | 63 +++++++------- .../gui/admin/AdminNavBarHelper.java | 2 +- .../gui/faction/NavBarHelper.java | 2 +- .../gui/newplayer/NewPlayerNavBarHelper.java | 2 +- .../hyperfactions/gui/shared/NavBarUtil.java | 9 +- .../gui/shared/page/DescriptionModalPage.java | 26 ++++-- .../gui/shared/page/FactionInfoPage.java | 27 +++--- .../gui/shared/page/MainMenuPage.java | 18 ++-- .../gui/shared/page/RenameModalPage.java | 27 +++--- .../gui/shared/page/TagModalPage.java | 34 ++++---- .../com/hyperfactions/util/MessageKeys.java | 82 +++++++++++++++++++ .../Server/Languages/en-US/hyperfactions.lang | 1 + .../Languages/en-US/hyperfactions_admin.lang | 17 ++++ .../Languages/en-US/hyperfactions_gui.lang | 58 +++++++++++++ 14 files changed, 278 insertions(+), 90 deletions(-) create mode 100644 src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang diff --git a/src/main/java/com/hyperfactions/gui/GuiManager.java b/src/main/java/com/hyperfactions/gui/GuiManager.java index ae641b07..dfb48b71 100644 --- a/src/main/java/com/hyperfactions/gui/GuiManager.java +++ b/src/main/java/com/hyperfactions/gui/GuiManager.java @@ -18,6 +18,7 @@ import com.hyperfactions.gui.shared.page.*; import com.hyperfactions.manager.*; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.entity.entities.Player; @@ -109,7 +110,7 @@ private void registerPages() { // If player has faction, show enhanced dashboard; otherwise show main page registry.registerEntry(new Entry( "dashboard", - "Dashboard", + MessageKeys.Nav.DASHBOARD, null, // No permission required (player, ref, store, playerRef, faction, guiManager) -> { if (faction != null) { @@ -127,7 +128,7 @@ private void registerPages() { // Chat page (faction/ally chat history with send-from-GUI) registry.registerEntry(new Entry( "chat", - "Chat", + MessageKeys.Nav.CHAT, Permissions.CHAT_FACTION, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -148,7 +149,7 @@ private void registerPages() { // Members page registry.registerEntry(new Entry( "members", - "Members", + MessageKeys.Nav.MEMBERS, Permissions.MEMBERS, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -164,7 +165,7 @@ private void registerPages() { // Invites page (officers+ only) - shows outgoing invites and incoming join requests registry.registerEntry(new Entry( "invites", - "Invites", + MessageKeys.Nav.INVITES, Permissions.INVITE, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -182,7 +183,7 @@ private void registerPages() { // Browser page registry.registerEntry(new Entry( "browser", - "Browse", + MessageKeys.Nav.BROWSER, null, (player, ref, store, playerRef, faction, guiManager) -> new FactionBrowserPage(playerRef, factionManager.get(), powerManager.get(), guiManager), @@ -194,7 +195,7 @@ private void registerPages() { // Map page registry.registerEntry(new Entry( "map", - "Map", + MessageKeys.Nav.MAP, Permissions.MAP, (player, ref, store, playerRef, faction, guiManager) -> new ChunkMapPage(playerRef, factionManager.get(), claimManager.get(), @@ -207,7 +208,7 @@ private void registerPages() { // Leaderboard page registry.registerEntry(new Entry( "leaderboard", - "Leaderboard", + MessageKeys.Nav.LEADERBOARD, null, (player, ref, store, playerRef, faction, guiManager) -> { EconomyManager econ = plugin.get().isTreasuryEnabled() ? plugin.get().getEconomyManager() : null; @@ -221,7 +222,7 @@ private void registerPages() { // Relations page registry.registerEntry(new Entry( "relations", - "Relations", + MessageKeys.Nav.RELATIONS, Permissions.RELATIONS, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -239,7 +240,7 @@ private void registerPages() { if (plugin.get().isTreasuryEnabled()) { registry.registerEntry(new Entry( "treasury", - "Treasury", + MessageKeys.Nav.TREASURY, Permissions.ECONOMY_BALANCE, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -260,7 +261,7 @@ private void registerPages() { // Settings page (officers+) - unified two-column layout registry.registerEntry(new Entry( "settings", - "Settings", + MessageKeys.Nav.SETTINGS, null, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -276,7 +277,7 @@ private void registerPages() { // Logs page (faction activity log) registry.registerEntry(new Entry( "logs", - "Logs", + MessageKeys.Nav.LOGS, Permissions.LOGS, (player, ref, store, playerRef, faction, guiManager) -> { if (faction == null) { @@ -292,7 +293,7 @@ private void registerPages() { // Help page (available to all players in faction nav bar) registry.registerEntry(new Entry( "help", - "Help", + MessageKeys.Nav.HELP, null, (player, ref, store, playerRef, faction, guiManager) -> new HelpMainPage(playerRef, guiManager, factionManager.get()), @@ -304,7 +305,7 @@ private void registerPages() { // Admin page (requires permission) - accessed via /f admin, not in main nav bar registry.registerEntry(new Entry( "admin", - "Admin", + MessageKeys.Nav.ADMIN, Permissions.ADMIN, (player, ref, store, playerRef, faction, guiManager) -> new AdminMainPage(playerRef, factionManager.get(), powerManager.get(), guiManager), @@ -328,7 +329,7 @@ private void registerNewPlayerPages() { // Browse Factions (default landing page) registry.registerEntry(new NewPlayerPageRegistry.Entry( "browse", - "Browse", + MessageKeys.Nav.BROWSER, null, (player, ref, store, playerRef, guiManager) -> new NewPlayerBrowsePage(playerRef, factionManager.get(), powerManager.get(), @@ -340,7 +341,7 @@ private void registerNewPlayerPages() { // Create Faction (permission checked on actual create action, not nav visibility) registry.registerEntry(new NewPlayerPageRegistry.Entry( "create", - "Create", + MessageKeys.Nav.CREATE, null, (player, ref, store, playerRef, guiManager) -> new CreateFactionPage(playerRef, factionManager.get(), guiManager), @@ -351,7 +352,7 @@ private void registerNewPlayerPages() { // My Invites registry.registerEntry(new NewPlayerPageRegistry.Entry( "invites", - "Invites", + MessageKeys.Nav.INVITES, null, (player, ref, store, playerRef, guiManager) -> new InvitesPage(playerRef, factionManager.get(), powerManager.get(), @@ -363,7 +364,7 @@ private void registerNewPlayerPages() { // Territory Map (read-only for new players, always accessible) registry.registerEntry(new NewPlayerPageRegistry.Entry( "map", - "Map", + MessageKeys.Nav.MAP, null, (player, ref, store, playerRef, guiManager) -> new NewPlayerMapPage(playerRef, factionManager.get(), claimManager.get(), @@ -375,7 +376,7 @@ private void registerNewPlayerPages() { // Leaderboard (accessible to all players) registry.registerEntry(new NewPlayerPageRegistry.Entry( "leaderboard", - "Leaderboard", + MessageKeys.Nav.LEADERBOARD, null, (player, ref, store, playerRef, guiManager) -> { EconomyManager econ = plugin.get().isTreasuryEnabled() ? plugin.get().getEconomyManager() : null; @@ -388,7 +389,7 @@ private void registerNewPlayerPages() { // Help Page registry.registerEntry(new NewPlayerPageRegistry.Entry( "help", - "Help", + MessageKeys.Nav.HELP, null, (player, ref, store, playerRef, guiManager) -> new HelpMainPage(playerRef, guiManager, factionManager.get()), @@ -411,7 +412,7 @@ private void registerAdminPages() { // Dashboard (server-wide stats overview) registry.registerEntry(new AdminPageRegistry.Entry( "dashboard", - "Dashboard", + MessageKeys.AdminNav.DASHBOARD, null, (player, ref, store, playerRef, guiManager) -> new AdminDashboardPage(playerRef, plugin.get(), factionManager.get(), powerManager.get(), @@ -423,7 +424,7 @@ private void registerAdminPages() { // Actions page (server-wide quick actions) registry.registerEntry(new AdminPageRegistry.Entry( "actions", - "Actions", + MessageKeys.AdminNav.ACTIONS, null, (player, ref, store, playerRef, guiManager) -> new AdminActionsPage(playerRef, plugin.get().getPlayerStorage(), guiManager, plugin.get()), @@ -434,7 +435,7 @@ private void registerAdminPages() { // Factions page (faction management with expanding rows) registry.registerEntry(new AdminPageRegistry.Entry( "factions", - "Factions", + MessageKeys.AdminNav.FACTIONS, null, (player, ref, store, playerRef, guiManager) -> new AdminFactionsPage(playerRef, factionManager.get(), powerManager.get(), guiManager), @@ -445,7 +446,7 @@ private void registerAdminPages() { // Players page (server-wide player management) registry.registerEntry(new AdminPageRegistry.Entry( "players", - "Players", + MessageKeys.AdminNav.PLAYERS, Permissions.ADMIN_POWER, (player, ref, store, playerRef, guiManager) -> new AdminPlayersPage(playerRef, factionManager.get(), powerManager.get(), @@ -458,7 +459,7 @@ private void registerAdminPages() { if (plugin.get().isTreasuryEnabled()) { registry.registerEntry(new AdminPageRegistry.Entry( "economy", - "Economy", + MessageKeys.AdminNav.ECONOMY, Permissions.ADMIN_ECONOMY, (player, ref, store, playerRef, guiManager) -> new AdminEconomyPage(playerRef, factionManager.get(), @@ -471,7 +472,7 @@ private void registerAdminPages() { // Zones page registry.registerEntry(new AdminPageRegistry.Entry( "zones", - "Zones", + MessageKeys.AdminNav.ZONES, null, (player, ref, store, playerRef, guiManager) -> new AdminZonePage(playerRef, zoneManager.get(), guiManager, "all", 0), @@ -482,7 +483,7 @@ private void registerAdminPages() { // Config page (placeholder) registry.registerEntry(new AdminPageRegistry.Entry( "config", - "Config", + MessageKeys.AdminNav.CONFIG, null, (player, ref, store, playerRef, guiManager) -> new AdminConfigPage(playerRef, guiManager), @@ -493,7 +494,7 @@ private void registerAdminPages() { // Backups page (placeholder) registry.registerEntry(new AdminPageRegistry.Entry( "backups", - "Backups", + MessageKeys.AdminNav.BACKUPS, null, (player, ref, store, playerRef, guiManager) -> new AdminBackupsPage(playerRef, guiManager), @@ -504,7 +505,7 @@ private void registerAdminPages() { // Activity Log page (global log aggregation) registry.registerEntry(new AdminPageRegistry.Entry( "log", - "Log", + MessageKeys.AdminNav.LOG, null, (player, ref, store, playerRef, guiManager) -> new AdminActivityLogPage(playerRef, factionManager.get(), guiManager), @@ -515,7 +516,7 @@ private void registerAdminPages() { // Updates page (placeholder) registry.registerEntry(new AdminPageRegistry.Entry( "updates", - "Updates", + MessageKeys.AdminNav.UPDATES, null, (player, ref, store, playerRef, guiManager) -> new AdminUpdatesPage(playerRef, guiManager), @@ -526,7 +527,7 @@ private void registerAdminPages() { // Help page (placeholder) registry.registerEntry(new AdminPageRegistry.Entry( "help", - "Help", + MessageKeys.AdminNav.HELP, null, (player, ref, store, playerRef, guiManager) -> new AdminHelpPage(playerRef, guiManager), @@ -537,7 +538,7 @@ private void registerAdminPages() { // Version page (mod versions and integration status) registry.registerEntry(new AdminPageRegistry.Entry( "version", - "Version", + MessageKeys.AdminNav.VERSION, null, (player, ref, store, playerRef, guiManager) -> new AdminVersionPage(playerRef, plugin.get(), guiManager), diff --git a/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java b/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java index 2e12a454..0f208b11 100644 --- a/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java @@ -54,7 +54,7 @@ public static void setupBar( // Create admin nav cards container and build buttons using shared utility cmd.appendInline("#HyperFactionsAdminNavBar #AdminNavBarButtons", "Group #AdminNavCards { LayoutMode: Left; }"); NavBarUtil.buildButtons(entries, "#AdminNavCards", UIPaths.ADMIN_NAV_BUTTON, "#AdminNavActionButton", - "AdminNav", "AdminNavBar", cmd, events); + "AdminNav", "AdminNavBar", playerRef, cmd, events); } /** diff --git a/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java b/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java index da7165a3..34e09ec0 100644 --- a/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java @@ -60,7 +60,7 @@ public static void setupBar( // Create nav cards container and build buttons using shared utility cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", "Group #NavCards { LayoutMode: Left; }"); NavBarUtil.buildButtons(entries, "#NavCards", UIPaths.NAV_BUTTON, "#NavActionButton", - "Nav", "NavBar", cmd, events); + "Nav", "NavBar", playerRef, cmd, events); } /** diff --git a/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java b/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java index 1a2d9533..c1ee40f0 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java @@ -56,7 +56,7 @@ public static void setupBar( // Create nav cards container and build buttons using shared utility cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", "Group #NavCards { LayoutMode: Left; }"); NavBarUtil.buildButtons(entries, "#NavCards", UIPaths.NAV_BUTTON, "#NavActionButton", - "Nav", "NavBar", cmd, events); + "Nav", "NavBar", playerRef, cmd, events); } /** diff --git a/src/main/java/com/hyperfactions/gui/shared/NavBarUtil.java b/src/main/java/com/hyperfactions/gui/shared/NavBarUtil.java index 8bf44a82..ca3ee688 100644 --- a/src/main/java/com/hyperfactions/gui/shared/NavBarUtil.java +++ b/src/main/java/com/hyperfactions/gui/shared/NavBarUtil.java @@ -1,10 +1,12 @@ package com.hyperfactions.gui.shared; import com.hyperfactions.integration.PermissionManager; +import com.hyperfactions.util.HFMessages; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; import com.hypixel.hytale.server.core.ui.builder.EventData; import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; +import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.List; import java.util.UUID; import org.jetbrains.annotations.NotNull; @@ -20,6 +22,8 @@ private NavBarUtil() {} /** * Builds navigation buttons inside a cards container. + * The entry's {@code displayName()} is treated as an i18n key and resolved + * via {@link HFMessages} for the given player. * * @param entries The nav entries to render * @param cardsId The cards container selector (e.g., "#NavCards") @@ -27,6 +31,7 @@ private NavBarUtil() {} * @param buttonId The button element ID within the template (e.g., "#NavActionButton") * @param eventType The event type value (e.g., "Nav" or "AdminNav") * @param eventKey The event data key (e.g., "NavBar" or "AdminNavBar") + * @param playerRef The player viewing the page (for i18n resolution) * @param cmd The UI command builder * @param events The UI event builder */ @@ -37,13 +42,15 @@ public static void buildButtons( @NotNull String buttonId, @NotNull String eventType, @NotNull String eventKey, + @NotNull PlayerRef playerRef, @NotNull UICommandBuilder cmd, @NotNull UIEventBuilder events ) { int index = 0; for (NavEntry entry : entries) { cmd.append(cardsId, templatePath); - cmd.set(cardsId + "[" + index + "] " + buttonId + ".Text", entry.displayName()); + cmd.set(cardsId + "[" + index + "] " + buttonId + ".Text", + HFMessages.get(playerRef, entry.displayName())); events.addEventBinding( CustomUIEventBindingType.Activating, cardsId + "[" + index + "] " + buttonId, diff --git a/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java index faeef87c..26ecd383 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.shared.data.DescriptionModalData; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -73,7 +75,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Show current description String currentDesc = faction.description(); if (currentDesc == null || currentDesc.isEmpty()) { - cmd.set("#CurrentDesc.Text", "(None)"); + cmd.set("#CurrentDesc.Text", HFMessages.get(playerRef, MessageKeys.DescGui.DISPLAY_NONE)); } else { // Truncate display if too long String display = currentDesc.length() > 100 @@ -125,7 +127,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify officer permission (skip in admin mode) if (!adminMode && (member == null || member.role().getLevel() < FactionRole.OFFICER.getLevel())) { - player.sendMessage(MessageUtil.errorText("You don't have permission to edit the description.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.DescGui.NO_PERMISSION)); guiManager.openFactionSettings(player, ref, store, playerRef, factionManager.getFaction(faction.id())); return; @@ -146,8 +148,11 @@ public void handleDataEvent(Ref ref, Store store, Faction updatedFaction = faction.withDescription(null); factionManager.updateFaction(updatedFaction); - String prefix = adminMode ? "[Admin] " : ""; - player.sendMessage(Message.raw(prefix + "Faction description cleared.").color("#AAAAAA")); + String msg = HFMessages.get(playerRef, MessageKeys.DescGui.CLEARED); + if (adminMode) { + msg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + msg; + } + player.sendMessage(Message.raw(msg).color("#AAAAAA")); if (adminMode) { guiManager.openAdminFactionSettings(player, ref, store, playerRef, faction.id()); @@ -159,13 +164,16 @@ public void handleDataEvent(Ref ref, Store store, case "Save" -> { String newDesc = data.description; - String prefix = adminMode ? "[Admin] " : ""; // Empty is allowed (clears description) if (newDesc == null || newDesc.trim().isEmpty()) { Faction updatedFaction = faction.withDescription(null); factionManager.updateFaction(updatedFaction); - player.sendMessage(Message.raw(prefix + "Faction description cleared.").color("#AAAAAA")); + String clearMsg = HFMessages.get(playerRef, MessageKeys.DescGui.CLEARED); + if (adminMode) { + clearMsg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + clearMsg; + } + player.sendMessage(Message.raw(clearMsg).color("#AAAAAA")); } else { newDesc = newDesc.trim(); @@ -176,7 +184,11 @@ public void handleDataEvent(Ref ref, Store store, Faction updatedFaction = faction.withDescription(newDesc); factionManager.updateFaction(updatedFaction); - player.sendMessage(Message.raw(prefix + "Faction description updated!").color("#55FF55")); + String updateMsg = HFMessages.get(playerRef, MessageKeys.DescGui.UPDATED); + if (adminMode) { + updateMsg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + updateMsg; + } + player.sendMessage(Message.raw(updateMsg).color("#55FF55")); } if (adminMode) { diff --git a/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java b/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java index 40b25576..bb7b72d7 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java @@ -11,6 +11,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.manager.RelationManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.TimeUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -150,10 +152,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Description String description = targetFaction.description(); cmd.set("#FactionDescription.Text", - description != null && !description.isEmpty() ? description : "No description set."); + description != null && !description.isEmpty() ? description + : HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.NO_DESCRIPTION)); // Open/Closed status indicator - cmd.set("#StatusIndicator.Text", targetFaction.open() ? "Open" : "Invite Only"); + cmd.set("#StatusIndicator.Text", targetFaction.open() + ? HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) + : HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); // Note: Cannot dynamically set text color via cmd.set() // === Stats Section === @@ -171,7 +176,9 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#MembersValue.Text", String.format("%d / %d", memberCount, maxMembers)); // Recruitment status - cmd.set("#RecruitmentValue.Text", targetFaction.open() ? "Open" : "Invite Only"); + cmd.set("#RecruitmentValue.Text", targetFaction.open() + ? HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) + : HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); // Note: Cannot dynamically set text color via cmd.set() // Founded date @@ -185,11 +192,9 @@ public void build(Ref ref, UICommandBuilder cmd, // Raidable status if (powerStats.isRaidable()) { - cmd.set("#RaidableValue.Text", "Raidable"); - // Note: Cannot dynamically set text color via cmd.set() + cmd.set("#RaidableValue.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_RAIDABLE)); } else { - cmd.set("#RaidableValue.Text", "Protected"); - // Note: Cannot dynamically set text color via cmd.set() + cmd.set("#RaidableValue.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_PROTECTED)); } // Treasury balance (visible when economy enabled) @@ -202,21 +207,23 @@ public void build(Ref ref, UICommandBuilder cmd, // === Leadership Section === // Leader FactionMember leader = targetFaction.getLeader(); - cmd.set("#LeaderName.Text", leader != null ? leader.username() : "Unknown"); + cmd.set("#LeaderName.Text", leader != null ? leader.username() + : HFMessages.get(viewerRef, MessageKeys.Common.UNKNOWN)); // Officers List officers = targetFaction.getMembersSorted().stream() .filter(m -> m.role() == FactionRole.OFFICER) .toList(); if (officers.isEmpty()) { - cmd.set("#OfficersValue.Text", "None"); + cmd.set("#OfficersValue.Text", HFMessages.get(viewerRef, MessageKeys.Common.NONE)); } else { String officerNames = officers.stream() .map(FactionMember::username) .limit(3) // Show max 3 names .collect(Collectors.joining(", ")); if (officers.size() > 3) { - officerNames += " +" + (officers.size() - 3) + " more"; + officerNames += " " + HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.OFFICERS_MORE, + officers.size() - 3); } cmd.set("#OfficersValue.Text", officerNames); } diff --git a/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java b/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java index 8084d3ba..61f7bbeb 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java @@ -6,6 +6,8 @@ import com.hyperfactions.gui.shared.data.MainMenuData; import com.hyperfactions.integration.PermissionManager; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -59,7 +61,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Section: My Faction if (faction != null) { cmd.append("#MyFactionSection", UIPaths.MENU_SECTION); - cmd.set("#MyFactionSection #SectionTitle.Text", "My Faction"); + cmd.set("#MyFactionSection #SectionTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.SECTION_MY_FACTION)); cmd.append("#MyFactionSection #SectionContent", UIPaths.MAIN_MENU_FACTION); cmd.set("#MyFactionSection #FactionNameLabel.Text", faction.name()); @@ -85,7 +87,7 @@ public void build(Ref ref, UICommandBuilder cmd, ); } else { cmd.append("#MyFactionSection", UIPaths.MENU_SECTION); - cmd.set("#MyFactionSection #SectionTitle.Text", "Get Started"); + cmd.set("#MyFactionSection #SectionTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.SECTION_GET_STARTED)); cmd.append("#MyFactionSection #SectionContent", UIPaths.MAIN_MENU_NO_FACTION); events.addEventBinding( @@ -98,7 +100,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Section: Territory cmd.append("#TerritorySection", UIPaths.MENU_SECTION); - cmd.set("#TerritorySection #SectionTitle.Text", "Territory"); + cmd.set("#TerritorySection #SectionTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.SECTION_TERRITORY)); cmd.append("#TerritorySection #SectionContent", UIPaths.MAIN_MENU_TERRITORY); events.addEventBinding( @@ -119,7 +121,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Section: Browse cmd.append("#BrowseSection", UIPaths.MENU_SECTION); - cmd.set("#BrowseSection #SectionTitle.Text", "Browse"); + cmd.set("#BrowseSection #SectionTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.SECTION_BROWSE)); cmd.append("#BrowseSection #SectionContent", UIPaths.MAIN_MENU_BROWSE); events.addEventBinding( @@ -132,7 +134,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Section: Admin (if permission) if (hasAdmin) { cmd.append("#AdminSection", UIPaths.MENU_SECTION); - cmd.set("#AdminSection #SectionTitle.Text", "Admin"); + cmd.set("#AdminSection #SectionTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.SECTION_ADMIN)); cmd.append("#AdminSection #SectionContent", UIPaths.MAIN_MENU_ADMIN); events.addEventBinding( @@ -194,10 +196,8 @@ public void handleDataEvent(Ref ref, Store store, if (faction != null) { guiManager.closePage(player, ref, store); player.sendMessage( - com.hypixel.hytale.server.core.Message.raw("Use ") - .color("#AAAAAA") - .insert(com.hypixel.hytale.server.core.Message.raw("/f claim").color("#55FF55")) - .insert(com.hypixel.hytale.server.core.Message.raw(" to claim territory.").color("#AAAAAA")) + com.hypixel.hytale.server.core.Message.raw( + HFMessages.get(playerRef, MessageKeys.MainMenu.CLAIM_HINT)).color("#AAAAAA") ); } } diff --git a/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java index a2f496b3..efd40df2 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.shared.data.RenameModalData; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.worldmap.WorldMapService; import com.hypixel.hytale.component.Ref; @@ -118,7 +120,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify officer permission (skip in admin mode) if (!adminMode && (member == null || member.role().getLevel() < FactionRole.OFFICER.getLevel())) { - player.sendMessage(MessageUtil.errorText("You don't have permission to rename the faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RenameGui.NO_PERMISSION)); guiManager.openFactionSettings(player, ref, store, playerRef, factionManager.getFaction(faction.id())); return; @@ -139,7 +141,7 @@ public void handleDataEvent(Ref ref, Store store, // Validation if (newName == null || newName.trim().isEmpty()) { - player.sendMessage(MessageUtil.errorText("Please enter a faction name.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RenameGui.ENTER_NAME)); sendUpdate(); return; } @@ -147,20 +149,20 @@ public void handleDataEvent(Ref ref, Store store, newName = newName.trim(); if (newName.length() < MIN_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Faction name must be at least " + MIN_NAME_LENGTH + " characters.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RenameGui.TOO_SHORT, MIN_NAME_LENGTH)); sendUpdate(); return; } if (newName.length() > MAX_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Faction name cannot exceed " + MAX_NAME_LENGTH + " characters.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RenameGui.TOO_LONG, MAX_NAME_LENGTH)); sendUpdate(); return; } // Check if name is the same if (newName.equalsIgnoreCase(faction.name())) { - player.sendMessage(MessageUtil.text("That's already your faction's name.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.info(playerRef, MessageKeys.RenameGui.SAME_NAME, "#FFD700")); sendUpdate(); return; } @@ -168,7 +170,7 @@ public void handleDataEvent(Ref ref, Store store, // Check uniqueness Faction existing = factionManager.getFactionByName(newName); if (existing != null) { - player.sendMessage(MessageUtil.errorText("A faction with that name already exists.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RenameGui.NAME_TAKEN)); sendUpdate(); return; } @@ -183,14 +185,11 @@ public void handleDataEvent(Ref ref, Store store, worldMapService.triggerFactionWideRefresh(faction.id()); } - String prefix = adminMode ? "[Admin] " : ""; - player.sendMessage( - Message.raw(prefix + "Faction renamed from ").color("#AAAAAA") - .insert(Message.raw(oldName).color("#888888")) - .insert(Message.raw(" to ").color("#AAAAAA")) - .insert(Message.raw(newName).color("#00FFFF")) - .insert(Message.raw("!").color("#AAAAAA")) - ); + String msg = HFMessages.get(playerRef, MessageKeys.RenameGui.SUCCESS, oldName, newName); + if (adminMode) { + msg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + msg; + } + player.sendMessage(Message.raw(msg).color("#55FF55")); if (adminMode) { guiManager.openAdminFactionSettings(player, ref, store, playerRef, faction.id()); diff --git a/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java index 1369ae3d..18d6083e 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.shared.data.TagModalData; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.worldmap.WorldMapService; import com.hypixel.hytale.component.Ref; @@ -86,7 +88,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Show current tag String currentTag = faction.tag(); if (currentTag == null || currentTag.isEmpty()) { - cmd.set("#CurrentTag.Text", "(None)"); + cmd.set("#CurrentTag.Text", HFMessages.get(playerRef, MessageKeys.TagGui.DISPLAY_NONE)); } else { cmd.set("#CurrentTag.Text", "[" + currentTag.toUpperCase() + "]"); } @@ -126,7 +128,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify officer permission (skip in admin mode) if (!adminMode && (member == null || member.role().getLevel() < FactionRole.OFFICER.getLevel())) { - player.sendMessage(MessageUtil.errorText("You don't have permission to edit the tag.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.TagGui.NO_PERMISSION)); guiManager.openFactionSettings(player, ref, store, playerRef, factionManager.getFaction(faction.id())); return; @@ -155,8 +157,11 @@ public void handleDataEvent(Ref ref, Store store, worldMapService.triggerFactionWideRefresh(faction.id()); } - String prefix = adminMode ? "[Admin] " : ""; - player.sendMessage(Message.raw(prefix + "Faction tag cleared.").color("#AAAAAA")); + String clearMsg = HFMessages.get(playerRef, MessageKeys.TagGui.CLEARED); + if (adminMode) { + clearMsg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + clearMsg; + } + player.sendMessage(Message.raw(clearMsg).color("#AAAAAA")); if (adminMode) { guiManager.openAdminFactionSettings(player, ref, store, playerRef, faction.id()); } else { @@ -170,27 +175,27 @@ public void handleDataEvent(Ref ref, Store store, // Validate length if (newTag.length() < MIN_TAG_LENGTH) { - player.sendMessage(MessageUtil.errorText("Tag must be at least " + MIN_TAG_LENGTH + " character.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.TagGui.TOO_SHORT, MIN_TAG_LENGTH)); sendUpdate(); return; } if (newTag.length() > MAX_TAG_LENGTH) { - player.sendMessage(MessageUtil.errorText("Tag cannot exceed " + MAX_TAG_LENGTH + " characters.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.TagGui.TOO_LONG, MAX_TAG_LENGTH)); sendUpdate(); return; } // Validate format (alphanumeric only) if (!TAG_PATTERN.matcher(newTag).matches()) { - player.sendMessage(MessageUtil.errorText("Tag can only contain letters and numbers.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.TagGui.INVALID_FORMAT)); sendUpdate(); return; } // Check if same as current if (newTag.equalsIgnoreCase(faction.tag())) { - player.sendMessage(MessageUtil.text("That's already your faction's tag.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.info(playerRef, MessageKeys.TagGui.SAME_TAG, "#FFD700")); sendUpdate(); return; } @@ -198,7 +203,7 @@ public void handleDataEvent(Ref ref, Store store, // Check uniqueness Faction existing = factionManager.getFactionByTag(newTag); if (existing != null && !existing.id().equals(faction.id())) { - player.sendMessage(MessageUtil.errorText("A faction with that tag already exists.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.TagGui.TAG_TAKEN)); sendUpdate(); return; } @@ -212,12 +217,11 @@ public void handleDataEvent(Ref ref, Store store, worldMapService.triggerFactionWideRefresh(faction.id()); } - String prefix = adminMode ? "[Admin] " : ""; - player.sendMessage( - Message.raw(prefix + "Faction tag set to ").color("#AAAAAA") - .insert(Message.raw("[" + newTag + "]").color("#FFAA00")) - .insert(Message.raw("!").color("#AAAAAA")) - ); + String successMsg = HFMessages.get(playerRef, MessageKeys.TagGui.SUCCESS, newTag); + if (adminMode) { + successMsg = HFMessages.get(playerRef, MessageKeys.Common.ADMIN_PREFIX) + " " + successMsg; + } + player.sendMessage(Message.raw(successMsg).color("#55FF55")); if (adminMode) { guiManager.openAdminFactionSettings(player, ref, store, playerRef, faction.id()); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 4e4adb21..54b293fc 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -51,6 +51,7 @@ public static final class Common { public static final String UNKNOWN = "hyperfactions.common.unknown"; public static final String ERROR_GENERIC = "hyperfactions.common.error_generic"; public static final String GUI_FALLBACK = "hyperfactions.common.gui_fallback"; + public static final String ADMIN_PREFIX = "hyperfactions.common.admin_prefix"; private Common() {} } @@ -650,10 +651,91 @@ public static final class Nav { public static final String LOGS = "hyperfactions_gui.nav.logs"; public static final String HELP = "hyperfactions_gui.nav.help"; public static final String ADMIN = "hyperfactions_gui.nav.admin"; + public static final String CREATE = "hyperfactions_gui.nav.create"; private Nav() {} } + /** Admin navigation bar labels. */ + public static final class AdminNav { + public static final String DASHBOARD = "hyperfactions_admin.nav.dashboard"; + public static final String ACTIONS = "hyperfactions_admin.nav.actions"; + public static final String FACTIONS = "hyperfactions_admin.nav.factions"; + public static final String PLAYERS = "hyperfactions_admin.nav.players"; + public static final String ECONOMY = "hyperfactions_admin.nav.economy"; + public static final String ZONES = "hyperfactions_admin.nav.zones"; + public static final String CONFIG = "hyperfactions_admin.nav.config"; + public static final String BACKUPS = "hyperfactions_admin.nav.backups"; + public static final String LOG = "hyperfactions_admin.nav.log"; + public static final String UPDATES = "hyperfactions_admin.nav.updates"; + public static final String HELP = "hyperfactions_admin.nav.help"; + public static final String VERSION = "hyperfactions_admin.nav.version"; + + private AdminNav() {} + } + + /** Main menu page labels. */ + public static final class MainMenu { + public static final String SECTION_MY_FACTION = "hyperfactions_gui.main_menu.section_my_faction"; + public static final String SECTION_GET_STARTED = "hyperfactions_gui.main_menu.section_get_started"; + public static final String SECTION_TERRITORY = "hyperfactions_gui.main_menu.section_territory"; + public static final String SECTION_BROWSE = "hyperfactions_gui.main_menu.section_browse"; + public static final String SECTION_ADMIN = "hyperfactions_gui.main_menu.section_admin"; + public static final String CLAIM_HINT = "hyperfactions_gui.main_menu.claim_hint"; + + private MainMenu() {} + } + + /** Faction info page labels. */ + public static final class FactionInfoGui { + public static final String NO_DESCRIPTION = "hyperfactions_gui.faction_info.no_description"; + public static final String STATUS_OPEN = "hyperfactions_gui.faction_info.status_open"; + public static final String STATUS_INVITE_ONLY = "hyperfactions_gui.faction_info.status_invite_only"; + public static final String STATUS_RAIDABLE = "hyperfactions_gui.faction_info.status_raidable"; + public static final String STATUS_PROTECTED = "hyperfactions_gui.faction_info.status_protected"; + public static final String OFFICERS_MORE = "hyperfactions_gui.faction_info.officers_more"; + + private FactionInfoGui() {} + } + + /** Rename modal page messages. */ + public static final class RenameGui { + public static final String NO_PERMISSION = "hyperfactions_gui.rename.no_permission"; + public static final String ENTER_NAME = "hyperfactions_gui.rename.enter_name"; + public static final String TOO_SHORT = "hyperfactions_gui.rename.too_short"; + public static final String TOO_LONG = "hyperfactions_gui.rename.too_long"; + public static final String SAME_NAME = "hyperfactions_gui.rename.same_name"; + public static final String NAME_TAKEN = "hyperfactions_gui.rename.name_taken"; + public static final String SUCCESS = "hyperfactions_gui.rename.success"; + + private RenameGui() {} + } + + /** Description modal page messages. */ + public static final class DescGui { + public static final String NO_PERMISSION = "hyperfactions_gui.desc.no_permission"; + public static final String DISPLAY_NONE = "hyperfactions_gui.desc.display_none"; + public static final String CLEARED = "hyperfactions_gui.desc.cleared"; + public static final String UPDATED = "hyperfactions_gui.desc.updated"; + + private DescGui() {} + } + + /** Tag modal page messages. */ + public static final class TagGui { + public static final String NO_PERMISSION = "hyperfactions_gui.tag.no_permission"; + public static final String DISPLAY_NONE = "hyperfactions_gui.tag.display_none"; + public static final String CLEARED = "hyperfactions_gui.tag.cleared"; + public static final String TOO_SHORT = "hyperfactions_gui.tag.too_short"; + public static final String TOO_LONG = "hyperfactions_gui.tag.too_long"; + public static final String INVALID_FORMAT = "hyperfactions_gui.tag.invalid_format"; + public static final String SAME_TAG = "hyperfactions_gui.tag.same_tag"; + public static final String TAG_TAKEN = "hyperfactions_gui.tag.tag_taken"; + public static final String SUCCESS = "hyperfactions_gui.tag.success"; + + private TagGui() {} + } + /** Dashboard page labels. */ public static final class Dashboard { public static final String POWER_LABEL = "hyperfactions_gui.dashboard.power_label"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 27938a19..16b07b96 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -29,6 +29,7 @@ common.page = Page {0} of {1} common.unknown = Unknown common.error_generic = Something went wrong. Please try again. common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] # ========== Commands - Create ========== cmd.create.no_permission = You don't have permission to create factions. diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang new file mode 100644 index 00000000..1aabe581 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -0,0 +1,17 @@ +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index b36330b1..b6e534d6 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -2,6 +2,22 @@ # Format: key = value # Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + # ========== Help Category Names ========== help.category.welcome = Welcome help.category.your_faction = Your Faction @@ -10,3 +26,45 @@ help.category.diplomacy = Diplomacy help.category.combat = Combat & Safety help.category.economy = Economy help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! From 6cf33965eec0a02fa8f5e2f980d8035b0ab5853a Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 15:29:55 -0700 Subject: [PATCH 11/76] feat: localize FactionDashboardPage and FactionMainPage (Phase 3b) Migrate ~55 hardcoded English strings to i18n keys across both pages. Reuse existing command keys (Home, Claim, Common, Leave) where messages are semantically identical. Add DashboardGui and FactionMainGui key classes for page-specific labels and messages. --- .../faction/page/FactionDashboardPage.java | 109 +++++++++--------- .../gui/faction/page/FactionMainPage.java | 27 ++--- .../com/hyperfactions/util/MessageKeys.java | 46 +++++++- .../Server/Languages/en-US/hyperfactions.lang | 5 + .../Languages/en-US/hyperfactions_gui.lang | 31 +++++ 5 files changed, 148 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java index 5a4bd0d5..5afc54ce 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java @@ -26,6 +26,8 @@ import com.hyperfactions.manager.PowerManager; import com.hyperfactions.manager.TeleportManager; import com.hyperfactions.util.ChunkUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -106,7 +108,7 @@ public void build(Ref ref, UICommandBuilder cmd, if (currentFaction == null) { // Faction was deleted - show error cmd.append(UIPaths.ERROR_PAGE); - cmd.set("#ErrorMessage.Text", "Your faction no longer exists."); + cmd.set("#ErrorMessage.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.FACTION_GONE)); return; } @@ -182,14 +184,14 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { int maxClaims = stats.maxClaims(); int available = Math.max(0, maxClaims - claimCount); cmd.set("#ClaimsValue.Text", claimCount + " / " + maxClaims); - cmd.set("#ClaimsAvailable.Text", available + " available"); + cmd.set("#ClaimsAvailable.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.AVAILABLE, available)); // Check if faction is raidable (at risk of overclaiming) boolean isRaidable = claimCount > maxClaims; if (isRaidable) { // Show warning - claims exceed power limit cmd.set("#ClaimsValue.Style.TextColor", "#FF5555"); - cmd.set("#ClaimsAvailable.Text", "At Risk!"); + cmd.set("#ClaimsAvailable.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.AT_RISK)); cmd.set("#ClaimsAvailable.Style.TextColor", "#FF5555"); } @@ -197,7 +199,7 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { int totalMembers = currentFaction.members().size(); int onlineCount = countOnlineMembers(currentFaction); cmd.set("#MembersValue.Text", String.valueOf(totalMembers)); - cmd.set("#MembersOnline.Text", onlineCount + " online"); + cmd.set("#MembersOnline.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.ONLINE_COUNT, onlineCount)); // Row 2: Relations, Status, Invites @@ -216,10 +218,10 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { // Status stat - Open/Invite Only if (currentFaction.open()) { - cmd.set("#StatusValue.Text", "Open"); + cmd.set("#StatusValue.Text", HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN)); cmd.set("#StatusValue.Style.TextColor", "#55FF55"); } else { - cmd.set("#StatusValue.Text", "Invite"); + cmd.set("#StatusValue.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.STATUS_INVITE)); cmd.set("#StatusValue.Style.TextColor", "#FFAA00"); } cmd.set("#StatusDesc.Text", ""); @@ -257,14 +259,14 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { FactionEconomy fEcon = econ.getEconomy(currentFaction.id()); if (fEcon != null && fEcon.upkeepGraceStartTimestamp() > 0) { cmd.set("#UpkeepValue.Style.TextColor", "#FF5555"); - cmd.set("#UpkeepSubtext.Text", "IN GRACE"); + cmd.set("#UpkeepSubtext.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.IN_GRACE)); cmd.set("#UpkeepSubtext.Style.TextColor", "#FF5555"); } else if (fEcon != null && fEcon.lastUpkeepTimestamp() > 0) { long intervalMs = ConfigManager.get().getUpkeepIntervalHours() * 3600_000L; long remaining = Math.max(0, (fEcon.lastUpkeepTimestamp() + intervalMs) - System.currentTimeMillis()); cmd.set("#UpkeepSubtext.Text", "in " + com.hyperfactions.economy.UpkeepProcessor.formatDuration(remaining)); } else { - cmd.set("#UpkeepSubtext.Text", billableChunks + " billable chunks"); + cmd.set("#UpkeepSubtext.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BILLABLE_CHUNKS, billableChunks)); } // Color based on affordability @@ -279,7 +281,7 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { java.math.BigDecimal walletBalance = econ.getVaultProvider().getBalanceBigDecimal(viewerUuid); cmd.set("#WalletBalance.Text", econ.formatCurrencyCompact(walletBalance)); } catch (Exception e) { - cmd.set("#WalletBalance.Text", "N/A"); + cmd.set("#WalletBalance.Text", HFMessages.get(playerRef, MessageKeys.Common.NA)); } } } @@ -303,7 +305,9 @@ private void buildQuickActions(UICommandBuilder cmd, UIEventBuilder events, if ((faction.hasHome() || isOfficerPlus) && PermissionManager.get().hasPermission(viewerUuid, Permissions.HOME)) { cmd.append("#HomeBtnContainer", UIPaths.DASHBOARD_ACTION_BTN); - cmd.set("#HomeBtnContainer #ActionBtn.Text", faction.hasHome() ? "Home" : "Set Home"); + cmd.set("#HomeBtnContainer #ActionBtn.Text", faction.hasHome() + ? HFMessages.get(playerRef, MessageKeys.DashboardGui.BTN_HOME) + : HFMessages.get(playerRef, MessageKeys.DashboardGui.BTN_SET_HOME)); cmd.set("#HomeBtnContainer #ActionBtn.Style", Value.ref(UIPaths.STYLES, "CyanButtonStyle")); events.addEventBinding( @@ -319,7 +323,7 @@ private void buildQuickActions(UICommandBuilder cmd, UIEventBuilder events, // CLAIM button - only for officers+ with CLAIM permission if (isOfficerPlus && PermissionManager.get().hasPermission(viewerUuid, Permissions.CLAIM)) { cmd.append("#ClaimBtnContainer", UIPaths.DASHBOARD_ACTION_BTN); - cmd.set("#ClaimBtnContainer #ActionBtn.Text", "Claim"); + cmd.set("#ClaimBtnContainer #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BTN_CLAIM)); cmd.set("#ClaimBtnContainer #ActionBtn.Style", Value.ref(UIPaths.STYLES, "GreenButtonStyle")); events.addEventBinding( @@ -337,10 +341,11 @@ private void buildQuickActions(UICommandBuilder cmd, UIEventBuilder events, || PermissionManager.get().hasPermission(viewerUuid, Permissions.CHAT_ALLY)) { ChatManager chatManager = plugin.getChatManager(); ChatManager.ChatChannel currentChannel = chatManager.getChannel(viewerUuid); - String display = "Chat: " + ChatManager.getChannelDisplay(currentChannel); + String channelDisplay = ChatManager.getChannelDisplay(currentChannel); cmd.append("#ChatModeBtnContainer", UIPaths.DASHBOARD_ACTION_BTN); - cmd.set("#ChatModeBtnContainer #ActionBtn.Text", display); + cmd.set("#ChatModeBtnContainer #ActionBtn.Text", + HFMessages.get(playerRef, MessageKeys.DashboardGui.CHAT_PREFIX, channelDisplay)); events.addEventBinding( CustomUIEventBindingType.Activating, "#ChatModeBtnContainer #ActionBtn", @@ -354,7 +359,7 @@ private void buildQuickActions(UICommandBuilder cmd, UIEventBuilder events, // LEAVE button - flat red background for danger action if (PermissionManager.get().hasPermission(viewerUuid, Permissions.LEAVE)) { cmd.append("#LeaveBtnContainer", UIPaths.DASHBOARD_ACTION_BTN); - cmd.set("#LeaveBtnContainer #ActionBtn.Text", "Leave"); + cmd.set("#LeaveBtnContainer #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BTN_LEAVE)); cmd.set("#LeaveBtnContainer #ActionBtn.Style", Value.ref(UIPaths.STYLES, "FlatRedButtonStyle")); events.addEventBinding( @@ -382,8 +387,9 @@ private void buildActivityFeed(UICommandBuilder cmd, UIEventBuilder events, Fact int displayCount = Math.min(ACTIVITY_ENTRIES, logs.size()); if (displayCount == 0) { + String noActivityText = HFMessages.get(playerRef, MessageKeys.DashboardGui.NO_ACTIVITY); cmd.appendInline("#ActivityFeed", - "Label { Text: \"No recent activity.\"; Style: (FontSize: 11, TextColor: #555555); " + "Label { Text: \"" + noActivityText + "\"; Style: (FontSize: 11, TextColor: #555555); " + "Anchor: (Height: 26); }"); return; } @@ -404,16 +410,16 @@ private String formatTimeAgo(long timestamp) { long diff = now - timestamp; if (diff < TimeUnit.MINUTES.toMillis(1)) { - return "now"; + return HFMessages.get(playerRef, MessageKeys.DashboardGui.TIME_NOW); } else if (diff < TimeUnit.HOURS.toMillis(1)) { long minutes = TimeUnit.MILLISECONDS.toMinutes(diff); - return minutes + "m ago"; + return HFMessages.get(playerRef, MessageKeys.DashboardGui.TIME_MINUTES, minutes); } else if (diff < TimeUnit.DAYS.toMillis(1)) { long hours = TimeUnit.MILLISECONDS.toHours(diff); - return hours + "h ago"; + return HFMessages.get(playerRef, MessageKeys.DashboardGui.TIME_HOURS, hours); } else { long days = TimeUnit.MILLISECONDS.toDays(diff); - return days + "d ago"; + return HFMessages.get(playerRef, MessageKeys.DashboardGui.TIME_DAYS, days); } } @@ -441,7 +447,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify still in faction if (currentFaction == null) { - player.sendMessage(MessageUtil.errorText("You are no longer in a faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.NOT_IN_FACTION)); guiManager.openFactionMain(player, ref, store, playerRef); return; } @@ -462,7 +468,7 @@ public void handleDataEvent(Ref ref, Store store, if (isOfficerPlus) { handleSetHomeAction(player, ref, store, uuid, currentFaction); } else { - player.sendMessage(MessageUtil.errorText("Your faction has no home set. Ask an officer to set one.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.DashboardGui.NO_HOME_HINT)); sendUpdate(); } } else { @@ -472,7 +478,7 @@ public void handleDataEvent(Ref ref, Store store, case "Claim" -> { if (!isOfficerPlus || !PermissionManager.get().hasPermission(uuid, Permissions.CLAIM)) { - player.sendMessage(MessageUtil.errorText("Only officers can claim territory.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.NOT_OFFICER)); sendUpdate(); return; } @@ -484,9 +490,9 @@ public void handleDataEvent(Ref ref, Store store, ChatManager.ToggleResult chatResult = chatManager.cycleChannelChecked(uuid); if (chatResult.isSuccess() && chatResult.channel() != null) { String display = ChatManager.getChannelDisplay(chatResult.channel()); - String color = ChatManager.getChannelColor(chatResult.channel()); - player.sendMessage(Message.raw("Chat mode: ").color("#AAAAAA") - .insert(Message.raw(display).color(color))); + player.sendMessage(Message.raw( + HFMessages.get(playerRef, MessageKeys.DashboardGui.CHAT_MODE_SET, display)) + .color("#AAAAAA")); } rebuild(); } @@ -515,7 +521,7 @@ public void handleDataEvent(Ref ref, Store store, private void handleHomeAction(Player player, Ref ref, Store store, UUID uuid, Faction faction) { if (!faction.hasHome()) { - player.sendMessage(MessageUtil.errorText("Your faction has no home set.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.NO_HOME)); sendUpdate(); return; } @@ -523,7 +529,7 @@ private void handleHomeAction(Player player, Ref ref, Store ref, Store store, private void handleTeleportResult(Player player, TeleportManager.TeleportResult result) { switch (result) { - case NOT_IN_FACTION -> player.sendMessage(MessageUtil.errorText("You are not in a faction.")); - case NO_HOME -> player.sendMessage(MessageUtil.errorText("Your faction has no home set.")); - case COMBAT_TAGGED -> player.sendMessage(MessageUtil.errorText("You cannot teleport while in combat!")); - case SUCCESS_INSTANT -> player.sendMessage(MessageUtil.successText("Teleported to faction home!")); + case NOT_IN_FACTION -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.NOT_IN_FACTION)); + case NO_HOME -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.NO_HOME)); + case COMBAT_TAGGED -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.COMBAT_TAGGED)); + case SUCCESS_INSTANT -> player.sendMessage(MessageUtil.success(playerRef, MessageKeys.Home.TELEPORTED)); case ON_COOLDOWN, SUCCESS_WARMUP -> {} // Message sent by TeleportManager default -> {} } @@ -600,14 +606,14 @@ private void handleSetHomeAction(Player player, Ref ref, Store ref, Store ref, Store ref, Store ref, Store { - player.sendMessage( - Message.raw("Claimed chunk at (").color("#55FF55") - .insert(Message.raw(chunkX + ", " + chunkZ).color("#AAAAAA")) - .insert(Message.raw(")").color("#55FF55")) - ); + player.sendMessage(MessageUtil.success(playerRef, + MessageKeys.DashboardGui.CLAIM_SUCCESS, chunkX, chunkZ)); // Refresh dashboard with updated faction data Faction fresh = factionManager.getFaction(faction.id()); if (fresh != null) { guiManager.openFactionDashboard(player, ref, store, playerRef, fresh); } } - case NOT_IN_FACTION -> player.sendMessage(MessageUtil.errorText("You are not in a faction.")); - case NOT_OFFICER -> player.sendMessage(MessageUtil.errorText("Only officers can claim land.")); - case ALREADY_CLAIMED_SELF -> player.sendMessage(MessageUtil.text("This chunk is already claimed by your faction.", MessageUtil.COLOR_GOLD)); - case ALREADY_CLAIMED_OTHER, ALREADY_CLAIMED_ALLY, ALREADY_CLAIMED_ENEMY -> player.sendMessage(MessageUtil.errorText("This chunk is claimed by another faction.")); - case MAX_CLAIMS_REACHED -> player.sendMessage(MessageUtil.errorText("Your faction has reached its claim limit.")); - case WORLD_NOT_ALLOWED -> player.sendMessage(MessageUtil.errorText("Claiming is not allowed in this world.")); - case NOT_ADJACENT -> player.sendMessage(MessageUtil.errorText("You can only claim chunks adjacent to existing claims.")); - case INSUFFICIENT_POWER -> player.sendMessage(MessageUtil.errorText("Your faction doesn't have enough power to claim more land.")); - case ORBISGUARD_PROTECTED -> player.sendMessage(MessageUtil.errorText("This area is protected by OrbisGuard.")); - default -> player.sendMessage(MessageUtil.errorText("Could not claim this chunk.")); + case NOT_IN_FACTION -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.NOT_IN_FACTION)); + case NOT_OFFICER -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.NOT_OFFICER)); + case ALREADY_CLAIMED_SELF -> player.sendMessage(MessageUtil.info(playerRef, MessageKeys.Claim.ALREADY_YOURS, MessageUtil.COLOR_GOLD)); + case ALREADY_CLAIMED_OTHER, ALREADY_CLAIMED_ALLY, ALREADY_CLAIMED_ENEMY -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.ALREADY_CLAIMED)); + case MAX_CLAIMS_REACHED -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.MAX_CLAIMS)); + case WORLD_NOT_ALLOWED -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.WORLD_NOT_ALLOWED)); + case NOT_ADJACENT -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.NOT_CONNECTED)); + case INSUFFICIENT_POWER -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.INSUFFICIENT_POWER)); + case ORBISGUARD_PROTECTED -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.ORBISGUARD)); + default -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Claim.FAILED)); } } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionMainPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionMainPage.java index 49c4379f..465072fb 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionMainPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionMainPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.faction.data.FactionPageData; import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.manager.*; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; @@ -15,7 +17,6 @@ import com.hypixel.hytale.math.vector.Vector3f; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport; @@ -130,7 +131,7 @@ private void buildInviteNotification(UICommandBuilder cmd, UIEventBuilder events } private void buildNoFactionView(UICommandBuilder cmd, UIEventBuilder events) { - cmd.set("#FactionName.Text", "No Faction"); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.FactionMainGui.NO_FACTION)); // Show create/browse buttons cmd.append("#ActionArea", UIPaths.NO_FACTION_ACTIONS); @@ -277,7 +278,7 @@ private void handleAcceptInvite(Player player, Ref ref, Store ref, Store ref, Store ref, Store ref, Store ref, Store ref, Store store, @@ -372,10 +373,10 @@ private void handleLeave(Player player, Ref ref, Store FactionManager.FactionResult result = factionManager.removeMember(faction.id(), uuid, uuid, false); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage(MessageUtil.text("You left the faction.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.success(playerRef, MessageKeys.Leave.SUCCESS)); guiManager.openFactionMain(player, ref, store, playerRef); } else { - player.sendMessage(Message.raw("Failed to leave: " + result).color("#FF5555")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.FactionMainGui.LEAVE_FAILED, result)); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 54b293fc..192973d1 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -52,6 +52,10 @@ public static final class Common { public static final String ERROR_GENERIC = "hyperfactions.common.error_generic"; public static final String GUI_FALLBACK = "hyperfactions.common.gui_fallback"; public static final String ADMIN_PREFIX = "hyperfactions.common.admin_prefix"; + public static final String LOCATION_ERROR = "hyperfactions.common.location_error"; + public static final String WORLD_ERROR = "hyperfactions.common.world_error"; + public static final String INVALID_ID = "hyperfactions.common.invalid_id"; + public static final String NA = "hyperfactions.common.na"; private Common() {} } @@ -270,6 +274,7 @@ public static final class Claim { public static final String OVERCLAIM_ALLY = "hyperfactions.cmd.overclaim.ally"; public static final String TARGET_HAS_POWER = "hyperfactions.cmd.overclaim.target_has_power"; public static final String OVERCLAIM_FAILED = "hyperfactions.cmd.overclaim.failed"; + public static final String INSUFFICIENT_POWER = "hyperfactions.cmd.claim.insufficient_power"; private Claim() {} } @@ -736,16 +741,49 @@ public static final class TagGui { private TagGui() {} } - /** Dashboard page labels. */ - public static final class Dashboard { + /** Dashboard page labels and messages. */ + public static final class DashboardGui { public static final String POWER_LABEL = "hyperfactions_gui.dashboard.power_label"; public static final String LAND_LABEL = "hyperfactions_gui.dashboard.land_label"; public static final String MEMBERS_LABEL = "hyperfactions_gui.dashboard.members_label"; public static final String ONLINE_LABEL = "hyperfactions_gui.dashboard.online_label"; public static final String ALLIES_LABEL = "hyperfactions_gui.dashboard.allies_label"; public static final String ENEMIES_LABEL = "hyperfactions_gui.dashboard.enemies_label"; - - private Dashboard() {} + public static final String FACTION_GONE = "hyperfactions_gui.dashboard.faction_gone"; + public static final String AVAILABLE = "hyperfactions_gui.dashboard.available"; + public static final String AT_RISK = "hyperfactions_gui.dashboard.at_risk"; + public static final String ONLINE_COUNT = "hyperfactions_gui.dashboard.online_count"; + public static final String STATUS_INVITE = "hyperfactions_gui.dashboard.status_invite"; + public static final String IN_GRACE = "hyperfactions_gui.dashboard.in_grace"; + public static final String BILLABLE_CHUNKS = "hyperfactions_gui.dashboard.billable_chunks"; + public static final String BTN_HOME = "hyperfactions_gui.dashboard.btn_home"; + public static final String BTN_SET_HOME = "hyperfactions_gui.dashboard.btn_set_home"; + public static final String BTN_CLAIM = "hyperfactions_gui.dashboard.btn_claim"; + public static final String CHAT_PREFIX = "hyperfactions_gui.dashboard.chat_prefix"; + public static final String BTN_LEAVE = "hyperfactions_gui.dashboard.btn_leave"; + public static final String NO_ACTIVITY = "hyperfactions_gui.dashboard.no_activity"; + public static final String TIME_NOW = "hyperfactions_gui.dashboard.time_now"; + public static final String TIME_MINUTES = "hyperfactions_gui.dashboard.time_minutes"; + public static final String TIME_HOURS = "hyperfactions_gui.dashboard.time_hours"; + public static final String TIME_DAYS = "hyperfactions_gui.dashboard.time_days"; + public static final String NO_HOME_HINT = "hyperfactions_gui.dashboard.no_home_hint"; + public static final String CHAT_MODE_SET = "hyperfactions_gui.dashboard.chat_mode_set"; + public static final String CLAIM_SUCCESS = "hyperfactions_gui.dashboard.claim_success"; + + private DashboardGui() {} + } + + /** Faction main page (no-faction view) labels and messages. */ + public static final class FactionMainGui { + public static final String NO_FACTION = "hyperfactions_gui.main.no_faction"; + public static final String JOINED = "hyperfactions_gui.main.joined"; + public static final String JOIN_FAILED = "hyperfactions_gui.main.join_failed"; + public static final String INVITE_DECLINED = "hyperfactions_gui.main.invite_declined"; + public static final String COOLDOWN = "hyperfactions_gui.main.cooldown"; + public static final String WORLD_NOT_FOUND = "hyperfactions_gui.main.world_not_found"; + public static final String LEAVE_FAILED = "hyperfactions_gui.main.leave_failed"; + + private FactionMainGui() {} } /** Help GUI category display names. */ diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index 16b07b96..bea46e75 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -30,6 +30,10 @@ common.unknown = Unknown common.error_generic = Something went wrong. Please try again. common.gui_fallback = Could not access GUI. Use /f help for commands. common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A # ========== Commands - Create ========== cmd.create.no_permission = You don't have permission to create factions. @@ -101,6 +105,7 @@ cmd.claim.not_adjacent = You must claim adjacent to existing territory. cmd.claim.world_not_allowed = Claiming is not allowed in this world. cmd.claim.orbisguard = This area is protected by OrbisGuard. cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. cmd.claim.failed = Failed to claim chunk. # ========== Commands - Invite ========== diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index b6e534d6..4fa4e2da 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -68,3 +68,34 @@ tag.invalid_format = Tag can only contain letters and numbers. tag.same_tag = That's already your faction's tag. tag.tag_taken = A faction with that tag already exists. tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} From 18ee92c078fc2b3053da4a8b7792a3077c86a90e Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 15:45:43 -0700 Subject: [PATCH 12/76] feat: localize Members, Browser, Leaderboard, and PlayerInfo pages (Phase 3c) Migrate all hardcoded English strings in FactionMembersPage, FactionBrowserPage, FactionLeaderboardPage, and PlayerInfoPage to use HFMessages.get() with MessageKeys. Add GuiCommon, MembersGui, BrowserGui, LeaderboardGui, and PlayerInfoGui key classes. --- .../gui/faction/page/FactionBrowserPage.java | 25 +++---- .../faction/page/FactionLeaderboardPage.java | 40 ++++++------ .../gui/faction/page/FactionMembersPage.java | 46 +++++++------ .../gui/faction/page/PlayerInfoPage.java | 35 +++++----- .../com/hyperfactions/util/MessageKeys.java | 65 +++++++++++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 45 +++++++++++++ 6 files changed, 192 insertions(+), 64 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java index 33905033..951979c0 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java @@ -8,13 +8,14 @@ import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.DropdownEntryInfo; @@ -103,13 +104,13 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events, Facti // Get all factions sorted and filtered List entries = buildFactionEntryList(); - cmd.set("#FactionCount.Text", entries.size() + " factions"); + cmd.set("#FactionCount.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.FACTION_COUNT, entries.size())); // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER"), - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Members"), "MEMBERS") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT_POWER)), "POWER"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.BrowserGui.SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT_MEMBERS)), "MEMBERS") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -149,7 +150,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events, Facti } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -198,7 +199,7 @@ private List buildFactionEntryList() { stats.currentPower(), stats.maxPower(), faction.claims().size(), - leader != null ? leader.username() : "None", + leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.NONE), faction.open(), faction.description(), faction.createdAt() @@ -229,7 +230,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Basic info cmd.set(idx + " #FactionName.Text", entry.name); - cmd.set(idx + " #LeaderName.Text", "Leader: " + entry.leaderName); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.LEADER_LABEL, entry.leaderName)); // Stats cmd.set(idx + " #PowerDisplay.Text", String.format("%.0f/%.0f", entry.power, entry.maxPower)); @@ -238,7 +239,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Own faction indicator if (isOwnFaction) { - cmd.set(idx + " #OwnIndicator.Text", "(You)"); + cmd.set(idx + " #OwnIndicator.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.OWN_FACTION)); } // Relation indicator (only for faction members viewing other factions) @@ -268,7 +269,9 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Extended info (only set values if expanded) if (isExpanded) { // Recruitment status - cmd.set(idx + " #RecruitmentStatus.Text", entry.isOpen ? "Open" : "Invite Only"); + cmd.set(idx + " #RecruitmentStatus.Text", entry.isOpen + ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) + : HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); cmd.set(idx + " #RecruitmentStatus.Style.TextColor", entry.isOpen ? "#44CC44" : "#FFAA00"); // Created date @@ -396,7 +399,7 @@ private void handleViewFaction(Player player, Ref ref, Store entries = buildEntryList(); - cmd.set("#FactionCount.Text", entries.size() + " factions"); + cmd.set("#FactionCount.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.FACTION_COUNT, entries.size())); // Sort dropdown List sortOptions = new ArrayList<>(); - sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString("K/D"), "KD")); - sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER")); - sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString("Territory"), "TERRITORY")); + sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.LeaderboardGui.SORT_KD)), "KD")); + sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT_POWER)), "POWER")); + sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.LeaderboardGui.SORT_TERRITORY)), "TERRITORY")); if (economyManager != null) { - sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString("Balance"), "BALANCE")); + sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.LeaderboardGui.SORT_BALANCE)), "BALANCE")); } - sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString("Members"), "MEMBERS")); + sortOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT_MEMBERS)), "MEMBERS")); cmd.set("#SortDropdown.Entries", sortOptions); cmd.set("#SortDropdown.Value", sortMode.name()); @@ -133,7 +135,7 @@ private void buildLeaderboard(UICommandBuilder cmd, UIEventBuilder events, ); // Update column header based on sort mode - cmd.set("#StatHeader.Text", sortMode.displayName); + cmd.set("#StatHeader.Text", HFMessages.get(playerRef, sortMode.displayKey)); // Calculate pagination int totalPages = Math.max(1, (int) Math.ceil((double) entries.size() / ENTRIES_PER_PAGE)); @@ -154,7 +156,7 @@ private void buildLeaderboard(UICommandBuilder cmd, UIEventBuilder events, } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -203,7 +205,7 @@ private List buildEntryList() { faction.name(), faction.tag(), faction.color() != null ? faction.color() : "#00FFFF", - leader != null ? leader.username() : "None", + leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.NONE), stats.currentPower(), stats.maxPower(), faction.getClaimCount(), @@ -250,7 +252,7 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, } // Leader - cmd.set(idx + " #LeaderName.Text", "Leader: " + entry.leaderName); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.LEADER_LABEL, entry.leaderName)); // Primary stat value based on sort mode String statValue = switch (sortMode) { @@ -259,7 +261,7 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, case TERRITORY -> String.valueOf(entry.claimCount); case BALANCE -> economyManager != null ? economyManager.formatCurrency(entry.balance) - : "N/A"; + : HFMessages.get(playerRef, MessageKeys.Common.NA); case MEMBERS -> String.valueOf(entry.memberCount); }; cmd.set(idx + " #StatValue.Text", statValue); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java index 3d34d3d3..8410cda7 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java @@ -13,6 +13,8 @@ import com.hyperfactions.integration.PermissionManager; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.TimeUtil; import com.hyperfactions.util.UuidUtil; @@ -139,12 +141,12 @@ private void buildMemberList(UICommandBuilder cmd, UIEventBuilder events) { int endIdx = Math.min(startIdx + ITEMS_PER_PAGE, totalMembers); List pageMembers = allMembers.subList(startIdx, endIdx); - cmd.set("#MemberCount.Text", totalMembers + " members"); + cmd.set("#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.MEMBER_COUNT, totalMembers)); // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Role"), "ROLE"), - new DropdownEntryInfo(LocalizableString.fromString("Last Online"), "LAST_ONLINE") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.MembersGui.SORT_ROLE)), "ROLE"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.MembersGui.SORT_LAST_ONLINE)), "LAST_ONLINE") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -225,7 +227,9 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i cmd.set(idx + " #RoleIndicator.Background.Color", GuiColors.forRole(member.role())); // Online status - cmd.set(idx + " #OnlineStatus.Text", memberIsOnline ? "Online" : "Offline"); + cmd.set(idx + " #OnlineStatus.Text", memberIsOnline + ? HFMessages.get(playerRef, MessageKeys.Common.ONLINE) + : HFMessages.get(playerRef, MessageKeys.Common.OFFLINE)); cmd.set(idx + " #OnlineStatus.Style.TextColor", GuiColors.forOnlineStatus(memberIsOnline)); if (!memberIsOnline) { cmd.set(idx + " #LastOnline.Text", formatLastOnline(member.lastOnline())); @@ -261,13 +265,14 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i // Joined date String joinedDate = member.joinedAt() > 0 ? DATE_FORMAT.format(Instant.ofEpochMilli(member.joinedAt())) - : "Unknown"; + : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); cmd.set(idx + " #JoinedDate.Text", joinedDate); // Last death (relative format) String lastDeathText = power.lastDeath() > 0 - ? TimeUtil.formatDuration(System.currentTimeMillis() - power.lastDeath()) + " ago" - : "Never"; + ? HFMessages.get(playerRef, MessageKeys.MembersGui.AGO, + TimeUtil.formatDuration(System.currentTimeMillis() - power.lastDeath())) + : HFMessages.get(playerRef, MessageKeys.MembersGui.NEVER); cmd.set(idx + " #LastDeath.Text", lastDeathText); // Determine what actions the viewer can take on this member @@ -391,9 +396,10 @@ private String formatLastOnline(long lastOnlineMs) { } long diffMs = System.currentTimeMillis() - lastOnlineMs; if (diffMs < 60000) { - return "just now"; + return HFMessages.get(playerRef, MessageKeys.MembersGui.JUST_NOW); } - return TimeUtil.formatDuration(diffMs) + " ago"; + return HFMessages.get(playerRef, MessageKeys.MembersGui.AGO, + TimeUtil.formatDuration(diffMs)); } /** Handles data event. */ @@ -499,16 +505,17 @@ private void handlePromote(Player player, Ref ref, Store ref, Store ref, Store } FactionMember target = faction.members().get(targetUuid); if (target == null) { - player.sendMessage(MessageUtil.errorText("Member not found.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.MembersGui.MEMBER_NOT_FOUND)); sendUpdate(); return; } var result = factionManager.removeMember(faction.id(), targetUuid, playerRef.getUuid(), true); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage(Message.raw("Kicked " + target.username() + " from the faction.").color("#55FF55")); + player.sendMessage(MessageUtil.success(playerRef, MessageKeys.MembersGui.KICKED, target.username())); } else { - player.sendMessage(MessageUtil.errorText("Failed to kick: " + result.name())); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.MembersGui.KICK_FAILED, result.name())); } rebuildList(ref, store); } @@ -580,7 +588,7 @@ private void handleTransfer(Player player, Ref ref, Store ref, UICommandBuilder cmd, // Check if target is online PlayerRef targetRef = Universe.get().getPlayer(targetPlayerUuid); boolean isOnline = targetRef != null && targetRef.isValid(); - cmd.set("#OnlineIndicator.Text", isOnline ? "Online" : "Offline"); + cmd.set("#OnlineIndicator.Text", isOnline + ? HFMessages.get(viewerRef, MessageKeys.Common.ONLINE) + : HFMessages.get(viewerRef, MessageKeys.Common.OFFLINE)); cmd.set("#OnlineIndicator.Style.TextColor", GuiColors.forOnlineStatus(isOnline)); // === First Joined / Last Online === @@ -117,15 +120,15 @@ public void build(Ref ref, UICommandBuilder cmd, if (cachedPlayerData != null && cachedPlayerData.getFirstJoined() > 0) { cmd.set("#FirstJoinedValue.Text", TimeUtil.formatDate(cachedPlayerData.getFirstJoined())); } else { - cmd.set("#FirstJoinedValue.Text", "Unknown"); + cmd.set("#FirstJoinedValue.Text", HFMessages.get(viewerRef, MessageKeys.Common.UNKNOWN)); } if (isOnline) { - cmd.set("#LastOnlineValue.Text", "Now"); + cmd.set("#LastOnlineValue.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.NOW)); cmd.set("#LastOnlineValue.Style.TextColor", "#55FF55"); } else if (cachedPlayerData != null && cachedPlayerData.getLastOnline() > 0) { cmd.set("#LastOnlineValue.Text", TimeUtil.formatRelative(cachedPlayerData.getLastOnline())); } else { - cmd.set("#LastOnlineValue.Text", "Unknown"); + cmd.set("#LastOnlineValue.Text", HFMessages.get(viewerRef, MessageKeys.Common.UNKNOWN)); } // === Faction Section === @@ -200,7 +203,7 @@ public void build(Ref ref, UICommandBuilder cmd, List history = new java.util.ArrayList<>(cachedPlayerData.getMembershipHistory()); Collections.reverse(history); - cmd.set("#HistoryCount.Text", history.size() + " records"); + cmd.set("#HistoryCount.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.HISTORY_COUNT, history.size())); cmd.appendInline("#HistoryList", "Group #HistoryCards { LayoutMode: Top; }"); for (int i = 0; i < history.size(); i++) { @@ -210,8 +213,10 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set(idx + " #HFactionName.Text", rec.factionName()); cmd.set(idx + " #HRole.Text", ConfigManager.get().getRoleDisplayName(rec.highestRole())); - cmd.set(idx + " #HJoined.Text", "Joined: " + TimeUtil.formatDate(rec.joinedAt())); - cmd.set(idx + " #HLeft.Text", rec.isActive() ? "Current" : "Left: " + TimeUtil.formatDate(rec.leftAt())); + cmd.set(idx + " #HJoined.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.JOINED_LABEL, TimeUtil.formatDate(rec.joinedAt()))); + cmd.set(idx + " #HLeft.Text", rec.isActive() + ? HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.CURRENT) + : HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.LEFT_LABEL, TimeUtil.formatDate(rec.leftAt()))); cmd.set(idx + " #HReason.Text", formatReason(rec.reason())); cmd.set(idx + " #HReason.Style.TextColor", GuiColors.forLeaveReason(rec.reason())); cmd.set(idx + " #RoleBar.Background.Color", GuiColors.forRole(rec.highestRole())); @@ -219,7 +224,7 @@ public void build(Ref ref, UICommandBuilder cmd, } else { cmd.set("#HistoryCount.Text", ""); cmd.appendInline("#HistoryList", - "Label { Text: \"No membership history\"; Style: (FontSize: 11, TextColor: #555555); }"); + "Label { Text: \"" + HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.NO_HISTORY) + "\"; Style: (FontSize: 11, TextColor: #555555); }"); } // Back button @@ -249,7 +254,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.playerUuid != null) { UUID factionId = UuidUtil.parseOrNull(data.playerUuid); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction ID.")); + player.sendMessage(MessageUtil.error(viewerRef, MessageKeys.Common.INVALID_ID)); return; } @@ -258,7 +263,7 @@ public void handleDataEvent(Ref ref, Store store, guiManager.openFactionInfoFromPlayerInfo(player, ref, store, playerRef, faction, targetPlayerUuid, targetPlayerName, sourcePage); } else { - player.sendMessage(MessageUtil.errorText("Faction no longer exists.")); + player.sendMessage(MessageUtil.error(viewerRef, MessageKeys.PlayerInfoGui.FACTION_GONE)); } } } @@ -300,10 +305,10 @@ private void loadPlayerDataSync() { private String formatReason(MembershipRecord.LeaveReason reason) { return switch (reason) { - case ACTIVE -> "ACTIVE"; - case LEFT -> "LEFT"; - case KICKED -> "KICKED"; - case DISBANDED -> "DISBANDED"; + case ACTIVE -> HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.REASON_ACTIVE); + case LEFT -> HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.REASON_LEFT); + case KICKED -> HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.REASON_KICKED); + case DISBANDED -> HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.REASON_DISBANDED); }; } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 192973d1..dc5b8f77 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -773,6 +773,71 @@ public static final class DashboardGui { private DashboardGui() {} } + /** Shared GUI labels used across multiple pages. */ + public static final class GuiCommon { + public static final String FACTION_COUNT = "hyperfactions_gui.common.faction_count"; + public static final String LEADER_LABEL = "hyperfactions_gui.common.leader_label"; + public static final String SORT_POWER = "hyperfactions_gui.common.sort_power"; + public static final String SORT_MEMBERS = "hyperfactions_gui.common.sort_members"; + public static final String PAGE_FORMAT = "hyperfactions_gui.common.page_format"; + public static final String OWN_FACTION = "hyperfactions_gui.common.own_faction"; + + private GuiCommon() {} + } + + /** Members page labels and messages. */ + public static final class MembersGui { + public static final String MEMBER_COUNT = "hyperfactions_gui.members.count"; + public static final String SORT_ROLE = "hyperfactions_gui.members.sort_role"; + public static final String SORT_LAST_ONLINE = "hyperfactions_gui.members.sort_last_online"; + public static final String JUST_NOW = "hyperfactions_gui.members.just_now"; + public static final String AGO = "hyperfactions_gui.members.ago"; + public static final String NEVER = "hyperfactions_gui.members.never"; + public static final String MEMBER_NOT_FOUND = "hyperfactions_gui.members.member_not_found"; + public static final String PROMOTED = "hyperfactions_gui.members.promoted"; + public static final String PROMOTE_FAILED = "hyperfactions_gui.members.promote_failed"; + public static final String DEMOTED = "hyperfactions_gui.members.demoted"; + public static final String DEMOTE_FAILED = "hyperfactions_gui.members.demote_failed"; + public static final String KICKED = "hyperfactions_gui.members.kicked"; + public static final String KICK_FAILED = "hyperfactions_gui.members.kick_failed"; + + private MembersGui() {} + } + + /** Browser page labels. */ + public static final class BrowserGui { + public static final String SORT_NAME = "hyperfactions_gui.browser.sort_name"; + public static final String INVALID_FACTION = "hyperfactions_gui.browser.invalid_faction"; + + private BrowserGui() {} + } + + /** Leaderboard page labels. */ + public static final class LeaderboardGui { + public static final String SORT_KD = "hyperfactions_gui.leaderboard.sort_kd"; + public static final String SORT_TERRITORY = "hyperfactions_gui.leaderboard.sort_territory"; + public static final String SORT_BALANCE = "hyperfactions_gui.leaderboard.sort_balance"; + + private LeaderboardGui() {} + } + + /** Player info page labels and messages. */ + public static final class PlayerInfoGui { + public static final String NOW = "hyperfactions_gui.playerinfo.now"; + public static final String HISTORY_COUNT = "hyperfactions_gui.playerinfo.history_count"; + public static final String JOINED_LABEL = "hyperfactions_gui.playerinfo.joined_label"; + public static final String CURRENT = "hyperfactions_gui.playerinfo.current"; + public static final String LEFT_LABEL = "hyperfactions_gui.playerinfo.left_label"; + public static final String NO_HISTORY = "hyperfactions_gui.playerinfo.no_history"; + public static final String FACTION_GONE = "hyperfactions_gui.playerinfo.faction_gone"; + public static final String REASON_ACTIVE = "hyperfactions_gui.playerinfo.reason_active"; + public static final String REASON_LEFT = "hyperfactions_gui.playerinfo.reason_left"; + public static final String REASON_KICKED = "hyperfactions_gui.playerinfo.reason_kicked"; + public static final String REASON_DISBANDED = "hyperfactions_gui.playerinfo.reason_disbanded"; + + private PlayerInfoGui() {} + } + /** Faction main page (no-faction view) labels and messages. */ public static final class FactionMainGui { public static final String NO_FACTION = "hyperfactions_gui.main.no_faction"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 4fa4e2da..fda358aa 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -99,3 +99,48 @@ main.invite_declined = Invite declined. main.cooldown = Teleport on cooldown! {0}s remaining. main.world_not_found = Cannot teleport - world not found. main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED From 55a37c26c7ad4a2f0edfef15f9c9f6b446557d28 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 16:00:00 -0700 Subject: [PATCH 13/76] feat: localize Relations, Settings, and Modules pages (Phase 3d) Migrate all hardcoded English strings in FactionRelationsPage, SetRelationModalPage, FactionSettingsPage, and FactionModulesPage to use HFMessages.get() with MessageKeys. Add RelationsGui, SettingsGui, and ModulesGui key classes. Relation type labels use internal English identifiers for logic with localizeType() resolving display text. --- .../gui/faction/page/FactionModulesPage.java | 30 ++++--- .../faction/page/FactionRelationsPage.java | 87 +++++++++++-------- .../gui/faction/page/FactionSettingsPage.java | 58 +++++++------ .../faction/page/SetRelationModalPage.java | 41 ++++----- .../com/hyperfactions/util/MessageKeys.java | 73 ++++++++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 61 +++++++++++++ 6 files changed, 253 insertions(+), 97 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java index 2fd3fba0..3059826e 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java @@ -8,6 +8,8 @@ import com.hyperfactions.gui.faction.NavBarHelper; import com.hyperfactions.gui.faction.data.FactionModulesData; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -31,10 +33,10 @@ public class FactionModulesPage extends InteractiveCustomUIPage MODULES = List.of( - new ModuleInfo("treasury", "Treasury", "Faction bank & economy system", "#fbbf24"), - new ModuleInfo("raids", "Raids", "Scheduled faction battles", "#ef4444"), - new ModuleInfo("levels", "Levels", "Faction progression & XP", "#22c55e"), - new ModuleInfo("war", "War", "Formal war declarations", "#a855f7") + new ModuleInfo("treasury", MessageKeys.ModulesGui.TREASURY_NAME, MessageKeys.ModulesGui.TREASURY_DESC, "#fbbf24"), + new ModuleInfo("raids", MessageKeys.ModulesGui.RAIDS_NAME, MessageKeys.ModulesGui.RAIDS_DESC, "#ef4444"), + new ModuleInfo("levels", MessageKeys.ModulesGui.LEVELS_NAME, MessageKeys.ModulesGui.LEVELS_DESC, "#22c55e"), + new ModuleInfo("war", MessageKeys.ModulesGui.WAR_NAME, MessageKeys.ModulesGui.WAR_DESC, "#a855f7") ); private final PlayerRef playerRef; @@ -78,8 +80,8 @@ public void build(Ref ref, UICommandBuilder cmd, String cardSelector = "#ModuleCard" + i; // Set module info - cmd.set(cardSelector + " #ModuleName.Text", module.name); - cmd.set(cardSelector + " #ModuleDesc.Text", module.description); + cmd.set(cardSelector + " #ModuleName.Text", HFMessages.get(playerRef, module.nameKey)); + cmd.set(cardSelector + " #ModuleDesc.Text", HFMessages.get(playerRef, module.descKey)); // Set color indicator cmd.set(cardSelector + " #ColorBar.Background.Color", module.color); @@ -89,7 +91,7 @@ public void build(Ref ref, UICommandBuilder cmd, buildTreasuryCard(cmd, events, cardSelector); } else { // Other modules: coming soon - cmd.set(cardSelector + " #StatusBadge.Text", "Coming Soon"); + cmd.set(cardSelector + " #StatusBadge.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.COMING_SOON)); cmd.set(cardSelector + " #StatusBadge.Style.TextColor", "#888888"); } } @@ -161,10 +163,10 @@ public void handleDataEvent(Ref ref, Store store, private void buildTreasuryCard(UICommandBuilder cmd, UIEventBuilder events, String cardSelector) { if (hyperFactions.isTreasuryEnabled()) { // State 1: Active - cmd.set(cardSelector + " #StatusBadge.Text", "Active"); + cmd.set(cardSelector + " #StatusBadge.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.ACTIVE)); cmd.set(cardSelector + " #StatusBadge.Style.TextColor", "#22c55e"); cmd.set(cardSelector + " #ModuleBtn.Visible", true); - cmd.set(cardSelector + " #ModuleBtn.Text", "View Treasury"); + cmd.set(cardSelector + " #ModuleBtn.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.VIEW_TREASURY)); events.addEventBinding( CustomUIEventBindingType.Activating, cardSelector + " #ModuleBtn", @@ -175,17 +177,17 @@ private void buildTreasuryCard(UICommandBuilder cmd, UIEventBuilder events, Stri String reason = hyperFactions.getTreasuryDisabledReason(); if (reason != null && reason.contains("economy plugin")) { // State 3: Config enabled but no economy plugin - cmd.set(cardSelector + " #StatusBadge.Text", "Unavailable"); + cmd.set(cardSelector + " #StatusBadge.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.UNAVAILABLE)); cmd.set(cardSelector + " #StatusBadge.Style.TextColor", "#fbbf24"); - cmd.set(cardSelector + " #ModuleDesc.Text", "No economy plugin detected"); + cmd.set(cardSelector + " #ModuleDesc.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.NO_ECONOMY)); } else { // State 2: Disabled by server config - cmd.set(cardSelector + " #StatusBadge.Text", "Disabled"); + cmd.set(cardSelector + " #StatusBadge.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.DISABLED)); cmd.set(cardSelector + " #StatusBadge.Style.TextColor", "#888888"); - cmd.set(cardSelector + " #ModuleDesc.Text", "Economy features are not available on this server"); + cmd.set(cardSelector + " #ModuleDesc.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.ECONOMY_NOT_AVAILABLE)); } } } - private record ModuleInfo(String id, String name, String description, String color) {} + private record ModuleInfo(String id, String nameKey, String descKey, String color) {} } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java index 58dbfc2e..6f75dbed 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java @@ -13,13 +13,14 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.manager.RelationManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.Value; @@ -168,9 +169,9 @@ private void buildList(UICommandBuilder cmd, UIEventBuilder events, boolean canM }; // Count - String countText = items.size() + " " + switch (currentTab) { - case RELATIONS -> items.size() == 1 ? "relation" : "relations"; - case PENDING -> items.size() == 1 ? "request" : "requests"; + String countText = switch (currentTab) { + case RELATIONS -> HFMessages.get(playerRef, MessageKeys.RelationsGui.RELATION_COUNT, items.size()); + case PENDING -> HFMessages.get(playerRef, MessageKeys.RelationsGui.REQUEST_COUNT, items.size()); }; cmd.set("#ItemCount.Text", countText); @@ -201,7 +202,7 @@ private void buildList(UICommandBuilder cmd, UIEventBuilder events, boolean canM } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -236,7 +237,7 @@ private List getAllRelations() { Faction other = factionManager.getFaction(relation.targetFactionId()); if (other != null) { FactionMember leader = other.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); String typeText = relation.type() == RelationType.ALLY ? "Ally" : "Enemy"; PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(other.id()); items.add(new RelationItem( @@ -272,7 +273,7 @@ private List getPendingRequests() { Faction requester = factionManager.getFaction(requesterId); if (requester != null) { FactionMember leader = requester.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(requester.id()); items.add(new RelationItem( requester.id(), @@ -296,7 +297,7 @@ private List getPendingRequests() { Faction target = factionManager.getFaction(targetId); if (target != null) { FactionMember leader = target.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(target.id()); items.add(new RelationItem( target.id(), @@ -332,10 +333,10 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, // === Header info === cmd.set(idx + " #FactionName.Text", item.factionName); - cmd.set(idx + " #LeaderName.Text", "Leader: " + item.leaderName); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.LEADER_LABEL, item.leaderName)); // Relation type badge with appropriate color - cmd.set(idx + " #RelationType.Text", item.type); + cmd.set(idx + " #RelationType.Text", localizeType(item.type)); String typeColor = switch (item.type) { case "Ally" -> "#00AAFF"; case "Enemy" -> "#FF5555"; @@ -387,7 +388,9 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, cmd.set(idx + " #PendingRow.Visible", isPending); if (isPending) { - String direction = item.isIncoming ? "Incoming request" : "Outgoing request"; + String direction = item.isIncoming + ? HFMessages.get(playerRef, MessageKeys.RelationsGui.INCOMING_REQUEST) + : HFMessages.get(playerRef, MessageKeys.RelationsGui.OUTGOING_REQUEST); cmd.set(idx + " #DirectionValue.Text", direction); cmd.set(idx + " #DirectionValue.Style.TextColor", item.isIncoming ? "#FFAA00" : "#88AAFF"); @@ -519,9 +522,9 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, private String getEmptyMessage(boolean canManage) { return switch (currentTab) { case RELATIONS -> canManage - ? "No relations yet. Click + SET RELATION to add allies or enemies." - : "No relations yet."; - case PENDING -> "No pending ally requests."; + ? HFMessages.get(playerRef, MessageKeys.RelationsGui.EMPTY_RELATIONS_HINT) + : HFMessages.get(playerRef, MessageKeys.RelationsGui.EMPTY_RELATIONS); + case PENDING -> HFMessages.get(playerRef, MessageKeys.RelationsGui.EMPTY_PENDING); }; } @@ -531,14 +534,24 @@ private String formatDate(long sinceMillis) { Instant.now() ); if (daysSince == 0) { - return "Today"; + return HFMessages.get(playerRef, MessageKeys.RelationsGui.TODAY); } else if (daysSince == 1) { - return "1 day ago"; + return HFMessages.get(playerRef, MessageKeys.RelationsGui.ONE_DAY_AGO); } else { - return daysSince + " days ago"; + return HFMessages.get(playerRef, MessageKeys.RelationsGui.DAYS_AGO, daysSince); } } + private String localizeType(String type) { + return switch (type) { + case "Ally" -> HFMessages.get(playerRef, MessageKeys.RelationsGui.TYPE_ALLY); + case "Enemy" -> HFMessages.get(playerRef, MessageKeys.RelationsGui.TYPE_ENEMY); + case "Incoming" -> HFMessages.get(playerRef, MessageKeys.RelationsGui.TYPE_INCOMING); + case "Outgoing" -> HFMessages.get(playerRef, MessageKeys.RelationsGui.TYPE_OUTGOING); + default -> type; + }; + } + private record RelationItem(UUID factionId, String factionName, String leaderName, String type, long sinceMillis, int memberCount, double power, double maxPower, int claims, @@ -635,7 +648,7 @@ private void handleViewFaction(Player player, Ref ref, Store ref, Store ref, UICommandBuilder cmd, // Permission check - officer or leader only if (member == null || member.role().getLevel() < FactionRole.OFFICER.getLevel()) { cmd.append(UIPaths.ERROR_PAGE); - cmd.set("#ErrorMessage.Text", "Only officers and leaders can change faction settings."); + cmd.set("#ErrorMessage.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.OFFICERS_ONLY)); events.addEventBinding( CustomUIEventBindingType.Activating, "#CloseBtn", @@ -141,7 +142,7 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events) { // Tag String tagDisplay = faction.tag() != null && !faction.tag().isEmpty() ? "[" + faction.tag().toUpperCase() + "]" - : "(None)"; + : HFMessages.get(playerRef, MessageKeys.SettingsGui.DISPLAY_NONE); cmd.set("#TagValue.Text", tagDisplay); events.addEventBinding(CustomUIEventBindingType.Activating, "#TagEditBtn", EventData.of("Button", "OpenTagModal"), false); @@ -149,15 +150,15 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events) { // Description String desc = faction.description() != null && !faction.description().isEmpty() ? faction.description() - : "(None)"; + : HFMessages.get(playerRef, MessageKeys.SettingsGui.DISPLAY_NONE); cmd.set("#DescValue.Text", desc); events.addEventBinding(CustomUIEventBindingType.Activating, "#DescEditBtn", EventData.of("Button", "OpenDescriptionModal"), false); // Recruitment dropdown cmd.set("#RecruitmentDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Open"), "OPEN"), - new DropdownEntryInfo(LocalizableString.fromString("Invite Only"), "INVITE_ONLY") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN)), "OPEN"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)), "INVITE_ONLY") )); cmd.set("#RecruitmentDropdown.Value", faction.open() ? "OPEN" : "INVITE_ONLY"); events.addEventBinding(CustomUIEventBindingType.ValueChanged, "#RecruitmentDropdown", @@ -223,7 +224,9 @@ private void buildPermissions(UICommandBuilder cmd, UIEventBuilder events, boole // PvP toggle buildToggle(cmd, events, "PvPToggle", "pvpEnabled", perms.pvpEnabled(), canEdit, config, false); - cmd.set("#PvPStatus.Text", perms.pvpEnabled() ? "Enabled" : "Disabled"); + cmd.set("#PvPStatus.Text", perms.pvpEnabled() + ? HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_ENABLED) + : HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_DISABLED)); cmd.set("#PvPStatus.Style.TextColor", perms.pvpEnabled() ? "#55FF55" : "#FF5555"); // Officers can edit - only leader can change this @@ -300,7 +303,7 @@ private void buildHomeSection(UICommandBuilder cmd, UIEventBuilder events) { worldName, home.x(), home.y(), home.z()); cmd.set("#HomeLocation.Text", homeText); } else { - cmd.set("#HomeLocation.Text", "Not set"); + cmd.set("#HomeLocation.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.HOME_NOT_SET)); cmd.set("#TeleportHomeBtn.Disabled", true); cmd.set("#DeleteHomeBtn.Disabled", true); } @@ -366,7 +369,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify permissions if (member == null || member.role().getLevel() < FactionRole.OFFICER.getLevel()) { - player.sendMessage(MessageUtil.errorText("You don't have permission to change settings.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.SettingsGui.NO_PERMISSION)); sendUpdate(); return; } @@ -386,7 +389,7 @@ public void handleDataEvent(Ref ref, Store store, case "OpenModules" -> guiManager.openFactionModules(player, ref, store, playerRef, faction); case "Disband" -> { if (!isLeader) { - player.sendMessage(MessageUtil.errorText("Only the leader can disband the faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.SettingsGui.ONLY_LEADER_DISBAND)); sendUpdate(); return; } @@ -407,19 +410,19 @@ private void handleTogglePerm(Player player, Ref ref, Store ref, Store Faction updatedFaction = faction.withOpen(isOpen); factionManager.updateFaction(updatedFaction); - player.sendMessage(Message.raw("Recruitment set to " + (isOpen ? "Open" : "Invite Only") + ".").color("#55FF55")); + String status = isOpen + ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) + : HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY); + player.sendMessage(MessageUtil.success(playerRef, MessageKeys.SettingsGui.RECRUITMENT_SET, status)); Faction freshFaction = factionManager.getFaction(faction.id()); guiManager.openFactionSettings(player, ref, store, playerRef, freshFaction); @@ -492,7 +498,7 @@ private void handleSetHome(Player player, Ref ref, Store ref, Store ref, Store store, UUID uuid) { if (faction.home() == null) { - player.sendMessage(MessageUtil.errorText("No faction home set.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.NO_HOME)); sendUpdate(); return; } @@ -526,14 +532,14 @@ private void handleTeleportHome(Player player, Ref ref, Store store, private void handleTeleportResult(Player player, TeleportManager.TeleportResult result) { switch (result) { - case NOT_IN_FACTION -> player.sendMessage(MessageUtil.errorText("You are not in a faction.")); - case NO_HOME -> player.sendMessage(MessageUtil.errorText("Your faction has no home set.")); - case COMBAT_TAGGED -> player.sendMessage(MessageUtil.errorText("You cannot teleport while in combat!")); - case SUCCESS_INSTANT -> player.sendMessage(MessageUtil.successText("Teleported to faction home!")); + case NOT_IN_FACTION -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Common.NOT_IN_FACTION)); + case NO_HOME -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.NO_HOME)); + case COMBAT_TAGGED -> player.sendMessage(MessageUtil.error(playerRef, MessageKeys.Home.COMBAT_TAGGED)); + case SUCCESS_INSTANT -> player.sendMessage(MessageUtil.success(playerRef, MessageKeys.Home.TELEPORTED)); case ON_COOLDOWN, SUCCESS_WARMUP -> {} // Message sent by TeleportManager default -> {} } @@ -592,7 +598,7 @@ private void handleTeleportResult(Player player, TeleportManager.TeleportResult private void handleDeleteHome(Player player, Ref ref, Store store, UUID uuid) { if (faction.home() == null) { - player.sendMessage(MessageUtil.text("Your faction does not have a home set.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.info(playerRef, MessageKeys.SettingsGui.HOME_NO_SET, MessageUtil.COLOR_GOLD)); sendUpdate(); return; } @@ -600,7 +606,7 @@ private void handleDeleteHome(Player player, Ref ref, Store 0) { events.addEventBinding( @@ -186,7 +187,7 @@ private List getSearchResults() { PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(f.id()); FactionMember leader = f.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); entries.add(new FactionEntry( f.id(), @@ -217,9 +218,9 @@ private void buildFactionCards(UICommandBuilder cmd, UIEventBuilder events, // Faction info cmd.set(prefix + "#FactionName.Text", entry.name); - cmd.set(prefix + "#LeaderName.Text", "Leader: " + entry.leaderName); - cmd.set(prefix + "#PowerCount.Text", String.format("%.0f power", entry.power)); - cmd.set(prefix + "#MemberCount.Text", entry.memberCount + " members"); + cmd.set(prefix + "#LeaderName.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.LEADER_LABEL, entry.leaderName)); + cmd.set(prefix + "#PowerCount.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.POWER_DISPLAY, String.format("%.0f", entry.power))); + cmd.set(prefix + "#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.MEMBER_COUNT_DISPLAY, entry.memberCount)); // Ally button events.addEventBinding( @@ -294,7 +295,7 @@ public void handleDataEvent(Ref ref, Store store, case "RequestAlly" -> { if (!canManage) { - player.sendMessage(MessageUtil.errorText("You don't have permission to manage relations.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.SettingsGui.NO_PERMISSION)); sendUpdate(); return; } @@ -302,7 +303,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID targetId = UuidUtil.parseOrNull(data.factionId); if (targetId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.BrowserGui.INVALID_FACTION)); sendUpdate(); return; } @@ -310,17 +311,17 @@ public void handleDataEvent(Ref ref, Store store, RelationManager.RelationResult result = relationManager.requestAlly(uuid, targetId); if (result == RelationManager.RelationResult.REQUEST_SENT) { - player.sendMessage(Message.raw("Alliance request sent to " + data.factionName + ".").color("#00AAFF")); + player.sendMessage(MessageUtil.info(playerRef, MessageKeys.RelationsGui.REQUEST_SENT, "#00AAFF", data.factionName)); // Navigate to pending tab since a request was sent guiManager.openFactionRelations(player, ref, store, playerRef, factionManager.getFaction(faction.id()), "pending"); } else if (result == RelationManager.RelationResult.REQUEST_ACCEPTED) { - player.sendMessage(Message.raw("Now allied with " + data.factionName + "!").color("#00AAFF")); + player.sendMessage(MessageUtil.info(playerRef, MessageKeys.RelationsGui.NOW_ALLIED, "#00AAFF", data.factionName)); // Navigate to relations tab since alliance is now active guiManager.openFactionRelations(player, ref, store, playerRef, factionManager.getFaction(faction.id()), "relations"); } else { - player.sendMessage(Message.raw("Failed: " + result).color("#FF5555")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RelationsGui.FAILED, result)); guiManager.openFactionRelations(player, ref, store, playerRef, factionManager.getFaction(faction.id())); } @@ -329,7 +330,7 @@ public void handleDataEvent(Ref ref, Store store, case "SetEnemy" -> { if (!canManage) { - player.sendMessage(MessageUtil.errorText("You don't have permission to manage relations.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.SettingsGui.NO_PERMISSION)); sendUpdate(); return; } @@ -337,7 +338,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID targetId = UuidUtil.parseOrNull(data.factionId); if (targetId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.BrowserGui.INVALID_FACTION)); sendUpdate(); return; } @@ -345,9 +346,9 @@ public void handleDataEvent(Ref ref, Store store, RelationManager.RelationResult result = relationManager.setEnemy(uuid, targetId); if (result == RelationManager.RelationResult.SUCCESS) { - player.sendMessage(Message.raw("Now enemies with " + data.factionName + "!").color("#FF5555")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RelationsGui.NOW_ENEMIES, data.factionName)); } else { - player.sendMessage(Message.raw("Failed: " + result).color("#FF5555")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.RelationsGui.FAILED, result)); } guiManager.openFactionRelations(player, ref, store, playerRef, @@ -359,7 +360,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID targetId = UuidUtil.parseOrNull(data.factionId); if (targetId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.BrowserGui.INVALID_FACTION)); sendUpdate(); return; } @@ -369,7 +370,7 @@ public void handleDataEvent(Ref ref, Store store, if (targetFaction != null) { guiManager.openFactionInfo(player, ref, store, playerRef, targetFaction, "relations"); } else { - player.sendMessage(MessageUtil.errorText("Faction no longer exists.")); + player.sendMessage(MessageUtil.error(playerRef, MessageKeys.PlayerInfoGui.FACTION_GONE)); sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index dc5b8f77..ae9f692b 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -892,6 +892,79 @@ public static final class ChatDisplay { private ChatDisplay() {} } + /** Relations page labels and messages. */ + public static final class RelationsGui { + public static final String RELATION_COUNT = "hyperfactions_gui.relations.relation_count"; + public static final String REQUEST_COUNT = "hyperfactions_gui.relations.request_count"; + public static final String TYPE_ALLY = "hyperfactions_gui.relations.type_ally"; + public static final String TYPE_ENEMY = "hyperfactions_gui.relations.type_enemy"; + public static final String TYPE_INCOMING = "hyperfactions_gui.relations.type_incoming"; + public static final String TYPE_OUTGOING = "hyperfactions_gui.relations.type_outgoing"; + public static final String INCOMING_REQUEST = "hyperfactions_gui.relations.incoming_request"; + public static final String OUTGOING_REQUEST = "hyperfactions_gui.relations.outgoing_request"; + public static final String EMPTY_RELATIONS = "hyperfactions_gui.relations.empty_relations"; + public static final String EMPTY_RELATIONS_HINT = "hyperfactions_gui.relations.empty_relations_hint"; + public static final String EMPTY_PENDING = "hyperfactions_gui.relations.empty_pending"; + public static final String TODAY = "hyperfactions_gui.relations.today"; + public static final String ONE_DAY_AGO = "hyperfactions_gui.relations.one_day_ago"; + public static final String DAYS_AGO = "hyperfactions_gui.relations.days_ago"; + public static final String NOW_NEUTRAL = "hyperfactions_gui.relations.now_neutral"; + public static final String NOW_ENEMIES = "hyperfactions_gui.relations.now_enemies"; + public static final String REQUEST_SENT = "hyperfactions_gui.relations.request_sent"; + public static final String NOW_ALLIED = "hyperfactions_gui.relations.now_allied"; + public static final String REQUEST_DECLINED = "hyperfactions_gui.relations.request_declined"; + public static final String REQUEST_CANCELLED = "hyperfactions_gui.relations.request_cancelled"; + public static final String FAILED = "hyperfactions_gui.relations.failed"; + public static final String SEARCH_HINT = "hyperfactions_gui.relations.search_hint"; + public static final String NO_RESULTS = "hyperfactions_gui.relations.no_results"; + public static final String POWER_DISPLAY = "hyperfactions_gui.relations.power_display"; + public static final String MEMBER_COUNT_DISPLAY = "hyperfactions_gui.relations.member_count"; + + private RelationsGui() {} + } + + /** Settings page labels and messages. */ + public static final class SettingsGui { + public static final String OFFICERS_ONLY = "hyperfactions_gui.settings.officers_only"; + public static final String DISPLAY_NONE = "hyperfactions_gui.settings.display_none"; + public static final String HOME_NOT_SET = "hyperfactions_gui.settings.home_not_set"; + public static final String NO_PERMISSION = "hyperfactions_gui.settings.no_permission"; + public static final String ONLY_LEADER_DISBAND = "hyperfactions_gui.settings.only_leader_disband"; + public static final String PERM_LOCKED = "hyperfactions_gui.settings.perm_locked"; + public static final String NO_PERM_EDIT = "hyperfactions_gui.settings.no_perm_edit"; + public static final String ONLY_LEADER_OFFICERS = "hyperfactions_gui.settings.only_leader_officers"; + public static final String PVP_ENABLED = "hyperfactions_gui.settings.pvp_enabled"; + public static final String PVP_DISABLED = "hyperfactions_gui.settings.pvp_disabled"; + public static final String NOT_IN_TERRITORY = "hyperfactions_gui.settings.not_in_territory"; + public static final String HOME_SET = "hyperfactions_gui.settings.home_set"; + public static final String RECRUITMENT_SET = "hyperfactions_gui.settings.recruitment_set"; + public static final String HOME_NO_SET = "hyperfactions_gui.settings.home_no_set"; + public static final String HOME_DELETED = "hyperfactions_gui.settings.home_deleted"; + + private SettingsGui() {} + } + + /** Modules page labels. */ + public static final class ModulesGui { + public static final String TREASURY_NAME = "hyperfactions_gui.modules.treasury_name"; + public static final String TREASURY_DESC = "hyperfactions_gui.modules.treasury_desc"; + public static final String RAIDS_NAME = "hyperfactions_gui.modules.raids_name"; + public static final String RAIDS_DESC = "hyperfactions_gui.modules.raids_desc"; + public static final String LEVELS_NAME = "hyperfactions_gui.modules.levels_name"; + public static final String LEVELS_DESC = "hyperfactions_gui.modules.levels_desc"; + public static final String WAR_NAME = "hyperfactions_gui.modules.war_name"; + public static final String WAR_DESC = "hyperfactions_gui.modules.war_desc"; + public static final String COMING_SOON = "hyperfactions_gui.modules.coming_soon"; + public static final String ACTIVE = "hyperfactions_gui.modules.active"; + public static final String VIEW_TREASURY = "hyperfactions_gui.modules.view_treasury"; + public static final String UNAVAILABLE = "hyperfactions_gui.modules.unavailable"; + public static final String NO_ECONOMY = "hyperfactions_gui.modules.no_economy"; + public static final String DISABLED = "hyperfactions_gui.modules.disabled"; + public static final String ECONOMY_NOT_AVAILABLE = "hyperfactions_gui.modules.economy_not_available"; + + private ModulesGui() {} + } + /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index fda358aa..1531ce85 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -144,3 +144,64 @@ playerinfo.reason_active = ACTIVE playerinfo.reason_left = LEFT playerinfo.reason_kicked = KICKED playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server From b8d955c7082df2118464407e66c6b8f29754eb3e Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 16:15:58 -0700 Subject: [PATCH 14/76] feat: localize Treasury pages (Phase 3e) Migrate all 5 treasury page classes to i18n: - TreasuryPage: dashboard stats, upkeep, transaction type names, actor names - TreasuryDepositModalPage: deposit/withdraw modal labels and messages - TreasuryTransferSearchPage: search results, player/faction tags - TreasuryTransferConfirmPage: fee labels, transfer result messages - TreasurySettingsPage: leader-only permission errors, limit validation Add ~70 treasury keys to MessageKeys.TreasuryGui and hyperfactions_gui.lang. --- .../page/TreasuryDepositModalPage.java | 67 +++++++++------- .../gui/faction/page/TreasuryPage.java | 69 +++++++++------- .../faction/page/TreasurySettingsPage.java | 9 ++- .../page/TreasuryTransferConfirmPage.java | 38 +++++---- .../page/TreasuryTransferSearchPage.java | 22 ++++-- .../com/hyperfactions/util/MessageKeys.java | 79 +++++++++++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 69 ++++++++++++++++ 7 files changed, 270 insertions(+), 83 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryDepositModalPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryDepositModalPage.java index 0e8b860d..a617809d 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryDepositModalPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryDepositModalPage.java @@ -16,6 +16,8 @@ import com.hyperfactions.integration.economy.VaultEconomyProvider; import com.hyperfactions.manager.EconomyManager; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.UiUtil; import com.hypixel.hytale.component.Ref; @@ -81,23 +83,29 @@ public void build(Ref ref, UICommandBuilder cmd, UUID uuid = playerRef.getUuid(); // Set mode subtitle - cmd.set("#ModeLabel.Text", isDeposit ? "Deposit to Treasury" : "Withdraw from Treasury"); + cmd.set("#ModeLabel.Text", isDeposit + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.DEPOSIT_TITLE) + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.WITHDRAW_TITLE)); // Set balances VaultEconomyProvider vault = economyManager.getVaultProvider(); - cmd.set("#WalletLabel.Text", "Your wallet: " + economyManager.formatCurrency(vault.getBalanceBigDecimal(uuid))); + cmd.set("#WalletLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.WALLET_LABEL, + economyManager.formatCurrency(vault.getBalanceBigDecimal(uuid)))); FactionEconomy economy = economyManager.getEconomy(faction.id()); BigDecimal treasuryBalance = economy != null ? economy.balance() : BigDecimal.ZERO; - cmd.set("#TreasuryLabel.Text", "Treasury balance: " + economyManager.formatCurrency(treasuryBalance)); + cmd.set("#TreasuryLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TREASURY_LABEL, + economyManager.formatCurrency(treasuryBalance))); // Fee label EconomyAPI.TransactionType txType = isDeposit ? EconomyAPI.TransactionType.DEPOSIT : EconomyAPI.TransactionType.WITHDRAW; BigDecimal feePercent = isDeposit ? ConfigManager.get().getDepositFeePercent() : ConfigManager.get().getWithdrawFeePercent(); - cmd.set("#FeeLabel.Text", "Fee (" + feePercent.toPlainString() + "%):"); + cmd.set("#FeeLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.FEE_LABEL, feePercent.toPlainString())); // Confirm button text - cmd.set("#ConfirmBtn.Text", isDeposit ? "Confirm Deposit" : "Confirm Withdrawal"); + cmd.set("#ConfirmBtn.Text", isDeposit + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.CONFIRM_DEPOSIT) + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.CONFIRM_WITHDRAWAL)); // Check withdraw permission if (!isDeposit) { @@ -177,10 +185,12 @@ private void handlePreview(DepositModalData data) { cmd.set("#FeeAmount.Text", economyManager.formatCurrency(amount)); cmd.set("#FeeValue.Text", fee.compareTo(BigDecimal.ZERO) > 0 ? "-" + economyManager.formatCurrency(fee) : economyManager.formatCurrency(BigDecimal.ZERO)); if (isDeposit) { - cmd.set("#FeeTotal.Text", economyManager.formatCurrency(total) + " from wallet"); + cmd.set("#FeeTotal.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.FROM_WALLET, + economyManager.formatCurrency(total))); } else { BigDecimal net = amount.subtract(fee); - cmd.set("#FeeTotal.Text", economyManager.formatCurrency(net) + " to wallet"); + cmd.set("#FeeTotal.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TO_WALLET, + economyManager.formatCurrency(net))); } } @@ -200,7 +210,7 @@ private void handleConfirm(Player player, Ref ref, Store ref, Store ref, Store 0) { - msg += " (fee: " + economyManager.formatCurrency(fee) + ")"; + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.TreasuryGui.DEPOSITED_FEE, + economyManager.formatCurrency(amount), economyManager.formatCurrency(fee))); + } else { + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.TreasuryGui.DEPOSITED, + economyManager.formatCurrency(amount))); } - player.sendMessage(MessageUtil.successText(msg)); Faction fresh = factionManager.getFaction(faction.id()); if (fresh != null) { @@ -261,7 +273,7 @@ private void handleWithdrawConfirm(Player player, Ref ref, Store ref, Store ref, Store - player.sendMessage(MessageUtil.errorText("Insufficient funds in treasury.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.TreasuryGui.INSUFFICIENT_TREASURY)); case LIMIT_EXCEEDED -> - player.sendMessage(MessageUtil.errorText("Withdrawal limit exceeded.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.TreasuryGui.WITHDRAW_LIMIT)); default -> - player.sendMessage(MessageUtil.errorText("Withdrawal failed: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.TreasuryGui.WITHDRAW_FAILED, result)); } sendUpdate(); return; @@ -293,18 +305,19 @@ private void handleWithdrawConfirm(Player player, Ref ref, Store 0) { - msg += " (fee: " + economyManager.formatCurrency(fee) + ", received: " - + economyManager.formatCurrency(netToWallet) + ")"; + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.TreasuryGui.WITHDREW_FEE, + economyManager.formatCurrency(amount), economyManager.formatCurrency(fee), + economyManager.formatCurrency(netToWallet))); + } else { + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.TreasuryGui.WITHDREW, + economyManager.formatCurrency(amount))); } - player.sendMessage(MessageUtil.successText(msg)); Faction fresh = factionManager.getFaction(faction.id()); if (fresh != null) { diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java index 66844e78..a4f0b9e8 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java @@ -16,6 +16,8 @@ import com.hyperfactions.gui.faction.data.TreasuryData; import com.hyperfactions.manager.EconomyManager; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UiUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -114,7 +116,8 @@ private void buildStatCards(UICommandBuilder cmd, FactionEconomy economy, UUID u // Wallet balance BigDecimal walletBalance = economyManager.getVaultProvider().getBalanceBigDecimal(uuid); - cmd.set("#WalletBalance.Text", "Your wallet: " + economyManager.formatCurrencyCompact(walletBalance)); + cmd.set("#WalletBalance.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.WALLET_LABEL, + economyManager.formatCurrencyCompact(walletBalance))); // 24h P&L PnlResult pnl = calculatePnl(economy); @@ -160,11 +163,10 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, } // Show chunk breakdown - String chunkDetail = freeChunks > 0 - ? String.format("%d free + %d billable chunks", Math.min(freeChunks, claimCount), billableChunks) - : billableChunks + " billable chunks"; - cmd.set("#UpkeepCost.Text", "Cost: " + economyManager.formatCurrency(costPerCycle) - + " every " + intervalHours + "h"); + String chunkDetail = HFMessages.get(playerRef, MessageKeys.TreasuryGui.CHUNKS_DETAIL, + Math.min(freeChunks, claimCount), billableChunks); + String costString = economyManager.formatCurrency(costPerCycle) + " every " + intervalHours + "h"; + cmd.set("#UpkeepCost.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COST_LABEL, costString)); cmd.set("#UpkeepDetail.Text", chunkDetail); // Color-code the progress bar based on status @@ -180,10 +182,14 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, } cmd.set("#UpkeepBar.Value", progress); cmd.set("#UpkeepBar.Bar.Color", barColor); - cmd.set("#UpkeepTimer.Text", remaining < 0 ? "Pending" : formatDuration(remaining) + " left"); + cmd.set("#UpkeepTimer.Text", remaining < 0 + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.PENDING) + : formatDuration(remaining) + " left"); boolean autoPay = economy != null && economy.upkeepAutoPay(); - cmd.set("#AutoPayStatus.Text", "Auto-pay: " + (autoPay ? "ON" : "OFF")); + cmd.set("#AutoPayStatus.Text", autoPay + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.AUTO_PAY_ON) + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.AUTO_PAY_OFF)); cmd.set("#AutoPayStatus.Style.TextColor", autoPay ? "#55FF55" : "#FF5555"); // Cost projections row @@ -206,19 +212,23 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, String runwayText; String runwayColor; if (runwayDays > 90) { - runwayText = "90+ days"; + runwayText = HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_90_PLUS); runwayColor = "#55FF55"; } else if (runwayDays > 0) { - runwayText = runwayDays + " day" + (runwayDays != 1 ? "s" : ""); + runwayText = runwayDays != 1 + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_DAYS, runwayDays) + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_DAY, runwayDays); runwayColor = runwayDays <= 3 ? "#FF5555" : runwayDays <= 7 ? "#FFAA00" : "#55FF55"; } else { - runwayText = "< 1 day"; + runwayText = HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_LESS_THAN_DAY); runwayColor = "#FF5555"; } cmd.set("#RunwayValue.Text", runwayText); cmd.set("#RunwayValue.Style.TextColor", runwayColor); } else { - cmd.set("#RunwayValue.Text", balance.compareTo(BigDecimal.ZERO) == 0 ? "No funds" : "N/A"); + cmd.set("#RunwayValue.Text", balance.compareTo(BigDecimal.ZERO) == 0 + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_NO_FUNDS) + : HFMessages.get(playerRef, MessageKeys.Common.NA)); cmd.set("#RunwayValue.Style.TextColor", "#FF5555"); } } @@ -229,13 +239,16 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, long graceMs = config.getUpkeepGracePeriodHours() * 3600_000L; long graceElapsed = System.currentTimeMillis() - economy.upkeepGraceStartTimestamp(); long graceRemaining = Math.max(0, graceMs - graceElapsed); - cmd.set("#GraceTimer.Text", "Grace expires in: " + formatDuration(graceRemaining)); - cmd.set("#MissedCount.Text", "Missed payments: " + economy.consecutiveMissedPayments()); + cmd.set("#GraceTimer.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.GRACE_EXPIRES, + formatDuration(graceRemaining))); + cmd.set("#MissedCount.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MISSED_PAYMENTS, + economy.consecutiveMissedPayments())); // Show Pay Now button if faction can afford the upkeep cost if (canAfford && billableChunks > 0) { cmd.set("#PayNowRow.Visible", true); - cmd.set("#PayNowCost.Text", "Pay " + economyManager.formatCurrency(costPerCycle) + " to clear grace"); + cmd.set("#PayNowCost.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.PAY_TO_CLEAR, + economyManager.formatCurrency(costPerCycle))); events.addEventBinding(CustomUIEventBindingType.Activating, "#PayNowBtn", EventData.of("Button", "PayNow"), false); } @@ -477,19 +490,19 @@ private static String formatDuration(long millis) { return minutes + "m"; } - private static String getHumanTypeName(EconomyAPI.TransactionType type) { + private String getHumanTypeName(EconomyAPI.TransactionType type) { return switch (type) { - case DEPOSIT -> "Deposit"; - case WITHDRAW -> "Withdrawal"; - case TRANSFER_IN -> "Transfer In"; - case TRANSFER_OUT -> "Transfer Out"; - case PLAYER_TRANSFER_OUT -> "Player Transfer"; - case UPKEEP -> "Upkeep"; - case TAX_COLLECTION -> "Tax Collection"; - case WAR_COST -> "War Cost"; - case RAID_COST -> "Raid Cost"; - case SPOILS -> "Spoils"; - case ADMIN_ADJUSTMENT -> "Admin Adjustment"; + case DEPOSIT -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_DEPOSIT); + case WITHDRAW -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_WITHDRAWAL); + case TRANSFER_IN -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_TRANSFER_IN); + case TRANSFER_OUT -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_TRANSFER_OUT); + case PLAYER_TRANSFER_OUT -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_PLAYER_TRANSFER); + case UPKEEP -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_UPKEEP); + case TAX_COLLECTION -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_TAX); + case WAR_COST -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_WAR_COST); + case RAID_COST -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_RAID_COST); + case SPOILS -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_SPOILS); + case ADMIN_ADJUSTMENT -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.TYPE_ADMIN); }; } @@ -511,7 +524,7 @@ private static String getTypeSign(EconomyAPI.TransactionType type) { private String resolveActorName(UUID actorId) { if (actorId == null) { - return "System"; + return HFMessages.get(playerRef, MessageKeys.TreasuryGui.SYSTEM); } FactionMember member = faction.getMember(actorId); if (member != null) { diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java index 7264dd94..655f8ae2 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java @@ -12,6 +12,9 @@ import com.hyperfactions.gui.faction.data.TreasurySettingsData; import com.hyperfactions.manager.EconomyManager; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -150,7 +153,7 @@ private void handleTogglePerm(Player player, Ref ref, Store ref, Store ref, UICommandBuilder cmd, // Target info cmd.set("#TargetName.Text", targetName); - String typeTag = "player".equals(targetType) ? "[Player]" : "[Faction]"; + String typeTag = "player".equals(targetType) + ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.TAG_PLAYER) + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.TAG_FACTION); cmd.set("#TargetType.Text", typeTag); // Set tag color dynamically (Labels support .Style.TextColor) if ("faction".equals(targetType)) { @@ -93,11 +97,11 @@ public void build(Ref ref, UICommandBuilder cmd, // Treasury balance FactionEconomy economy = economyManager.getEconomy(faction.id()); BigDecimal treasuryBalance = economy != null ? economy.balance() : BigDecimal.ZERO; - cmd.set("#TreasuryLabel.Text", "Treasury: " + economyManager.formatCurrency(treasuryBalance)); + cmd.set("#TreasuryLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TREASURY_LABEL, economyManager.formatCurrency(treasuryBalance))); // Fee label BigDecimal feePercent = ConfigManager.get().getTransferFeePercent(); - cmd.set("#FeeLabel.Text", "Fee (" + feePercent.toPlainString() + "%):"); + cmd.set("#FeeLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.FEE_LABEL, feePercent.toPlainString())); // Event bindings events.addEventBinding(CustomUIEventBindingType.Activating, "#CancelBtn", @@ -168,14 +172,14 @@ private void handleConfirm(Player player, Ref ref, Store ref, Store ref, Store ref, Store ref, Store ref, Store ref, Store ref, Store 0) { events.addEventBinding(CustomUIEventBindingType.Activating, "#PrevBtn", @@ -163,9 +167,11 @@ private List getSearchResults() { List players = PlayerResolver.search(plugin, searchQuery, selfUuid); for (PlayerResolver.ResolvedPlayer p : players) { String subtitle = switch (p.source()) { - case ONLINE -> "Online" + (p.factionName() != null ? " - " + p.factionName() : ""); - case FACTION_MEMBER -> "Offline - " + p.factionName(); - case PLAYER_DB -> "Hytale player"; + case ONLINE -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.SOURCE_ONLINE) + + (p.factionName() != null ? " - " + p.factionName() : ""); + case FACTION_MEMBER -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.SOURCE_OFFLINE) + + " - " + p.factionName(); + case PLAYER_DB -> HFMessages.get(playerRef, MessageKeys.TreasuryGui.SOURCE_PLAYER_DB); }; results.add(new SearchResult(p.uuid().toString(), p.username(), "player", subtitle)); } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index ae9f692b..940951f5 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -965,6 +965,85 @@ public static final class ModulesGui { private ModulesGui() {} } + /** Treasury page labels and messages. */ + public static final class TreasuryGui { + // Dashboard labels + public static final String WALLET_LABEL = "hyperfactions_gui.treasury.wallet_label"; + public static final String TREASURY_LABEL = "hyperfactions_gui.treasury.treasury_label"; + public static final String CHUNKS_DETAIL = "hyperfactions_gui.treasury.chunks_detail"; + public static final String COST_LABEL = "hyperfactions_gui.treasury.cost_label"; + public static final String PENDING = "hyperfactions_gui.treasury.pending"; + public static final String AUTO_PAY_ON = "hyperfactions_gui.treasury.auto_pay_on"; + public static final String AUTO_PAY_OFF = "hyperfactions_gui.treasury.auto_pay_off"; + public static final String RUNWAY_90_PLUS = "hyperfactions_gui.treasury.runway_90_plus"; + public static final String RUNWAY_DAYS = "hyperfactions_gui.treasury.runway_days"; + public static final String RUNWAY_DAY = "hyperfactions_gui.treasury.runway_day"; + public static final String RUNWAY_LESS_THAN_DAY = "hyperfactions_gui.treasury.runway_less_day"; + public static final String RUNWAY_NO_FUNDS = "hyperfactions_gui.treasury.runway_no_funds"; + public static final String GRACE_EXPIRES = "hyperfactions_gui.treasury.grace_expires"; + public static final String MISSED_PAYMENTS = "hyperfactions_gui.treasury.missed_payments"; + public static final String PAY_TO_CLEAR = "hyperfactions_gui.treasury.pay_to_clear"; + public static final String SYSTEM = "hyperfactions_gui.treasury.system"; + // Transaction types + public static final String TYPE_DEPOSIT = "hyperfactions_gui.treasury.type_deposit"; + public static final String TYPE_WITHDRAWAL = "hyperfactions_gui.treasury.type_withdrawal"; + public static final String TYPE_TRANSFER_IN = "hyperfactions_gui.treasury.type_transfer_in"; + public static final String TYPE_TRANSFER_OUT = "hyperfactions_gui.treasury.type_transfer_out"; + public static final String TYPE_PLAYER_TRANSFER = "hyperfactions_gui.treasury.type_player_transfer"; + public static final String TYPE_UPKEEP = "hyperfactions_gui.treasury.type_upkeep"; + public static final String TYPE_TAX = "hyperfactions_gui.treasury.type_tax"; + public static final String TYPE_WAR_COST = "hyperfactions_gui.treasury.type_war_cost"; + public static final String TYPE_RAID_COST = "hyperfactions_gui.treasury.type_raid_cost"; + public static final String TYPE_SPOILS = "hyperfactions_gui.treasury.type_spoils"; + public static final String TYPE_ADMIN = "hyperfactions_gui.treasury.type_admin"; + // Deposit/Withdraw modal + public static final String DEPOSIT_TITLE = "hyperfactions_gui.treasury.deposit_title"; + public static final String WITHDRAW_TITLE = "hyperfactions_gui.treasury.withdraw_title"; + public static final String FEE_LABEL = "hyperfactions_gui.treasury.fee_label"; + public static final String CONFIRM_DEPOSIT = "hyperfactions_gui.treasury.confirm_deposit"; + public static final String CONFIRM_WITHDRAWAL = "hyperfactions_gui.treasury.confirm_withdrawal"; + public static final String FROM_WALLET = "hyperfactions_gui.treasury.from_wallet"; + public static final String TO_WALLET = "hyperfactions_gui.treasury.to_wallet"; + public static final String ENTER_VALID_AMOUNT = "hyperfactions_gui.treasury.enter_valid_amount"; + public static final String INSUFFICIENT_WALLET = "hyperfactions_gui.treasury.insufficient_wallet"; + public static final String WALLET_WITHDRAW_FAILED = "hyperfactions_gui.treasury.wallet_withdraw_failed"; + public static final String DEPOSIT_FAILED_RETURNED = "hyperfactions_gui.treasury.deposit_failed_returned"; + public static final String DEPOSITED = "hyperfactions_gui.treasury.deposited"; + public static final String DEPOSITED_FEE = "hyperfactions_gui.treasury.deposited_fee"; + public static final String NO_WITHDRAW_PERMISSION = "hyperfactions_gui.treasury.no_withdraw_permission"; + public static final String WITHDRAW_DENIED = "hyperfactions_gui.treasury.withdraw_denied"; + public static final String INSUFFICIENT_TREASURY = "hyperfactions_gui.treasury.insufficient_treasury"; + public static final String WITHDRAW_LIMIT = "hyperfactions_gui.treasury.withdraw_limit"; + public static final String WITHDRAW_FAILED = "hyperfactions_gui.treasury.withdraw_failed"; + public static final String WALLET_DEPOSIT_WARN = "hyperfactions_gui.treasury.wallet_deposit_warn"; + public static final String WITHDREW = "hyperfactions_gui.treasury.withdrew"; + public static final String WITHDREW_FEE = "hyperfactions_gui.treasury.withdrew_fee"; + // Transfer search + public static final String SEARCH_HINT = "hyperfactions_gui.treasury.search_hint"; + public static final String NO_RESULTS = "hyperfactions_gui.treasury.no_results"; + public static final String TAG_PLAYER = "hyperfactions_gui.treasury.tag_player"; + public static final String TAG_FACTION = "hyperfactions_gui.treasury.tag_faction"; + public static final String SOURCE_ONLINE = "hyperfactions_gui.treasury.source_online"; + public static final String SOURCE_OFFLINE = "hyperfactions_gui.treasury.source_offline"; + public static final String SOURCE_PLAYER_DB = "hyperfactions_gui.treasury.source_player_db"; + // Transfer confirm + public static final String NO_TRANSFER_PERMISSION = "hyperfactions_gui.treasury.no_transfer_permission"; + public static final String TRANSFER_DENIED = "hyperfactions_gui.treasury.transfer_denied"; + public static final String INVALID_TARGET_FACTION = "hyperfactions_gui.treasury.invalid_target_faction"; + public static final String TARGET_FACTION_GONE = "hyperfactions_gui.treasury.target_faction_gone"; + public static final String TRANSFER_FAILED = "hyperfactions_gui.treasury.transfer_failed"; + public static final String TRANSFER_FAILED_RETURNED = "hyperfactions_gui.treasury.transfer_failed_returned"; + public static final String TRANSFERRED = "hyperfactions_gui.treasury.transferred"; + public static final String INVALID_TARGET_PLAYER = "hyperfactions_gui.treasury.invalid_target_player"; + public static final String PLAYER_TRANSFER_FAILED = "hyperfactions_gui.treasury.player_transfer_failed"; + // Treasury settings + public static final String LEADER_ONLY_PERMS = "hyperfactions_gui.treasury.leader_only_perms"; + public static final String LEADER_ONLY_UPKEEP = "hyperfactions_gui.treasury.leader_only_upkeep"; + public static final String INVALID_LIMIT = "hyperfactions_gui.treasury.invalid_limit"; + + private TreasuryGui() {} + } + /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 1531ce85..ff77cbaf 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -205,3 +205,72 @@ modules.unavailable = Unavailable modules.no_economy = No economy plugin detected modules.disabled = Disabled modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. From 96a3629d2aedebe7b2d34b88214bb037192b7c8f Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 16:27:54 -0700 Subject: [PATCH 15/76] feat: localize confirmation, logs, chat, invites, and map pages (Phase 3f) Migrate hardcoded strings to i18n keys across 8 remaining faction GUI pages: - DisbandConfirmPage, LeaderLeaveConfirmPage, LeaveConfirmPage, TransferConfirmPage - LogsViewerPage, FactionChatPage, FactionInvitesPage, ChunkMapPage Adds ConfirmGui, LogsGui, ChatGui, InvitesGui, and MapGui key groups with ~90 new translation entries in hyperfactions_gui.lang. --- .../gui/faction/page/ChunkMapPage.java | 67 +++++----- .../gui/faction/page/DisbandConfirmPage.java | 13 +- .../gui/faction/page/FactionChatPage.java | 18 +-- .../gui/faction/page/FactionInvitesPage.java | 48 +++---- .../faction/page/LeaderLeaveConfirmPage.java | 27 ++-- .../gui/faction/page/LeaveConfirmPage.java | 15 +-- .../gui/faction/page/LogsViewerPage.java | 16 ++- .../gui/faction/page/TransferConfirmPage.java | 15 +-- .../com/hyperfactions/util/MessageKeys.java | 118 ++++++++++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 91 ++++++++++++++ 10 files changed, 318 insertions(+), 110 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java index 43da1cf1..f8b89767 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java @@ -15,6 +15,9 @@ import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.integration.protection.OrbisGuardIntegration; import com.hyperfactions.manager.*; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.Logger; import com.hypixel.hytale.component.Ref; @@ -146,7 +149,7 @@ public void build(Ref ref, UICommandBuilder cmd, } // Current position info - cmd.set("#PositionInfo.Text", String.format("Your Position: Chunk (%d, %d)", playerChunkX, playerChunkZ)); + cmd.set("#PositionInfo.Text", HFMessages.get(playerRef, MessageKeys.MapGui.POSITION, playerChunkX, playerChunkZ)); // Dynamic legend: add OrbisGuard protected region entry when OG is available if (OrbisGuardIntegration.isAvailable()) { @@ -155,13 +158,13 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.appendInline("#LegendContainer[1]", "Group { LayoutMode: Left; Anchor: (Width: 110); " + "Group { Anchor: (Width: 10, Height: 10); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \" " + HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_PROTECTED) + "\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); } else { // Flat mode: append to column 3 (#LegendContainer[2]) cmd.appendInline("#LegendContainer[2]", "Group { LayoutMode: Left; Anchor: (Height: 16); " + "Group { Anchor: (Width: 12, Height: 12); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \" " + HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_PROTECTED) + "\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); } } @@ -180,7 +183,7 @@ public void build(Ref ref, UICommandBuilder cmd, int available = Math.max(0, maxClaims - currentClaims); // Claim stats: "Claims: 23/78 (55 Available)" - cmd.set("#ClaimStats.Text", String.format("Claims: %d/%d (%d Available)", currentClaims, maxClaims, available)); + cmd.set("#ClaimStats.Text", HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_STATS, currentClaims, maxClaims, available)); // Power status with overclaim warning double currentPower = stats.currentPower(); @@ -190,13 +193,13 @@ public void build(Ref ref, UICommandBuilder cmd, if (isOverclaimed) { // Show overclaim warning in red int overclaimAmount = currentClaims - (int) currentPower; - cmd.set("#PowerStatus.Text", String.format("OVERCLAIMED by %d!", overclaimAmount)); + cmd.set("#PowerStatus.Text", HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIMED, overclaimAmount)); } else { // Normal power display - cmd.set("#PowerStatus.Text", String.format("Power: %.0f/%.0f", currentPower, maxPower)); + cmd.set("#PowerStatus.Text", HFMessages.get(playerRef, MessageKeys.MapGui.POWER_DISPLAY, (int) currentPower, (int) maxPower)); } } else { - cmd.set("#ClaimStats.Text", "Join a faction to claim"); + cmd.set("#ClaimStats.Text", HFMessages.get(playerRef, MessageKeys.MapGui.JOIN_TO_CLAIM)); cmd.set("#PowerStatus.Text", ""); } @@ -553,16 +556,16 @@ private void handleClaim(Player player, PlayerRef playerRef, String worldName, ClaimManager.ClaimResult result = claimManager.claim(playerRef.getUuid(), worldName, chunkX, chunkZ); Message message = switch (result) { - case SUCCESS -> CommandUtil.prefix().insert(Message.raw("Claimed chunk at (" + chunkX + ", " + chunkZ + ")!").color("#55FF55")); - case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw("You must be in a faction to claim territory.").color("#FF5555")); - case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw("Only officers and leaders can claim territory.").color("#FF5555")); - case ALREADY_CLAIMED_SELF -> CommandUtil.prefix().insert(Message.raw("You already own this chunk.").color("#FFAA00")); - case ALREADY_CLAIMED_OTHER -> CommandUtil.prefix().insert(Message.raw("This chunk is already claimed by another faction.").color("#FF5555")); - case NOT_ADJACENT -> CommandUtil.prefix().insert(Message.raw("You can only claim chunks adjacent to your territory.").color("#FF5555")); - case MAX_CLAIMS_REACHED -> CommandUtil.prefix().insert(Message.raw("You have reached your maximum claim limit.").color("#FF5555")); - case WORLD_NOT_ALLOWED -> CommandUtil.prefix().insert(Message.raw("Claiming is not allowed in this world.").color("#FF5555")); - case ORBISGUARD_PROTECTED -> CommandUtil.prefix().insert(Message.raw("This area is protected by OrbisGuard.").color("#FF5555")); - default -> CommandUtil.prefix().insert(Message.raw("Failed to claim chunk.").color("#FF5555")); + case SUCCESS -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_SUCCESS, chunkX, chunkZ)).color("#55FF55")); + case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_NOT_IN_FACTION)).color("#FF5555")); + case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_NOT_OFFICER)).color("#FF5555")); + case ALREADY_CLAIMED_SELF -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_ALREADY_YOURS)).color("#FFAA00")); + case ALREADY_CLAIMED_OTHER -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_ALREADY_CLAIMED)).color("#FF5555")); + case NOT_ADJACENT -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_NOT_ADJACENT)).color("#FF5555")); + case MAX_CLAIMS_REACHED -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_MAX)).color("#FF5555")); + case WORLD_NOT_ALLOWED -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_WORLD_NOT_ALLOWED)).color("#FF5555")); + case ORBISGUARD_PROTECTED -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_ORBISGUARD)).color("#FF5555")); + default -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.CLAIM_FAILED)).color("#FF5555")); }; player.sendMessage(message); @@ -577,13 +580,13 @@ private void handleUnclaim(Player player, PlayerRef playerRef, String worldName, ClaimManager.ClaimResult result = claimManager.unclaim(playerRef.getUuid(), worldName, chunkX, chunkZ); Message message = switch (result) { - case SUCCESS -> CommandUtil.prefix().insert(Message.raw("Unclaimed chunk at (" + chunkX + ", " + chunkZ + ").").color("#55FF55")); - case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw("You must be in a faction.").color("#FF5555")); - case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw("Only officers and leaders can unclaim territory.").color("#FF5555")); - case CHUNK_NOT_CLAIMED -> CommandUtil.prefix().insert(Message.raw("This chunk is not claimed.").color("#FFAA00")); - case NOT_YOUR_CLAIM -> CommandUtil.prefix().insert(Message.raw("This chunk belongs to another faction.").color("#FF5555")); - case CANNOT_UNCLAIM_HOME -> CommandUtil.prefix().insert(Message.raw("Cannot unclaim the chunk containing your faction home.").color("#FF5555")); - default -> CommandUtil.prefix().insert(Message.raw("Failed to unclaim chunk.").color("#FF5555")); + case SUCCESS -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_SUCCESS, chunkX, chunkZ)).color("#55FF55")); + case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_NOT_IN_FACTION)).color("#FF5555")); + case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_NOT_OFFICER)).color("#FF5555")); + case CHUNK_NOT_CLAIMED -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_NOT_CLAIMED)).color("#FFAA00")); + case NOT_YOUR_CLAIM -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_NOT_YOURS)).color("#FF5555")); + case CANNOT_UNCLAIM_HOME -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_HOME)).color("#FF5555")); + default -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.UNCLAIM_FAILED)).color("#FF5555")); }; player.sendMessage(message); @@ -598,14 +601,14 @@ private void handleOverclaim(Player player, PlayerRef playerRef, String worldNam ClaimManager.ClaimResult result = claimManager.overclaim(playerRef.getUuid(), worldName, chunkX, chunkZ); Message message = switch (result) { - case SUCCESS -> CommandUtil.prefix().insert(Message.raw("Overclaimed enemy chunk at (" + chunkX + ", " + chunkZ + ")!").color("#55FF55")); - case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw("You must be in a faction.").color("#FF5555")); - case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw("Only officers and leaders can overclaim territory.").color("#FF5555")); - case ALREADY_CLAIMED_SELF -> CommandUtil.prefix().insert(Message.raw("You already own this chunk.").color("#FFAA00")); - case ALREADY_CLAIMED_ALLY -> CommandUtil.prefix().insert(Message.raw("You cannot overclaim allied territory.").color("#FF5555")); - case TARGET_HAS_POWER -> CommandUtil.prefix().insert(Message.raw("This faction has enough power to defend their territory.").color("#FF5555")); - case MAX_CLAIMS_REACHED -> CommandUtil.prefix().insert(Message.raw("You have reached your maximum claim limit.").color("#FF5555")); - default -> CommandUtil.prefix().insert(Message.raw("Failed to overclaim chunk.").color("#FF5555")); + case SUCCESS -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_SUCCESS, chunkX, chunkZ)).color("#55FF55")); + case NOT_IN_FACTION -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_NOT_IN_FACTION)).color("#FF5555")); + case NOT_OFFICER -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_NOT_OFFICER)).color("#FF5555")); + case ALREADY_CLAIMED_SELF -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_ALREADY_YOURS)).color("#FFAA00")); + case ALREADY_CLAIMED_ALLY -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_ALLY)).color("#FF5555")); + case TARGET_HAS_POWER -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_HAS_POWER)).color("#FF5555")); + case MAX_CLAIMS_REACHED -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_MAX)).color("#FF5555")); + default -> CommandUtil.prefix().insert(Message.raw(HFMessages.get(playerRef, MessageKeys.MapGui.OVERCLAIM_FAILED)).color("#FF5555")); }; player.sendMessage(message); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java index 829c9e07..703a8146 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java @@ -8,11 +8,12 @@ import com.hyperfactions.gui.shared.data.DisbandConfirmData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.builder.EventData; @@ -94,7 +95,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify leader permission if (member == null || member.role() != FactionRole.LEADER) { - player.sendMessage(MessageUtil.errorText("Only the leader can disband the faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.DISBAND_NOT_LEADER)); guiManager.openFactionSettings(player, ref, store, playerRef, factionManager.getFaction(faction.id())); return; @@ -115,13 +116,9 @@ public void handleDataEvent(Ref ref, Store store, FactionManager.FactionResult result = factionManager.disbandFaction(faction.id(), uuid); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage( - Message.raw("Faction '").color("#FF5555") - .insert(Message.raw(factionName).color("#AAAAAA")) - .insert(Message.raw("' has been disbanded.").color("#FF5555")) - ); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.DISBANDED, factionName)); } else { - player.sendMessage(MessageUtil.errorText("Failed to disband faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.DISBAND_FAILED)); } guiManager.openFactionMain(player, ref, store, playerRef); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java index 19057afb..8595ebe4 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java @@ -17,6 +17,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -109,7 +111,7 @@ public void build(Ref ref, UICommandBuilder cmd, buildMessageList(cmd); // Chat input placeholder - cmd.set("#ChatInput.PlaceholderText", "Type a message..."); + cmd.set("#ChatInput.PlaceholderText", HFMessages.get(playerRef, MessageKeys.ChatGui.PLACEHOLDER)); // Build chat input bar events buildChatInputEvents(events); @@ -157,7 +159,7 @@ private void buildMessageList(UICommandBuilder cmd) { if (messages.isEmpty()) { cmd.appendInline("#MessageList", - "Label { Text: \"No messages yet.\"; Style: (FontSize: 12, TextColor: #555555); " + "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.ChatGui.NO_MESSAGES) + "\"; Style: (FontSize: 12, TextColor: #555555); " + "Anchor: (Height: 30); }"); return; } @@ -229,13 +231,13 @@ private String formatTimestamp(long timestamp) { // Recent: show relative time if (ageMs < 60_000) { - return "now"; + return HFMessages.get(playerRef, MessageKeys.ChatGui.TIME_NOW); } else if (ageMs < 3_600_000) { long minutes = ageMs / 60_000; - return minutes + "m"; + return HFMessages.get(playerRef, MessageKeys.ChatGui.TIME_MINUTES, minutes); } else if (ageMs < 86_400_000) { long hours = ageMs / 3_600_000; - return hours + "h"; + return HFMessages.get(playerRef, MessageKeys.ChatGui.TIME_HOURS, hours); } // Older: show date + time @@ -284,7 +286,7 @@ public void handleDataEvent(Ref ref, Store store, } case "TabAlly" -> { if (!PermissionManager.get().hasPermission(pRef.getUuid(), Permissions.CHAT_ALLY)) { - player.sendMessage(MessageUtil.errorText("You don't have permission for ally chat.")); + player.sendMessage(MessageUtil.errorText(pRef, MessageKeys.ChatGui.NO_ALLY_PERMISSION)); rebuild(); return; } @@ -314,7 +316,7 @@ private void handleSendChat(Player player, PlayerRef pRef, FactionChatData data) String requiredPerm = (channel == ChatMessage.Channel.ALLY) ? Permissions.CHAT_ALLY : Permissions.CHAT_FACTION; if (!PermissionManager.get().hasPermission(uuid, requiredPerm)) { - player.sendMessage(MessageUtil.errorText("No permission.")); + player.sendMessage(MessageUtil.errorText(pRef, MessageKeys.ChatGui.NO_PERMISSION)); rebuild(); return; } @@ -322,7 +324,7 @@ private void handleSendChat(Player player, PlayerRef pRef, FactionChatData data) // Get fresh faction data Faction currentFaction = factionManager.getFaction(faction.id()); if (currentFaction == null) { - player.sendMessage(MessageUtil.errorText("Your faction no longer exists.")); + player.sendMessage(MessageUtil.errorText(pRef, MessageKeys.ChatGui.FACTION_GONE)); rebuild(); return; } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java index d5bfdfde..d56634f8 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java @@ -12,6 +12,8 @@ import com.hyperfactions.manager.InviteManager; import com.hyperfactions.manager.JoinRequestManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -131,7 +133,9 @@ private void buildList(UICommandBuilder cmd, UIEventBuilder events) { : getJoinRequests(); // Count - String countText = items.size() + (currentTab == Tab.OUTGOING ? " invites" : " requests"); + String countText = currentTab == Tab.OUTGOING + ? HFMessages.get(playerRef, MessageKeys.InvitesGui.INVITE_COUNT, items.size()) + : HFMessages.get(playerRef, MessageKeys.InvitesGui.REQUEST_COUNT, items.size()); cmd.set("#ItemCount.Text", countText); // Calculate pagination @@ -160,7 +164,7 @@ private void buildList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -200,7 +204,7 @@ private List getOutgoingInvites() { playerUuid.toString(), playerName, true, - "Invited by: " + inviterName, + HFMessages.get(playerRef, MessageKeys.InvitesGui.INVITED_BY, inviterName), null, invite.getRemainingSeconds() )); @@ -218,7 +222,7 @@ private List getJoinRequests() { for (JoinRequest request : requests) { String message = request.message(); if (message == null || message.isBlank()) { - message = "No message"; + message = HFMessages.get(playerRef, MessageKeys.InvitesGui.NO_MESSAGE); } else if (message.length() > 50) { message = message.substring(0, 47) + "..."; } @@ -248,14 +252,14 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, // Basic info cmd.set(idx + " #PlayerName.Text", item.playerName); - cmd.set(idx + " #StatusInfo.Text", "Expires: " + formatTime(item.remainingSeconds)); + cmd.set(idx + " #StatusInfo.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.EXPIRES, formatTime(item.remainingSeconds))); // Type badge if (item.isOutgoing) { - cmd.set(idx + " #TypeLabel.Text", "Outgoing"); + cmd.set(idx + " #TypeLabel.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.TYPE_OUTGOING)); cmd.set(idx + " #TypeLabel.Style.TextColor", "#55FFFF"); } else { - cmd.set(idx + " #TypeLabel.Text", "Request"); + cmd.set(idx + " #TypeLabel.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.TYPE_REQUEST)); cmd.set(idx + " #TypeLabel.Style.TextColor", "#FFAA00"); } @@ -277,7 +281,7 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, if (isExpanded) { if (item.isOutgoing) { // Outgoing invite - show inviter info - cmd.set(idx + " #InfoLabel.Text", "Invited by:"); + cmd.set(idx + " #InfoLabel.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.INVITED_BY_LABEL)); cmd.set(idx + " #InfoValue.Text", item.inviterInfo); cmd.set(idx + " #MessageRow.Visible", false); @@ -324,9 +328,9 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, private String getEmptyMessage() { if (currentTab == Tab.OUTGOING) { - return "No outgoing invites. Use /f invite to invite someone."; + return HFMessages.get(playerRef, MessageKeys.InvitesGui.EMPTY_OUTGOING); } else { - return "No join requests. Players can request to join with /f request."; + return HFMessages.get(playerRef, MessageKeys.InvitesGui.EMPTY_REQUESTS); } } @@ -343,11 +347,11 @@ private String getPlayerName(UUID playerUuid) { private String formatTime(int seconds) { if (seconds < 60) { - return seconds + "s"; + return HFMessages.get(playerRef, MessageKeys.InvitesGui.TIME_SECONDS, seconds); } else if (seconds < 3600) { - return (seconds / 60) + "m"; + return HFMessages.get(playerRef, MessageKeys.InvitesGui.TIME_MINUTES, seconds / 60); } else { - return (seconds / 3600) + "h"; + return HFMessages.get(playerRef, MessageKeys.InvitesGui.TIME_HOURS, seconds / 3600); } } @@ -426,7 +430,7 @@ private void handleCancelInvite(Player player, FactionPageData data) { UUID targetUuid = UuidUtil.parseOrNull(data.playerUuid); if (targetUuid == null) { - player.sendMessage(MessageUtil.errorText("Invalid player.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.InvitesGui.INVALID_PLAYER)); sendUpdate(); return; } @@ -434,7 +438,7 @@ private void handleCancelInvite(Player player, FactionPageData data) { inviteManager.removeInvite(faction.id(), targetUuid); String playerName = getPlayerName(targetUuid); - player.sendMessage(Message.raw("Cancelled invite to " + playerName + ".").color("#AAAAAA")); + player.sendMessage(Message.raw(HFMessages.get(playerRef, MessageKeys.InvitesGui.CANCELLED_INVITE, playerName)).color("#AAAAAA")); expandedItems.remove(data.playerUuid); rebuildList(); @@ -449,7 +453,7 @@ private void handleAcceptRequest(Player player, Ref ref, Store ref, Store ref, UICommandBuilder cmd, // Show succession information if (successor != null) { - cmd.set("#SuccessionTitle.Text", "Leadership will transfer to:"); + cmd.set("#SuccessionTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.SUCCESSION_TITLE)); cmd.set("#SuccessorName.Text", successor.username()); cmd.set("#SuccessorRole.Text", successor.role().getDisplayName()); cmd.set("#WarningText.Text", ""); @@ -84,10 +85,10 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#DisbandBtn.Visible", false); } else { // No successor - faction will disband - cmd.set("#SuccessionTitle.Text", "WARNING: No other members!"); + cmd.set("#SuccessionTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.NO_MEMBERS_WARNING)); cmd.set("#SuccessorName.Text", ""); cmd.set("#SuccessorRole.Text", ""); - cmd.set("#WarningText.Text", "Leaving will disband the faction permanently."); + cmd.set("#WarningText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.WILL_DISBAND)); // Hide Leave button, show Disband button cmd.set("#LeaveBtn.Visible", false); @@ -127,13 +128,13 @@ public void handleDataEvent(Ref ref, Store store, // Verify still in faction and still leader if (member == null) { - player.sendMessage(MessageUtil.errorText("You are not in this faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.NOT_IN_FACTION)); guiManager.openFactionMain(player, ref, store, playerRef); return; } if (member.role() != FactionRole.LEADER) { - player.sendMessage(MessageUtil.errorText("You are no longer the leader.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.NOT_LEADER_ANYMORE)); Faction fresh = factionManager.getFaction(faction.id()); if (fresh != null) { guiManager.openFactionDashboard(player, ref, store, playerRef, fresh); @@ -157,7 +158,7 @@ public void handleDataEvent(Ref ref, Store store, case "Leave" -> { // Transfer leadership to successor and leave if (successor == null) { - player.sendMessage(MessageUtil.errorText("No successor available. Use disband instead.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.NO_SUCCESSOR)); return; } @@ -168,7 +169,7 @@ public void handleDataEvent(Ref ref, Store store, faction.id(), successor.uuid(), uuid); if (transferResult != FactionManager.FactionResult.SUCCESS) { - player.sendMessage(Message.raw("Failed to transfer leadership: " + transferResult).color("#FF5555")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.TRANSFER_FAILED, transferResult)); return; } @@ -177,16 +178,10 @@ public void handleDataEvent(Ref ref, Store store, faction.id(), uuid, uuid, false); if (leaveResult == FactionManager.FactionResult.SUCCESS) { - player.sendMessage( - Message.raw("Leadership transferred to ").color("#55FF55") - .insert(Message.raw(successor.username()).color("#00FFFF")) - .insert(Message.raw(". You have left ").color("#55FF55")) - .insert(Message.raw(factionName).color("#00FFFF")) - .insert(Message.raw(".").color("#55FF55")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.ConfirmGui.LEADER_LEFT, successor.username(), factionName)); guiManager.openFactionMain(player, ref, store, playerRef); } else { - player.sendMessage(Message.raw("Failed to leave faction: " + leaveResult).color("#FF5555")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.LEAVE_FAILED, leaveResult)); Faction fresh = factionManager.getFaction(faction.id()); if (fresh != null) { guiManager.openFactionDashboard(player, ref, store, playerRef, fresh); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java index 82c24f9b..2ff83803 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java @@ -8,11 +8,12 @@ import com.hyperfactions.gui.faction.data.LeaveConfirmData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.builder.EventData; @@ -94,14 +95,14 @@ public void handleDataEvent(Ref ref, Store store, // Verify still in faction if (member == null) { - player.sendMessage(MessageUtil.errorText("You are not in this faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.NOT_IN_FACTION)); guiManager.openFactionMain(player, ref, store, playerRef); return; } // Leaders cannot leave via this modal (they must disband or transfer leadership) if (member.role() == FactionRole.LEADER) { - player.sendMessage(MessageUtil.errorText("Leaders cannot leave. Transfer leadership or disband the faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.LEADER_CANNOT_LEAVE)); guiManager.openFactionDashboard(player, ref, store, playerRef, factionManager.getFaction(faction.id())); return; @@ -125,14 +126,10 @@ public void handleDataEvent(Ref ref, Store store, faction.id(), uuid, uuid, false); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage( - Message.raw("You have left ").color("#FFAA00") - .insert(Message.raw(factionName).color("#00FFFF")) - .insert(Message.raw(".").color("#FFAA00")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.ConfirmGui.LEFT_FACTION, factionName)); guiManager.openFactionMain(player, ref, store, playerRef); } else { - player.sendMessage(Message.raw("Failed to leave faction: " + result).color("#FF5555")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.LEAVE_FAILED, result)); guiManager.openFactionMain(player, ref, store, playerRef); } } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java index c6083b0c..9b662345 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java @@ -10,6 +10,8 @@ import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.TimeUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -79,7 +81,7 @@ public void build(Ref ref, UICommandBuilder cmd, } // Set title with faction name - cmd.set("#LogsTitle.Text", faction.name() + " - Activity Logs"); + cmd.set("#LogsTitle.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.TITLE, faction.name())); buildLogList(cmd, events); } @@ -114,11 +116,11 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { int endIndex = Math.min(startIndex + LOGS_PER_PAGE, totalLogs); // Log count - cmd.set("#LogCount.Text", totalLogs + " entries"); + cmd.set("#LogCount.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.ENTRY_COUNT, totalLogs)); // Filter dropdown List filterOptions = new ArrayList<>(); - filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString("All Types"), "ALL")); + filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.LogsGui.ALL_TYPES)), "ALL")); for (FactionLog.LogType type : FactionLog.LogType.values()) { filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString(type.getDisplayName()), type.name())); } @@ -137,9 +139,11 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { cmd.clear("#LogsList"); if (totalLogs == 0) { + String emptyText = filterType != null + ? HFMessages.get(playerRef, MessageKeys.LogsGui.NO_LOGS_TYPE) + : HFMessages.get(playerRef, MessageKeys.LogsGui.NO_LOGS); cmd.appendInline("#LogsList", - "Label { Text: \"" - + (filterType != null ? "No logs of this type." : "No activity logs yet.") + + "Label { Text: \"" + emptyText + "\"; Style: (FontSize: 11, TextColor: #555555); Anchor: (Height: 30); }"); } else { for (int i = startIndex; i < endIndex; i++) { @@ -161,7 +165,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java index 21b91026..f98dd750 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java @@ -8,11 +8,12 @@ import com.hyperfactions.gui.faction.data.TransferConfirmData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.builder.EventData; @@ -102,7 +103,7 @@ public void handleDataEvent(Ref ref, Store store, // Re-fetch faction to ensure fresh state Faction currentFaction = factionManager.getFaction(faction.id()); if (currentFaction == null) { - player.sendMessage(MessageUtil.errorText("Faction no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.FACTION_GONE)); guiManager.openFactionMain(player, ref, store, playerRef); return; } @@ -111,7 +112,7 @@ public void handleDataEvent(Ref ref, Store store, // Verify leader permission if (member == null || member.role() != FactionRole.LEADER) { - player.sendMessage(MessageUtil.errorText("Only the leader can transfer leadership.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.NOT_LEADER_TRANSFER)); guiManager.openFactionMembers(player, ref, store, playerRef, currentFaction); return; } @@ -128,11 +129,7 @@ public void handleDataEvent(Ref ref, Store store, faction.id(), targetUuid, uuid); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage( - Message.raw("Leadership transferred to ").color("#55FF55") - .insert(Message.raw(targetName).color("#00FFFF")) - .insert(Message.raw(".").color("#55FF55")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.ConfirmGui.LEADERSHIP_TRANSFERRED, targetName)); // Refresh to show updated roles Faction refreshedFaction = factionManager.getFaction(faction.id()); if (refreshedFaction != null) { @@ -141,7 +138,7 @@ public void handleDataEvent(Ref ref, Store store, guiManager.openFactionMain(player, ref, store, playerRef); } } else { - player.sendMessage(Message.raw("Failed to transfer leadership: " + result).color("#FF5555")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.ConfirmGui.TRANSFER_FAILED, result)); guiManager.openFactionMembers(player, ref, store, playerRef, currentFaction); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 940951f5..1d0237cf 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1044,6 +1044,124 @@ public static final class TreasuryGui { private TreasuryGui() {} } + /** Confirmation page messages (disband, leave, transfer). */ + public static final class ConfirmGui { + // DisbandConfirm + public static final String DISBAND_NOT_LEADER = "hyperfactions_gui.confirm.disband_not_leader"; + public static final String DISBANDED = "hyperfactions_gui.confirm.disbanded"; + public static final String DISBAND_FAILED = "hyperfactions_gui.confirm.disband_failed"; + // LeaderLeaveConfirm + public static final String SUCCESSION_TITLE = "hyperfactions_gui.confirm.succession_title"; + public static final String NO_MEMBERS_WARNING = "hyperfactions_gui.confirm.no_members_warning"; + public static final String WILL_DISBAND = "hyperfactions_gui.confirm.will_disband"; + public static final String NOT_IN_FACTION = "hyperfactions_gui.confirm.not_in_faction"; + public static final String NOT_LEADER_ANYMORE = "hyperfactions_gui.confirm.not_leader_anymore"; + public static final String NO_SUCCESSOR = "hyperfactions_gui.confirm.no_successor"; + public static final String TRANSFER_FAILED = "hyperfactions_gui.confirm.transfer_failed"; + public static final String LEADER_LEFT = "hyperfactions_gui.confirm.leader_left"; + public static final String LEAVE_FAILED = "hyperfactions_gui.confirm.leave_failed"; + // LeaveConfirm + public static final String LEADER_CANNOT_LEAVE = "hyperfactions_gui.confirm.leader_cannot_leave"; + public static final String LEFT_FACTION = "hyperfactions_gui.confirm.left_faction"; + // TransferConfirm + public static final String FACTION_GONE = "hyperfactions_gui.confirm.faction_gone"; + public static final String NOT_LEADER_TRANSFER = "hyperfactions_gui.confirm.not_leader_transfer"; + public static final String LEADERSHIP_TRANSFERRED = "hyperfactions_gui.confirm.leadership_transferred"; + + private ConfirmGui() {} + } + + /** Logs viewer page labels and messages. */ + public static final class LogsGui { + public static final String TITLE = "hyperfactions_gui.logs.title"; + public static final String ENTRY_COUNT = "hyperfactions_gui.logs.entry_count"; + public static final String ALL_TYPES = "hyperfactions_gui.logs.all_types"; + public static final String NO_LOGS_TYPE = "hyperfactions_gui.logs.no_logs_type"; + public static final String NO_LOGS = "hyperfactions_gui.logs.no_logs"; + + private LogsGui() {} + } + + /** Faction chat page labels and messages. */ + public static final class ChatGui { + public static final String PLACEHOLDER = "hyperfactions_gui.chat.placeholder"; + public static final String NO_MESSAGES = "hyperfactions_gui.chat.no_messages"; + public static final String NO_ALLY_PERMISSION = "hyperfactions_gui.chat.no_ally_permission"; + public static final String NO_PERMISSION = "hyperfactions_gui.chat.no_permission"; + public static final String FACTION_GONE = "hyperfactions_gui.chat.faction_gone"; + public static final String TIME_NOW = "hyperfactions_gui.chat.time_now"; + public static final String TIME_MINUTES = "hyperfactions_gui.chat.time_minutes"; + public static final String TIME_HOURS = "hyperfactions_gui.chat.time_hours"; + + private ChatGui() {} + } + + /** Faction invites page labels and messages. */ + public static final class InvitesGui { + public static final String INVITE_COUNT = "hyperfactions_gui.invites.invite_count"; + public static final String REQUEST_COUNT = "hyperfactions_gui.invites.request_count"; + public static final String INVITED_BY = "hyperfactions_gui.invites.invited_by"; + public static final String NO_MESSAGE = "hyperfactions_gui.invites.no_message"; + public static final String EXPIRES = "hyperfactions_gui.invites.expires"; + public static final String TYPE_OUTGOING = "hyperfactions_gui.invites.type_outgoing"; + public static final String TYPE_REQUEST = "hyperfactions_gui.invites.type_request"; + public static final String INVITED_BY_LABEL = "hyperfactions_gui.invites.invited_by_label"; + public static final String EMPTY_OUTGOING = "hyperfactions_gui.invites.empty_outgoing"; + public static final String EMPTY_REQUESTS = "hyperfactions_gui.invites.empty_requests"; + public static final String INVALID_PLAYER = "hyperfactions_gui.invites.invalid_player"; + public static final String CANCELLED_INVITE = "hyperfactions_gui.invites.cancelled_invite"; + public static final String PLAYER_JOINED = "hyperfactions_gui.invites.player_joined"; + public static final String FACTION_FULL = "hyperfactions_gui.invites.faction_full"; + public static final String ADD_FAILED = "hyperfactions_gui.invites.add_failed"; + public static final String REQUEST_EXPIRED = "hyperfactions_gui.invites.request_expired"; + public static final String REQUEST_DECLINED = "hyperfactions_gui.invites.request_declined"; + public static final String TIME_SECONDS = "hyperfactions_gui.invites.time_seconds"; + public static final String TIME_MINUTES = "hyperfactions_gui.invites.time_minutes"; + public static final String TIME_HOURS = "hyperfactions_gui.invites.time_hours"; + + private InvitesGui() {} + } + + /** Chunk map page labels and messages. */ + public static final class MapGui { + public static final String POSITION = "hyperfactions_gui.map.position"; + public static final String LEGEND_PROTECTED = "hyperfactions_gui.map.legend_protected"; + public static final String CLAIM_STATS = "hyperfactions_gui.map.claim_stats"; + public static final String OVERCLAIMED = "hyperfactions_gui.map.overclaimed"; + public static final String POWER_DISPLAY = "hyperfactions_gui.map.power_display"; + public static final String JOIN_TO_CLAIM = "hyperfactions_gui.map.join_to_claim"; + // Claim results + public static final String CLAIM_SUCCESS = "hyperfactions_gui.map.claim_success"; + public static final String CLAIM_NOT_IN_FACTION = "hyperfactions_gui.map.claim_not_in_faction"; + public static final String CLAIM_NOT_OFFICER = "hyperfactions_gui.map.claim_not_officer"; + public static final String CLAIM_ALREADY_YOURS = "hyperfactions_gui.map.claim_already_yours"; + public static final String CLAIM_ALREADY_CLAIMED = "hyperfactions_gui.map.claim_already_claimed"; + public static final String CLAIM_NOT_ADJACENT = "hyperfactions_gui.map.claim_not_adjacent"; + public static final String CLAIM_MAX = "hyperfactions_gui.map.claim_max"; + public static final String CLAIM_WORLD_NOT_ALLOWED = "hyperfactions_gui.map.claim_world_not_allowed"; + public static final String CLAIM_ORBISGUARD = "hyperfactions_gui.map.claim_orbisguard"; + public static final String CLAIM_FAILED = "hyperfactions_gui.map.claim_failed"; + // Unclaim results + public static final String UNCLAIM_SUCCESS = "hyperfactions_gui.map.unclaim_success"; + public static final String UNCLAIM_NOT_IN_FACTION = "hyperfactions_gui.map.unclaim_not_in_faction"; + public static final String UNCLAIM_NOT_OFFICER = "hyperfactions_gui.map.unclaim_not_officer"; + public static final String UNCLAIM_NOT_CLAIMED = "hyperfactions_gui.map.unclaim_not_claimed"; + public static final String UNCLAIM_NOT_YOURS = "hyperfactions_gui.map.unclaim_not_yours"; + public static final String UNCLAIM_HOME = "hyperfactions_gui.map.unclaim_home"; + public static final String UNCLAIM_FAILED = "hyperfactions_gui.map.unclaim_failed"; + // Overclaim results + public static final String OVERCLAIM_SUCCESS = "hyperfactions_gui.map.overclaim_success"; + public static final String OVERCLAIM_NOT_IN_FACTION = "hyperfactions_gui.map.overclaim_not_in_faction"; + public static final String OVERCLAIM_NOT_OFFICER = "hyperfactions_gui.map.overclaim_not_officer"; + public static final String OVERCLAIM_ALREADY_YOURS = "hyperfactions_gui.map.overclaim_already_yours"; + public static final String OVERCLAIM_ALLY = "hyperfactions_gui.map.overclaim_ally"; + public static final String OVERCLAIM_HAS_POWER = "hyperfactions_gui.map.overclaim_has_power"; + public static final String OVERCLAIM_MAX = "hyperfactions_gui.map.overclaim_max"; + public static final String OVERCLAIM_FAILED = "hyperfactions_gui.map.overclaim_failed"; + + private MapGui() {} + } + /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index ff77cbaf..cc0b1d51 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -274,3 +274,94 @@ treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer r treasury.leader_only_perms = Only the leader can change treasury permissions. treasury.leader_only_upkeep = Only the leader can change upkeep settings. treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. From b572584533cd713b13bde1abe402a7862d0ccd25 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 16:58:44 -0700 Subject: [PATCH 16/76] feat: localize create faction and new player pages (Phase 3g) Migrate 85+ hardcoded strings across 4 new player GUI pages to i18n keys: - CreateFactionPage: preview labels, validation errors, success messages - InvitesPage: headers, counts, time formats, join result messages - NewPlayerBrowsePage: sort dropdown, status badges, action buttons, join/request flows - NewPlayerMapPage: position info, hint text, legend labels Add CreateGui and NewPlayerGui inner classes to MessageKeys with 53 new keys. Add MessageUtil.text() overload for i18n with color parameter. Reuse existing keys: FactionInfoGui.STATUS_*, SettingsGui.PVP_*, MapGui.POSITION, MapGui.LEGEND_PROTECTED, Common.ALREADY_IN_FACTION, Common.FACTION_NOT_FOUND. --- .../gui/newplayer/page/CreateFactionPage.java | 46 +++++----- .../gui/newplayer/page/InvitesPage.java | 59 ++++++------- .../newplayer/page/NewPlayerBrowsePage.java | 87 ++++++++----------- .../gui/newplayer/page/NewPlayerMapPage.java | 10 ++- .../com/hyperfactions/util/MessageKeys.java | 69 +++++++++++++++ .../com/hyperfactions/util/MessageUtil.java | 8 ++ .../Languages/en-US/hyperfactions_gui.lang | 56 ++++++++++++ 7 files changed, 227 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java index 360d07c5..4ef6bd4d 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java @@ -9,6 +9,8 @@ import com.hyperfactions.gui.newplayer.data.NewPlayerPageData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -82,13 +84,13 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#FactionColorPicker.Value", DEFAULT_COLOR); // Set preview defaults - cmd.set("#PreviewName.TextSpans", Message.raw("Your Faction Name").color(DEFAULT_COLOR)); - cmd.set("#PreviewLeader.Text", "Leader: " + playerRef.getUsername()); + cmd.set("#PreviewName.TextSpans", Message.raw(HFMessages.get(playerRef, MessageKeys.CreateGui.PREVIEW_NAME)).color(DEFAULT_COLOR)); + cmd.set("#PreviewLeader.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.LEADER_PREFIX, playerRef.getUsername())); // Recruitment dropdown cmd.set("#RecruitmentDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Invite Only"), "INVITE_ONLY"), - new DropdownEntryInfo(LocalizableString.fromString("Open"), "OPEN") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)), "INVITE_ONLY"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN)), "OPEN") )); cmd.set("#RecruitmentDropdown.Value", openRecruitment ? "OPEN" : "INVITE_ONLY"); @@ -166,7 +168,7 @@ private void buildPermissionToggles(UICommandBuilder cmd, UIEventBuilder events) // PvP toggle buildPermissionToggle(cmd, events, "PvPToggle", "pvpEnabled", perms.pvpEnabled(), config, false); - cmd.set("#PvPStatus.Text", perms.pvpEnabled() ? "Enabled" : "Disabled"); + cmd.set("#PvPStatus.Text", perms.pvpEnabled() ? HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_ENABLED) : HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_DISABLED)); cmd.set("#PvPStatus.Style.TextColor", perms.pvpEnabled() ? "#55FF55" : "#FF5555"); } @@ -233,7 +235,7 @@ private void handleColorChanged(NewPlayerPageData data) { String hex = extractHex(data.inputColor); String name = data.inputName != null ? data.inputName : ""; String tag = data.inputTag != null ? data.inputTag : ""; - String previewText = !name.isEmpty() ? name : "Your Faction Name"; + String previewText = !name.isEmpty() ? name : HFMessages.get(playerRef, MessageKeys.CreateGui.PREVIEW_NAME); if (!tag.isEmpty()) { previewText += " [" + tag + "]"; } @@ -287,26 +289,26 @@ private void handleCreate(Player player, Ref ref, Store MAX_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Faction name cannot exceed " + MAX_NAME_LENGTH + " characters.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.NAME_TOO_LONG, MAX_NAME_LENGTH)); sendUpdate(); return; } // Check if name is already taken if (factionManager.getFactionByName(name) != null) { - player.sendMessage(MessageUtil.errorText("A faction with this name already exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.NAME_TAKEN)); sendUpdate(); return; } @@ -314,13 +316,13 @@ private void handleCreate(Player player, Ref ref, Store MAX_TAG_LENGTH) { - player.sendMessage(MessageUtil.errorText("Faction tag must be " + MIN_TAG_LENGTH + "-" + MAX_TAG_LENGTH + " characters.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.TAG_LENGTH, MIN_TAG_LENGTH, MAX_TAG_LENGTH)); sendUpdate(); return; } if (!tag.matches("^[a-zA-Z0-9]+$")) { - player.sendMessage(MessageUtil.errorText("Faction tag can only contain letters and numbers.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.TAG_FORMAT)); sendUpdate(); return; } @@ -333,14 +335,14 @@ private void handleCreate(Player player, Ref ref, Store MAX_DESCRIPTION_LENGTH) { - player.sendMessage(MessageUtil.errorText("Description cannot exceed " + MAX_DESCRIPTION_LENGTH + " characters.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.DESC_TOO_LONG, MAX_DESCRIPTION_LENGTH)); sendUpdate(); return; } // Check if player is already in a faction if (factionManager.isInFaction(playerRef.getUuid())) { - player.sendMessage(MessageUtil.errorText("You are already in a faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.ALREADY_IN_FACTION)); sendUpdate(); return; } @@ -376,11 +378,7 @@ private void handleCreate(Player player, Ref ref, Store ref, Store { - player.sendMessage(MessageUtil.errorText("You are already in a faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.ALREADY_IN_FACTION)); sendUpdate(); } case NAME_TAKEN -> { - player.sendMessage(MessageUtil.errorText("A faction with this name already exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.NAME_TAKEN)); sendUpdate(); } case NAME_TOO_SHORT, NAME_TOO_LONG -> { - player.sendMessage(MessageUtil.errorText("Invalid faction name.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.INVALID_NAME)); sendUpdate(); } default -> { - player.sendMessage(MessageUtil.errorText("Could not create faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.CreateGui.CREATE_FAILED)); sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java index 7d55aa5c..4e781a8d 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java @@ -14,12 +14,13 @@ import com.hyperfactions.manager.JoinRequestManager; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.builder.EventData; @@ -103,22 +104,22 @@ public void build(Ref ref, UICommandBuilder cmd, // Set header with counts int totalCount = invites.size() + requests.size(); - cmd.set("#InviteCount.Text", totalCount + " pending"); + cmd.set("#InviteCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.PENDING_COUNT, totalCount)); // === RECEIVED INVITES SECTION === - cmd.set("#InvitesHeader.Text", "RECEIVED INVITES (" + invites.size() + ")"); + cmd.set("#InvitesHeader.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.RECEIVED_HEADER, invites.size())); if (invites.isEmpty()) { cmd.append("#InviteListContainer", UIPaths.RELATION_EMPTY); - cmd.set("#InviteListContainer[0] #EmptyText.Text", "No invites. Browse factions to find one!"); + cmd.set("#InviteListContainer[0] #EmptyText.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.NO_INVITES)); } else { buildInviteCards(cmd, events, invites); } // === YOUR REQUESTS SECTION === - cmd.set("#RequestsHeader.Text", "YOUR REQUESTS (" + requests.size() + ")"); + cmd.set("#RequestsHeader.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.REQUESTS_HEADER, requests.size())); if (requests.isEmpty()) { cmd.append("#RequestListContainer", UIPaths.RELATION_EMPTY); - cmd.set("#RequestListContainer[0] #EmptyText.Text", "No pending requests."); + cmd.set("#RequestListContainer[0] #EmptyText.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.NO_REQUESTS)); } else { buildRequestCards(cmd, events, requests); } @@ -145,13 +146,13 @@ private void buildInviteCards(UICommandBuilder cmd, UIEventBuilder events, // Invited by String inviterName = getPlayerName(invite.invitedBy()); - cmd.set(prefix + "#InvitedBy.Text", "Invited by: " + inviterName); + cmd.set(prefix + "#InvitedBy.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.INVITED_BY, inviterName)); // Stats PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(faction.id()); - cmd.set(prefix + "#MemberCount.Text", faction.members().size() + " members"); - cmd.set(prefix + "#PowerCount.Text", String.format("%.0f power", stats.currentPower())); - cmd.set(prefix + "#ClaimCount.Text", faction.claims().size() + " claims"); + cmd.set(prefix + "#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.MEMBER_COUNT, faction.members().size())); + cmd.set(prefix + "#PowerCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.POWER_COUNT, String.format("%.0f", stats.currentPower()))); + cmd.set(prefix + "#ClaimCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.CLAIM_COUNT, faction.claims().size())); // Time ago cmd.set(prefix + "#TimeAgo.Text", formatTimeAgo(invite.createdAt())); @@ -197,16 +198,16 @@ private void buildRequestCards(UICommandBuilder cmd, UIEventBuilder events, cmd.set(prefix + "#FactionName.Text", faction.name()); // Status - cmd.set(prefix + "#StatusText.Text", "Awaiting review"); + cmd.set(prefix + "#StatusText.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.AWAITING_REVIEW)); // Stats PowerManager.FactionPowerStats stats = powerManager.getFactionPowerStats(faction.id()); - cmd.set(prefix + "#MemberCount.Text", faction.members().size() + " members"); - cmd.set(prefix + "#PowerCount.Text", String.format("%.0f power", stats.currentPower())); + cmd.set(prefix + "#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.MEMBER_COUNT, faction.members().size())); + cmd.set(prefix + "#PowerCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.POWER_COUNT, String.format("%.0f", stats.currentPower()))); // Time remaining int hoursRemaining = request.getRemainingHours(); - cmd.set(prefix + "#TimeRemaining.Text", "Expires in " + hoursRemaining + "h"); + cmd.set(prefix + "#TimeRemaining.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.EXPIRES_IN, hoursRemaining)); // Cancel button events.addEventBinding( @@ -234,16 +235,16 @@ private String formatTimeAgo(long timestamp) { long diff = now - timestamp; if (diff < TimeUnit.MINUTES.toMillis(1)) { - return "just now"; + return HFMessages.get(playerRef, MessageKeys.NewPlayerGui.TIME_JUST_NOW); } else if (diff < TimeUnit.HOURS.toMillis(1)) { long minutes = TimeUnit.MILLISECONDS.toMinutes(diff); - return minutes + " min ago"; + return HFMessages.get(playerRef, MessageKeys.NewPlayerGui.TIME_MINUTES, minutes); } else if (diff < TimeUnit.DAYS.toMillis(1)) { long hours = TimeUnit.MILLISECONDS.toHours(diff); - return hours + "h ago"; + return HFMessages.get(playerRef, MessageKeys.NewPlayerGui.TIME_HOURS, hours); } else { long days = TimeUnit.MILLISECONDS.toDays(diff); - return days + "d ago"; + return HFMessages.get(playerRef, MessageKeys.NewPlayerGui.TIME_DAYS, days); } } @@ -309,7 +310,7 @@ private void handleAccept(Player player, Ref ref, Store ref, Store ref, Store { - player.sendMessage( - Message.raw("You joined ").color("#55FF55") - .insert(Message.raw(faction.name()).color("#00FFFF")) - .insert(Message.raw("!").color("#55FF55")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.NewPlayerGui.JOINED, faction.name())); // Clear all invites and requests inviteManager.clearPlayerInvites(playerUuid); joinRequestManager.clearPlayerRequests(playerUuid); @@ -353,15 +350,15 @@ private void handleAccept(Player player, Ref ref, Store { - player.sendMessage(MessageUtil.errorText("You are already in a faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.ALREADY_IN_FACTION)); sendUpdate(); } case FACTION_FULL -> { - player.sendMessage(MessageUtil.errorText("This faction is full.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.FACTION_FULL)); sendUpdate(); } default -> { - player.sendMessage(MessageUtil.errorText("Could not join faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.JOIN_FAILED)); sendUpdate(); } } @@ -382,7 +379,7 @@ private void handleDecline(Player player, Ref ref, Store ref, Store entries = buildFactionEntryList(); - cmd.set("#FactionCount.Text", entries.size() + " factions"); - cmd.set("#Subtitle.Text", "Find your new home!"); + cmd.set("#FactionCount.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.FACTION_COUNT, entries.size())); + cmd.set("#Subtitle.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BROWSE_SUBTITLE)); // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER"), - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Members"), "MEMBERS") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.NewPlayerGui.SORT_POWER)), "POWER"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.NewPlayerGui.SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.NewPlayerGui.SORT_MEMBERS)), "MEMBERS") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -179,7 +180,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -264,10 +265,10 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Recruitment badge if (entry.isOpen) { - cmd.set(idx + " #RecruitmentBadge.Text", "Open"); + cmd.set(idx + " #RecruitmentBadge.Text", HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN)); cmd.set(idx + " #RecruitmentBadge.Style.TextColor", "#44CC44"); } else { - cmd.set(idx + " #RecruitmentBadge.Text", "Invite Only"); + cmd.set(idx + " #RecruitmentBadge.Text", HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); cmd.set(idx + " #RecruitmentBadge.Style.TextColor", "#FFAA00"); } @@ -307,7 +308,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Note: TextButtons can't have Style.TextColor changed dynamically - use button text to convey state if (hasInvite) { // Player has pending invite - show ACCEPT button - cmd.set(idx + " #ActionBtn.Text", "Accept"); + cmd.set(idx + " #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BTN_ACCEPT)); events.addEventBinding( CustomUIEventBindingType.Activating, idx + " #ActionBtn", @@ -318,7 +319,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int ); } else if (hasRequest) { // Player already requested - show PENDING button (goes to invites page) - cmd.set(idx + " #ActionBtn.Text", "Pending"); + cmd.set(idx + " #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BTN_PENDING)); events.addEventBinding( CustomUIEventBindingType.Activating, idx + " #ActionBtn", @@ -327,7 +328,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int ); } else if (entry.isOpen) { // Open faction - JOIN button - cmd.set(idx + " #ActionBtn.Text", "Join"); + cmd.set(idx + " #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BTN_JOIN)); events.addEventBinding( CustomUIEventBindingType.Activating, idx + " #ActionBtn", @@ -338,7 +339,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int ); } else { // Invite-only faction - REQUEST button - cmd.set(idx + " #ActionBtn.Text", "Request"); + cmd.set(idx + " #ActionBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BTN_REQUEST)); events.addEventBinding( CustomUIEventBindingType.Activating, idx + " #ActionBtn", @@ -461,7 +462,7 @@ private void handleViewFaction(Player player, Ref ref, Store ref, Store ref, Store ref, Store { - player.sendMessage( - Message.raw("You joined ").color("#55FF55") - .insert(Message.raw(faction.name()).color("#00FFFF")) - .insert(Message.raw("!").color("#55FF55")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.NewPlayerGui.JOINED, faction.name())); // Clear any pending invites inviteManager.clearPlayerInvites(playerRef.getUuid()); // Open faction dashboard - use fresh faction data @@ -526,25 +523,25 @@ private void handleJoinFaction(Player player, Ref ref, Store { - player.sendMessage(MessageUtil.errorText("You are already in a faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.ALREADY_IN_FACTION)); sendUpdate(); } case FACTION_NOT_FOUND -> { - player.sendMessage(MessageUtil.errorText("Faction not found.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.FACTION_NOT_FOUND)); sendUpdate(); } case FACTION_FULL -> { - player.sendMessage(MessageUtil.errorText("This faction is full.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.FACTION_FULL)); sendUpdate(); } default -> { - player.sendMessage(MessageUtil.errorText("Could not join faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.JOIN_FAILED)); sendUpdate(); } } @@ -559,7 +556,7 @@ private void handleAcceptInvite(Player player, Ref ref, Store ref, Store ref, Store { - player.sendMessage( - Message.raw("You joined ").color("#55FF55") - .insert(Message.raw(faction.name()).color("#00FFFF")) - .insert(Message.raw("!").color("#55FF55")) - ); + player.sendMessage(MessageUtil.successText(playerRef, MessageKeys.NewPlayerGui.JOINED, faction.name())); // Clear invite and other pending invites inviteManager.clearPlayerInvites(playerUuid); // Open faction dashboard @@ -604,15 +597,15 @@ private void handleAcceptInvite(Player player, Ref ref, Store { - player.sendMessage(MessageUtil.errorText("You are already in a faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.Common.ALREADY_IN_FACTION)); sendUpdate(); } case FACTION_FULL -> { - player.sendMessage(MessageUtil.errorText("This faction is full.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.FACTION_FULL)); sendUpdate(); } default -> { - player.sendMessage(MessageUtil.errorText("Could not join faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.NewPlayerGui.JOIN_FAILED)); sendUpdate(); } } @@ -627,7 +620,7 @@ private void handleRequestJoin(Player player, Ref ref, Store ref, Store ref, Store ref, Store ref, UICommandBuilder cmd, NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); // Update position info - cmd.set("#PositionInfo.Text", "Your Position: Chunk (" + playerChunkX + ", " + playerChunkZ + ")"); + cmd.set("#PositionInfo.Text", HFMessages.get(playerRef, MessageKeys.MapGui.POSITION, playerChunkX, playerChunkZ)); // Update hint text for read-only mode - cmd.set("#ActionHint.Text", "View Only - Join a faction to claim territory!"); + cmd.set("#ActionHint.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.MAP_HINT)); // Hide claim/power stats (not relevant for new players) cmd.set("#ClaimStats.Text", ""); @@ -155,12 +157,12 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.appendInline("#LegendContainer[1]", "Group { LayoutMode: Left; Anchor: (Width: 110); " + "Group { Anchor: (Width: 10, Height: 10); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \" " + HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_PROTECTED) + "\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); } else { cmd.appendInline("#LegendContainer[2]", "Group { LayoutMode: Left; Anchor: (Height: 16); " + "Group { Anchor: (Width: 12, Height: 12); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \" " + HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_PROTECTED) + "\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 1d0237cf..6002be64 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1162,6 +1162,75 @@ public static final class MapGui { private MapGui() {} } + + /** Create faction page labels and messages. */ + public static final class CreateGui { + public static final String PREVIEW_NAME = "hyperfactions_gui.create.preview_name"; + public static final String LEADER_PREFIX = "hyperfactions_gui.create.leader_prefix"; + public static final String ENTER_NAME = "hyperfactions_gui.create.enter_name"; + public static final String NAME_TOO_SHORT = "hyperfactions_gui.create.name_too_short"; + public static final String NAME_TOO_LONG = "hyperfactions_gui.create.name_too_long"; + public static final String NAME_TAKEN = "hyperfactions_gui.create.name_taken"; + public static final String TAG_LENGTH = "hyperfactions_gui.create.tag_length"; + public static final String TAG_FORMAT = "hyperfactions_gui.create.tag_format"; + public static final String DESC_TOO_LONG = "hyperfactions_gui.create.desc_too_long"; + public static final String CREATED = "hyperfactions_gui.create.created"; + public static final String CREATED_NO_DASHBOARD = "hyperfactions_gui.create.created_no_dashboard"; + public static final String INVALID_NAME = "hyperfactions_gui.create.invalid_name"; + public static final String CREATE_FAILED = "hyperfactions_gui.create.create_failed"; + + private CreateGui() {} + } + + /** New player page labels and messages (invites, browse, map). */ + public static final class NewPlayerGui { + // Invites page + public static final String PENDING_COUNT = "hyperfactions_gui.newplayer.pending_count"; + public static final String RECEIVED_HEADER = "hyperfactions_gui.newplayer.received_header"; + public static final String REQUESTS_HEADER = "hyperfactions_gui.newplayer.requests_header"; + public static final String NO_INVITES = "hyperfactions_gui.newplayer.no_invites"; + public static final String NO_REQUESTS = "hyperfactions_gui.newplayer.no_requests"; + public static final String INVITED_BY = "hyperfactions_gui.newplayer.invited_by"; + public static final String MEMBER_COUNT = "hyperfactions_gui.newplayer.member_count"; + public static final String POWER_COUNT = "hyperfactions_gui.newplayer.power_count"; + public static final String CLAIM_COUNT = "hyperfactions_gui.newplayer.claim_count"; + public static final String AWAITING_REVIEW = "hyperfactions_gui.newplayer.awaiting_review"; + public static final String EXPIRES_IN = "hyperfactions_gui.newplayer.expires_in"; + public static final String TIME_JUST_NOW = "hyperfactions_gui.newplayer.time_just_now"; + public static final String TIME_MINUTES = "hyperfactions_gui.newplayer.time_minutes"; + public static final String TIME_HOURS = "hyperfactions_gui.newplayer.time_hours"; + public static final String TIME_DAYS = "hyperfactions_gui.newplayer.time_days"; + // Shared join result messages + public static final String INVALID_FACTION = "hyperfactions_gui.newplayer.invalid_faction"; + public static final String INVITE_EXPIRED = "hyperfactions_gui.newplayer.invite_expired"; + public static final String FACTION_GONE = "hyperfactions_gui.newplayer.faction_gone"; + public static final String JOINED = "hyperfactions_gui.newplayer.joined"; + public static final String FACTION_FULL = "hyperfactions_gui.newplayer.faction_full"; + public static final String JOIN_FAILED = "hyperfactions_gui.newplayer.join_failed"; + public static final String INVITE_DECLINED = "hyperfactions_gui.newplayer.invite_declined"; + public static final String REQUEST_CANCELLED = "hyperfactions_gui.newplayer.request_cancelled"; + // Browse page + public static final String FACTION_COUNT = "hyperfactions_gui.newplayer.faction_count"; + public static final String BROWSE_SUBTITLE = "hyperfactions_gui.newplayer.browse_subtitle"; + public static final String SORT_POWER = "hyperfactions_gui.newplayer.sort_power"; + public static final String SORT_NAME = "hyperfactions_gui.newplayer.sort_name"; + public static final String SORT_MEMBERS = "hyperfactions_gui.newplayer.sort_members"; + public static final String BTN_ACCEPT = "hyperfactions_gui.newplayer.btn_accept"; + public static final String BTN_PENDING = "hyperfactions_gui.newplayer.btn_pending"; + public static final String BTN_JOIN = "hyperfactions_gui.newplayer.btn_join"; + public static final String BTN_REQUEST = "hyperfactions_gui.newplayer.btn_request"; + public static final String INVITE_ONLY_MSG = "hyperfactions_gui.newplayer.invite_only_msg"; + public static final String WELCOME_HINT = "hyperfactions_gui.newplayer.welcome_hint"; + public static final String FACTION_OPEN_HINT = "hyperfactions_gui.newplayer.faction_open_hint"; + public static final String ALREADY_REQUESTED = "hyperfactions_gui.newplayer.already_requested"; + public static final String HAS_INVITE_HINT = "hyperfactions_gui.newplayer.has_invite_hint"; + public static final String REQUEST_SENT = "hyperfactions_gui.newplayer.request_sent"; + public static final String OFFICER_REVIEW = "hyperfactions_gui.newplayer.officer_review"; + // Map page + public static final String MAP_HINT = "hyperfactions_gui.newplayer.map_hint"; + + private NewPlayerGui() {} + } /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/java/com/hyperfactions/util/MessageUtil.java b/src/main/java/com/hyperfactions/util/MessageUtil.java index fd162fde..0791481a 100644 --- a/src/main/java/com/hyperfactions/util/MessageUtil.java +++ b/src/main/java/com/hyperfactions/util/MessageUtil.java @@ -139,6 +139,14 @@ public static Message adminInfo(@NotNull PlayerRef player, @NotNull String key, return adminPrefix().insert(Message.raw(HFMessages.get(player, key, args)).color(COLOR_GRAY)); } + /** + * Creates a colored message with no prefix using i18n key resolution. + */ + @NotNull + public static Message text(@NotNull PlayerRef player, @NotNull String key, @NotNull String color, Object... args) { + return Message.raw(HFMessages.get(player, key, args)).color(color); + } + // ==================== Unprefixed (GUI pages) ==================== /** diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index cc0b1d51..cb0cb609 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -365,3 +365,59 @@ map.overclaim_ally = You cannot overclaim allied territory. map.overclaim_has_power = This faction has enough power to defend their territory. map.overclaim_max = You have reached your maximum claim limit. map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! From 7867f74f8a1de97b1d632507411060c55e5870c8 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 17:48:57 -0700 Subject: [PATCH 17/76] feat: localize admin GUI pages (Phase 4) Migrate all 25 admin page files to use HFMessages.get() and MessageKeys. Add ~170 admin i18n keys to MessageKeys.AdminGui and hyperfactions_admin.lang covering dashboard, actions, factions, members, relations, settings, players, economy, zones, zone map, zone wizard, and version pages. --- .../gui/admin/page/AdminActionsPage.java | 18 +- .../gui/admin/page/AdminActivityLogPage.java | 9 +- .../gui/admin/page/AdminBulkEconomyPage.java | 9 +- .../gui/admin/page/AdminDashboardPage.java | 13 +- .../admin/page/AdminDisbandConfirmPage.java | 15 +- .../admin/page/AdminEconomyAdjustPage.java | 21 +- .../gui/admin/page/AdminEconomyPage.java | 13 +- .../gui/admin/page/AdminFactionInfoPage.java | 21 +- .../admin/page/AdminFactionMembersPage.java | 30 ++- .../admin/page/AdminFactionRelationsPage.java | 30 ++- .../admin/page/AdminFactionSettingsPage.java | 44 ++-- .../gui/admin/page/AdminFactionsPage.java | 36 +-- .../gui/admin/page/AdminMainPage.java | 28 +- .../gui/admin/page/AdminPlayerInfoPage.java | 45 ++-- .../gui/admin/page/AdminPlayersPage.java | 34 +-- .../page/AdminUnclaimAllConfirmPage.java | 20 +- .../gui/admin/page/AdminVersionPage.java | 15 +- .../page/AdminZoneIntegrationFlagsPage.java | 24 +- .../gui/admin/page/AdminZoneMapPage.java | 22 +- .../gui/admin/page/AdminZonePage.java | 18 +- .../admin/page/AdminZonePropertiesPage.java | 36 +-- .../gui/admin/page/AdminZoneSettingsPage.java | 22 +- .../gui/admin/page/CreateZoneWizardPage.java | 35 ++- .../admin/page/ZoneChangeTypeModalPage.java | 18 +- .../gui/admin/page/ZoneRenameModalPage.java | 28 +- .../com/hyperfactions/util/MessageKeys.java | 224 ++++++++++++++++ .../Languages/en-US/hyperfactions_admin.lang | 246 ++++++++++++++++++ 27 files changed, 783 insertions(+), 291 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java index 39e35815..9a4b96ff 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java @@ -11,6 +11,8 @@ import com.hyperfactions.util.ErrorHandler; import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -73,7 +75,7 @@ public void build(Ref ref, UICommandBuilder cmd, private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { // Reset button text depends on confirmation state if (confirmResetKD) { - cmd.set("#ResetAllKDBtn.Text", "Confirm Reset?"); + cmd.set("#ResetAllKDBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_RESET)); } // Bind the reset button @@ -94,7 +96,7 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { if (upkeepEnabled) { if (confirmUpkeep) { - cmd.set("#TriggerUpkeepBtn.Text", "Confirm Trigger?"); + cmd.set("#TriggerUpkeepBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_TRIGGER)); } events.addEventBinding(CustomUIEventBindingType.Activating, "#TriggerUpkeepBtn", EventData.of("Button", "TriggerUpkeep"), false); @@ -130,7 +132,7 @@ public void handleDataEvent(Ref ref, Store store, confirmResetKD = true; UICommandBuilder cmd = new UICommandBuilder(); UIEventBuilder events = new UIEventBuilder(); - cmd.set("#ResetAllKDBtn.Text", "Confirm Reset?"); + cmd.set("#ResetAllKDBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_RESET)); events.addEventBinding(CustomUIEventBindingType.Activating, "#ResetAllKDBtn", EventData.of("Button", "ResetAllKD"), false); sendUpdate(cmd, events, false); @@ -149,7 +151,7 @@ public void handleDataEvent(Ref ref, Store store, Logger.info("[Admin] %s reset K/D stats for all %d players", playerRef.getUsername(), allUuids.size()); } catch (Exception e) { - player.sendMessage(MessageUtil.adminError("Failed to reset K/D: " + e.getMessage())); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ACT_KD_RESET_FAILED, e.getMessage())); ErrorHandler.report("[Admin] Global K/D reset failed", e); } guiManager.openAdminActions(player, ref, store, playerRef); @@ -163,7 +165,7 @@ public void handleDataEvent(Ref ref, Store store, confirmUpkeep = true; UICommandBuilder cmd = new UICommandBuilder(); UIEventBuilder events = new UIEventBuilder(); - cmd.set("#TriggerUpkeepBtn.Text", "Confirm Trigger?"); + cmd.set("#TriggerUpkeepBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_TRIGGER)); events.addEventBinding(CustomUIEventBindingType.Activating, "#TriggerUpkeepBtn", EventData.of("Button", "TriggerUpkeep"), false); sendUpdate(cmd, events, false); @@ -171,15 +173,15 @@ public void handleDataEvent(Ref ref, Store store, confirmUpkeep = false; UpkeepProcessor processor = plugin.getUpkeepProcessor(); if (processor == null) { - player.sendMessage(MessageUtil.adminError("Upkeep processor is not available.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ACT_UPKEEP_UNAVAILABLE)); } else { try { processor.processUpkeep(); - player.sendMessage(MessageUtil.adminSuccess("Upkeep collection triggered.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ACT_UPKEEP_TRIGGERED)); Logger.info("[Admin] %s manually triggered upkeep collection via GUI", playerRef.getUsername()); } catch (Exception e) { - player.sendMessage(MessageUtil.adminError("Upkeep failed: " + e.getMessage())); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ACT_UPKEEP_FAILED, e.getMessage())); ErrorHandler.report("[Admin] Manual upkeep trigger failed", e); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index 2b62822d..228fb8fb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionLog; import com.hyperfactions.data.FactionMember; @@ -103,7 +106,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { // Type filter dropdown List typeOptions = new ArrayList<>(); - typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString("All Types"), "ALL")); + typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.LOG_ALL_TYPES)), "ALL")); for (FactionLog.LogType type : FactionLog.LogType.values()) { typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(type.getDisplayName()), type.name())); } @@ -149,7 +152,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { // === Collect and filter logs === List allLogs = collectGlobalLogs(); - cmd.set("#LogCount.Text", allLogs.size() + " entries"); + cmd.set("#LogCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ENTRIES_SUFFIX, allLogs.size())); // Calculate pagination int totalPages = Math.max(1, (int) Math.ceil((double) allLogs.size() / LOGS_PER_PAGE)); @@ -198,7 +201,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java index 905d4cde..9927c363 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.api.EconomyAPI; import com.hyperfactions.data.Faction; import com.hyperfactions.gui.GuiManager; @@ -114,7 +117,7 @@ public void handleDataEvent(Ref ref, Store store, } if (amount.compareTo(BigDecimal.ZERO) == 0) { - showError("Amount cannot be zero."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_AMOUNT_ZERO)); return; } @@ -165,13 +168,13 @@ public void handleDataEvent(Ref ref, Store store, private BigDecimal parseAmountOrError(String amount) { if (amount == null || amount.isBlank()) { - showError("Please enter an amount."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_ENTER_AMOUNT)); return null; } try { return new BigDecimal(amount.trim()); } catch (NumberFormatException e) { - showError("Invalid number: " + amount); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_INVALID_NUMBER, amount)); return null; } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java index 59612c78..a166282f 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.HyperFactions; import com.hyperfactions.data.*; import com.hyperfactions.gui.GuiManager; @@ -112,7 +115,7 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#TotalEconomy.Text", econ.formatCurrencyCompact(total)); // Find wealthiest faction - String wealthiestName = "None"; + String wealthiestName = HFMessages.get(playerRef, MessageKeys.Common.NONE); java.math.BigDecimal wealthiestBalance = java.math.BigDecimal.ZERO; for (Faction f : allFactions) { java.math.BigDecimal balance = econ.getFactionBalance(f.id()); @@ -127,9 +130,9 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup bypass toggle boolean bypassEnabled = plugin.isAdminBypassEnabled(playerRef.getUuid()); - cmd.set("#BypassState.Text", bypassEnabled ? "On" : "Off"); + cmd.set("#BypassState.Text", bypassEnabled ? HFMessages.get(playerRef, MessageKeys.AdminGui.ON) : HFMessages.get(playerRef, MessageKeys.AdminGui.OFF)); cmd.set("#BypassState.Style.TextColor", bypassEnabled ? "#55FF55" : "#FF5555"); - cmd.set("#ToggleBypassBtn.Text", bypassEnabled ? "Disable" : "Enable"); + cmd.set("#ToggleBypassBtn.Text", bypassEnabled ? HFMessages.get(playerRef, MessageKeys.AdminGui.DISABLE_BTN) : HFMessages.get(playerRef, MessageKeys.AdminGui.ENABLE_BTN)); events.addEventBinding( CustomUIEventBindingType.Activating, @@ -173,9 +176,9 @@ private void rebuildBypassSection(boolean bypassEnabled) { UIEventBuilder events = new UIEventBuilder(); // Update bypass state display - cmd.set("#BypassState.Text", bypassEnabled ? "On" : "Off"); + cmd.set("#BypassState.Text", bypassEnabled ? HFMessages.get(playerRef, MessageKeys.AdminGui.ON) : HFMessages.get(playerRef, MessageKeys.AdminGui.OFF)); cmd.set("#BypassState.Style.TextColor", bypassEnabled ? "#55FF55" : "#FF5555"); - cmd.set("#ToggleBypassBtn.Text", bypassEnabled ? "Disable" : "Enable"); + cmd.set("#ToggleBypassBtn.Text", bypassEnabled ? HFMessages.get(playerRef, MessageKeys.AdminGui.DISABLE_BTN) : HFMessages.get(playerRef, MessageKeys.AdminGui.ENABLE_BTN)); // Re-bind the toggle button event events.addEventBinding( diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java index c7a15005..4a7f2d3a 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java @@ -6,11 +6,12 @@ import com.hyperfactions.gui.admin.data.AdminDisbandConfirmData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; -import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; import com.hypixel.hytale.server.core.ui.builder.EventData; @@ -101,7 +102,7 @@ public void handleDataEvent(Ref ref, Store store, // Re-fetch faction to verify it still exists Faction faction = factionManager.getFaction(factionId); if (faction == null) { - player.sendMessage(MessageUtil.errorText("Faction no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.DISBAND_FACTION_GONE)); guiManager.openAdminMain(player, ref, store, playerRef); return; } @@ -111,16 +112,12 @@ public void handleDataEvent(Ref ref, Store store, if (leaderId != null) { FactionManager.FactionResult result = factionManager.disbandFaction(factionId, leaderId); if (result == FactionManager.FactionResult.SUCCESS) { - player.sendMessage( - Message.raw("Faction '").color("#FF5555") - .insert(Message.raw(factionName).color("#AAAAAA")) - .insert(Message.raw("' has been disbanded.").color("#FF5555")) - ); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.DISBAND_SUCCESS, factionName)); } else { - player.sendMessage(MessageUtil.errorText("Failed to disband: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.DISBAND_FAILED, result)); } } else { - player.sendMessage(MessageUtil.errorText("Faction has no leader, cannot disband.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.DISBAND_NO_LEADER)); } // Return to admin page (will show updated list) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java index e3a799da..7bff708a 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.api.EconomyAPI; import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionEconomy; @@ -69,8 +72,8 @@ public void build(Ref ref, UICommandBuilder cmd, // Get faction info Faction faction = factionManager.getFaction(factionId); if (faction == null) { - cmd.set("#TargetFactionName.Text", "Faction Not Found"); - cmd.set("#CurrentBalance.Text", "N/A"); + cmd.set("#TargetFactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); + cmd.set("#CurrentBalance.Text", HFMessages.get(playerRef, MessageKeys.Common.NA)); return; } @@ -136,7 +139,7 @@ public void handleDataEvent(Ref ref, Store store, } if (amount.compareTo(BigDecimal.ZERO) == 0) { - showError("Amount cannot be zero."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_AMOUNT_ZERO)); return; } @@ -151,7 +154,7 @@ public void handleDataEvent(Ref ref, Store store, .thenAccept(result -> handleResult(result, player, ref, store, playerRef)) .exceptionally(ex -> { ErrorHandler.report(String.format("Admin economy adjust failed for faction %s", factionId), ex); - showError("An error occurred."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_ERROR)); return null; }); } @@ -163,7 +166,7 @@ public void handleDataEvent(Ref ref, Store store, } if (newBalance.compareTo(BigDecimal.ZERO) < 0) { - showError("Balance cannot be negative."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_BALANCE_NEGATIVE)); return; } @@ -174,7 +177,7 @@ public void handleDataEvent(Ref ref, Store store, .thenAccept(result -> handleResult(result, player, ref, store, playerRef)) .exceptionally(ex -> { ErrorHandler.report(String.format("Admin economy set balance failed for faction %s", factionId), ex); - showError("An error occurred."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_ERROR)); return null; }); } @@ -190,13 +193,13 @@ public void handleDataEvent(Ref ref, Store store, */ private @Nullable BigDecimal parseAmountOrError(@Nullable String amount) { if (amount == null || amount.isBlank()) { - showError("Please enter an amount."); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_ENTER_AMOUNT)); return null; } try { return new BigDecimal(amount.trim()); } catch (NumberFormatException e) { - showError("Invalid number: " + amount); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_INVALID_NUMBER, amount)); return null; } } @@ -209,7 +212,7 @@ private void handleResult(EconomyAPI.TransactionResult result, guiManager.openAdminEconomy(player, ref, store, playerRef); } else { Logger.debugEconomy("Admin economy operation failed for faction %s: %s", factionId, result.name()); - showError("Failed: " + result.name()); + showError(HFMessages.get(playerRef, MessageKeys.AdminGui.ECON_FAILED, result.name())); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java index edafebc4..0417282f 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionEconomy; import com.hyperfactions.data.FactionMember; @@ -151,7 +154,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { // Get sorted/filtered factions List factions = getSortedFactions(); - cmd.set("#FactionCount.Text", factions.size() + " factions"); + cmd.set("#FactionCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTIONS_SUFFIX, factions.size())); // Search input if (!searchQuery.isEmpty()) { @@ -166,9 +169,9 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Balance"), "BALANCE"), - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Members"), "MEMBERS") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_BALANCE)), "BALANCE"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_MEMBERS)), "MEMBERS") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -242,7 +245,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java index 05bf4f41..1dce4db5 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.config.ConfigManager; import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionLog; @@ -82,8 +85,8 @@ public void build(Ref ref, UICommandBuilder cmd, // Get the faction Faction faction = factionManager.getFaction(factionId); if (faction == null) { - cmd.set("#FactionName.Text", "Faction Not Found"); - cmd.set("#FactionDescription.Text", "This faction no longer exists."); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); + cmd.set("#FactionDescription.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.INFO_FACTION_GONE)); return; } @@ -101,10 +104,10 @@ public void build(Ref ref, UICommandBuilder cmd, // Description String description = faction.description(); cmd.set("#FactionDescription.Text", - description != null && !description.isEmpty() ? description : "No description set."); + description != null && !description.isEmpty() ? description : HFMessages.get(playerRef, MessageKeys.AdminGui.NO_DESCRIPTION)); // Open/Closed status indicator - cmd.set("#StatusIndicator.Text", faction.open() ? "Open" : "Invite Only"); + cmd.set("#StatusIndicator.Text", faction.open() ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) : HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); // === Stats Section === PowerManager.FactionPowerStats powerStats = powerManager.getFactionPowerStats(faction.id()); @@ -121,7 +124,7 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#MembersValue.Text", String.format("%d / %d", memberCount, maxMembers)); // Recruitment status - cmd.set("#RecruitmentValue.Text", faction.open() ? "Open" : "Invite Only"); + cmd.set("#RecruitmentValue.Text", faction.open() ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) : HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)); // Founded date cmd.set("#FoundedValue.Text", TimeUtil.formatRelative(faction.createdAt())); @@ -134,21 +137,21 @@ public void build(Ref ref, UICommandBuilder cmd, // Raidable status if (powerStats.isRaidable()) { - cmd.set("#RaidableValue.Text", "Raidable"); + cmd.set("#RaidableValue.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.RAIDABLE)); } else { - cmd.set("#RaidableValue.Text", "Protected"); + cmd.set("#RaidableValue.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PROTECTED)); } // === Leadership Section === FactionMember leader = faction.getLeader(); - cmd.set("#LeaderName.Text", leader != null ? leader.username() : "Unknown"); + cmd.set("#LeaderName.Text", leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); // Officers List officers = faction.getMembersSorted().stream() .filter(m -> m.role() == FactionRole.OFFICER) .toList(); if (officers.isEmpty()) { - cmd.set("#OfficersValue.Text", "None"); + cmd.set("#OfficersValue.Text", HFMessages.get(playerRef, MessageKeys.Common.NONE)); } else { String officerNames = officers.stream() .map(FactionMember::username) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java index 175e1843..093639b5 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java @@ -10,6 +10,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.TimeUtil; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; @@ -78,8 +80,8 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder eve AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); Faction faction = factionManager.getFaction(factionId); if (faction == null) { - cmd.set("#FactionName.Text", "Faction Not Found"); - cmd.set("#MemberCount.Text", "0 members"); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); + cmd.set("#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.MEMBERS_SUFFIX, 0)); return; } cmd.set("#FactionName.Text", faction.name()); @@ -88,8 +90,8 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder eve private void buildMemberList(UICommandBuilder cmd, UIEventBuilder events, Faction faction) { List allMembers = getFilteredSortedMembers(faction); - cmd.set("#MemberCount.Text", searchQuery.isEmpty() ? allMembers.size() + " members" : allMembers.size() + " found"); - cmd.set("#SortDropdown.Entries", List.of(new DropdownEntryInfo(LocalizableString.fromString("Role"), "ROLE"), new DropdownEntryInfo(LocalizableString.fromString("Online"), "ONLINE"), new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER"))); + cmd.set("#MemberCount.Text", searchQuery.isEmpty() ? HFMessages.get(playerRef, MessageKeys.AdminGui.MEMBERS_SUFFIX, allMembers.size()) : HFMessages.get(playerRef, MessageKeys.AdminGui.FOUND_SUFFIX, allMembers.size())); + cmd.set("#SortDropdown.Entries", List.of(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.MEM_SORT_ROLE)), "ROLE"), new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.MEM_SORT_ONLINE)), "ONLINE"), new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.MEM_SORT_NAME)), "NAME"), new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.MEM_SORT_POWER)), "POWER"))); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding(CustomUIEventBindingType.ValueChanged, "#SortDropdown", EventData.of("Button", "SortChanged").append("@SortMode", "#SortDropdown.Value"), false); events.addEventBinding(CustomUIEventBindingType.ValueChanged, "#SearchInput", EventData.of("Button", "SearchChanged").append("@SearchQuery", "#SearchInput.Value"), false); @@ -104,7 +106,7 @@ private void buildMemberList(UICommandBuilder cmd, UIEventBuilder events, Factio buildMemberEntry(cmd, events, i, allMembers.get(idx)); i++; } - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding(CustomUIEventBindingType.Activating, "#PrevBtn", EventData.of("Button", "PrevPage").append("Page", String.valueOf(currentPage - 1)), false); } @@ -121,7 +123,7 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i cmd.set(idx + " #MemberName.Text", member.username()); cmd.set(idx + " #MemberRole.Text", formatRole(member.role())); cmd.set(idx + " #RoleIndicator.Background.Color", GuiColors.forRole(member.role())); - cmd.set(idx + " #OnlineStatus.Text", memberIsOnline ? "Online" : "Offline"); + cmd.set(idx + " #OnlineStatus.Text", memberIsOnline ? HFMessages.get(playerRef, MessageKeys.Common.ONLINE) : HFMessages.get(playerRef, MessageKeys.Common.OFFLINE)); cmd.set(idx + " #OnlineStatus.Style.TextColor", GuiColors.forOnlineStatus(memberIsOnline)); if (!memberIsOnline) { cmd.set(idx + " #LastOnline.Text", formatLastOnline(member.lastOnline())); @@ -135,8 +137,8 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i cmd.set(idx + " #PowerValue.Text", String.format("%.0f/%.0f", power.power(), power.getEffectiveMaxPower())); int powerPercent = power.getPowerPercent(); String powerColor = GuiColors.forPowerLevel(powerPercent); cmd.set(idx + " #PowerValue.Style.TextColor", powerColor); - cmd.set(idx + " #JoinedDate.Text", member.joinedAt() > 0 ? DATE_FORMAT.format(Instant.ofEpochMilli(member.joinedAt())) : "Unknown"); - cmd.set(idx + " #LastDeath.Text", power.lastDeath() > 0 ? TimeUtil.formatDuration(System.currentTimeMillis() - power.lastDeath()) + " ago" : "Never"); + cmd.set(idx + " #JoinedDate.Text", member.joinedAt() > 0 ? DATE_FORMAT.format(Instant.ofEpochMilli(member.joinedAt())) : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); + cmd.set(idx + " #LastDeath.Text", power.lastDeath() > 0 ? HFMessages.get(playerRef, MessageKeys.AdminGui.AGO_SUFFIX, TimeUtil.formatDuration(System.currentTimeMillis() - power.lastDeath())) : HFMessages.get(playerRef, MessageKeys.AdminGui.MEM_NEVER)); cmd.set(idx + " #UuidValue.Text", member.uuid().toString()); boolean canPromote = member.role() != FactionRole.LEADER; boolean canDemote = member.role() != FactionRole.MEMBER; boolean canKick = member.role() != FactionRole.LEADER; cmd.set(idx + " #ViewInfoBtn.Visible", true); cmd.set(idx + " #TeleportBtn.Visible", true); @@ -184,9 +186,9 @@ private String formatLastOnline(long lastOnlineMs) { } long diffMs = System.currentTimeMillis() - lastOnlineMs; if (diffMs < 60000) { - return "just now"; + return HFMessages.get(playerRef, MessageKeys.AdminGui.JUST_NOW); } - return TimeUtil.formatDuration(diffMs) + " ago"; + return HFMessages.get(playerRef, MessageKeys.AdminGui.AGO_SUFFIX, TimeUtil.formatDuration(diffMs)); } /** Handles data event. */ @@ -212,10 +214,10 @@ public void handleDataEvent(Ref ref, Store store, Admi case "PrevPage" -> { currentPage = Math.max(0, data.page); expandedMembers.clear(); rebuildList(); } case "NextPage" -> { currentPage = data.page; expandedMembers.clear(); rebuildList(); } case "Back" -> guiManager.openAdminFactionInfo(player, ref, store, playerRef, factionId); - case "Teleport" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } PlayerRef targetPlayer = Universe.get().getPlayer(memberUuid); if (targetPlayer != null && targetPlayer.isValid()) { guiManager.closePage(player, ref, store); var targetWorld = Universe.get().getWorld(targetPlayer.getWorldUuid()); if (targetWorld == null) { player.sendMessage(MessageUtil.errorText("Target world not found.")); return; } var targetTransform = targetPlayer.getTransform(); var targetPos = targetTransform.getPosition(); var targetRot = targetTransform.getRotation(); targetWorld.execute(() -> { var teleport = com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.createForPlayer(targetWorld, targetPos, targetRot); store.addComponent(ref, com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.getComponentType(), teleport); }); player.sendMessage(Message.raw("[Admin] Teleported to ").color("#55FF55").insert(Message.raw(data.memberName != null ? data.memberName : "player").color("#00FFFF")).insert(Message.raw(".").color("#55FF55"))); } else { player.sendMessage(MessageUtil.errorText("Player is not online.")); sendUpdate(); } } } - case "Promote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { FactionRole newRole = member.role() == FactionRole.MEMBER ? FactionRole.OFFICER : FactionRole.LEADER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(Message.raw("[Admin] Promoted ").color("#55FF55").insert(Message.raw(data.memberName != null ? data.memberName : "player").color("#00FFFF")).insert(Message.raw(" to ").color("#55FF55")).insert(Message.raw(formatRole(newRole)).color("#FFD700")).insert(Message.raw(".").color("#55FF55"))); rebuildList(); } } } } - case "Demote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.MEMBER) { FactionRole newRole = member.role() == FactionRole.LEADER ? FactionRole.OFFICER : FactionRole.MEMBER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(Message.raw("[Admin] Demoted ").color("#FFAA00").insert(Message.raw(data.memberName != null ? data.memberName : "player").color("#00FFFF")).insert(Message.raw(" to ").color("#FFAA00")).insert(Message.raw(formatRole(newRole)).color("#888888")).insert(Message.raw(".").color("#FFAA00"))); rebuildList(); } } } } - case "Kick" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { factionManager.adminRemoveMember(factionId, memberUuid); player.sendMessage(Message.raw("[Admin] Kicked ").color("#FF5555").insert(Message.raw(data.memberName != null ? data.memberName : "player").color("#00FFFF")).insert(Message.raw(" from the faction.").color("#FF5555"))); rebuildList(); } } } } + case "Teleport" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } PlayerRef targetPlayer = Universe.get().getPlayer(memberUuid); if (targetPlayer != null && targetPlayer.isValid()) { guiManager.closePage(player, ref, store); var targetWorld = Universe.get().getWorld(targetPlayer.getWorldUuid()); if (targetWorld == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.FAC_WORLD_NOT_FOUND)); return; } var targetTransform = targetPlayer.getTransform(); var targetPos = targetTransform.getPosition(); var targetRot = targetTransform.getRotation(); targetWorld.execute(() -> { var teleport = com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.createForPlayer(targetWorld, targetPos, targetRot); store.addComponent(ref, com.hypixel.hytale.server.core.modules.entity.teleport.Teleport.getComponentType(), teleport); }); player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MEM_TELEPORTED, "#55FF55", data.memberName != null ? data.memberName : "player")); } else { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.PLR_NOT_ONLINE)); sendUpdate(); } } } + case "Promote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { FactionRole newRole = member.role() == FactionRole.MEMBER ? FactionRole.OFFICER : FactionRole.LEADER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_PROMOTED, data.memberName != null ? data.memberName : "player", formatRole(newRole))); rebuildList(); } } } } + case "Demote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.MEMBER) { FactionRole newRole = member.role() == FactionRole.LEADER ? FactionRole.OFFICER : FactionRole.MEMBER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_DEMOTED, data.memberName != null ? data.memberName : "player", formatRole(newRole))); rebuildList(); } } } } + case "Kick" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { factionManager.adminRemoveMember(factionId, memberUuid); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_KICKED, data.memberName != null ? data.memberName : "player")); rebuildList(); } } } } case "ViewPlayerInfo" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } String memberName = data.memberName != null ? data.memberName : "Unknown"; guiManager.openAdminPlayerInfo(player, ref, store, playerRef, memberUuid, memberName, factionId, AdminPlayerInfoPage.Origin.FACTION_MEMBERS); } } default -> sendUpdate(); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java index 9c4edbcd..cea5e28b 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java @@ -8,6 +8,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.RelationManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -58,24 +60,24 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder eve AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); Faction faction = factionManager.getFaction(factionId); if (faction == null) { - cmd.set("#FactionName.Text", "Faction Not Found"); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); return; } cmd.set("#FactionName.Text", faction.name()); events.addEventBinding(CustomUIEventBindingType.Activating, "#BackBtn", EventData.of("Button", "Back").append("FactionId", factionId.toString()), false); List allies = getRelationsOfType(faction, RelationType.ALLY); List enemies = getRelationsOfType(faction, RelationType.ENEMY); - cmd.set("#AlliesHeader.Text", "ALLIES (" + allies.size() + ")"); + cmd.set("#AlliesHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.REL_ALLIES_HEADER, allies.size())); cmd.clear("#AlliesList"); - if (allies.isEmpty()) { cmd.appendInline("#AlliesList", "Label { Text: \"No allies.\"; Style: (FontSize: 11, TextColor: #666666); Anchor: (Height: 24); }"); } + if (allies.isEmpty()) { cmd.appendInline("#AlliesList", "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.AdminGui.REL_NO_ALLIES) + "\"; Style: (FontSize: 11, TextColor: #666666); Anchor: (Height: 24); }"); } else { for (int i = 0; i < allies.size(); i++) buildRelationEntry(cmd, events, "#AlliesList", i, allies.get(i), "ally"); } - cmd.set("#EnemiesHeader.Text", "ENEMIES (" + enemies.size() + ")"); + cmd.set("#EnemiesHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.REL_ENEMIES_HEADER, enemies.size())); cmd.clear("#EnemiesList"); - if (enemies.isEmpty()) { cmd.appendInline("#EnemiesList", "Label { Text: \"No enemies.\"; Style: (FontSize: 11, TextColor: #666666); Anchor: (Height: 24); }"); } + if (enemies.isEmpty()) { cmd.appendInline("#EnemiesList", "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.AdminGui.REL_NO_ENEMIES) + "\"; Style: (FontSize: 11, TextColor: #666666); Anchor: (Height: 24); }"); } else { for (int i = 0; i < enemies.size(); @@ -88,7 +90,7 @@ private void buildRelationEntry(UICommandBuilder cmd, UIEventBuilder events, Str cmd.append(container, UIPaths.ADMIN_FACTION_RELATIONS_ENTRY); String idx = container + "[" + index + "]"; cmd.set(idx + " #FactionName.Text", entry.factionName); - cmd.set(idx + " #LeaderName.Text", "Leader: " + entry.leaderName); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, entry.leaderName)); cmd.set(idx + " #DateEstablished.Text", formatDate(entry.sinceMillis)); if ("ally".equals(type)) { events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetNeutralBtn", EventData.of("Button", "AdminSetNeutral").append("TargetFactionId", entry.factionId.toString()), false); @@ -110,7 +112,7 @@ private void buildSetRelationSection(UICommandBuilder cmd, UIEventBuilder events } } int count = Math.min(5, neutralFactions.size()); - cmd.set("#NeutralCount.Text", neutralFactions.size() + " neutral factions"); + cmd.set("#NeutralCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.REL_NEUTRAL_COUNT, neutralFactions.size())); cmd.clear("#NeutralList"); for (int i = 0; i < count; i++) { Faction other = neutralFactions.get(i); @@ -119,7 +121,7 @@ private void buildSetRelationSection(UICommandBuilder cmd, UIEventBuilder events FactionMember leader = other.getLeader(); String leaderName = leader != null ? leader.username() : "Unknown"; cmd.set(idx + " #FactionName.Text", other.name()); - cmd.set(idx + " #LeaderName.Text", "Leader: " + leaderName); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, leaderName)); cmd.set(idx + " #DateEstablished.Text", ""); events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetAllyBtn", EventData.of("Button", "AdminSetAlly").append("TargetFactionId", other.id().toString()), false); events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetEnemyBtn", EventData.of("Button", "AdminSetEnemy").append("TargetFactionId", other.id().toString()), false); @@ -129,11 +131,11 @@ private void buildSetRelationSection(UICommandBuilder cmd, UIEventBuilder events private String formatDate(long sinceMillis) { long daysSince = ChronoUnit.DAYS.between(Instant.ofEpochMilli(sinceMillis), Instant.now()); if (daysSince == 0) { - return "Since: today"; + return HFMessages.get(playerRef, MessageKeys.AdminGui.REL_SINCE_TODAY); } else if (daysSince == 1) { - return "Since: 1 day ago"; + return HFMessages.get(playerRef, MessageKeys.AdminGui.REL_SINCE_ONE_DAY); } else { - return "Since: " + daysSince + " days ago"; + return HFMessages.get(playerRef, MessageKeys.AdminGui.REL_SINCE_DAYS, daysSince); } } @@ -174,9 +176,9 @@ public void handleDataEvent(Ref ref, Store store, Admi } switch (data.button) { case "Back" -> guiManager.openAdminFactionInfo(player, ref, store, playerRef, factionId); - case "AdminSetAlly" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText("Invalid faction.")); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ALLY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text("[Admin] Set mutual ally status with " + targetName + ".", MessageUtil.COLOR_BLUE)); else player.sendMessage(MessageUtil.adminError("Failed: " + result)); refresh(player, ref, store, playerRef); } } - case "AdminSetEnemy" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText("Invalid faction.")); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ENEMY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.adminError("Set mutual enemy status with " + targetName + ".")); else player.sendMessage(MessageUtil.adminError("Failed: " + result)); refresh(player, ref, store, playerRef); } } - case "AdminSetNeutral" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText("Invalid faction.")); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.NEUTRAL); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text("[Admin] Set mutual neutral status with " + targetName + ".", "#888888")); else player.sendMessage(MessageUtil.adminError("Failed: " + result)); refresh(player, ref, store, playerRef); } } + case "AdminSetAlly" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ALLY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_ALLY, MessageUtil.COLOR_BLUE, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } + case "AdminSetEnemy" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ENEMY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_SET_ENEMY, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } + case "AdminSetNeutral" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.NEUTRAL); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_NEUTRAL, "#888888", targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } default -> sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java index 788a3291..979a72d6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java @@ -9,6 +9,8 @@ import com.hyperfactions.gui.admin.data.AdminFactionSettingsData; import com.hyperfactions.manager.FactionManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -67,7 +69,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Get the faction Faction faction = factionManager.getFaction(factionId); if (faction == null) { - cmd.set("#FactionName.Text", "Faction Not Found"); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); return; } @@ -104,7 +106,7 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events, F // Tag String tagDisplay = faction.tag() != null && !faction.tag().isEmpty() ? "[" + faction.tag().toUpperCase() + "]" - : "(None)"; + : HFMessages.get(playerRef, MessageKeys.AdminGui.NONE_PAREN); cmd.set("#TagValue.Text", tagDisplay); events.addEventBinding( CustomUIEventBindingType.Activating, @@ -116,7 +118,7 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events, F // Description String desc = faction.description() != null && !faction.description().isEmpty() ? faction.description() - : "(None)"; + : HFMessages.get(playerRef, MessageKeys.AdminGui.NONE_PAREN); cmd.set("#DescValue.Text", desc); events.addEventBinding( CustomUIEventBindingType.Activating, @@ -127,8 +129,8 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events, F // Recruitment dropdown cmd.set("#RecruitmentDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Open"), "OPEN"), - new DropdownEntryInfo(LocalizableString.fromString("Invite Only"), "INVITE_ONLY") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN)), "OPEN"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY)), "INVITE_ONLY") )); cmd.set("#RecruitmentDropdown.Value", faction.open() ? "OPEN" : "INVITE_ONLY"); events.addEventBinding( @@ -150,7 +152,7 @@ private void buildGeneralSettings(UICommandBuilder cmd, UIEventBuilder events, F worldName, home.x(), home.y(), home.z()); cmd.set("#HomeLocation.Text", homeText); } else { - cmd.set("#HomeLocation.Text", "Not set"); + cmd.set("#HomeLocation.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NOT_SET)); } events.addEventBinding( CustomUIEventBindingType.Activating, @@ -220,7 +222,7 @@ private void buildPermissions(UICommandBuilder cmd, UIEventBuilder events, Facti // PvP toggle buildToggle(cmd, events, "PvPToggle", "pvpEnabled", perms.pvpEnabled(), config, false); - cmd.set("#PvPStatus.Text", perms.pvpEnabled() ? "Enabled" : "Disabled"); + cmd.set("#PvPStatus.Text", perms.pvpEnabled() ? HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_ENABLED) : HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_DISABLED)); cmd.set("#PvPStatus.Style.TextColor", perms.pvpEnabled() ? "#55FF55" : "#FF5555"); // Officers can edit @@ -284,7 +286,7 @@ public void handleDataEvent(Ref ref, Store store, Faction faction = factionManager.getFaction(factionId); if (faction == null && !data.button.equals("Back")) { - player.sendMessage(MessageUtil.adminError("Faction not found.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.Common.FACTION_NOT_FOUND)); sendUpdate(); return; } @@ -324,7 +326,7 @@ private void handleTogglePerm(Player player, Ref ref, Store ref, Store ref, Store ref, Store ref, Store Faction updatedFaction = faction.withOpen(isOpen); factionManager.updateFaction(updatedFaction); - player.sendMessage(MessageUtil.adminSuccess("Set recruitment to " + (isOpen ? "Open" : "Invite Only"))); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.SET_RECRUITMENT_SET, isOpen ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) : HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_INVITE_ONLY))); rebuildPage(); } private void handleClearHome(Player player, Ref ref, Store store, Faction faction) { if (faction.home() == null) { - player.sendMessage(MessageUtil.text("[Admin] This faction has no home set.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.SET_NO_HOME, MessageUtil.COLOR_GOLD)); sendUpdate(); return; } @@ -407,7 +409,7 @@ private void handleClearHome(Player player, Ref ref, Store factions = getSortedFactions(); - cmd.set("#FactionCount.Text", factions.size() + " factions"); + cmd.set("#FactionCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTIONS_SUFFIX, factions.size())); // Search input if (!searchQuery.isEmpty()) { @@ -112,9 +114,9 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER"), - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Members"), "MEMBERS") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_POWER)), "POWER"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_MEMBERS)), "MEMBERS") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -143,7 +145,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -181,8 +183,8 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Leader info FactionMember leader = faction.getLeader(); - String leaderName = leader != null ? leader.username() : "None"; - cmd.set(idx + " #LeaderName.Text", "Leader: " + leaderName); + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.NONE); + cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, leaderName)); // Stats cmd.set(idx + " #PowerDisplay.Text", String.format("%.0f/%.0f", stats.currentPower(), stats.maxPower())); @@ -216,7 +218,7 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int String.format("%s (%.0f, %.0f, %.0f)", home.world(), home.x(), home.y(), home.z())); cmd.set(idx + " #TpHomeBtn.Visible", true); } else { - cmd.set(idx + " #HomeLocation.Text", "Not set"); + cmd.set(idx + " #HomeLocation.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NOT_SET)); cmd.set(idx + " #TpHomeBtn.Visible", false); } @@ -387,7 +389,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); @@ -398,7 +400,7 @@ public void handleDataEvent(Ref ref, Store store, // Get target world World targetWorld = Universe.get().getWorld(home.world()); if (targetWorld == null) { - player.sendMessage(MessageUtil.errorText("Target world not found.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.FAC_WORLD_NOT_FOUND)); return; } @@ -410,9 +412,9 @@ public void handleDataEvent(Ref ref, Store store, store.addComponent(ref, Teleport.getComponentType(), teleport); }); - player.sendMessage(MessageUtil.text("Teleported to " + faction.name() + "'s home.", "#00FFFF")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.FAC_TELEPORTED, "#00FFFF", faction.name())); } else { - player.sendMessage(MessageUtil.errorText("Faction has no home set.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.FAC_NO_HOME)); } } } @@ -421,7 +423,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); @@ -436,7 +438,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); @@ -450,7 +452,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); @@ -464,7 +466,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } guiManager.openAdminDisbandConfirm(player, ref, store, playerRef, factionId, data.factionName); @@ -475,7 +477,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java index 19b9a6ae..7e6c9a03 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java @@ -8,6 +8,8 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.PowerManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -74,9 +76,9 @@ public void build(Ref ref, UICommandBuilder cmd, .mapToInt(f -> f.claims().size()) .sum(); - cmd.set("#TotalFactions.Text", "Factions: " + totalFactions); - cmd.set("#TotalMembers.Text", "Total Members: " + totalMembers); - cmd.set("#TotalClaims.Text", "Total Claims: " + totalClaims); + cmd.set("#TotalFactions.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.DASH_FACTIONS_PREFIX, totalFactions)); + cmd.set("#TotalMembers.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.DASH_MEMBERS_PREFIX, totalMembers)); + cmd.set("#TotalClaims.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.DASH_CLAIMS_PREFIX, totalClaims)); // Navigation buttons events.addEventBinding( @@ -122,14 +124,14 @@ public void build(Ref ref, UICommandBuilder cmd, // Faction info String colorHex = faction.color() != null ? faction.color() : "#00FFFF"; cmd.set(prefix + "#FactionName.Text", faction.name()); - cmd.set(prefix + "#MemberCount.Text", faction.members().size() + " members"); - cmd.set(prefix + "#PowerCount.Text", String.format("%.0f/%.0f power", stats.currentPower(), stats.maxPower())); - cmd.set(prefix + "#ClaimCount.Text", faction.claims().size() + " claims"); + cmd.set(prefix + "#MemberCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.MEMBERS_SUFFIX, faction.members().size())); + cmd.set(prefix + "#PowerCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.POWER_FORMAT, String.format("%.0f", stats.currentPower()), String.format("%.0f", stats.maxPower()))); + cmd.set(prefix + "#ClaimCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.CLAIMS_SUFFIX, faction.claims().size())); // Leader info FactionMember leader = faction.getLeader(); - String leaderName = leader != null ? leader.username() : "None"; - cmd.set(prefix + "#LeaderName.Text", "Leader: " + leaderName); + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.NONE); + cmd.set(prefix + "#LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, leaderName)); // Action buttons events.addEventBinding( @@ -153,7 +155,7 @@ public void build(Ref ref, UICommandBuilder cmd, } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -203,7 +205,7 @@ public void handleDataEvent(Ref ref, Store store, case "Reload" -> { guiManager.closePage(player, ref, store); - player.sendMessage(MessageUtil.text("Use /f reload to reload configuration.", "#00FFFF")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAIN_RELOAD_HINT, "#00FFFF")); } case "PrevPage" -> { @@ -220,7 +222,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } @@ -233,7 +235,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.factionId != null) { UUID factionId = UuidUtil.parseOrNull(data.factionId); if (factionId == null) { - player.sendMessage(MessageUtil.errorText("Invalid faction.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction faction = factionManager.getFaction(factionId); @@ -241,7 +243,7 @@ public void handleDataEvent(Ref ref, Store store, int claimCount = faction.claims().size(); // Admin unclaim - prompt for command guiManager.closePage(player, ref, store); - player.sendMessage(MessageUtil.text("Use /f admin unclaim " + data.factionName + " to unclaim all " + claimCount + " chunks.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAIN_UNCLAIM_HINT, MessageUtil.COLOR_GOLD, data.factionName, claimCount)); } } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index 62faee3b..51b59703 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -18,6 +18,8 @@ import com.hyperfactions.manager.PowerManager; import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.TimeUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -101,7 +103,7 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { // Online status boolean isOnline = isOnline(targetPlayerUuid); - cmd.set("#OnlineStatus.Text", isOnline ? "Online" : "Offline"); + cmd.set("#OnlineStatus.Text", isOnline ? HFMessages.get(playerRef, MessageKeys.Common.ONLINE) : HFMessages.get(playerRef, MessageKeys.Common.OFFLINE)); cmd.set("#OnlineStatus.Style.TextColor", GuiColors.forOnlineStatus(isOnline)); // Load player data once for all sections @@ -111,15 +113,15 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { if (cachedData != null && cachedData.getFirstJoined() > 0) { cmd.set("#FirstJoinedValue.Text", TimeUtil.formatDate(cachedData.getFirstJoined())); } else { - cmd.set("#FirstJoinedValue.Text", "Unknown"); + cmd.set("#FirstJoinedValue.Text", HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); } if (isOnline) { - cmd.set("#LastOnlineValue.Text", "Now"); + cmd.set("#LastOnlineValue.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NOW)); cmd.set("#LastOnlineValue.Style.TextColor", "#55FF55"); } else if (cachedData != null && cachedData.getLastOnline() > 0) { cmd.set("#LastOnlineValue.Text", TimeUtil.formatRelative(cachedData.getLastOnline())); } else { - cmd.set("#LastOnlineValue.Text", "Unknown"); + cmd.set("#LastOnlineValue.Text", HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); } // === Faction Card === @@ -132,7 +134,7 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { if (faction != null) { cmd.set("#FactionName.Text", faction.name()); } else { - cmd.set("#FactionName.Text", "No Faction"); + cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NO_FACTION)); cmd.set("#FactionName.Style.TextColor", "#888888"); } @@ -163,9 +165,9 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { // Max override indicator if (power.maxPowerOverride() != null) { - cmd.set("#MaxOverrideLabel.Text", "(custom max)"); + cmd.set("#MaxOverrideLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.CUSTOM_MAX)); } else { - cmd.set("#MaxOverrideLabel.Text", "(default max)"); + cmd.set("#MaxOverrideLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.DEFAULT_MAX)); cmd.set("#MaxOverrideLabel.Style.TextColor", "#666666"); } @@ -196,7 +198,7 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { List history = new java.util.ArrayList<>(cachedData.getMembershipHistory()); Collections.reverse(history); - cmd.set("#HistoryCount.Text", history.size() + " records"); + cmd.set("#HistoryCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_RECORDS, history.size())); cmd.appendInline("#HistoryList", "Group #HistoryCards { LayoutMode: Top; }"); for (int i = 0; i < history.size(); i++) { @@ -206,8 +208,8 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { cmd.set(idx + " #HFactionName.Text", rec.factionName()); cmd.set(idx + " #HRole.Text", ConfigManager.get().getRoleDisplayName(rec.highestRole())); - cmd.set(idx + " #HJoined.Text", "Joined: " + TimeUtil.formatDate(rec.joinedAt())); - cmd.set(idx + " #HLeft.Text", rec.isActive() ? "Current" : "Left: " + TimeUtil.formatDate(rec.leftAt())); + cmd.set(idx + " #HJoined.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_JOINED_DATE, TimeUtil.formatDate(rec.joinedAt()))); + cmd.set(idx + " #HLeft.Text", rec.isActive() ? HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_CURRENT) : HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_LEFT_DATE, TimeUtil.formatDate(rec.leftAt()))); cmd.set(idx + " #HReason.Text", formatReason(rec.reason())); cmd.set(idx + " #HReason.Style.TextColor", GuiColors.forLeaveReason(rec.reason())); cmd.set(idx + " #RoleBar.Background.Color", GuiColors.forRole(rec.highestRole())); @@ -215,7 +217,7 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { } else { cmd.set("#HistoryCount.Text", ""); cmd.appendInline("#HistoryList", - "Label { Text: \"No membership history\"; Style: (FontSize: 10, TextColor: #555555); }"); + "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.AdminGui.NO_MEMBERSHIP_HISTORY) + "\"; Style: (FontSize: 10, TextColor: #555555); }"); } // === Kick button === @@ -224,9 +226,9 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { } else { FactionMember targetMember = faction.getMember(targetPlayerUuid); if (targetMember != null && targetMember.isLeader() && faction.getMemberCount() == 1) { - cmd.set("#KickBtn.Text", "Disband Faction"); + cmd.set("#KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_DISBAND_FACTION)); } else if (targetMember != null && targetMember.isLeader()) { - cmd.set("#KickBtn.Text", "Kick Leader"); + cmd.set("#KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_KICK_LEADER)); } } @@ -304,7 +306,7 @@ public void handleDataEvent(Ref ref, Store store, case "SetPower" -> { double amount = parseDoubleOrNaN(data.powerInput); if (Double.isNaN(amount)) { - player.sendMessage(MessageUtil.adminError("Enter a valid number.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.PLR_ENTER_VALID_NUMBER)); return; } double oldPower = powerManager.getPlayerPower(targetPlayerUuid).power(); @@ -327,7 +329,7 @@ public void handleDataEvent(Ref ref, Store store, case "SetMax" -> { double amount = parseDoubleOrNaN(data.powerInput); if (Double.isNaN(amount) || amount <= 0) { - player.sendMessage(MessageUtil.adminError("Enter a valid positive number.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.PLR_ENTER_VALID_POSITIVE)); return; } PlayerPower old = powerManager.getPlayerPower(targetPlayerUuid); @@ -379,7 +381,7 @@ public void handleDataEvent(Ref ref, Store store, "Admin reset K/D for " + targetPlayerName, adminUuid)); factionManager.updateFaction(updated); } - player.sendMessage(MessageUtil.adminSuccess("Reset K/D for " + targetPlayerName + ".")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.PLR_KD_RESET, targetPlayerName)); reopenPage(player, ref, store, playerRef); } @@ -399,8 +401,7 @@ public void handleDataEvent(Ref ref, Store store, // Last member — disband the faction factionManager.forceDisband(faction.id(), "[Admin] Disbanded via admin kick of last member " + targetPlayerName); - player.sendMessage(MessageUtil.text("[Admin] Faction '" + faction.name() - + "' disbanded (last member kicked).", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.PLR_DISBANDED_KICK, MessageUtil.COLOR_GOLD, faction.name())); // Navigate back to factions list since faction no longer exists guiManager.openAdminFactions(player, ref, store, playerRef); } else { @@ -419,8 +420,7 @@ public void handleDataEvent(Ref ref, Store store, // Now kick the demoted member factionManager.adminRemoveMember(faction.id(), targetPlayerUuid); - player.sendMessage(MessageUtil.adminSuccess("Kicked leader " + targetPlayerName - + ". Leadership transferred to " + successor.username() + ".")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.PLR_KICKED_LEADER, targetPlayerName, successor.username())); } reopenPage(player, ref, store, playerRef); } @@ -428,8 +428,7 @@ public void handleDataEvent(Ref ref, Store store, // Normal kick FactionResult result = factionManager.adminRemoveMember(faction.id(), targetPlayerUuid); if (result == FactionResult.SUCCESS) { - player.sendMessage(MessageUtil.adminSuccess("Kicked " + targetPlayerName - + " from " + faction.name() + ".")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.PLR_KICKED_SUCCESS, targetPlayerName, faction.name())); } reopenPage(player, ref, store, playerRef); } @@ -441,7 +440,7 @@ public void handleDataEvent(Ref ref, Store store, if (viewFaction != null) { guiManager.openAdminFactionInfo(player, ref, store, playerRef, viewFaction.id()); } else { - player.sendMessage(MessageUtil.adminError("Faction no longer exists.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.PLR_FACTION_GONE)); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java index fb5aa298..1f8073d8 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java @@ -11,6 +11,8 @@ import com.hyperfactions.manager.PowerManager; import com.hyperfactions.storage.PlayerStorage; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.TimeUtil; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; @@ -214,18 +216,18 @@ private void buildPlayerList(UICommandBuilder cmd, UIEventBuilder events) { // Count display if (searchQuery.isEmpty()) { - cmd.set("#PlayerCount.Text", filtered.size() + " players"); + cmd.set("#PlayerCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.PLAYERS_SUFFIX, filtered.size())); } else { - cmd.set("#PlayerCount.Text", filtered.size() + " found"); + cmd.set("#PlayerCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FOUND_SUFFIX, filtered.size())); } // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Power"), "POWER"), - new DropdownEntryInfo(LocalizableString.fromString("Last Online"), "LAST_ONLINE"), - new DropdownEntryInfo(LocalizableString.fromString("Faction"), "FACTION"), - new DropdownEntryInfo(LocalizableString.fromString("Online"), "ONLINE") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.SORT_POWER)), "POWER"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_SORT_LAST_ONLINE)), "LAST_ONLINE"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_SORT_FACTION)), "FACTION"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.PLR_SORT_ONLINE)), "ONLINE") )); cmd.set("#SortDropdown.Value", sortMode.name()); events.addEventBinding( @@ -262,7 +264,7 @@ private void buildPlayerList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( @@ -301,7 +303,7 @@ private void buildPlayerEntry(UICommandBuilder cmd, UIEventBuilder events, int i cmd.set(idx + " #PlayerName.Style.TextColor", info.isOnline() ? "#00FFFF" : "#CCCCCC"); // Online status - cmd.set(idx + " #OnlineStatus.Text", info.isOnline() ? "Online" : "Offline"); + cmd.set(idx + " #OnlineStatus.Text", info.isOnline() ? HFMessages.get(playerRef, MessageKeys.Common.ONLINE) : HFMessages.get(playerRef, MessageKeys.Common.OFFLINE)); cmd.set(idx + " #OnlineStatus.Style.TextColor", GuiColors.forOnlineStatus(info.isOnline())); // Faction name @@ -309,7 +311,7 @@ private void buildPlayerEntry(UICommandBuilder cmd, UIEventBuilder events, int i cmd.set(idx + " #FactionName.Text", info.factionName()); cmd.set(idx + " #FactionName.Style.TextColor", "#AAAAAA"); } else { - cmd.set(idx + " #FactionName.Text", "No Faction"); + cmd.set(idx + " #FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NO_FACTION)); cmd.set(idx + " #FactionName.Style.TextColor", "#666666"); } @@ -347,11 +349,11 @@ private void buildPlayerEntry(UICommandBuilder cmd, UIEventBuilder events, int i // Last online String lastOnlineText; if (info.isOnline()) { - lastOnlineText = "Now"; + lastOnlineText = HFMessages.get(playerRef, MessageKeys.AdminGui.NOW); } else if (info.lastOnline() > 0) { lastOnlineText = TimeUtil.formatDuration(System.currentTimeMillis() - info.lastOnline()) + " ago"; } else { - lastOnlineText = "Unknown"; + lastOnlineText = HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); } cmd.set(idx + " #LastOnline.Text", lastOnlineText); @@ -532,7 +534,7 @@ public void handleDataEvent(Ref ref, Store store, guiManager.closePage(player, ref, store); var targetWorld = Universe.get().getWorld(targetPlayer.getWorldUuid()); if (targetWorld == null) { - player.sendMessage(MessageUtil.errorText("Target world not found.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.PLR_WORLD_NOT_FOUND)); return; } var targetTransform = targetPlayer.getTransform(); @@ -543,11 +545,9 @@ public void handleDataEvent(Ref ref, Store store, targetWorld, targetPos, targetRot); store.addComponent(ref, Teleport.getComponentType(), teleport); }); - player.sendMessage(Message.raw("[Admin] Teleported to ").color("#55FF55") - .insert(Message.raw(data.playerName != null ? data.playerName : "player").color("#00FFFF")) - .insert(Message.raw(".").color("#55FF55"))); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.PLR_TELEPORTED, "#55FF55", data.playerName != null ? data.playerName : "player")); } else { - player.sendMessage(MessageUtil.errorText("Player is not online.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.PLR_NOT_ONLINE)); sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java index cceb0033..a9a70e39 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java @@ -1,5 +1,9 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; + import com.hyperfactions.data.Faction; import com.hyperfactions.gui.GuiManager; import com.hyperfactions.gui.UIPaths; @@ -61,7 +65,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Set faction info cmd.set("#FactionName.Text", factionName); - cmd.set("#ClaimCount.Text", claimCount + " chunks"); + cmd.set("#ClaimCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.CHUNKS_SUFFIX, claimCount)); // Cancel button events.addEventBinding( @@ -103,19 +107,9 @@ public void handleDataEvent(Ref ref, Store store, claimManager.unclaimAll(factionId); if (claimCount > 0) { - player.sendMessage( - Message.raw("[Admin] Removed ").color("#FF5555") - .insert(Message.raw(String.valueOf(claimCount)).color("#FFFFFF")) - .insert(Message.raw(" claims from ").color("#FF5555")) - .insert(Message.raw(factionName).color("#00FFFF")) - .insert(Message.raw(".").color("#FF5555")) - ); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.UNCLAIM_REMOVED, "#FF5555", claimCount, factionName)); } else { - player.sendMessage( - Message.raw("[Admin] ").color("#FFAA00") - .insert(Message.raw(factionName).color("#00FFFF")) - .insert(Message.raw(" had no claims to remove.").color("#FFAA00")) - ); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.UNCLAIM_NO_CLAIMS, "#FFAA00", factionName)); } guiManager.openAdminFactions(player, ref, store, playerRef); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java index fa0632ea..74cb3f6d 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java @@ -1,5 +1,8 @@ package com.hyperfactions.gui.admin.page; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; + import com.hyperfactions.HyperFactions; import com.hyperfactions.config.ConfigManager; import com.hyperfactions.gui.GuiManager; @@ -68,7 +71,7 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#JavaVersion.Text", System.getProperty("java.version", "Unknown")); // --- Permissions --- - setStatus(cmd, "#HyperPermsStatus", HyperPermsIntegration.isAvailable(), "Active", "Not Found"); + setStatus(cmd, "#HyperPermsStatus", HyperPermsIntegration.isAvailable(), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); String providerNames = PermissionManager.get().getProviderNames(); @@ -87,7 +90,7 @@ public void build(Ref ref, UICommandBuilder cmd, } else if (vaultInstalled) { setStatusColor(cmd, "#VaultUnlockedStatus", "Installed (no perm provider)", COLOR_YELLOW); } else { - setStatusColor(cmd, "#VaultUnlockedStatus", "Not Installed", COLOR_GRAY); + setStatusColor(cmd, "#VaultUnlockedStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_INSTALLED), COLOR_GRAY); } setStatus(cmd, "#NativeStatus", providerNames.contains("HytaleNative"), "Active", "Not Found"); @@ -105,14 +108,14 @@ public void build(Ref ref, UICommandBuilder cmd, case HYPERPROTECT -> { String hpVersion = System.getProperty("hyperprotect.bridge.version", "unknown"); setStatusColor(cmd, "#HyperProtectStatus", "Active (v" + hpVersion + ")", COLOR_GREEN); - setStatusColor(cmd, "#OrbisGuardMixinsStatus", "N/A", COLOR_GRAY); + setStatusColor(cmd, "#OrbisGuardMixinsStatus", HFMessages.get(playerRef, MessageKeys.Common.NA), COLOR_GRAY); } case ORBISGUARD -> { - setStatusColor(cmd, "#HyperProtectStatus", "Not Detected", COLOR_GRAY); + setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); setStatusColor(cmd, "#OrbisGuardMixinsStatus", "Active", COLOR_GREEN); } case NONE -> { - setStatusColor(cmd, "#HyperProtectStatus", "Not Detected", COLOR_GRAY); + setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); setStatusColor(cmd, "#OrbisGuardMixinsStatus", "Not Detected", COLOR_GRAY); } default -> throw new IllegalStateException("Unexpected value"); @@ -125,7 +128,7 @@ public void build(Ref ref, UICommandBuilder cmd, ? COLOR_YELLOW : COLOR_GREEN; setStatusColor(cmd, "#OrbisGuardApiStatus", ogLabel, ogColor); } else { - setStatusColor(cmd, "#OrbisGuardApiStatus", "Not Detected", COLOR_GRAY); + setStatusColor(cmd, "#OrbisGuardApiStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); } String mixinStatus = ProtectionMixinBridge.getStatusSummary(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java index 3acca831..8a73189b 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java @@ -10,6 +10,8 @@ import com.hyperfactions.integration.protection.GravestoneIntegration; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -69,7 +71,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - cmd.set("#ZoneName.Text", "Zone Not Found"); + cmd.set("#ZoneName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_ZONE_NOT_FOUND)); cmd.set("#FlagsContainer.Visible", false); return; } @@ -142,13 +144,13 @@ private void buildFlagToggle(UICommandBuilder cmd, UIEventBuilder events, // Default indicator (shows "(default)", "(custom)", or "(no plugin)") if (integrationUnavailable) { - cmd.set(idx + "Default.Text", "(no plugin)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_NO_PLUGIN)); cmd.set(idx + "Default.Style.TextColor", "#FF5555"); } else if (isDefault) { - cmd.set(idx + "Default.Text", "(default)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_DEFAULT)); cmd.set(idx + "Default.Style.TextColor", "#555555"); } else { - cmd.set(idx + "Default.Text", "(custom)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_CUSTOM)); cmd.set(idx + "Default.Style.TextColor", "#FFAA00"); } @@ -178,10 +180,10 @@ private void buildMapVisibilityControl(UICommandBuilder cmd, UIEventBuilder even // Default indicator if (isDefault) { - cmd.set("#MapVisibilityDefault.Text", "(default)"); + cmd.set("#MapVisibilityDefault.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_DEFAULT)); cmd.set("#MapVisibilityDefault.Style.TextColor", "#555555"); } else { - cmd.set("#MapVisibilityDefault.Text", "(custom)"); + cmd.set("#MapVisibilityDefault.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_CUSTOM)); cmd.set("#MapVisibilityDefault.Style.TextColor", "#FFAA00"); } @@ -259,14 +261,14 @@ public void handleDataEvent(Ref ref, Store store, private void handleToggleFlag(Player player, AdminZoneSettingsData data) { String flagName = data.flag; if (flagName == null || !ZoneFlags.isValidFlag(flagName)) { - player.sendMessage(MessageUtil.adminError("Invalid flag.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_INVALID_FLAG)); sendUpdate(); return; } Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.adminError("Zone not found.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_ZONE_NOT_FOUND)); sendUpdate(); return; } @@ -290,7 +292,7 @@ private void handleToggleFlag(Player player, AdminZoneSettingsData data) { private void handleCycleMapVisibility(Player player) { Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.adminError("Zone not found.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_ZONE_NOT_FOUND)); sendUpdate(); return; } @@ -322,7 +324,7 @@ private void handleResetDefaults(Player player) { // Clear only integration flags and settings, not all zone flags Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.adminError("Zone not found.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_ZONE_NOT_FOUND)); sendUpdate(); return; } @@ -338,7 +340,7 @@ private void handleResetDefaults(Player player) { } } - player.sendMessage(MessageUtil.adminSuccess("Reset integration flags to defaults.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZFLAGS_RESET_INT)); rebuildPage(); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java index 99a220ad..3dca8d00 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java @@ -14,6 +14,8 @@ import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -146,9 +148,9 @@ public void build(Ref ref, UICommandBuilder cmd, // Show world mismatch warning if player is in different world if (!sameWorld) { - cmd.set("#PositionInfo.Text", "WARNING: You are in '" + worldName + "' - zone is in '" + zone.world() + "'"); + cmd.set("#PositionInfo.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.MAP_WORLD_WARNING, worldName, zone.world())); } else { - cmd.set("#PositionInfo.Text", "Your Position: Chunk (" + playerChunkX + ", " + playerChunkZ + ")"); + cmd.set("#PositionInfo.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.MAP_POSITION, playerChunkX, playerChunkZ)); } // Dynamic legend: add OrbisGuard protected region entry when OG is available @@ -434,7 +436,7 @@ public void handleDataEvent(Ref ref, Store store, // Get fresh zone data Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.errorText("Zone no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.MAP_ZONE_GONE)); guiManager.openAdminZone(player, ref, store, playerRef); return; } @@ -455,9 +457,9 @@ public void handleDataEvent(Ref ref, Store store, case "Claim" -> { ZoneManager.ZoneResult result = zoneManager.claimChunk(zoneId, zoneWorld, data.chunkX, data.chunkZ); if (result == ZoneManager.ZoneResult.SUCCESS) { - player.sendMessage(MessageUtil.text("Claimed chunk (" + data.chunkX + ", " + data.chunkZ + ") for " + zone.name(), "#44cc44")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_CLAIMED, "#44cc44", data.chunkX, data.chunkZ, zone.name())); } else { - player.sendMessage(MessageUtil.errorText("Failed to claim chunk: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.MAP_CLAIM_FAILED, result)); } // Refresh by opening new page with fresh zone data, preserving openFlagsAfter @@ -470,9 +472,9 @@ public void handleDataEvent(Ref ref, Store store, case "Unclaim" -> { ZoneManager.ZoneResult result = zoneManager.unclaimChunk(zoneId, zoneWorld, data.chunkX, data.chunkZ); if (result == ZoneManager.ZoneResult.SUCCESS) { - player.sendMessage(MessageUtil.text("Unclaimed chunk (" + data.chunkX + ", " + data.chunkZ + ") from " + zone.name(), "#44cc44")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_UNCLAIMED, "#44cc44", data.chunkX, data.chunkZ, zone.name())); } else { - player.sendMessage(MessageUtil.errorText("Failed to unclaim chunk: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.MAP_UNCLAIM_FAILED, result)); } // Refresh by opening new page with fresh zone data, preserving openFlagsAfter @@ -485,15 +487,15 @@ public void handleDataEvent(Ref ref, Store store, case "OtherZone" -> { Zone otherZone = zoneManager.getZone(zoneWorld, data.chunkX, data.chunkZ); String zoneName = otherZone != null ? otherZone.name() : "another zone"; - player.sendMessage(MessageUtil.text("This chunk belongs to " + zoneName + ".", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_CHUNK_BELONGS, MessageUtil.COLOR_GOLD, zoneName)); } case "Faction" -> { - player.sendMessage(MessageUtil.text("This chunk is claimed by a faction.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_CHUNK_FACTION, MessageUtil.COLOR_GOLD)); } case "Protected" -> { - player.sendMessage(MessageUtil.text("This chunk is in a protected region.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_CHUNK_PROTECTED, MessageUtil.COLOR_GOLD)); } default -> {} diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java index 223263d5..87cbf3ac 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.admin.data.AdminZoneData; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.UuidUtil; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; @@ -260,7 +262,7 @@ private void buildZoneEntry(UICommandBuilder cmd, UIEventBuilder events, int ind cmd.set(idx + " #Bounds.Text", String.format("(%d,%d) to (%d,%d)", minX, minZ, maxX, maxZ)); } else { - cmd.set(idx + " #Bounds.Text", "No chunks"); + cmd.set(idx + " #Bounds.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZONE_NO_CHUNKS)); } // Created date @@ -384,14 +386,14 @@ public void handleDataEvent(Ref ref, Store store, if (data.zoneId != null) { UUID zoneId = UuidUtil.parseOrNull(data.zoneId); if (zoneId == null) { - player.sendMessage(MessageUtil.errorText("Invalid zone ID.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_INVALID_ID)); return; } Zone zone = zoneManager.getZoneById(zoneId); if (zone != null) { guiManager.openAdminZoneMap(player, ref, store, playerRef, zone); } else { - player.sendMessage(MessageUtil.errorText("Zone not found.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_NOT_FOUND)); rebuildList(); } } @@ -401,7 +403,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.zoneId != null) { UUID zoneId = UuidUtil.parseOrNull(data.zoneId); if (zoneId == null) { - player.sendMessage(MessageUtil.errorText("Invalid zone ID.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_INVALID_ID)); return; } guiManager.openAdminZoneSettings(player, ref, store, playerRef, zoneId); @@ -412,7 +414,7 @@ public void handleDataEvent(Ref ref, Store store, if (data.zoneId != null) { UUID zoneId = UuidUtil.parseOrNull(data.zoneId); if (zoneId == null) { - player.sendMessage(MessageUtil.errorText("Invalid zone ID.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_INVALID_ID)); return; } guiManager.openAdminZoneProperties(player, ref, store, playerRef, @@ -424,15 +426,15 @@ public void handleDataEvent(Ref ref, Store store, if (data.zoneId != null) { UUID zoneId = UuidUtil.parseOrNull(data.zoneId); if (zoneId == null) { - player.sendMessage(MessageUtil.errorText("Invalid zone ID.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_INVALID_ID)); return; } ZoneManager.ZoneResult result = zoneManager.removeZone(zoneId); if (result == ZoneManager.ZoneResult.SUCCESS) { - player.sendMessage(MessageUtil.errorText("Zone " + data.zoneName + " deleted.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_DELETED, data.zoneName)); expandedZones.remove(zoneId); } else { - player.sendMessage(MessageUtil.errorText("Failed to delete zone: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZONE_DELETE_FAILED, result)); } rebuildList(); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java index 99bb6894..ef016af8 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.admin.data.AdminZonePropertiesData; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -75,7 +77,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - cmd.set("#ZoneName.Text", "Zone Not Found"); + cmd.set("#ZoneName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_ZONE_NOT_FOUND)); cmd.set("#GeneralBox.Visible", false); cmd.set("#NotificationsBox.Visible", false); return; @@ -151,11 +153,11 @@ private void buildNotifications(UICommandBuilder cmd, UIEventBuilder events, Zon // Upper title String upperCustom = zone.notifyTitleUpper(); if (upperCustom != null && !upperCustom.isEmpty()) { - cmd.set("#UpperCurrent.Text", "Current: \"" + upperCustom + "\" (custom)"); + cmd.set("#UpperCurrent.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_CURRENT_CUSTOM, upperCustom)); cmd.set("#UpperTitleInput.Value", upperCustom); } else { - String defaultUpper = zone.isSafeZone() ? "PvP Disabled" : "PvP Enabled"; - cmd.set("#UpperCurrent.Text", "Current: \"" + defaultUpper + "\" (default)"); + String defaultUpper = zone.isSafeZone() ? HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_PVP_DISABLED) : HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_PVP_ENABLED); + cmd.set("#UpperCurrent.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_CURRENT_DEFAULT, defaultUpper)); } events.addEventBinding( @@ -178,10 +180,10 @@ private void buildNotifications(UICommandBuilder cmd, UIEventBuilder events, Zon // Lower title String lowerCustom = zone.notifyTitleLower(); if (lowerCustom != null && !lowerCustom.isEmpty()) { - cmd.set("#LowerCurrent.Text", "Current: \"" + lowerCustom + "\" (custom)"); + cmd.set("#LowerCurrent.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_CURRENT_CUSTOM, lowerCustom)); cmd.set("#LowerTitleInput.Value", lowerCustom); } else { - cmd.set("#LowerCurrent.Text", "Current: \"" + zone.name() + "\" (default)"); + cmd.set("#LowerCurrent.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_CURRENT_DEFAULT, zone.name())); } events.addEventBinding( @@ -267,7 +269,7 @@ public void handleDataEvent(Ref ref, Store store, private void handleSaveName(Player player, AdminZonePropertiesData data) { String newName = data.name; if (newName == null || newName.isBlank()) { - nameError = "Name cannot be empty."; + nameError = HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_NAME_EMPTY); rebuildPage(); return; } @@ -278,11 +280,11 @@ private void handleSaveName(Player player, AdminZonePropertiesData data) { switch (result) { case SUCCESS -> { nameError = null; - player.sendMessage(MessageUtil.adminSuccess("Zone renamed to \"" + newName + "\".")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZPROP_RENAMED, newName)); } - case NAME_TAKEN -> nameError = "A zone with that name already exists."; - case INVALID_NAME -> nameError = "Invalid name (max 32 characters)."; - default -> nameError = "Failed to rename: " + result; + case NAME_TAKEN -> nameError = HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_NAME_TAKEN); + case INVALID_NAME -> nameError = HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_NAME_INVALID); + default -> nameError = HFMessages.get(playerRef, MessageKeys.AdminGui.ZPROP_RENAME_FAILED, result); } rebuildPage(); @@ -306,38 +308,38 @@ private void handleToggleNotify(Player player) { private void handleSaveUpper(Player player, AdminZonePropertiesData data) { String upper = data.upperTitle; if (upper == null || upper.isBlank()) { - player.sendMessage(MessageUtil.adminError("Upper title cannot be empty. Use Clear to reset.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZPROP_UPPER_EMPTY)); sendUpdate(); return; } zoneManager.setZoneNotifyTitle(zoneId, upper.trim(), null); - player.sendMessage(MessageUtil.adminSuccess("Upper title set.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZPROP_UPPER_SET)); rebuildPage(); } private void handleClearUpper(Player player) { zoneManager.setZoneNotifyTitle(zoneId, "clear", null); - player.sendMessage(MessageUtil.adminSuccess("Upper title reset to default.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZPROP_UPPER_RESET)); rebuildPage(); } private void handleSaveLower(Player player, AdminZonePropertiesData data) { String lower = data.lowerTitle; if (lower == null || lower.isBlank()) { - player.sendMessage(MessageUtil.adminError("Lower title cannot be empty. Use Clear to reset.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZPROP_LOWER_EMPTY)); sendUpdate(); return; } zoneManager.setZoneNotifyTitle(zoneId, null, lower.trim()); - player.sendMessage(MessageUtil.adminSuccess("Lower title set.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZPROP_LOWER_SET)); rebuildPage(); } private void handleClearLower(Player player) { zoneManager.setZoneNotifyTitle(zoneId, null, "clear"); - player.sendMessage(MessageUtil.adminSuccess("Lower title reset to default.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZPROP_LOWER_RESET)); rebuildPage(); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java index 07f1dbe1..0c4d702c 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java @@ -9,6 +9,8 @@ import com.hyperfactions.integration.protection.ProtectionMixinBridge; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -100,7 +102,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - cmd.set("#ZoneName.Text", "Zone Not Found"); + cmd.set("#ZoneName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_ZONE_NOT_FOUND)); cmd.set("#FlagsContainer.Visible", false); return; } @@ -153,7 +155,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Back button - text depends on back target if ("settings".equals(backTarget)) { - cmd.set("#BackBtn.Text", "Back to Settings"); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZFLAGS_BACK_TO_SETTINGS)); } events.addEventBinding( CustomUIEventBindingType.Activating, @@ -218,16 +220,16 @@ private void buildFlagToggle(UICommandBuilder cmd, UIEventBuilder events, // Default indicator (shows "(default)" or "(custom)" or "(mixin)" or "(conflict)") if (spawnConflict) { - cmd.set(idx + "Default.Text", "(conflict)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZFLAGS_CONFLICT)); cmd.set(idx + "Default.Style.TextColor", "#FF5555"); } else if (mixinUnavailable) { - cmd.set(idx + "Default.Text", "(mixin)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZFLAGS_MIXIN)); cmd.set(idx + "Default.Style.TextColor", "#FF5555"); } else if (isDefault) { - cmd.set(idx + "Default.Text", "(default)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_DEFAULT)); cmd.set(idx + "Default.Style.TextColor", "#555555"); } else { - cmd.set(idx + "Default.Text", "(custom)"); + cmd.set(idx + "Default.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ZINT_CUSTOM)); cmd.set(idx + "Default.Style.TextColor", "#FFAA00"); } @@ -311,14 +313,14 @@ public void handleDataEvent(Ref ref, Store store, private void handleToggleFlag(Player player, AdminZoneSettingsData data) { String flagName = data.flag; if (flagName == null || !ZoneFlags.isValidFlag(flagName)) { - player.sendMessage(MessageUtil.adminError("Invalid flag.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_INVALID_FLAG)); sendUpdate(); return; } Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.adminError("Zone not found.")); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_ZONE_NOT_FOUND)); sendUpdate(); return; } @@ -346,9 +348,9 @@ private void handleResetDefaults(Player player, AdminZoneSettingsData data) { ZoneManager.ZoneResult result = zoneManager.clearAllZoneFlags(zoneId); if (result == ZoneManager.ZoneResult.SUCCESS) { - player.sendMessage(MessageUtil.adminSuccess("Reset all flags to defaults.")); + player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.ZFLAGS_RESET_ALL)); } else { - player.sendMessage(MessageUtil.adminError("Failed to reset flags: " + result)); + player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.ZFLAGS_RESET_FAILED, result)); } rebuildPage(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java index 2ececfe9..054797ba 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java @@ -9,6 +9,8 @@ import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -239,7 +241,7 @@ private void buildRadiusSection(UICommandBuilder cmd, UIEventBuilder events) { // Calculate and show preview int previewChunks = calculateChunkCount(selectedRadius, claimMethod == ClaimMethod.RADIUS_CIRCLE); - cmd.set("#RadiusPreview.Text", "~" + previewChunks + " chunks"); + cmd.set("#RadiusPreview.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.WIZ_CHUNKS_PREVIEW, previewChunks)); // Highlight selected preset for (int preset : RADIUS_PRESETS) { @@ -361,7 +363,7 @@ public void handleDataEvent(Ref ref, Store store, case "ApplyCustomRadius" -> { int newRadius = parseRadius(data.customRadius); if (newRadius < 1 || newRadius > MAX_RADIUS) { - player.sendMessage(MessageUtil.errorText("Radius must be between 1 and " + MAX_RADIUS + ".")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_RANGE, MAX_RADIUS)); sendUpdate(); return; } @@ -413,26 +415,26 @@ private void handleCreate(Player player, Ref ref, Store MAX_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Zone name cannot exceed " + MAX_NAME_LENGTH + " characters.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.WIZ_NAME_TOO_LONG, MAX_NAME_LENGTH)); sendUpdate(); return; } // Check if name is already taken if (zoneManager.getZoneByName(name) != null) { - player.sendMessage(MessageUtil.errorText("A zone with this name already exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.WIZ_NAME_TAKEN)); sendUpdate(); return; } @@ -449,25 +451,21 @@ private void handleCreate(Player player, Ref ref, Store ref, Store ref, Store 0) { - player.sendMessage(MessageUtil.text("Claimed " + claimed + " chunks in a " - + (circle ? "circular" : "square") + " radius of " + radius + ".", "#44cc44")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_CLAIMED, "#44cc44", claimed, (circle ? "circular" : "square"), radius)); newZone = zoneManager.getZoneById(newZone.id()); } else { - player.sendMessage(MessageUtil.text("No chunks could be claimed (area may be occupied).", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_NO_CLAIMS, MessageUtil.COLOR_GOLD)); } } } @@ -513,7 +510,7 @@ private void handleCreate(Player player, Ref ref, Store { // No chunks to claim now if (method == ClaimMethod.NO_CLAIMS) { - player.sendMessage(MessageUtil.text("Zone created with no claims.", "#888888")); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_NO_CLAIMS, "#888888")); } } default -> throw new IllegalStateException("Unexpected value"); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java index 6ed47ada..91e4fe20 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java @@ -7,6 +7,8 @@ import com.hyperfactions.gui.admin.data.ZoneChangeTypeModalData; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.MessageUtil; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -137,7 +139,7 @@ public void handleDataEvent(Ref ref, Store store, Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.errorText("Zone no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZTYPE_ZONE_GONE)); navigateBack(player, ref, store, playerRef); return; } @@ -170,17 +172,11 @@ private void handleTypeChange(Player player, Ref ref, Store ref, Store store, Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { - player.sendMessage(MessageUtil.errorText("Zone no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_ZONE_GONE)); guiManager.openAdminZone(player, ref, store, playerRef, currentTab, currentPage); return; } @@ -121,7 +123,7 @@ public void handleDataEvent(Ref ref, Store store, // Validation if (newName == null || newName.trim().isEmpty()) { - player.sendMessage(MessageUtil.errorText("Please enter a zone name.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_ENTER_NAME)); sendUpdate(); return; } @@ -129,20 +131,20 @@ public void handleDataEvent(Ref ref, Store store, newName = newName.trim(); if (newName.length() < MIN_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Zone name must be at least " + MIN_NAME_LENGTH + " character.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_TOO_SHORT, MIN_NAME_LENGTH)); sendUpdate(); return; } if (newName.length() > MAX_NAME_LENGTH) { - player.sendMessage(MessageUtil.errorText("Zone name cannot exceed " + MAX_NAME_LENGTH + " characters.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_TOO_LONG, MAX_NAME_LENGTH)); sendUpdate(); return; } // Check if name is the same if (newName.equalsIgnoreCase(zone.name())) { - player.sendMessage(MessageUtil.text("That's already this zone's name.", MessageUtil.COLOR_GOLD)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.ZREN_SAME_NAME, MessageUtil.COLOR_GOLD)); sendUpdate(); return; } @@ -153,29 +155,23 @@ public void handleDataEvent(Ref ref, Store store, switch (result) { case SUCCESS -> { - player.sendMessage( - Message.raw("[Admin] Zone renamed from ").color("#AAAAAA") - .insert(Message.raw(oldName).color("#888888")) - .insert(Message.raw(" to ").color("#AAAAAA")) - .insert(Message.raw(newName).color("#00FFFF")) - .insert(Message.raw("!").color("#AAAAAA")) - ); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.ZREN_RENAMED, "#AAAAAA", oldName, newName)); guiManager.openAdminZone(player, ref, store, playerRef, currentTab, currentPage); } case NAME_TAKEN -> { - player.sendMessage(MessageUtil.errorText("A zone with that name already exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_NAME_TAKEN)); sendUpdate(); } case INVALID_NAME -> { - player.sendMessage(MessageUtil.errorText("Invalid zone name.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_INVALID_NAME)); sendUpdate(); } case NOT_FOUND -> { - player.sendMessage(MessageUtil.errorText("Zone no longer exists.")); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_ZONE_GONE)); guiManager.openAdminZone(player, ref, store, playerRef, currentTab, currentPage); } default -> { - player.sendMessage(MessageUtil.errorText("Failed to rename zone: " + result)); + player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ZREN_RENAME_FAILED, result)); sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 6002be64..70e0e28e 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1231,6 +1231,230 @@ public static final class NewPlayerGui { private NewPlayerGui() {} } + /** Admin GUI page labels and messages. */ + public static final class AdminGui { + // Common admin labels + public static final String FACTION_NOT_FOUND_LABEL = "hyperfactions_admin.common.faction_not_found"; + public static final String NO_FACTION = "hyperfactions_admin.common.no_faction"; + public static final String NOT_SET = "hyperfactions_admin.common.not_set"; + public static final String ON = "hyperfactions_admin.common.on"; + public static final String OFF = "hyperfactions_admin.common.off"; + public static final String ENABLE_BTN = "hyperfactions_admin.common.enable"; + public static final String DISABLE_BTN = "hyperfactions_admin.common.disable"; + public static final String NONE_PAREN = "hyperfactions_admin.common.none_paren"; + public static final String INVALID_FACTION = "hyperfactions_admin.common.invalid_faction"; + public static final String LEADER_PREFIX = "hyperfactions_admin.common.leader_prefix"; + public static final String MEMBERS_SUFFIX = "hyperfactions_admin.common.members_suffix"; + public static final String CLAIMS_SUFFIX = "hyperfactions_admin.common.claims_suffix"; + public static final String FACTIONS_SUFFIX = "hyperfactions_admin.common.factions_suffix"; + public static final String PLAYERS_SUFFIX = "hyperfactions_admin.common.players_suffix"; + public static final String CHUNKS_SUFFIX = "hyperfactions_admin.common.chunks_suffix"; + public static final String ENTRIES_SUFFIX = "hyperfactions_admin.common.entries_suffix"; + public static final String FOUND_SUFFIX = "hyperfactions_admin.common.found_suffix"; + public static final String POWER_FORMAT = "hyperfactions_admin.common.power_format"; + public static final String RAIDABLE = "hyperfactions_admin.common.raidable"; + public static final String PROTECTED = "hyperfactions_admin.common.protected"; + public static final String NO_DESCRIPTION = "hyperfactions_admin.common.no_description"; + public static final String OFFICERS_MORE = "hyperfactions_admin.common.officers_more"; + public static final String CUSTOM_MAX = "hyperfactions_admin.common.custom_max"; + public static final String DEFAULT_MAX = "hyperfactions_admin.common.default_max"; + public static final String NOW = "hyperfactions_admin.common.now"; + public static final String AGO_SUFFIX = "hyperfactions_admin.common.ago_suffix"; + public static final String JUST_NOW = "hyperfactions_admin.common.just_now"; + public static final String NO_MEMBERSHIP_HISTORY = "hyperfactions_admin.common.no_membership_history"; + // Dashboard + public static final String DASH_FACTIONS_PREFIX = "hyperfactions_admin.dashboard.factions_prefix"; + public static final String DASH_MEMBERS_PREFIX = "hyperfactions_admin.dashboard.members_prefix"; + public static final String DASH_CLAIMS_PREFIX = "hyperfactions_admin.dashboard.claims_prefix"; + // Actions + public static final String ACT_CONFIRM_RESET = "hyperfactions_admin.actions.confirm_reset"; + public static final String ACT_CONFIRM_TRIGGER = "hyperfactions_admin.actions.confirm_trigger"; + public static final String ACT_KD_RESET = "hyperfactions_admin.actions.kd_reset"; + public static final String ACT_KD_RESET_FAILED = "hyperfactions_admin.actions.kd_reset_failed"; + public static final String ACT_UPKEEP_UNAVAILABLE = "hyperfactions_admin.actions.upkeep_unavailable"; + public static final String ACT_UPKEEP_TRIGGERED = "hyperfactions_admin.actions.upkeep_triggered"; + public static final String ACT_UPKEEP_FAILED = "hyperfactions_admin.actions.upkeep_failed"; + // Disband confirm + public static final String DISBAND_FACTION_GONE = "hyperfactions_admin.disband.faction_gone"; + public static final String DISBAND_SUCCESS = "hyperfactions_admin.disband.success"; + public static final String DISBAND_FAILED = "hyperfactions_admin.disband.failed"; + public static final String DISBAND_NO_LEADER = "hyperfactions_admin.disband.no_leader"; + // Unclaim all confirm + public static final String UNCLAIM_REMOVED = "hyperfactions_admin.unclaim.removed"; + public static final String UNCLAIM_NO_CLAIMS = "hyperfactions_admin.unclaim.no_claims"; + // Factions list + public static final String FAC_HOME_NOT_SET = "hyperfactions_admin.factions.home_not_set"; + public static final String FAC_TELEPORTED = "hyperfactions_admin.factions.teleported"; + public static final String FAC_NO_HOME = "hyperfactions_admin.factions.no_home"; + public static final String FAC_WORLD_NOT_FOUND = "hyperfactions_admin.factions.world_not_found"; + // Faction info + public static final String INFO_FACTION_GONE = "hyperfactions_admin.info.faction_gone"; + // Faction members + public static final String MEM_SORT_ROLE = "hyperfactions_admin.members.sort_role"; + public static final String MEM_SORT_ONLINE = "hyperfactions_admin.members.sort_online"; + public static final String MEM_SORT_NAME = "hyperfactions_admin.members.sort_name"; + public static final String MEM_SORT_POWER = "hyperfactions_admin.members.sort_power"; + public static final String MEM_PROMOTED = "hyperfactions_admin.members.promoted"; + public static final String MEM_DEMOTED = "hyperfactions_admin.members.demoted"; + public static final String MEM_KICKED = "hyperfactions_admin.members.kicked"; + // Faction relations + public static final String REL_ALLIES_HEADER = "hyperfactions_admin.relations.allies_header"; + public static final String REL_ENEMIES_HEADER = "hyperfactions_admin.relations.enemies_header"; + public static final String REL_NO_ALLIES = "hyperfactions_admin.relations.no_allies"; + public static final String REL_NO_ENEMIES = "hyperfactions_admin.relations.no_enemies"; + public static final String REL_NEUTRAL_COUNT = "hyperfactions_admin.relations.neutral_count"; + public static final String REL_SINCE_TODAY = "hyperfactions_admin.relations.since_today"; + public static final String REL_SINCE_ONE_DAY = "hyperfactions_admin.relations.since_one_day"; + public static final String REL_SINCE_DAYS = "hyperfactions_admin.relations.since_days"; + public static final String REL_SET_ALLY = "hyperfactions_admin.relations.set_ally"; + public static final String REL_SET_ENEMY = "hyperfactions_admin.relations.set_enemy"; + public static final String REL_SET_NEUTRAL = "hyperfactions_admin.relations.set_neutral"; + // Faction settings + public static final String SET_LOCKED = "hyperfactions_admin.settings.locked"; + public static final String SET_PERM_TOGGLED = "hyperfactions_admin.settings.perm_toggled"; + public static final String SET_COLOR_CHANGED = "hyperfactions_admin.settings.color_changed"; + public static final String SET_RECRUITMENT_SET = "hyperfactions_admin.settings.recruitment_set"; + public static final String SET_NO_HOME = "hyperfactions_admin.settings.no_home"; + public static final String SET_HOME_CLEARED = "hyperfactions_admin.settings.home_cleared"; + // Sort dropdown labels (shared) + public static final String SORT_POWER = "hyperfactions_admin.sort.power"; + public static final String SORT_NAME = "hyperfactions_admin.sort.name"; + public static final String SORT_MEMBERS = "hyperfactions_admin.sort.members"; + public static final String SORT_BALANCE = "hyperfactions_admin.sort.balance"; + // Players + public static final String PLR_SORT_LAST_ONLINE = "hyperfactions_admin.players.sort_last_online"; + public static final String PLR_SORT_FACTION = "hyperfactions_admin.players.sort_faction"; + public static final String PLR_SORT_ONLINE = "hyperfactions_admin.players.sort_online"; + public static final String PLR_NOT_ONLINE = "hyperfactions_admin.players.not_online"; + public static final String PLR_WORLD_NOT_FOUND = "hyperfactions_admin.players.world_not_found"; + public static final String PLR_TELEPORTED = "hyperfactions_admin.players.teleported"; + // Player info + public static final String PLR_DISBAND_FACTION = "hyperfactions_admin.playerinfo.disband_faction"; + public static final String PLR_KICK_LEADER = "hyperfactions_admin.playerinfo.kick_leader"; + public static final String PLR_ENTER_VALID_NUMBER = "hyperfactions_admin.playerinfo.enter_valid_number"; + public static final String PLR_ENTER_VALID_POSITIVE = "hyperfactions_admin.playerinfo.enter_valid_positive"; + public static final String PLR_FACTION_GONE = "hyperfactions_admin.playerinfo.faction_gone"; + public static final String PLR_KD_RESET = "hyperfactions_admin.playerinfo.kd_reset"; + public static final String PLR_KICKED_SUCCESS = "hyperfactions_admin.playerinfo.kicked_success"; + public static final String PLR_KICKED_LEADER = "hyperfactions_admin.playerinfo.kicked_leader"; + public static final String PLR_DISBANDED_KICK = "hyperfactions_admin.playerinfo.disbanded_kick"; + // Economy + public static final String ECON_NO_DATA = "hyperfactions_admin.economy.no_data"; + public static final String ECON_AMOUNT_ZERO = "hyperfactions_admin.economy.amount_zero"; + public static final String ECON_ENTER_AMOUNT = "hyperfactions_admin.economy.enter_amount"; + public static final String ECON_INVALID_NUMBER = "hyperfactions_admin.economy.invalid_number"; + public static final String ECON_ERROR = "hyperfactions_admin.economy.error"; + public static final String ECON_BALANCE_NEGATIVE = "hyperfactions_admin.economy.balance_negative"; + public static final String ECON_FAILED = "hyperfactions_admin.economy.failed"; + public static final String ECON_BULK_COMPLETE = "hyperfactions_admin.economy.bulk_complete"; + public static final String ECON_BULK_FAILURES = "hyperfactions_admin.economy.bulk_failures"; + // Zones + public static final String ZONE_NOT_FOUND = "hyperfactions_admin.zones.not_found"; + public static final String ZONE_INVALID_ID = "hyperfactions_admin.zones.invalid_id"; + public static final String ZONE_DELETED = "hyperfactions_admin.zones.deleted"; + public static final String ZONE_DELETE_FAILED = "hyperfactions_admin.zones.delete_failed"; + public static final String ZONE_NO_CHUNKS = "hyperfactions_admin.zones.no_chunks"; + public static final String ZONE_CHUNKS_SUFFIX = "hyperfactions_admin.zones.chunks_suffix"; + // Zone create wizard + public static final String WIZ_ENTER_NAME = "hyperfactions_admin.wizard.enter_name"; + public static final String WIZ_NAME_TOO_SHORT = "hyperfactions_admin.wizard.name_too_short"; + public static final String WIZ_NAME_TOO_LONG = "hyperfactions_admin.wizard.name_too_long"; + public static final String WIZ_NAME_TAKEN = "hyperfactions_admin.wizard.name_taken"; + public static final String WIZ_RADIUS_RANGE = "hyperfactions_admin.wizard.radius_range"; + public static final String WIZ_CREATE_FAILED = "hyperfactions_admin.wizard.create_failed"; + public static final String WIZ_CREATED_NOT_FOUND = "hyperfactions_admin.wizard.created_not_found"; + public static final String WIZ_CREATED = "hyperfactions_admin.wizard.created"; + public static final String WIZ_CHUNK_CLAIMED = "hyperfactions_admin.wizard.chunk_claimed"; + public static final String WIZ_CHUNK_FAILED = "hyperfactions_admin.wizard.chunk_failed"; + public static final String WIZ_RADIUS_CLAIMED = "hyperfactions_admin.wizard.radius_claimed"; + public static final String WIZ_RADIUS_NO_CLAIMS = "hyperfactions_admin.wizard.radius_no_claims"; + public static final String WIZ_NO_CLAIMS = "hyperfactions_admin.wizard.no_claims"; + public static final String WIZ_CHUNKS_PREVIEW = "hyperfactions_admin.wizard.chunks_preview"; + // Zone rename + public static final String ZREN_ZONE_GONE = "hyperfactions_admin.zone_rename.zone_gone"; + public static final String ZREN_ENTER_NAME = "hyperfactions_admin.zone_rename.enter_name"; + public static final String ZREN_TOO_SHORT = "hyperfactions_admin.zone_rename.too_short"; + public static final String ZREN_TOO_LONG = "hyperfactions_admin.zone_rename.too_long"; + public static final String ZREN_SAME_NAME = "hyperfactions_admin.zone_rename.same_name"; + public static final String ZREN_RENAMED = "hyperfactions_admin.zone_rename.renamed"; + public static final String ZREN_NAME_TAKEN = "hyperfactions_admin.zone_rename.name_taken"; + public static final String ZREN_INVALID_NAME = "hyperfactions_admin.zone_rename.invalid_name"; + public static final String ZREN_RENAME_FAILED = "hyperfactions_admin.zone_rename.rename_failed"; + // Zone change type + public static final String ZTYPE_ZONE_GONE = "hyperfactions_admin.zone_type.zone_gone"; + public static final String ZTYPE_CHANGED = "hyperfactions_admin.zone_type.changed"; + public static final String ZTYPE_FAILED = "hyperfactions_admin.zone_type.failed"; + // Zone integration flags + public static final String ZINT_ZONE_NOT_FOUND = "hyperfactions_admin.zone_int.zone_not_found"; + public static final String ZINT_NO_PLUGIN = "hyperfactions_admin.zone_int.no_plugin"; + public static final String ZINT_DEFAULT = "hyperfactions_admin.zone_int.default"; + public static final String ZINT_CUSTOM = "hyperfactions_admin.zone_int.custom"; + // Activity log + public static final String LOG_ALL_TYPES = "hyperfactions_admin.log.all_types"; + public static final String LOG_NO_LOGS = "hyperfactions_admin.log.no_logs"; + // Version page + public static final String VER_ACTIVE = "hyperfactions_admin.version.active"; + public static final String VER_NOT_FOUND = "hyperfactions_admin.version.not_found"; + public static final String VER_NOT_DETECTED = "hyperfactions_admin.version.not_detected"; + public static final String VER_NOT_INSTALLED = "hyperfactions_admin.version.not_installed"; + public static final String VER_ACTIVE_VERSION = "hyperfactions_admin.version.active_version"; + public static final String VER_ACTIVE_COMPATIBLE = "hyperfactions_admin.version.active_compatible"; + public static final String VER_ACTIVE_CLAIMS_ONLY = "hyperfactions_admin.version.active_claims_only"; + public static final String VER_INSTALLED_NO_PERM = "hyperfactions_admin.version.installed_no_perm"; + public static final String VER_ACTIVE_PROVIDER = "hyperfactions_admin.version.active_provider"; + // Admin main page + public static final String MAIN_RELOAD_HINT = "hyperfactions_admin.main.reload_hint"; + public static final String MAIN_UNCLAIM_HINT = "hyperfactions_admin.main.unclaim_hint"; + + // Zone flags/settings (shared) + public static final String ZFLAGS_INVALID_FLAG = "hyperfactions_admin.zflags.invalid_flag"; + public static final String ZFLAGS_ZONE_NOT_FOUND = "hyperfactions_admin.zflags.zone_not_found"; + public static final String ZFLAGS_CONFLICT = "hyperfactions_admin.zflags.conflict"; + public static final String ZFLAGS_MIXIN = "hyperfactions_admin.zflags.mixin"; + public static final String ZFLAGS_RESET_INT = "hyperfactions_admin.zflags.reset_int"; + public static final String ZFLAGS_RESET_ALL = "hyperfactions_admin.zflags.reset_all"; + public static final String ZFLAGS_RESET_FAILED = "hyperfactions_admin.zflags.reset_failed"; + public static final String ZFLAGS_BACK_TO_SETTINGS = "hyperfactions_admin.zflags.back_to_settings"; + // Zone properties + public static final String ZPROP_CURRENT_CUSTOM = "hyperfactions_admin.zprop.current_custom"; + public static final String ZPROP_CURRENT_DEFAULT = "hyperfactions_admin.zprop.current_default"; + public static final String ZPROP_PVP_DISABLED = "hyperfactions_admin.zprop.pvp_disabled"; + public static final String ZPROP_PVP_ENABLED = "hyperfactions_admin.zprop.pvp_enabled"; + public static final String ZPROP_NAME_EMPTY = "hyperfactions_admin.zprop.name_empty"; + public static final String ZPROP_RENAMED = "hyperfactions_admin.zprop.renamed"; + public static final String ZPROP_NAME_TAKEN = "hyperfactions_admin.zprop.name_taken"; + public static final String ZPROP_NAME_INVALID = "hyperfactions_admin.zprop.name_invalid"; + public static final String ZPROP_RENAME_FAILED = "hyperfactions_admin.zprop.rename_failed"; + public static final String ZPROP_UPPER_EMPTY = "hyperfactions_admin.zprop.upper_empty"; + public static final String ZPROP_UPPER_SET = "hyperfactions_admin.zprop.upper_set"; + public static final String ZPROP_UPPER_RESET = "hyperfactions_admin.zprop.upper_reset"; + public static final String ZPROP_LOWER_EMPTY = "hyperfactions_admin.zprop.lower_empty"; + public static final String ZPROP_LOWER_SET = "hyperfactions_admin.zprop.lower_set"; + public static final String ZPROP_LOWER_RESET = "hyperfactions_admin.zprop.lower_reset"; + // Relations additional + public static final String REL_FAILED = "hyperfactions_admin.relations.failed"; + // Members additional + public static final String MEM_NEVER = "hyperfactions_admin.members.never"; + public static final String MEM_TELEPORTED = "hyperfactions_admin.members.teleported"; + // Player info additional + public static final String PLR_RECORDS = "hyperfactions_admin.playerinfo.records"; + public static final String PLR_JOINED_DATE = "hyperfactions_admin.playerinfo.joined_date"; + public static final String PLR_CURRENT = "hyperfactions_admin.playerinfo.current"; + public static final String PLR_LEFT_DATE = "hyperfactions_admin.playerinfo.left_date"; + // Zone map + public static final String MAP_WORLD_WARNING = "hyperfactions_admin.map.world_warning"; + public static final String MAP_POSITION = "hyperfactions_admin.map.position"; + public static final String MAP_ZONE_GONE = "hyperfactions_admin.map.zone_gone"; + public static final String MAP_CLAIMED = "hyperfactions_admin.map.claimed"; + public static final String MAP_CLAIM_FAILED = "hyperfactions_admin.map.claim_failed"; + public static final String MAP_UNCLAIMED = "hyperfactions_admin.map.unclaimed"; + public static final String MAP_UNCLAIM_FAILED = "hyperfactions_admin.map.unclaim_failed"; + public static final String MAP_CHUNK_BELONGS = "hyperfactions_admin.map.chunk_belongs"; + public static final String MAP_CHUNK_FACTION = "hyperfactions_admin.map.chunk_faction"; + public static final String MAP_CHUNK_PROTECTED = "hyperfactions_admin.map.chunk_protected"; + private AdminGui() {} + } + /** Player settings page labels. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 1aabe581..0e2ccdc9 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -15,3 +15,249 @@ nav.log = Log nav.updates = Updates nav.help = Help nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. From d3267e9f3442431495df1e8c3d5ba89bcfec7681 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 18:09:53 -0700 Subject: [PATCH 18/76] feat: add Player Settings GUI with language and notification preferences (Phase 5) - PlayerSettingsPage with language dropdown and notification toggles - Language override cache in HFMessages for per-player i18n - TerritoryNotifier checks player alert preferences before sending - PlayerDeathSystem checks member preferences before death broadcasts - /f settings player command opens personal settings - Page registered in both faction and new player nav bars - Preferences loaded on connect, cleared on disconnect --- .../java/com/hyperfactions/HyperFactions.java | 2 +- .../command/ui/SettingsSubCommand.java | 18 +- .../hyperfactions/gui/FactionPageOpener.java | 21 ++ .../com/hyperfactions/gui/GuiManager.java | 37 ++- .../java/com/hyperfactions/gui/UIPaths.java | 2 + .../gui/shared/data/PlayerSettingsData.java | 51 +++ .../gui/shared/page/PlayerSettingsPage.java | 310 ++++++++++++++++++ .../platform/PlayerConnectionHandler.java | 11 +- .../protection/ecs/PlayerDeathSystem.java | 10 +- .../territory/TerritoryNotifier.java | 45 ++- .../com/hyperfactions/util/HFMessages.java | 43 ++- .../com/hyperfactions/util/MessageKeys.java | 11 +- .../HyperFactions/shared/player_settings.ui | 132 ++++++++ .../Languages/en-US/hyperfactions_gui.lang | 18 + 14 files changed, 698 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hyperfactions/gui/shared/data/PlayerSettingsData.java create mode 100644 src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui diff --git a/src/main/java/com/hyperfactions/HyperFactions.java b/src/main/java/com/hyperfactions/HyperFactions.java index 5c4a005e..b9a5196a 100644 --- a/src/main/java/com/hyperfactions/HyperFactions.java +++ b/src/main/java/com/hyperfactions/HyperFactions.java @@ -389,7 +389,7 @@ public void enable() { // Initialize territory notifier (for entry/exit notifications) territoryNotifier = new TerritoryNotifier( - factionManager, claimManager, zoneManager, relationManager + factionManager, claimManager, zoneManager, relationManager, playerStorage ); // Initialize world map service (for claim markers on map) diff --git a/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java b/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java index 95033a5c..9f0ae37a 100644 --- a/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java +++ b/src/main/java/com/hyperfactions/command/ui/SettingsSubCommand.java @@ -2,6 +2,7 @@ import com.hyperfactions.HyperFactions; import com.hyperfactions.command.FactionSubCommand; +import com.hyperfactions.command.util.CommandUtil; import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.platform.HyperFactionsPlugin; @@ -17,14 +18,14 @@ import org.jetbrains.annotations.NotNull; /** - * Subcommand: /f settings - * Opens the faction settings GUI. + * Subcommand: /f settings [player] + * Opens the faction settings GUI, or player settings with "player" argument. */ public class SettingsSubCommand extends FactionSubCommand { /** Creates a new SettingsSubCommand. */ public SettingsSubCommand(@NotNull HyperFactions hyperFactions, @NotNull HyperFactionsPlugin plugin) { - super("settings", "Open faction settings", hyperFactions, plugin); + super("settings", "Open faction or player settings", hyperFactions, plugin); } /** Executes the command. */ @@ -35,6 +36,17 @@ protected void execute(@NotNull CommandContext ctx, @NotNull PlayerRef player, @NotNull World currentWorld) { + // Check for "player" argument — opens personal settings (no faction required) + String[] rawArgs = CommandUtil.parseRawArgs(ctx.getInputString(), 2); + if (rawArgs.length > 0 && "player".equalsIgnoreCase(rawArgs[0])) { + Player playerEntity = store.getComponent(ref, Player.getComponentType()); + if (playerEntity != null) { + hyperFactions.getGuiManager().openPlayerSettings(playerEntity, ref, store, player); + } + return; + } + + // Default: open faction settings (requires faction + officer) Faction faction = requireFaction(ctx, player); if (faction == null) { return; diff --git a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java index c05c1a4c..0d06e1cb 100644 --- a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java +++ b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java @@ -107,6 +107,27 @@ public void openFactionMain(Player player, Ref ref, } } + /** + * Opens the Player Settings page. + */ + public void openPlayerSettings(Player player, Ref ref, + Store store, PlayerRef playerRef) { + Logger.debug("[GUI] Opening PlayerSettingsPage for %s", playerRef.getUsername()); + try { + PageManager pageManager = player.getPageManager(); + PlayerSettingsPage page = new PlayerSettingsPage( + playerRef, + guiManager.getFactionManager().get(), + guiManager.getPlugin().get().getPlayerStorage(), + guiManager + ); + pageManager.openCustomPage(ref, store, page); + Logger.debug("[GUI] PlayerSettingsPage opened successfully"); + } catch (Exception e) { + ErrorHandler.report("[GUI] Failed to open PlayerSettingsPage", e); + } + } + /** * Opens the Faction Members page. * diff --git a/src/main/java/com/hyperfactions/gui/GuiManager.java b/src/main/java/com/hyperfactions/gui/GuiManager.java index dfb48b71..871ef748 100644 --- a/src/main/java/com/hyperfactions/gui/GuiManager.java +++ b/src/main/java/com/hyperfactions/gui/GuiManager.java @@ -290,6 +290,19 @@ private void registerPages() { 10 )); + // Player Settings page (available to all players) + registry.registerEntry(new Entry( + "player_settings", + MessageKeys.Nav.PLAYER_SETTINGS, + null, + (player, ref, store, playerRef, faction, guiManager) -> + new PlayerSettingsPage(playerRef, factionManager.get(), + plugin.get().getPlayerStorage(), guiManager), + true, // Show in nav bar + false, // Doesn't require faction + 11 + )); + // Help page (available to all players in faction nav bar) registry.registerEntry(new Entry( "help", @@ -299,7 +312,7 @@ private void registerPages() { new HelpMainPage(playerRef, guiManager, factionManager.get()), true, // Show in nav bar false, // Doesn't require faction - 11 + 12 )); // Admin page (requires permission) - accessed via /f admin, not in main nav bar @@ -311,7 +324,7 @@ private void registerPages() { new AdminMainPage(playerRef, factionManager.get(), powerManager.get(), guiManager), false, // Not in main nav bar - separate admin GUI false, - 12 + 13 )); Logger.debug("[GUI] Registered %d pages with FactionPageRegistry", registry.getEntries().size()); @@ -386,6 +399,18 @@ private void registerNewPlayerPages() { 4 )); + // Player Settings page + registry.registerEntry(new NewPlayerPageRegistry.Entry( + "player_settings", + MessageKeys.Nav.PLAYER_SETTINGS, + null, + (player, ref, store, playerRef, guiManager) -> + new PlayerSettingsPage(playerRef, factionManager.get(), + plugin.get().getPlayerStorage(), guiManager), + true, + 5 + )); + // Help Page registry.registerEntry(new NewPlayerPageRegistry.Entry( "help", @@ -394,7 +419,7 @@ private void registerNewPlayerPages() { (player, ref, store, playerRef, guiManager) -> new HelpMainPage(playerRef, guiManager, factionManager.get()), true, - 5 + 6 )); Logger.debug("[GUI] Registered %d pages with NewPlayerPageRegistry", registry.getEntries().size()); @@ -689,6 +714,12 @@ public void openTransferConfirm(Player player, Ref ref, factionPageOpener.openTransferConfirm(player, ref, store, playerRef, faction, targetUuid, targetName); } + /** Opens the player settings page. */ + public void openPlayerSettings(Player player, Ref ref, + Store store, PlayerRef playerRef) { + factionPageOpener.openPlayerSettings(player, ref, store, playerRef); + } + /** Opens the faction dashboard page. */ public void openFactionDashboard(Player player, Ref ref, Store store, PlayerRef playerRef, diff --git a/src/main/java/com/hyperfactions/gui/UIPaths.java b/src/main/java/com/hyperfactions/gui/UIPaths.java index 3960241b..f55799dd 100644 --- a/src/main/java/com/hyperfactions/gui/UIPaths.java +++ b/src/main/java/com/hyperfactions/gui/UIPaths.java @@ -45,6 +45,8 @@ private UIPaths() {} public static final String ERROR_PAGE = BASE + "shared/error_page.ui"; + public static final String PLAYER_SETTINGS = BASE + "shared/player_settings.ui"; + public static final String INVITE_NOTIFICATION = BASE + "shared/invite_notification.ui"; public static final String DISBAND_CONFIRM = BASE + "shared/disband_confirm.ui"; diff --git a/src/main/java/com/hyperfactions/gui/shared/data/PlayerSettingsData.java b/src/main/java/com/hyperfactions/gui/shared/data/PlayerSettingsData.java new file mode 100644 index 00000000..b395bc31 --- /dev/null +++ b/src/main/java/com/hyperfactions/gui/shared/data/PlayerSettingsData.java @@ -0,0 +1,51 @@ +package com.hyperfactions.gui.shared.data; + +import com.hypixel.hytale.codec.Codec; +import com.hypixel.hytale.codec.KeyedCodec; +import com.hypixel.hytale.codec.builder.BuilderCodec; + +/** + * Data for the Player Settings page. + * Handles notification toggles, language selection, and navigation. + */ +public class PlayerSettingsData implements NavAwareData { + + /** The button/action that triggered the event. */ + public String button; + + /** Navigation target from NavBar button. */ + public String navBar; + + /** Language selected from dropdown (dynamic @-prefixed value). */ + public String language; + + /** Codec for serialization/deserialization. */ + public static final BuilderCodec CODEC = BuilderCodec + .builder(PlayerSettingsData.class, PlayerSettingsData::new) + .addField( + new KeyedCodec<>("Button", Codec.STRING), + (data, value) -> data.button = value, + data -> data.button + ) + .addField( + new KeyedCodec<>("NavBar", Codec.STRING), + (data, value) -> data.navBar = value, + data -> data.navBar + ) + .addField( + new KeyedCodec<>("@Language", Codec.STRING), + (data, value) -> data.language = value, + data -> data.language + ) + .build(); + + /** Creates a new PlayerSettingsData. */ + public PlayerSettingsData() { + } + + /** Returns the nav bar. */ + @Override + public String getNavBar() { + return navBar; + } +} diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java new file mode 100644 index 00000000..a376cbc8 --- /dev/null +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -0,0 +1,310 @@ +package com.hyperfactions.gui.shared.page; + +import com.hyperfactions.data.Faction; +import com.hyperfactions.gui.GuiManager; +import com.hyperfactions.gui.UIPaths; +import com.hyperfactions.gui.faction.NavBarHelper; +import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; +import com.hyperfactions.gui.shared.data.PlayerSettingsData; +import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.storage.PlayerStorage; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; +import com.hyperfactions.util.MessageUtil; +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; +import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; +import com.hypixel.hytale.server.core.entity.entities.Player; +import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; +import com.hypixel.hytale.server.core.ui.builder.EventData; +import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; +import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; +import com.hypixel.hytale.server.core.universe.PlayerRef; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import java.util.List; +import java.util.UUID; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Player Settings page for personal preferences. + * Allows players to configure language and notification preferences. + * Works for both faction members and players without a faction. + */ +public class PlayerSettingsPage extends InteractiveCustomUIPage { + + private static final String PAGE_ID = "player_settings"; + + /** Available locale codes. New locales are added here as translations are completed. */ + private static final List AVAILABLE_LOCALES = List.of( + "en-US" + ); + + /** Display names for available locales (parallel to AVAILABLE_LOCALES). */ + private static final List LOCALE_DISPLAY_NAMES = List.of( + "English (US)" + ); + + private final PlayerRef playerRef; + + private final FactionManager factionManager; + + private final PlayerStorage playerStorage; + + private final GuiManager guiManager; + + private final Faction faction; + + // Cached preferences (loaded from player data) + private boolean territoryAlerts = true; + + private boolean deathAnnouncements = true; + + private boolean powerNotifications = true; + + private String languagePreference; // null = auto-detect + + /** Creates a new PlayerSettingsPage. */ + public PlayerSettingsPage(@NotNull PlayerRef playerRef, + @NotNull FactionManager factionManager, + @NotNull PlayerStorage playerStorage, + @NotNull GuiManager guiManager) { + super(playerRef, CustomPageLifetime.CanDismiss, PlayerSettingsData.CODEC); + this.playerRef = playerRef; + this.factionManager = factionManager; + this.playerStorage = playerStorage; + this.guiManager = guiManager; + this.faction = factionManager.getPlayerFaction(playerRef.getUuid()); + + // Load current preferences + loadPreferences(); + } + + private void loadPreferences() { + playerStorage.loadPlayerData(playerRef.getUuid()).thenAccept(opt -> { + opt.ifPresent(data -> { + this.territoryAlerts = data.isTerritoryAlertsEnabled(); + this.deathAnnouncements = data.isDeathAnnouncementsEnabled(); + this.powerNotifications = data.isPowerNotificationsEnabled(); + this.languagePreference = data.getLanguagePreference(); + }); + }); + } + + /** Builds the page. */ + @Override + public void build(Ref ref, UICommandBuilder cmd, + UIEventBuilder events, Store store) { + + // Load the template + cmd.append(UIPaths.PLAYER_SETTINGS); + + // Setup nav bar based on faction status + if (faction != null) { + NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); + } else { + NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); + } + + // Page title + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.PlayerSettings.TITLE)); + + // === Language Section === + cmd.set("#LanguageSectionTitle.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.LANGUAGE_SECTION)); + cmd.set("#AutoDetectDesc.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.AUTO_DETECT_DESC)); + cmd.set("#LanguageLabel.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.LANGUAGE_LABEL)); + + // Auto-detect checkbox + boolean autoDetect = (languagePreference == null); + cmd.set("#AutoDetectCB #CheckBox.Value", autoDetect); + + // Auto-detect checkbox event + events.addEventBinding( + CustomUIEventBindingType.ValueChanged, + "#AutoDetectCB #CheckBox", + EventData.of("Button", "ToggleAutoDetect"), + false + ); + + // Language dropdown + cmd.set("#LanguageDropdown.Entries", LOCALE_DISPLAY_NAMES); + int selectedIndex = 0; + if (languagePreference != null) { + int idx = AVAILABLE_LOCALES.indexOf(languagePreference); + if (idx >= 0) { + selectedIndex = idx; + } + } + cmd.set("#LanguageDropdown.Value", selectedIndex); + + // Disable dropdown when auto-detect is on + cmd.set("#LanguageRow.Visible", !autoDetect); + + // Language dropdown change event + events.addEventBinding( + CustomUIEventBindingType.ValueChanged, + "#LanguageDropdown", + EventData.of("Button", "LanguageChanged") + .append("@Language", "#LanguageDropdown.Value"), + false + ); + + // === Notifications Section === + cmd.set("#NotifSectionTitle.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.NOTIFICATIONS_SECTION)); + + // Territory Alerts + buildNotificationToggle(cmd, events, "#TerritoryAlertsCB", + MessageKeys.PlayerSettings.TERRITORY_ALERTS, + MessageKeys.PlayerSettings.TERRITORY_ALERTS_DESC, + "#TerritoryAlertsDesc", territoryAlerts, "ToggleTerritoryAlerts"); + + // Death Announcements + buildNotificationToggle(cmd, events, "#DeathAnnounceCB", + MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS, + MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS_DESC, + "#DeathAnnounceDesc", deathAnnouncements, "ToggleDeathAnnouncements"); + + // Power Notifications + buildNotificationToggle(cmd, events, "#PowerNotifCB", + MessageKeys.PlayerSettings.POWER_NOTIFICATIONS, + MessageKeys.PlayerSettings.POWER_NOTIFICATIONS_DESC, + "#PowerNotifDesc", powerNotifications, "TogglePowerNotifications"); + } + + private void buildNotificationToggle(UICommandBuilder cmd, UIEventBuilder events, + String checkboxId, String labelKey, String descKey, + String descId, boolean value, String action) { + cmd.set(checkboxId + " #CheckBox.Value", value); + + // Set localized label text + // Note: @Text param is set in .ui, but we override via child label + // CheckBoxWithLabel template has a Label child we can target + + // Description text + cmd.set(descId + ".Text", HFMessages.get(playerRef, descKey)); + + // ValueChanged event + events.addEventBinding( + CustomUIEventBindingType.ValueChanged, + checkboxId + " #CheckBox", + EventData.of("Button", action), + false + ); + } + + /** Handles data event. */ + @Override + public void handleDataEvent(Ref ref, Store store, + PlayerSettingsData data) { + super.handleDataEvent(ref, store, data); + + Player player = store.getComponent(ref, Player.getComponentType()); + PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType()); + + if (player == null || playerRef == null) { + return; + } + + // Handle nav bar events + if (data.navBar != null && !data.navBar.isEmpty()) { + if (faction != null) { + if (NavBarHelper.handleNavEvent(data, player, ref, store, playerRef, faction, guiManager)) { + return; + } + } else { + if (NewPlayerNavBarHelper.handleNavEvent(data, player, ref, store, playerRef, guiManager)) { + return; + } + } + } + + if (data.button == null) { + return; + } + + UUID uuid = playerRef.getUuid(); + + switch (data.button) { + case "ToggleAutoDetect" -> { + // Toggle auto-detect: if currently auto (null), set to current client language + // If currently manual, set to null (auto) + if (languagePreference == null) { + // Switching to manual - use current client language + languagePreference = playerRef.getLanguage(); + } else { + // Switching to auto-detect + languagePreference = null; + } + savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); + HFMessages.setLanguageOverride(uuid, languagePreference); + sendUpdate(); + } + + case "LanguageChanged" -> { + // Dropdown value is an index into AVAILABLE_LOCALES + if (data.language != null) { + try { + int index = Integer.parseInt(data.language); + if (index >= 0 && index < AVAILABLE_LOCALES.size()) { + languagePreference = AVAILABLE_LOCALES.get(index); + savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); + HFMessages.setLanguageOverride(uuid, languagePreference); + player.sendMessage(MessageUtil.successText(playerRef, + MessageKeys.PlayerSettings.LANGUAGE_CHANGED, + LOCALE_DISPLAY_NAMES.get(index))); + } + } catch (NumberFormatException e) { + // Invalid dropdown value + } + } + sendUpdate(); + } + + case "ToggleTerritoryAlerts" -> { + territoryAlerts = !territoryAlerts; + savePreference(uuid, d -> d.setTerritoryAlertsEnabled(territoryAlerts)); + player.sendMessage(territoryAlerts + ? MessageUtil.successText(playerRef, MessageKeys.PlayerSettings.PREF_ENABLED, + HFMessages.get(playerRef, MessageKeys.PlayerSettings.TERRITORY_ALERTS)) + : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.TERRITORY_ALERTS))); + sendUpdate(); + } + + case "ToggleDeathAnnouncements" -> { + deathAnnouncements = !deathAnnouncements; + savePreference(uuid, d -> d.setDeathAnnouncementsEnabled(deathAnnouncements)); + player.sendMessage(deathAnnouncements + ? MessageUtil.successText(playerRef, MessageKeys.PlayerSettings.PREF_ENABLED, + HFMessages.get(playerRef, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS)) + : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS))); + sendUpdate(); + } + + case "TogglePowerNotifications" -> { + powerNotifications = !powerNotifications; + savePreference(uuid, d -> d.setPowerNotificationsEnabled(powerNotifications)); + player.sendMessage(powerNotifications + ? MessageUtil.successText(playerRef, MessageKeys.PlayerSettings.PREF_ENABLED, + HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS)) + : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS))); + sendUpdate(); + } + + default -> sendUpdate(); + } + } + + private void savePreference(UUID uuid, + java.util.function.Consumer updater) { + playerStorage.updatePlayerData(uuid, updater); + } +} diff --git a/src/main/java/com/hyperfactions/platform/PlayerConnectionHandler.java b/src/main/java/com/hyperfactions/platform/PlayerConnectionHandler.java index 19292354..0a156445 100644 --- a/src/main/java/com/hyperfactions/platform/PlayerConnectionHandler.java +++ b/src/main/java/com/hyperfactions/platform/PlayerConnectionHandler.java @@ -4,6 +4,7 @@ import com.hyperfactions.Permissions; import com.hyperfactions.integration.PermissionManager; import com.hyperfactions.util.ErrorHandler; +import com.hyperfactions.util.HFMessages; import com.hyperfactions.util.Logger; import com.hypixel.hytale.server.core.event.events.player.PlayerChatEvent; import com.hypixel.hytale.server.core.event.events.player.PlayerConnectEvent; @@ -44,7 +45,7 @@ public void onPlayerConnect(PlayerConnectEvent event) { Logger.debug("Tracked players after connect: %d (contains %s=%s)", trackedPlayers.size(), uuid, trackedPlayers.containsKey(uuid)); - // Cache username, track first join and last online + // Cache username, track first join and last online, load preferences ErrorHandler.guard("Player connect: load/save player data for " + username, hyperFactions.getPlayerStorage().loadPlayerData(uuid).thenAccept(opt -> { com.hyperfactions.data.PlayerData data = opt.orElseGet(() -> new com.hyperfactions.data.PlayerData(uuid)); @@ -55,6 +56,11 @@ public void onPlayerConnect(PlayerConnectEvent event) { } data.setLastOnline(now); hyperFactions.getPlayerStorage().savePlayerData(data); + + // Cache language preference for i18n resolution + if (data.getLanguagePreference() != null) { + HFMessages.setLanguageOverride(uuid, data.getLanguagePreference()); + } })); // Load player power @@ -163,6 +169,9 @@ public void onPlayerDisconnect(PlayerDisconnectEvent event) { // Clean up territory tracking hyperFactions.getTerritoryNotifier().onPlayerDisconnect(uuid); + // Clear cached language preference + HFMessages.clearLanguageOverride(uuid); + // Unregister from active page tracker (GUI real-time updates) if (hyperFactions.getActivePageTracker() != null) { hyperFactions.getActivePageTracker().unregister(uuid); diff --git a/src/main/java/com/hyperfactions/protection/ecs/PlayerDeathSystem.java b/src/main/java/com/hyperfactions/protection/ecs/PlayerDeathSystem.java index 80909b04..e22cca2a 100644 --- a/src/main/java/com/hyperfactions/protection/ecs/PlayerDeathSystem.java +++ b/src/main/java/com/hyperfactions/protection/ecs/PlayerDeathSystem.java @@ -303,7 +303,15 @@ private void announceDeathLocation(UUID victimUuid, PlayerRef playerRef, } PlayerRef member = hyperFactions.lookupPlayer(memberUuid); if (member != null) { - member.sendMessage(deathMsg); + // Check member's death announcement preference + final PlayerRef finalMember = member; + final Message finalMsg = deathMsg; + hyperFactions.getPlayerStorage().loadPlayerData(memberUuid).thenAccept(opt -> { + boolean enabled = opt.map(PlayerData::isDeathAnnouncementsEnabled).orElse(true); + if (enabled) { + finalMember.sendMessage(finalMsg); + } + }); } } diff --git a/src/main/java/com/hyperfactions/territory/TerritoryNotifier.java b/src/main/java/com/hyperfactions/territory/TerritoryNotifier.java index 357b7445..0eb5050a 100644 --- a/src/main/java/com/hyperfactions/territory/TerritoryNotifier.java +++ b/src/main/java/com/hyperfactions/territory/TerritoryNotifier.java @@ -9,6 +9,7 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.manager.RelationManager; import com.hyperfactions.manager.ZoneManager; +import com.hyperfactions.storage.PlayerStorage; import com.hyperfactions.territory.TerritoryInfo.TerritoryType; import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.Logger; @@ -16,6 +17,7 @@ import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.util.EventTitleUtil; import java.util.Map; +import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import org.jetbrains.annotations.NotNull; @@ -35,22 +37,29 @@ public class TerritoryNotifier { private final RelationManager relationManager; + private final PlayerStorage playerStorage; + // Tracks the previous territory for each player private final Map previousTerritories = new ConcurrentHashMap<>(); // Tracks the last chunk for each player (to detect chunk changes) private final Map lastChunks = new ConcurrentHashMap<>(); + // Players who have disabled territory alerts (opt-out set) + private final Set alertsDisabledPlayers = ConcurrentHashMap.newKeySet(); + /** Creates a new TerritoryNotifier. */ public TerritoryNotifier( @NotNull FactionManager factionManager, @NotNull ClaimManager claimManager, @NotNull ZoneManager zoneManager, - @NotNull RelationManager relationManager) { + @NotNull RelationManager relationManager, + @NotNull PlayerStorage playerStorage) { this.factionManager = factionManager; this.claimManager = claimManager; this.zoneManager = zoneManager; this.relationManager = relationManager; + this.playerStorage = playerStorage; } /** @@ -135,6 +144,13 @@ private TerritoryInfo buildWildernessFromConfig(@NotNull TerritoryInfo previousT * @param territory the territory info */ private void sendTerritoryNotification(@NotNull PlayerRef playerRef, @NotNull TerritoryInfo territory) { + // Check player preference — respect opt-out + if (alertsDisabledPlayers.contains(playerRef.getUuid())) { + Logger.debugTerritory("Territory notification suppressed for %s: player disabled alerts", + playerRef.getUsername()); + return; + } + if (!territory.isNotificationEnabled()) { Logger.debugTerritory("Notification suppressed for %s: %s", playerRef.getUsername(), territory.getPrimaryText()); @@ -270,6 +286,16 @@ public void onPlayerConnect(@NotNull PlayerRef playerRef, @NotNull String world, } UUID playerUuid = playerRef.getUuid(); + + // Load territory alert preference + playerStorage.loadPlayerData(playerUuid).thenAccept(opt -> { + opt.ifPresent(data -> { + if (!data.isTerritoryAlertsEnabled()) { + alertsDisabledPlayers.add(playerUuid); + } + }); + }); + int chunkX = ChunkUtil.toChunkCoord(x); int chunkZ = ChunkUtil.toChunkCoord(z); @@ -293,6 +319,7 @@ public void onPlayerConnect(@NotNull PlayerRef playerRef, @NotNull String world, public void onPlayerDisconnect(@NotNull UUID playerUuid) { previousTerritories.remove(playerUuid); lastChunks.remove(playerUuid); + alertsDisabledPlayers.remove(playerUuid); } /** @@ -317,6 +344,21 @@ public ChunkKey getLastChunk(@NotNull UUID playerUuid) { return lastChunks.get(playerUuid); } + /** + * Updates the cached territory alerts preference for a player. + * Called from PlayerSettingsPage when the preference is toggled. + * + * @param playerUuid the player's UUID + * @param enabled whether territory alerts are enabled + */ + public void setTerritoryAlertsEnabled(@NotNull UUID playerUuid, boolean enabled) { + if (enabled) { + alertsDisabledPlayers.remove(playerUuid); + } else { + alertsDisabledPlayers.add(playerUuid); + } + } + /** * Clears all tracking data. * Called on plugin shutdown. @@ -324,5 +366,6 @@ public ChunkKey getLastChunk(@NotNull UUID playerUuid) { public void shutdown() { previousTerritories.clear(); lastChunks.clear(); + alertsDisabledPlayers.clear(); } } diff --git a/src/main/java/com/hyperfactions/util/HFMessages.java b/src/main/java/com/hyperfactions/util/HFMessages.java index aee46d40..987f43f1 100644 --- a/src/main/java/com/hyperfactions/util/HFMessages.java +++ b/src/main/java/com/hyperfactions/util/HFMessages.java @@ -3,6 +3,9 @@ import com.hyperfactions.config.ConfigManager; import com.hypixel.hytale.server.core.modules.i18n.I18nModule; import com.hypixel.hytale.server.core.universe.PlayerRef; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -21,8 +24,8 @@ * * *

- * Per-player saved language preferences (from PlayerData) will be added - * when the Player Settings GUI is implemented. + * Per-player saved language preferences are cached via + * {@link #setLanguageOverride(UUID, String)} when loaded from PlayerData. * *

Usage: *

@@ -33,8 +36,37 @@
  */
 public final class HFMessages {
 
+  /** Per-player language overrides from PlayerData preferences. */
+  private static final Map languageOverrides = new ConcurrentHashMap<>();
+
   private HFMessages() {}
 
+  /**
+   * Sets a language override for a player.
+   * Called when preferences are loaded from PlayerData on connect,
+   * or when the player changes their language in settings.
+   *
+   * @param uuid     The player's UUID
+   * @param language The language code, or null to clear the override (auto-detect)
+   */
+  public static void setLanguageOverride(@NotNull UUID uuid, @Nullable String language) {
+    if (language == null) {
+      languageOverrides.remove(uuid);
+    } else {
+      languageOverrides.put(uuid, language);
+    }
+  }
+
+  /**
+   * Clears the language override for a player.
+   * Called on player disconnect.
+   *
+   * @param uuid The player's UUID
+   */
+  public static void clearLanguageOverride(@NotNull UUID uuid) {
+    languageOverrides.remove(uuid);
+  }
+
   /**
    * Gets a translated message for a specific player.
    * Uses the player's resolved language (preference → client → server default).
@@ -95,6 +127,7 @@ public static String getForLanguage(@NotNull String language, @NotNull String ke
    *
    * 

Resolution order: *

    + *
  1. Player's saved language preference (from PlayerData, cached in memory)
  2. *
  3. Player's client language (if {@code usePlayerLanguage} enabled in config)
  4. *
  5. Server default language
  6. *
@@ -111,6 +144,12 @@ public static String getLanguageFor(@Nullable PlayerRef player) { return serverDefault; } + // Check saved language preference first + String override = languageOverrides.get(player.getUuid()); + if (override != null) { + return override; + } + // Use client language if enabled if (config.isUsePlayerLanguage()) { return player.getLanguage(); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 70e0e28e..169d73a1 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -657,6 +657,7 @@ public static final class Nav { public static final String HELP = "hyperfactions_gui.nav.help"; public static final String ADMIN = "hyperfactions_gui.nav.admin"; public static final String CREATE = "hyperfactions_gui.nav.create"; + public static final String PLAYER_SETTINGS = "hyperfactions_gui.nav.player_settings"; private Nav() {} } @@ -1455,15 +1456,23 @@ public static final class AdminGui { private AdminGui() {} } - /** Player settings page labels. */ + /** Player settings page labels and messages. */ public static final class PlayerSettings { public static final String TITLE = "hyperfactions_gui.player_settings.title"; public static final String LANGUAGE_SECTION = "hyperfactions_gui.player_settings.language_section"; public static final String AUTO_DETECT = "hyperfactions_gui.player_settings.auto_detect"; + public static final String AUTO_DETECT_DESC = "hyperfactions_gui.player_settings.auto_detect_desc"; + public static final String LANGUAGE_LABEL = "hyperfactions_gui.player_settings.language_label"; public static final String NOTIFICATIONS_SECTION = "hyperfactions_gui.player_settings.notifications_section"; public static final String TERRITORY_ALERTS = "hyperfactions_gui.player_settings.territory_alerts"; + public static final String TERRITORY_ALERTS_DESC = "hyperfactions_gui.player_settings.territory_alerts_desc"; public static final String DEATH_ANNOUNCEMENTS = "hyperfactions_gui.player_settings.death_announcements"; + public static final String DEATH_ANNOUNCEMENTS_DESC = "hyperfactions_gui.player_settings.death_announcements_desc"; public static final String POWER_NOTIFICATIONS = "hyperfactions_gui.player_settings.power_notifications"; + public static final String POWER_NOTIFICATIONS_DESC = "hyperfactions_gui.player_settings.power_notifications_desc"; + public static final String LANGUAGE_CHANGED = "hyperfactions_gui.player_settings.language_changed"; + public static final String PREF_ENABLED = "hyperfactions_gui.player_settings.pref_enabled"; + public static final String PREF_DISABLED = "hyperfactions_gui.player_settings.pref_disabled"; private PlayerSettings() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui new file mode 100644 index 00000000..a8776a8e --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui @@ -0,0 +1,132 @@ +$C = "../../Common.ui"; +$S = "../shared/styles.ui"; +$Nav = "../nav/nav_bar.ui"; + +$C.@PageOverlay { + Group { + Anchor: (Width: 620, Height: 520); + Style: (HorizontalAlignment: Center, VerticalAlignment: Center); + LayoutMode: Top; + + // Navigation bar + $Nav.@NavBar #HyperFactionsNavBar {} + + // Page Title + Group { + Anchor: (Height: 40); + Style: (HorizontalAlignment: Center); + + Label #PageTitle { + Anchor: (Height: 36); + Style: (FontSize: 20, TextColor: #FFFFFF, HorizontalAlignment: Center, VerticalAlignment: Center); + Text: "Player Settings"; + } + } + + // Content Area + Group #Content { + Anchor: (Height: 430); + LayoutMode: Top; + Padding: (Left: 24, Right: 24, Top: 8, Bottom: 8); + + // === Language Section === + $C.@DecoratedContainer { + Anchor: (Bottom: 12); + LayoutMode: Top; + Padding: (Full: 12); + + Label #LanguageSectionTitle { + Anchor: (Height: 26); + Style: (FontSize: 15, TextColor: #55FFFF); + Text: "Language"; + } + + // Auto-detect checkbox + $C.@CheckBoxWithLabel #AutoDetectCB { + @Text = "Auto-detect from client"; + @Checked = true; + Anchor: (Height: 28, Bottom: 4); + } + + Label #AutoDetectDesc { + Anchor: (Height: 18, Bottom: 8); + Style: (FontSize: 11, TextColor: #888888); + Text: "Uses your game client's language setting"; + } + + // Language dropdown row + Group #LanguageRow { + Anchor: (Height: 32); + LayoutMode: Left; + + Label #LanguageLabel { + Anchor: (Width: 90, Height: 26); + Style: (FontSize: 13, TextColor: #AAAAAA, VerticalAlignment: Center); + Text: "Language"; + } + + Group { + Anchor: (Width: 200, Height: 26); + Background: (Color: #0d1520); + Padding: (Left: 6, Right: 6); + + DropdownBox #LanguageDropdown { + Anchor: (Height: 26); + } + } + } + } + + // === Notifications Section === + $C.@DecoratedContainer { + LayoutMode: Top; + Padding: (Full: 12); + + Label #NotifSectionTitle { + Anchor: (Height: 26); + Style: (FontSize: 15, TextColor: #55FFFF); + Text: "Notifications"; + } + + // Territory Alerts + $C.@CheckBoxWithLabel #TerritoryAlertsCB { + @Text = "Territory Alerts"; + @Checked = true; + Anchor: (Height: 28, Bottom: 2); + } + + Label #TerritoryAlertsDesc { + Anchor: (Height: 18, Bottom: 8); + Style: (FontSize: 11, TextColor: #888888); + Text: "Show notifications when entering/leaving territories"; + } + + // Death Announcements + $C.@CheckBoxWithLabel #DeathAnnounceCB { + @Text = "Death Broadcasts"; + @Checked = true; + Anchor: (Height: 28, Bottom: 2); + } + + Label #DeathAnnounceDesc { + Anchor: (Height: 18, Bottom: 8); + Style: (FontSize: 11, TextColor: #888888); + Text: "Receive faction member death location announcements"; + } + + // Power Notifications + $C.@CheckBoxWithLabel #PowerNotifCB { + @Text = "Power Changes"; + @Checked = true; + Anchor: (Height: 28, Bottom: 2); + } + + Label #PowerNotifDesc { + Anchor: (Height: 18); + Style: (FontSize: 11, TextColor: #888888); + Text: "Show messages when your power changes"; + } + } + } + } +} diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index cb0cb609..28a16084 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -421,3 +421,21 @@ newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT i newplayer.request_sent = Join request sent to {0}! newplayer.officer_review = An officer will review your request. newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled From 20644cc7a3818e7cc012f967870371f99c36043b Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 18:22:35 -0700 Subject: [PATCH 19/76] feat: add Spanish translations, locale stubs, and translator workflow (Phase 6) - Full es-ES translations for commands, GUI, admin, and help content - Stub .lang files for 7 additional locales (de-DE, fr-FR, ja-JP, pt-BR, ru-RU, tr-TR, zh-CN) - Locale scaffolding scripts (new-translation.sh/bat) - TRANSLATION_GUIDE.md with format docs and contribution process - checkTranslations Gradle task to diff keys across locales - fallback.lang for locale fallback documentation --- TRANSLATION_GUIDE.md | 186 +++++++ build.gradle | 62 +++ scripts/new-translation.bat | 75 +++ scripts/new-translation.sh | 80 ++++ src/main/help/es-ES/combat/death.md | 15 + src/main/help/es-ES/combat/protection.md | 17 + src/main/help/es-ES/combat/tagging.md | 12 + src/main/help/es-ES/combat/zones.md | 14 + src/main/help/es-ES/diplomacy/alliances.md | 14 + src/main/help/es-ES/diplomacy/enemies.md | 17 + src/main/help/es-ES/diplomacy/relations.md | 18 + src/main/help/es-ES/economy/commands.md | 21 + src/main/help/es-ES/economy/funds.md | 18 + src/main/help/es-ES/economy/treasury.md | 13 + src/main/help/es-ES/power_land/claiming.md | 16 + .../help/es-ES/power_land/losing_territory.md | 14 + .../help/es-ES/power_land/territory_map.md | 13 + .../es-ES/power_land/understanding_power.md | 14 + src/main/help/es-ES/quick_ref/all_commands.md | 80 ++++ .../help/es-ES/welcome/getting_started.md | 17 + src/main/help/es-ES/welcome/quick_tips.md | 18 + .../help/es-ES/welcome/what_are_factions.md | 15 + src/main/help/es-ES/your_faction/creating.md | 13 + src/main/help/es-ES/your_faction/joining.md | 17 + src/main/help/es-ES/your_faction/managing.md | 22 + src/main/help/es-ES/your_faction/roles.md | 16 + .../Server/Languages/de-DE/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/de-DE/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/de-DE/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/es-ES/hyperfactions.lang | 447 +++++++++++++++++ .../Languages/es-ES/hyperfactions_admin.lang | 263 ++++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 441 +++++++++++++++++ .../resources/Server/Languages/fallback.lang | 36 ++ .../Server/Languages/fr-FR/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/fr-FR/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/fr-FR/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/ja-JP/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/ja-JP/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/ja-JP/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/pt-BR/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/pt-BR/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/pt-BR/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/ru-RU/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/ru-RU/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/ru-RU/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/tr-TR/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/tr-TR/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/tr-TR/hyperfactions_gui.lang | 446 +++++++++++++++++ .../Server/Languages/zh-CN/hyperfactions.lang | 452 ++++++++++++++++++ .../Languages/zh-CN/hyperfactions_admin.lang | 268 +++++++++++ .../Languages/zh-CN/hyperfactions_gui.lang | 446 +++++++++++++++++ 51 files changed, 10166 insertions(+) create mode 100644 TRANSLATION_GUIDE.md create mode 100644 scripts/new-translation.bat create mode 100755 scripts/new-translation.sh create mode 100644 src/main/help/es-ES/combat/death.md create mode 100644 src/main/help/es-ES/combat/protection.md create mode 100644 src/main/help/es-ES/combat/tagging.md create mode 100644 src/main/help/es-ES/combat/zones.md create mode 100644 src/main/help/es-ES/diplomacy/alliances.md create mode 100644 src/main/help/es-ES/diplomacy/enemies.md create mode 100644 src/main/help/es-ES/diplomacy/relations.md create mode 100644 src/main/help/es-ES/economy/commands.md create mode 100644 src/main/help/es-ES/economy/funds.md create mode 100644 src/main/help/es-ES/economy/treasury.md create mode 100644 src/main/help/es-ES/power_land/claiming.md create mode 100644 src/main/help/es-ES/power_land/losing_territory.md create mode 100644 src/main/help/es-ES/power_land/territory_map.md create mode 100644 src/main/help/es-ES/power_land/understanding_power.md create mode 100644 src/main/help/es-ES/quick_ref/all_commands.md create mode 100644 src/main/help/es-ES/welcome/getting_started.md create mode 100644 src/main/help/es-ES/welcome/quick_tips.md create mode 100644 src/main/help/es-ES/welcome/what_are_factions.md create mode 100644 src/main/help/es-ES/your_faction/creating.md create mode 100644 src/main/help/es-ES/your_faction/joining.md create mode 100644 src/main/help/es-ES/your_faction/managing.md create mode 100644 src/main/help/es-ES/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/es-ES/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/fallback.lang create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang diff --git a/TRANSLATION_GUIDE.md b/TRANSLATION_GUIDE.md new file mode 100644 index 00000000..08192681 --- /dev/null +++ b/TRANSLATION_GUIDE.md @@ -0,0 +1,186 @@ +# HyperFactions Translation Guide + +This guide explains how to contribute translations for HyperFactions. + +## Quick Start + +1. Run the scaffolding script to create a new locale: + ```bash + ./scripts/new-translation.sh fr-FR # Linux/Mac + scripts\new-translation.bat fr-FR # Windows + ``` + +2. Edit the `.lang` files in `src/main/resources/Server/Languages//` +3. Edit the help markdown files in `src/main/help//` +4. Build to verify: `./gradlew :HyperFactions:shadowJar` +5. Submit a pull request + +## Supported Locales + +| Code | Language | Status | +|--------|-----------------------|---------------| +| en-US | English (US) | Complete | +| es-ES | Spanish (Spain) | Complete | +| de-DE | German | Untranslated | +| fr-FR | French | Untranslated | +| ja-JP | Japanese | Untranslated | +| pt-BR | Brazilian Portuguese | Untranslated | +| ru-RU | Russian | Untranslated | +| tr-TR | Turkish | Untranslated | +| zh-CN | Simplified Chinese | Untranslated | + +## File Structure + +### .lang Files (Commands, GUI, Admin) + +Located at `src/main/resources/Server/Languages//`: + +| File | Content | Key Count | +|----------------------------|----------------------------------|-----------| +| `hyperfactions.lang` | Commands, errors, common strings | ~450 | +| `hyperfactions_gui.lang` | GUI labels, buttons, nav | ~440 | +| `hyperfactions_admin.lang` | Admin GUI strings | ~260 | + +### .lang File Format + +```properties +# Section comments start with # +key.name = Translated value here +key.with.placeholder = Hello {0}, you have {1} power +``` + +**Rules:** +- Keys are on the left side of `=` — **never modify keys** +- Values are on the right side — translate these +- `{0}`, `{1}`, etc. are placeholders — keep them in the translation +- Lines starting with `#` are comments — translate for context but not required +- Blank lines are ignored +- Backslash `\` at end of line continues to next line + +### Help Markdown Files + +Located at `src/main/help///.md`. + +Each file has YAML frontmatter and markdown content: + +```markdown +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Ready to dive in? Here's how: + +`/f` +Opens the faction menu. + +> Tip: Once in, explore territory and start claiming! +``` + +**Rules:** +- **YAML frontmatter** (`---` block): Do NOT translate `id` or `commands` — these are identifiers +- **`# Title`**: Translate the heading text +- **Plain text**: Translate normally +- **`` `command` ``** (backtick lines): Do NOT translate command syntax (e.g., `/f create `) +- **`> Tip text`** (blockquotes): Translate the tip content +- **Blank lines**: Keep as-is (they create spacing in the help viewer) + +### Markdown → Entry Type Mapping + +| Markdown Syntax | Help Entry Type | Translate? | +|----------------------------|-----------------|------------| +| `# Heading` | Topic title | Yes | +| `## Subheading` | HEADING entry | Yes | +| Plain text line | TEXT entry | Yes | +| Blank line | SPACER entry | Keep as-is | +| `` `command text` `` | COMMAND entry | No | +| `> Tip text` | TIP entry | Yes | + +## Translation Tips + +### Character Limits + +GUI labels have limited space. Keep translations concise: + +| Element Type | Max Length (approx) | +|------------------|---------------------| +| Nav bar buttons | 12 characters | +| Button labels | 20 characters | +| Section titles | 30 characters | +| Descriptions | 60 characters | +| Chat messages | No limit | +| Help content | No limit | + +If a translation is too long, it may overflow or be truncated in the UI. + +### Gaming Terminology + +Use commonly understood gaming terms in your language. Some terms are typically kept in English across all languages: + +- **PvP** (Player vs Player) +- **PvE** (Player vs Environment) +- **NPC** (Non-Player Character) +- **K/D** (Kill/Death ratio) +- **UUID** +- **chunk** (a 16x16 block area) + +Brand names should not be translated: +- **HyperFactions** +- **HyperPerms** +- **OrbisGuard** +- **HyperProtect** + +### Placeholder Values + +Placeholders like `{0}`, `{1}` are replaced at runtime with dynamic values. The order matters — `{0}` is always the first argument, `{1}` the second, etc. + +Common placeholder meanings (by context): +- `{0}` in faction messages: usually faction name or player name +- `{0}` in error messages: usually the specific value that failed +- `{0}`, `{1}` in range messages: min and max values + +### Consistency + +Use consistent terminology throughout your translation: +- Pick one word for "faction" and use it everywhere +- Pick one word for "claim/territory" and use it consistently +- Role names should be consistent (Leader, Officer, Member, Recruit) + +## Checking Your Translation + +### Build and Test + +```bash +# Build (generates help .lang from markdown + compiles) +./gradlew :HyperFactions:shadowJar + +# Deploy to dev server +./gradlew buildAndDeploy + +# In-game: change your client language to test +``` + +### Check for Missing Keys + +```bash +# Compare key counts between locales +./gradlew :HyperFactions:checkTranslations +``` + +This task reports any keys present in en-US but missing in other locales. + +## Contributing + +1. Fork the repository +2. Create a branch: `feat/i18n-` (e.g., `feat/i18n-fr-FR`) +3. Run `./scripts/new-translation.sh ` if starting fresh +4. Translate all `.lang` files and help `.md` files +5. Build and test locally +6. Submit a pull request + +### Review Process + +- Translations are reviewed by native speakers when possible +- Machine translations are accepted as a starting point but should be refined +- Partial translations are welcome — untranslated keys fall back to English diff --git a/build.gradle b/build.gradle index c49acd5a..e82c06e2 100644 --- a/build.gradle +++ b/build.gradle @@ -145,6 +145,68 @@ tasks.register('generateHelpLang', JavaExec) { sourceSets.main.resources.srcDir(layout.buildDirectory.dir('generated/resources')) +// Check translations: compare keys in en-US against other locales +tasks.register('checkTranslations') { + group = 'verification' + description = 'Report missing translation keys compared to en-US' + doLast { + def langDir = file('src/main/resources/Server/Languages') + def enDir = new File(langDir, 'en-US') + if (!enDir.exists()) { + println "No en-US directory found at ${enDir.absolutePath}" + return + } + // Collect en-US keys per file + def enKeys = [:] + enDir.listFiles({ f -> f.name.endsWith('.lang') } as FileFilter).each { f -> + def keys = [] + f.eachLine { line -> + line = line.trim() + if (line && !line.startsWith('#') && line.contains('=')) { + keys << line.substring(0, line.indexOf('=')).trim() + } + } + enKeys[f.name] = keys + } + // Check each locale + def locales = langDir.listFiles({ f -> f.isDirectory() && f.name != 'en-US' } as FileFilter) + if (!locales) { + println "No non-English locales found." + return + } + def totalMissing = 0 + locales.sort { it.name }.each { localeDir -> + def localeMissing = 0 + enKeys.each { fileName, keys -> + def localeFile = new File(localeDir, fileName) + if (!localeFile.exists()) { + println "[${localeDir.name}] MISSING FILE: ${fileName} (${keys.size()} keys)" + localeMissing += keys.size() + return + } + def localeKeys = [] + localeFile.eachLine { line -> + line = line.trim() + if (line && !line.startsWith('#') && line.contains('=')) { + localeKeys << line.substring(0, line.indexOf('=')).trim() + } + } + def missing = keys.findAll { !localeKeys.contains(it) } + if (missing) { + println "[${localeDir.name}] ${fileName}: ${missing.size()} missing keys" + missing.each { println " - ${it}" } + localeMissing += missing.size() + } + } + if (localeMissing == 0) { + println "[${localeDir.name}] All keys present" + } + totalMissing += localeMissing + } + println "\nTotal missing keys across all locales: ${totalMissing}" + } +} + // Expand version placeholder in manifest.json processResources { def ver = buildVersion diff --git a/scripts/new-translation.bat b/scripts/new-translation.bat new file mode 100644 index 00000000..15fe2462 --- /dev/null +++ b/scripts/new-translation.bat @@ -0,0 +1,75 @@ +@echo off +REM ============================================================ +REM new-translation.bat — Scaffold a new HyperFactions locale +REM Usage: scripts\new-translation.bat +REM Example: scripts\new-translation.bat fr-FR +REM ============================================================ + +if "%~1"=="" ( + echo Usage: %~nx0 ^ + echo Example: %~nx0 fr-FR + exit /b 1 +) + +set "LOCALE=%~1" + +REM Resolve project root (parent of scripts\) +set "SCRIPT_DIR=%~dp0" +pushd "%SCRIPT_DIR%.." +set "PROJECT_ROOT=%CD%" +popd + +set "LANG_SRC=%PROJECT_ROOT%\src\main\resources\Server\Languages\en-US" +set "LANG_DST=%PROJECT_ROOT%\src\main\resources\Server\Languages\%LOCALE%" + +set "HELP_SRC=%PROJECT_ROOT%\src\main\help\en-US" +set "HELP_DST=%PROJECT_ROOT%\src\main\help\%LOCALE%" + +REM --- Validate source exists --- +if not exist "%LANG_SRC%\" ( + echo Error: Source language directory not found: %LANG_SRC% + exit /b 1 +) + +REM --- Copy .lang files --- +set LANG_COUNT=0 +if exist "%LANG_DST%\" ( + echo Language directory already exists: %LANG_DST% + echo Skipping .lang file copy (delete the directory first to re-scaffold). +) else ( + mkdir "%LANG_DST%" + for %%f in ("%LANG_SRC%\*.lang") do ( + copy "%%f" "%LANG_DST%\" >nul + set /a LANG_COUNT+=1 + ) + echo Copied %LANG_COUNT% .lang file(s) to %LANG_DST% +) + +REM --- Copy help markdown --- +set HELP_COUNT=0 +if exist "%HELP_SRC%\" ( + if exist "%HELP_DST%\" ( + echo Help directory already exists: %HELP_DST% + echo Skipping help file copy (delete the directory first to re-scaffold). + ) else ( + xcopy "%HELP_SRC%" "%HELP_DST%" /E /I /Q >nul + REM Count .md files + for /r "%HELP_DST%" %%f in (*.md) do set /a HELP_COUNT+=1 + echo Copied %HELP_COUNT% help file(s) to %HELP_DST% + ) +) else ( + echo No help directory found at %HELP_SRC% — skipping help files. +) + +REM --- Summary --- +echo. +echo === Scaffold Summary === +echo Locale: %LOCALE% +echo Lang files: %LANG_COUNT% copied to src\main\resources\Server\Languages\%LOCALE%\ +echo Help files: %HELP_COUNT% copied to src\main\help\%LOCALE%\ +echo. +echo Next steps: +echo 1. Add a header comment to each .lang file indicating the language and status +echo 2. Translate the values (keep keys and {0} placeholders unchanged) +echo 3. Translate the help markdown files +echo 4. Test in-game with /f settings to switch language diff --git a/scripts/new-translation.sh b/scripts/new-translation.sh new file mode 100755 index 00000000..f6a29e0a --- /dev/null +++ b/scripts/new-translation.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# ============================================================ +# new-translation.sh — Scaffold a new HyperFactions locale +# Usage: ./scripts/new-translation.sh +# Example: ./scripts/new-translation.sh fr-FR +# ============================================================ +set -euo pipefail + +if [ $# -lt 1 ]; then + echo "Usage: $0 " + echo "Example: $0 fr-FR" + exit 1 +fi + +LOCALE="$1" + +# Resolve project root (parent of scripts/) +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +LANG_SRC="$PROJECT_ROOT/src/main/resources/Server/Languages/en-US" +LANG_DST="$PROJECT_ROOT/src/main/resources/Server/Languages/$LOCALE" + +HELP_SRC="$PROJECT_ROOT/src/main/help/en-US" +HELP_DST="$PROJECT_ROOT/src/main/help/$LOCALE" + +# --- Validate inputs --- +if [[ ! "$LOCALE" =~ ^[a-z]{2}-[A-Z]{2}$ ]]; then + echo "Warning: '$LOCALE' does not match standard locale format (e.g., fr-FR)." + echo "Continuing anyway..." +fi + +if [ ! -d "$LANG_SRC" ]; then + echo "Error: Source language directory not found: $LANG_SRC" + exit 1 +fi + +# --- Copy .lang files --- +LANG_COUNT=0 +if [ -d "$LANG_DST" ]; then + echo "Language directory already exists: $LANG_DST" + echo "Skipping .lang file copy (delete the directory first to re-scaffold)." +else + mkdir -p "$LANG_DST" + for file in "$LANG_SRC"/*.lang; do + if [ -f "$file" ]; then + cp "$file" "$LANG_DST/" + LANG_COUNT=$((LANG_COUNT + 1)) + fi + done + echo "Copied $LANG_COUNT .lang file(s) to $LANG_DST" +fi + +# --- Copy help markdown --- +HELP_COUNT=0 +if [ -d "$HELP_SRC" ]; then + if [ -d "$HELP_DST" ]; then + echo "Help directory already exists: $HELP_DST" + echo "Skipping help file copy (delete the directory first to re-scaffold)." + else + cp -r "$HELP_SRC" "$HELP_DST" + HELP_COUNT=$(find "$HELP_DST" -name '*.md' -type f | wc -l) + echo "Copied $HELP_COUNT help file(s) to $HELP_DST" + fi +else + echo "No help directory found at $HELP_SRC — skipping help files." +fi + +# --- Summary --- +echo "" +echo "=== Scaffold Summary ===" +echo "Locale: $LOCALE" +echo "Lang files: $LANG_COUNT copied to src/main/resources/Server/Languages/$LOCALE/" +echo "Help files: $HELP_COUNT copied to src/main/help/$LOCALE/" +echo "" +echo "Next steps:" +echo " 1. Add a header comment to each .lang file indicating the language and status" +echo " 2. Translate the values (keep keys and {0} placeholders unchanged)" +echo " 3. Translate the help markdown files" +echo " 4. Test in-game with /f settings to switch language" diff --git a/src/main/help/es-ES/combat/death.md b/src/main/help/es-ES/combat/death.md new file mode 100644 index 00000000..ba32eb8f --- /dev/null +++ b/src/main/help/es-ES/combat/death.md @@ -0,0 +1,15 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Muerte y Recuperacion + +Morir tiene consecuencias reales: + +Pierdes poder personal, reduciendo el total de la faccion. +Si los reclamos superan el poder, los enemigos pueden reclamar. + +El poder se regenera estando conectado. Varias muertes +pueden dejar a tu faccion peligrosamente vulnerable. + +> Elige tus batallas con cuidado! diff --git a/src/main/help/es-ES/combat/protection.md b/src/main/help/es-ES/combat/protection.md new file mode 100644 index 00000000..43b9e2a9 --- /dev/null +++ b/src/main/help/es-ES/combat/protection.md @@ -0,0 +1,17 @@ +--- +id: combat_protection +--- +# Proteccion de Territorio + +El territorio reclamado tiene varias protecciones: + +## Proteccion de Bloques +Solo los miembros pueden colocar o romper bloques. + +## Proteccion de Contenedores +Cofres, barriles, etc. estan asegurados para los miembros. + +## Alertas de Entrada +Recibes notificaciones cuando no-miembros entran en tus reclamos. + +> El territorio protege los bloques, no a los jugadores! diff --git a/src/main/help/es-ES/combat/tagging.md b/src/main/help/es-ES/combat/tagging.md new file mode 100644 index 00000000..cd292f7a --- /dev/null +++ b/src/main/help/es-ES/combat/tagging.md @@ -0,0 +1,12 @@ +--- +id: combat_tagging +--- +# Etiqueta de Combate + +Atacar o ser atacado te marca en combate. +Un temporizador muestra la duracion restante. + +Mientras estas marcado: sin /f home, /f stuck ni teletransportes. +La marca se reinicia con cada nueva accion de combate. + +> Desconectarte mientras estas marcado es arriesgado. Quedate y pelea! diff --git a/src/main/help/es-ES/combat/zones.md b/src/main/help/es-ES/combat/zones.md new file mode 100644 index 00000000..ec748ecf --- /dev/null +++ b/src/main/help/es-ES/combat/zones.md @@ -0,0 +1,14 @@ +--- +id: combat_zones +--- +# Zonas Especiales + +Los administradores pueden crear zonas con reglas especiales: + +## SafeZone +Sin PvP, sin romper bloques. Para spawn/comercio. + +## WarZone +PvP siempre habilitado, sin proteccion. Areas de batalla. + +> Las reglas de zona siempre anulan las del territorio de faccion. diff --git a/src/main/help/es-ES/diplomacy/alliances.md b/src/main/help/es-ES/diplomacy/alliances.md new file mode 100644 index 00000000..44863aeb --- /dev/null +++ b/src/main/help/es-ES/diplomacy/alliances.md @@ -0,0 +1,14 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Formar Alianzas + +Las alianzas protegen a ambas facciones del fuego +amigo y disputas territoriales. + +`/f ally ` +Envia una solicitud de alianza. Ambos lados deben aceptar. + +Beneficios: sin fuego amigo, visibilidad compartida en el mapa. +> Puede haber un limite en la cantidad de alianzas. diff --git a/src/main/help/es-ES/diplomacy/enemies.md b/src/main/help/es-ES/diplomacy/enemies.md new file mode 100644 index 00000000..7458a504 --- /dev/null +++ b/src/main/help/es-ES/diplomacy/enemies.md @@ -0,0 +1,17 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Facciones Enemigas + +Declarar un enemigo habilita el PvP y la agresion +territorial contra ellos. Accion unilateral. + +`/f enemy ` +Declara enemigo inmediatamente. No requiere acuerdo. + +PvP habilitado en el territorio del otro. Se puede +reclamar territorio si se debilitan. + +`/f neutral ` +Restablece la relacion a neutral, finalizando la enemistad. diff --git a/src/main/help/es-ES/diplomacy/relations.md b/src/main/help/es-ES/diplomacy/relations.md new file mode 100644 index 00000000..264c169d --- /dev/null +++ b/src/main/help/es-ES/diplomacy/relations.md @@ -0,0 +1,18 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Relaciones entre Facciones + +Cada par de facciones tiene una relacion diplomatica: + +Aliado — Sin fuego amigo, protegidos de los reclamos +del otro. Requiere acuerdo mutuo. + +Enemigo — PvP habilitado en el territorio del otro. +Se puede reclamar territorio si el objetivo esta debilitado. + +Neutral — Estado por defecto. Se aplican reglas estandar. + +`/f relations` +Consulta todas las alianzas, enemigos y solicitudes pendientes. diff --git a/src/main/help/es-ES/economy/commands.md b/src/main/help/es-ES/economy/commands.md new file mode 100644 index 00000000..e923c336 --- /dev/null +++ b/src/main/help/es-ES/economy/commands.md @@ -0,0 +1,21 @@ +--- +id: economy_commands +--- +# Comandos de Economia + +Referencia rapida de comandos de economia: + +`/f balance` +Ver saldo de la tesoreria. + +`/f deposit ` +Depositar fondos. + +`/f withdraw ` +Retirar fondos. (Oficial+) + +`/f money transfer ` +Transferir a otra faccion. + +`/f money log [pagina]` +Ver historial de transacciones. diff --git a/src/main/help/es-ES/economy/funds.md b/src/main/help/es-ES/economy/funds.md new file mode 100644 index 00000000..2b315846 --- /dev/null +++ b/src/main/help/es-ES/economy/funds.md @@ -0,0 +1,18 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Gestionar Fondos + +Los Miembros depositan; los Oficiales pueden retirar/transferir. + +`/f deposit ` +Deposita de tu saldo a la tesoreria. + +`/f withdraw ` +Retira de la tesoreria. (Oficial+) + +`/f money transfer ` +Transfiere fondos a la tesoreria de otra faccion. + +> Todas las transacciones quedan registradas para revision. diff --git a/src/main/help/es-ES/economy/treasury.md b/src/main/help/es-ES/economy/treasury.md new file mode 100644 index 00000000..b7c1d313 --- /dev/null +++ b/src/main/help/es-ES/economy/treasury.md @@ -0,0 +1,13 @@ +--- +id: economy_treasury +commands: balance +--- +# Tesoreria de Faccion + +Cada faccion tiene una tesoreria compartida. +Gestionada por los Oficiales y el Lider. + +`/f balance` +Consulta el saldo de la tesoreria de tu faccion. (Alias: bal) + +> Contribuye regularmente para mantener tu faccion financiada! diff --git a/src/main/help/es-ES/power_land/claiming.md b/src/main/help/es-ES/power_land/claiming.md new file mode 100644 index 00000000..7d2547fb --- /dev/null +++ b/src/main/help/es-ES/power_land/claiming.md @@ -0,0 +1,16 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Reclamar Territorio + +Reclamar un chunk lo protege. Solo los miembros +pueden construir, destruir o acceder a contenedores. + +`/f claim` +Reclama el chunk en el que te encuentras. (Oficial+) + +`/f unclaim` +Libera un reclamo y lo devuelve a tierra salvaje. (Oficial+) + +> Cada reclamo cuesta un punto de poder. No te expandes de mas! diff --git a/src/main/help/es-ES/power_land/losing_territory.md b/src/main/help/es-ES/power_land/losing_territory.md new file mode 100644 index 00000000..acfb2339 --- /dev/null +++ b/src/main/help/es-ES/power_land/losing_territory.md @@ -0,0 +1,14 @@ +--- +id: power_losing +commands: overclaim +--- +# Perder Territorio + +Si el poder total cae por debajo de los reclamos, +eres vulnerable. Los enemigos pueden robar tus chunks. + +`/f overclaim` +Toma un chunk de una faccion debilitada. (Oficial+) + +Mantente a salvo: permanece activo, evita morir y +no te expandes mas de lo que tu poder soporta. diff --git a/src/main/help/es-ES/power_land/territory_map.md b/src/main/help/es-ES/power_land/territory_map.md new file mode 100644 index 00000000..9617b3fc --- /dev/null +++ b/src/main/help/es-ES/power_land/territory_map.md @@ -0,0 +1,13 @@ +--- +id: power_map +commands: map +--- +# El Mapa de Territorio + +Una vista aerea de los chunks reclamados cerca de ti. + +`/f map` +Abre el mapa de territorio. Haz clic en chunks para reclamar. + +Tu faccion aparece en tu color. Aliados en azul, +enemigos en rojo, neutrales en gris, tierra salvaje oscura. diff --git a/src/main/help/es-ES/power_land/understanding_power.md b/src/main/help/es-ES/power_land/understanding_power.md new file mode 100644 index 00000000..4cb7f4fd --- /dev/null +++ b/src/main/help/es-ES/power_land/understanding_power.md @@ -0,0 +1,14 @@ +--- +id: power_understanding +commands: power +--- +# Entender el Poder + +El poder permite a tu faccion mantener territorio. +Cada jugador tiene poder personal que se suma al total. + +`/f power` +Consulta tu poder y el total de tu faccion. + +El poder se regenera estando conectado y disminuye al morir. +> Si los reclamos superan el poder, eres vulnerable! diff --git a/src/main/help/es-ES/quick_ref/all_commands.md b/src/main/help/es-ES/quick_ref/all_commands.md new file mode 100644 index 00000000..458823f4 --- /dev/null +++ b/src/main/help/es-ES/quick_ref/all_commands.md @@ -0,0 +1,80 @@ +--- +id: quickref_commands +--- +# Todos los Comandos + +## Principal +`/f — Abrir menu de faccion (alias: gui, menu)` +`/f help — Abrir este centro de ayuda` +`/f create — Crear una faccion` +`/f disband — Disolver tu faccion (Lider)` +`/f leave — Abandonar tu faccion` + +## Miembros +`/f invite — Invitar jugador (Oficial+)` +`/f accept [faccion] — Aceptar invitacion (alias: join)` +`/f request — Solicitar unirse` +`/f kick — Expulsar miembro (Oficial+)` +`/f promote — Promover a Oficial (Lider)` +`/f demote — Degradar a Miembro (Lider)` +`/f transfer — Transferir liderazgo` + +## Territorio +`/f claim — Reclamar chunk actual (Oficial+)` +`/f unclaim — Liberar chunk actual (Oficial+)` +`/f overclaim — Tomar chunk de faccion debilitada` +`/f map — Abrir mapa de territorio` + +## Teletransporte +`/f home — Teletransportarse al hogar de faccion` +`/f sethome — Establecer hogar de faccion (Oficial+)` +`/f delhome — Eliminar hogar de faccion (Oficial+)` +`/f stuck — Escapar de territorio enemigo` + +## Informacion +`/f info [faccion] — Ver detalles de faccion` +`/f list — Explorar todas las facciones` +`/f members — Ver lista de miembros` +`/f who [jugador] — Ver info de jugador` +`/f power [jugador] — Consultar niveles de poder` +`/f invites — Gestionar invitaciones/solicitudes` +`/f relations — Ver relaciones diplomaticas` + +## Diplomacia +`/f ally — Solicitar alianza (Oficial+)` +`/f enemy — Declarar enemigo (Oficial+)` +`/f neutral — Restablecer a neutral` + +## Ajustes +`/f settings — Abrir GUI de ajustes (Oficial+)` +`/f rename — Renombrar faccion (Lider)` +`/f desc [texto] — Establecer descripcion (Oficial+)` +`/f color — Establecer color de faccion (Oficial+)` +`/f open — Permitir que cualquiera se una (Lider)` +`/f close — Requerir invitacion (Lider)` + +## Economia +`/f balance — Ver tesoreria` +`/f deposit — Depositar fondos` +`/f withdraw — Retirar (Oficial+)` +`/f money transfer — Transferir` +`/f money log [pagina] — Historial de transacciones` + +## Chat +`/f c — Ciclo: Normal > Faccion > Aliado` +`/f c f — Chat de faccion` +`/f c a — Chat de aliados` +`/f c off — Chat publico` + +## Admin (requiere hyperfactions.admin) +`/f admin — Abrir panel de administracion` +`/f admin reload — Recargar configuracion` +`/f admin sync — Sincronizar datos de faccion` +`/f admin factions — Gestion de facciones` +`/f admin config — Editor de configuracion` +`/f admin zones — Gestion de zonas` +`/f admin backup create — Crear respaldo` +`/f admin backup restore — Restaurar respaldo` +`/f admin safezone — Crear SafeZone` +`/f admin warzone — Crear WarZone` +`/f admin debug toggle — Registro de depuracion` diff --git a/src/main/help/es-ES/welcome/getting_started.md b/src/main/help/es-ES/welcome/getting_started.md new file mode 100644 index 00000000..d905ff5d --- /dev/null +++ b/src/main/help/es-ES/welcome/getting_started.md @@ -0,0 +1,17 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Primeros Pasos + +Listo para empezar? Asi se hace: + +`/f` +Abre el menu de faccion. Explora facciones, crea +la tuya o revisa invitaciones. + +Si te invitaron, revisa la pestana de Invitaciones +y acepta. Si no, busca facciones abiertas o crea +una nueva. + +> Una vez dentro, explora el territorio y empieza a reclamar! diff --git a/src/main/help/es-ES/welcome/quick_tips.md b/src/main/help/es-ES/welcome/quick_tips.md new file mode 100644 index 00000000..da32d018 --- /dev/null +++ b/src/main/help/es-ES/welcome/quick_tips.md @@ -0,0 +1,18 @@ +--- +id: welcome_tips +--- +# Consejos Rapidos + +## Reclamar Tierra +`/f claim` +Protege el chunk en el que te encuentras. + +## Hogar de Faccion +`/f home` +Teletransportate al hogar de faccion. Establece con /f sethome. + +## Chat de Faccion +`/f c` +Cambia el modo de chat: Normal > Faccion > Aliado. + +> Morir cuesta poder, debilitando tu control territorial! diff --git a/src/main/help/es-ES/welcome/what_are_factions.md b/src/main/help/es-ES/welcome/what_are_factions.md new file mode 100644 index 00000000..d31c5ee9 --- /dev/null +++ b/src/main/help/es-ES/welcome/what_are_factions.md @@ -0,0 +1,15 @@ +--- +id: welcome_what +--- +# Que son las Facciones? + +Las facciones son equipos de jugadores que reclaman +territorio, construyen bases y crecen juntos. + +Como miembro obtienes tierra protegida, un hogar de +faccion, chat privado y relaciones diplomaticas. + +La fuerza se mide por poder. Los miembros activos +generan poder; morir lo reduce. Si el poder cae +por debajo de tus reclamos, los enemigos pueden +robar territorio. diff --git a/src/main/help/es-ES/your_faction/creating.md b/src/main/help/es-ES/your_faction/creating.md new file mode 100644 index 00000000..bf723183 --- /dev/null +++ b/src/main/help/es-ES/your_faction/creating.md @@ -0,0 +1,13 @@ +--- +id: faction_creating +commands: create +--- +# Crear una Faccion + +Crear una faccion te convierte en Lider con +control total sobre ajustes, miembros y tierra. + +`/f create ` +Crea una faccion y abre tu panel de control. + +> Invita amigos, reclama tierra y empieza a construir! diff --git a/src/main/help/es-ES/your_faction/joining.md b/src/main/help/es-ES/your_faction/joining.md new file mode 100644 index 00000000..fb3865d9 --- /dev/null +++ b/src/main/help/es-ES/your_faction/joining.md @@ -0,0 +1,17 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Unirse a una Faccion + +Tres formas de unirse a una faccion existente: + +## Explorar Facciones Abiertas +Abre /f y haz clic en Explorar. Haz clic en Unirse en cualquier faccion abierta. + +## Aceptar una Invitacion +Revisa la pestana de Invitaciones y haz clic en Aceptar. + +## Solicitar Unirse +`/f request ` +Envia una solicitud a una faccion solo por invitacion. diff --git a/src/main/help/es-ES/your_faction/managing.md b/src/main/help/es-ES/your_faction/managing.md new file mode 100644 index 00000000..a21c51e8 --- /dev/null +++ b/src/main/help/es-ES/your_faction/managing.md @@ -0,0 +1,22 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Gestionar Miembros + +Los Oficiales y Lideres gestionan la lista: + +`/f invite ` +Envia una invitacion. (Oficial+) + +`/f kick ` +Expulsa a un miembro. Los Oficiales expulsan Miembros; los Lideres a todos. + +`/f promote ` +Promueve un Miembro a Oficial. (Solo Lider) + +`/f demote ` +Degrada un Oficial a Miembro. (Solo Lider) + +`/f transfer ` +> Transfiere el liderazgo. Te conviertes en Oficial. No se puede deshacer! diff --git a/src/main/help/es-ES/your_faction/roles.md b/src/main/help/es-ES/your_faction/roles.md new file mode 100644 index 00000000..b8b72fa3 --- /dev/null +++ b/src/main/help/es-ES/your_faction/roles.md @@ -0,0 +1,16 @@ +--- +id: faction_roles +--- +# Roles y Rangos + +Tres rangos con diferentes capacidades: + +## Lider (1 por faccion) +Control total: disolver, transferir liderazgo, +promover/degradar, mas todos los permisos de Oficial. + +## Oficial +Invitar/expulsar, reclamar/liberar, establecer hogar, relaciones. + +## Miembro +Usar hogar de faccion, chat, construir en territorio. diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions.lang new file mode 100644 index 00000000..9177f8ff --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: German (de-DE) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with German translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang new file mode 100644 index 00000000..75e94c48 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: German (de-DE) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with German translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang new file mode 100644 index 00000000..c1420d61 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: German (de-DE) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with German translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang new file mode 100644 index 00000000..abccd262 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang @@ -0,0 +1,447 @@ +# HyperFactions - Traducciones al Espanol +# Formato: clave = valor (o clave = "valor entre comillas") +# Nota: Las claves se prefijan automaticamente con "hyperfactions." por el I18nModule de Hytale +# Marcadores: {0}, {1}, etc. + +# ========== Comun ========== +common.no_permission = No tienes permiso para hacer eso. +common.not_in_faction = No estas en una faccion. +common.already_in_faction = Ya estas en una faccion. +common.player_not_found = Jugador no encontrado. +common.faction_not_found = Faccion no encontrada. +common.player_not_online = Ese jugador no esta conectado. +common.must_be_leader = Solo el lider de la faccion puede hacer eso. +common.must_be_officer = Debes ser Oficial o Lider para hacer eso. +common.combat_tagged = No puedes hacer eso mientras estas en combate. +common.cancel = Cancelar +common.confirm = Confirmar +common.save = Guardar +common.close = Cerrar +common.yes = Si +common.no = No +common.loading = Cargando... +common.online = Conectado +common.offline = Desconectado +common.enabled = Activado +common.disabled = Desactivado +common.none = Ninguno +common.page = Pagina {0} de {1} +common.unknown = Desconocido +common.error_generic = Algo salio mal. Intentalo de nuevo. +common.gui_fallback = No se pudo abrir la interfaz. Usa /f help para ver los comandos. +common.admin_prefix = [Admin] +common.location_error = No se pudo determinar tu ubicacion. +common.world_error = No se pudo determinar tu mundo. +common.invalid_id = ID de faccion invalido. +common.na = N/D + +# ========== Comandos - Crear ========== +cmd.create.no_permission = No tienes permiso para crear facciones. +cmd.create.usage = Uso: /f create +cmd.create.success = Faccion '{0}' creada! +cmd.create.already_in_named = Ya estas en {0}. +cmd.create.use_leave_first = Usa /f leave primero si quieres crear una nueva faccion. +cmd.create.name_taken = Ese nombre de faccion ya esta en uso. +cmd.create.name_too_short = El nombre de la faccion es demasiado corto. +cmd.create.name_too_long = El nombre de la faccion es demasiado largo. +cmd.create.failed = No se pudo crear la faccion. + +# ========== Comandos - Disolver ========== +cmd.disband.no_permission = No tienes permiso para disolver facciones. +cmd.disband.not_leader = Solo el lider de la faccion puede disolverla. +cmd.disband.confirm_prompt = Estas seguro de que quieres disolver tu faccion? +cmd.disband.confirm_instruction = Escribe /f disband --text de nuevo en los proximos {0} segundos para confirmar. +cmd.disband.success = Tu faccion ha sido disuelta. +cmd.disband.failed = No se pudo disolver la faccion. +cmd.disband.cancelled = Confirmacion anterior cancelada. Escribe de nuevo para confirmar la disolucion. + +# ========== Comandos - Renombrar ========== +cmd.rename.no_permission = No tienes permiso. +cmd.rename.not_leader = Solo el lider puede renombrar la faccion. +cmd.rename.usage = Uso: /f rename +cmd.rename.too_short = El nombre es demasiado corto (min {0} caracteres). +cmd.rename.too_long = El nombre es demasiado largo (max {0} caracteres). +cmd.rename.name_taken = Ese nombre ya esta en uso. +cmd.rename.success = Faccion renombrada a {0}! +cmd.rename.broadcast = {0} renombro la faccion a {1} + +# ========== Comandos - Descripcion ========== +cmd.desc.no_permission = No tienes permiso. +cmd.desc.not_officer = Debes ser oficial para establecer la descripcion. +cmd.desc.set = Descripcion de la faccion establecida! +cmd.desc.cleared = Descripcion de la faccion borrada. + +# ========== Comandos - Abrir / Cerrar ========== +cmd.open.no_permission = No tienes permiso. +cmd.open.not_leader = Solo el lider puede cambiar esta configuracion. +cmd.open.already_open = Tu faccion ya esta abierta. +cmd.open.success = Tu faccion ahora esta abierta! Cualquiera puede unirse con /f join. +cmd.open.broadcast = {0} abrio la faccion al ingreso publico. +cmd.close.no_permission = No tienes permiso. +cmd.close.not_leader = Solo el lider puede cambiar esta configuracion. +cmd.close.already_closed = Tu faccion ya esta cerrada. +cmd.close.success = Tu faccion ahora es solo por invitacion. +cmd.close.broadcast = {0} cerro la faccion a solo invitacion. + +# ========== Comandos - Color ========== +cmd.color.no_permission = No tienes permiso. +cmd.color.not_officer = Debes ser oficial para cambiar el color. +cmd.color.colors_disabled = Los colores de faccion estan desactivados. +cmd.color.usage = Uso: /f color +cmd.color.usage_hint = Codigos validos: 0-9, a-f o #RRGGBB hex +cmd.color.invalid = Color invalido. Usa 0-9, a-f o #RRGGBB. +cmd.color.success = Color de la faccion actualizado! + +# ========== Comandos - Reclamar ========== +cmd.claim.no_permission = No tienes permiso para reclamar territorio. +cmd.claim.already_yours = Tu faccion ya posee este chunk. +cmd.claim.cannot_claim_ally = No puedes reclamar territorio aliado. +cmd.claim.already_claimed_hint = Este chunk ya esta reclamado. Usa /f overclaim si son vulnerables. +cmd.claim.success = Chunk reclamado en {0}, {1}! +cmd.claim.not_officer = Debes ser oficial para reclamar territorio. +cmd.claim.already_claimed = Este chunk ya esta reclamado. +cmd.claim.max_claims = Tu faccion alcanzo el maximo de reclamos. Consigue mas poder! +cmd.claim.not_adjacent = Debes reclamar junto a territorio existente. +cmd.claim.world_not_allowed = No se permite reclamar en este mundo. +cmd.claim.orbisguard = Esta area esta protegida por OrbisGuard. +cmd.claim.zone_protected = Este chunk esta en una zona segura o de guerra. +cmd.claim.insufficient_power = Tu faccion no tiene suficiente poder para reclamar mas territorio. +cmd.claim.failed = No se pudo reclamar el chunk. + +# ========== Comandos - Invitar ========== +cmd.invite.no_permission = No tienes permiso para invitar jugadores. +cmd.invite.not_officer = Debes ser oficial para invitar jugadores. +cmd.invite.usage = Uso: /f invite +cmd.invite.player_not_found = Jugador '{0}' no encontrado o desconectado. +cmd.invite.target_in_faction = Ese jugador ya esta en una faccion. +cmd.invite.sent = Invitaste a {0} a tu faccion. +cmd.invite.received = Has sido invitado a unirte a {0}! +cmd.invite.accept_hint = Escribe /f accept {0} para unirte. + +# ========== Comandos - Aceptar / Unirse ========== +cmd.join.no_permission = No tienes permiso para unirte a facciones. +cmd.join.already_in_named = Ya estas en {0}. +cmd.join.use_leave_hint = Usa /f leave primero si quieres unirte a otra faccion. +cmd.join.no_invites = No tienes invitaciones pendientes. +cmd.join.faction_not_found = Faccion '{0}' no encontrada. +cmd.join.not_invited = No tienes invitacion de esa faccion. +cmd.join.faction_gone = Esa faccion ya no existe. +cmd.join.success = Te has unido a {0}! +cmd.join.broadcast = {0} se ha unido a la faccion! +cmd.join.faction_full = Esa faccion esta llena. +cmd.join.failed = No se pudo unir a la faccion. + +# ========== Comandos - Expulsar ========== +cmd.kick.no_permission = No tienes permiso para expulsar miembros. +cmd.kick.usage = Uso: /f kick +cmd.kick.not_in_your_faction = El jugador '{0}' no esta en tu faccion. +cmd.kick.success = Expulsaste a {0} de la faccion. +cmd.kick.broadcast = {0} fue expulsado de la faccion. +cmd.kick.kicked = Has sido expulsado de la faccion. +cmd.kick.cannot_kick_higher = No tienes permiso para expulsar a ese jugador. +cmd.kick.cannot_kick_leader = No puedes expulsar al lider de la faccion. +cmd.kick.failed = No se pudo expulsar al jugador. + +# ========== Comandos - Salir ========== +cmd.leave.no_permission = No tienes permiso para salir de facciones. +cmd.leave.confirm_prompt = Estas seguro de que quieres salir de tu faccion? +cmd.leave.confirm_instruction = Escribe /f leave --text de nuevo en los proximos {0} segundos para confirmar. +cmd.leave.success = Has salido de tu faccion. +cmd.leave.broadcast = {0} ha salido de la faccion. +cmd.leave.failed = No se pudo salir de la faccion. +cmd.leave.cancelled = Confirmacion anterior cancelada. Escribe de nuevo para confirmar la salida. + +# ========== Comandos - Promover / Degradar / Transferir ========== +cmd.rank.promote_no_permission = No tienes permiso para promover miembros. +cmd.rank.promote_usage = Uso: /f promote +cmd.rank.promoted = {0} promovido a {1}! +cmd.rank.promote_broadcast = {0} fue promovido a {1}! +cmd.rank.already_highest = No se puede promover mas. Usa /f transfer para cambiar de lider. +cmd.rank.promote_failed = No se pudo promover al jugador. +cmd.rank.demote_no_permission = No tienes permiso para degradar miembros. +cmd.rank.demote_usage = Uso: /f demote +cmd.rank.demoted = {0} degradado a {1}. +cmd.rank.demote_broadcast = {0} fue degradado a {1}. +cmd.rank.already_lowest = Ese jugador ya es Miembro. +cmd.rank.demote_failed = No se pudo degradar al jugador. +cmd.rank.transfer_no_permission = No tienes permiso para transferir el liderazgo. +cmd.rank.transfer_usage = Uso: /f transfer +cmd.rank.player_not_in_faction = Jugador no encontrado en tu faccion. +cmd.rank.transfer_confirm = Estas seguro de que quieres transferir el liderazgo a {0}? +cmd.rank.transfer_confirm_instruction = Escribe /f transfer {0} --text de nuevo en los proximos {1} segundos para confirmar. +cmd.rank.transferred = Liderazgo transferido a {0}! +cmd.rank.transfer_broadcast = {0} ahora es el lider de la faccion! +cmd.rank.transfer_failed = No se pudo transferir el liderazgo. +cmd.rank.transfer_cancelled = Confirmacion anterior cancelada. Escribe de nuevo para confirmar la transferencia. + +# ========== Comandos - Desreclamar ========== +cmd.unclaim.no_permission = No tienes permiso para desreclamar territorio. +cmd.unclaim.success = Chunk desreclamado en {0}, {1}. +cmd.unclaim.not_officer = Debes ser oficial para desreclamar territorio. +cmd.unclaim.chunk_not_claimed = Este chunk no esta reclamado. +cmd.unclaim.not_your_claim = Tu faccion no posee este chunk. +cmd.unclaim.cannot_unclaim_home = No puedes desreclamar el chunk con el hogar de la faccion. +cmd.unclaim.would_disconnect = No se puede desreclamar - desconectaria tu territorio. +cmd.unclaim.failed = No se pudo desreclamar el chunk. + +# ========== Comandos - Sobrereclamar ========== +cmd.overclaim.no_permission = No tienes permiso para sobrereclamar territorio. +cmd.overclaim.success = Territorio enemigo sobrereclamado! +cmd.overclaim.not_officer = Debes ser oficial para sobrereclamar. +cmd.overclaim.not_claimed = Este chunk no esta reclamado. Usa /f claim. +cmd.overclaim.own_chunk = Tu faccion ya posee este chunk. +cmd.overclaim.ally = No puedes sobrereclamar territorio aliado. +cmd.overclaim.target_has_power = Esta faccion aun tiene suficiente poder. +cmd.overclaim.failed = No se pudo sobrereclamar. + +# ========== Comandos - Atrapado ========== +cmd.stuck.no_permission = No tienes permiso para usar /f stuck. +cmd.stuck.not_stuck = No estas atrapado - esto es territorio salvaje. +cmd.stuck.combat_tagged = No puedes usar /f stuck mientras estas en combate! +cmd.stuck.no_safe = No se encontro una ubicacion segura. +cmd.stuck.teleporting = Teletransportandote a un lugar seguro en {0} segundos. No te muevas! + +# ========== Comandos - Hogar ========== +cmd.home.no_permission = No tienes permiso para teletransportarte al hogar de la faccion. +cmd.home.no_home = Tu faccion no tiene hogar establecido. +cmd.home.combat_tagged = No puedes teletransportarte mientras estas en combate! +cmd.home.teleported = Teletransportado al hogar de la faccion! + +# ========== Comandos - Establecer Hogar ========== +cmd.sethome.no_permission = No tienes permiso para establecer el hogar de la faccion. +cmd.sethome.world_not_allowed = No se puede establecer el hogar en este mundo. +cmd.sethome.not_in_territory = Solo puedes establecer el hogar en el territorio de tu faccion. +cmd.sethome.set = Hogar de la faccion establecido! +cmd.sethome.broadcast = {0} establecio el hogar de la faccion. +cmd.sethome.not_officer = Debes ser oficial para establecer el hogar. +cmd.sethome.failed = No se pudo establecer el hogar. + +# ========== Comandos - Eliminar Hogar ========== +cmd.delhome.no_permission = No tienes permiso para eliminar el hogar de la faccion. +cmd.delhome.no_home = Tu faccion no tiene un hogar establecido. +cmd.delhome.deleted = Hogar de la faccion eliminado! +cmd.delhome.broadcast = {0} elimino el hogar de la faccion. +cmd.delhome.not_officer = Debes ser oficial para eliminar el hogar. +cmd.delhome.failed = No se pudo eliminar el hogar. + +# ========== Comandos - Relacion (Aliado/Enemigo/Neutral/Relaciones) ========== +cmd.relation.ally_no_permission = No tienes permiso para gestionar alianzas. +cmd.relation.ally_usage = Uso: /f ally +cmd.relation.ally_sent = Solicitud de alianza enviada a {0}! +cmd.relation.ally_formed = Ahora son aliados con {0}! +cmd.relation.already_ally = Ya son aliados con esa faccion. +cmd.relation.ally_failed = No se pudo enviar la solicitud de alianza. +cmd.relation.enemy_no_permission = No tienes permiso para declarar enemigos. +cmd.relation.enemy_usage = Uso: /f enemy +cmd.relation.enemy_declared = {0} ahora es tu enemigo! +cmd.relation.already_enemy = Ya son enemigos con esa faccion. +cmd.relation.max_enemies = Has alcanzado el numero maximo de enemigos. +cmd.relation.enemy_failed = No se pudo establecer como enemigo. +cmd.relation.neutral_no_permission = No tienes permiso para establecer relaciones neutrales. +cmd.relation.neutral_usage = Uso: /f neutral +cmd.relation.neutral_set = Tu faccion ahora es neutral con {0}. +cmd.relation.already_neutral = Ya son neutrales con esa faccion. +cmd.relation.neutral_failed = No se pudo establecer como neutral. +cmd.relation.cannot_self = No puedes aliarte contigo mismo. +cmd.relation.max_allies = Has alcanzado el numero maximo de aliados. +cmd.relation.view_no_permission = No tienes permiso para ver las relaciones. +cmd.relation.header = === Relaciones de la Faccion === +cmd.relation.allies_count = Aliados ({0}): +cmd.relation.enemies_count = Enemigos ({0}): +cmd.relation.list_entry = - {0} + +# ========== Comandos - Chat ========== +cmd.chat.usage = Uso: /f c [f|a|off] +cmd.chat.no_permission = No tienes permiso para ese modo de chat. +cmd.chat.mode_set = Modo de chat establecido a {0} + +# ========== Comandos - Invitaciones ========== +cmd.invites.not_officer = Debes ser oficial para gestionar invitaciones. +cmd.invites.header = === Invitaciones de la Faccion === +cmd.invites.no_pending = No hay invitaciones ni solicitudes pendientes. +cmd.invites.outgoing = Invitaciones Enviadas: +cmd.invites.outgoing_entry = {0} (invitado por {1}) +cmd.invites.requests = Solicitudes de Ingreso: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Tus Invitaciones === +cmd.invites.no_invites = No tienes invitaciones pendientes. +cmd.invites.invite_entry = {0} - Usa /f accept {1} + +# ========== Comandos - Solicitud ========== +cmd.request.no_permission = No tienes permiso para solicitar membresia en facciones. +cmd.request.already_in_named = Ya estas en {0}. +cmd.request.use_leave_hint = Usa /f leave primero si quieres unirte a otra faccion. +cmd.request.usage = Uso: /f request [mensaje] +cmd.request.faction_open = Esa faccion esta abierta! Usa /f accept {0} para unirte directamente. +cmd.request.already_requested = Ya tienes una solicitud pendiente para esa faccion. +cmd.request.has_invite = Has sido invitado a esa faccion! Usa /f accept {0} para unirte. +cmd.request.sent = Solicitud de ingreso enviada a {0}! +cmd.request.your_message = Tu mensaje: "{0}" +cmd.request.officer_review = Un oficial revisara tu solicitud. +cmd.request.officer_notify = {0} ha solicitado unirse a tu faccion! +cmd.request.officer_review_hint = Usa /f gui > Invitaciones para revisar. + +# ========== Comandos - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = No tienes permiso para ver informacion de facciones. +cmd.info.faction_not_found = Faccion '{0}' no encontrada. +cmd.info.not_in_faction_hint = No estas en una faccion. Usa /f info +cmd.info.leader = Lider: {0} +cmd.info.members = Miembros: {0}/{1} +cmd.info.power = Poder: {0} +cmd.info.claims = Reclamos: {0} +cmd.info.raidable = VULNERABLE! +cmd.info.allies = Aliados: {0} +cmd.info.enemies = Enemigos: {0} +cmd.info.they_consider = Ellos te consideran: {0} +cmd.info.you_consider = Tu los consideras: {0} +cmd.info.members_no_permission = No tienes permiso para ver los miembros de la faccion. +cmd.info.members_header = === Miembros de {0} ({1}) === +cmd.info.member_online = [Conectado] +cmd.info.list_no_permission = No tienes permiso para ver la lista de facciones. +cmd.info.list_empty = No hay facciones. +cmd.info.list_header = === Facciones ({0}) === +cmd.info.list_entry = {0} - {1} miembros, {2} poder +cmd.info.list_entry_raidable = {0} - {1} miembros, {2} poder [VULNERABLE] +cmd.info.help_no_permission = No tienes permiso para ver la ayuda. +cmd.info.who_no_permission = No tienes permiso para ver informacion de jugadores. +cmd.info.who_faction = Faccion: {0} +cmd.info.who_role = Rol: {0} +cmd.info.who_joined = Ingreso: {0} +cmd.info.who_faction_none = Faccion: Ninguna +cmd.info.who_power = Poder: {0} +cmd.info.who_status = Estado: {0} +cmd.info.who_last_seen = Ultima vez visto: {0} +cmd.info.map_no_permission = No tienes permiso para ver el mapa. +cmd.info.map_header = === Mapa de Territorio === +cmd.info.map_legend = Leyenda: +Tu /Propio /Aliado /Enemigo -Salvaje +cmd.info.map_gui_hint = Usa /f gui para el mapa interactivo + +# ========== Comandos - Poder ========== +cmd.power.personal = Poder Personal: {0}/{1} +cmd.power.faction = Poder de Faccion: {0}/{1} +cmd.power.death_loss = Perdida por Muerte: {0} +cmd.power.regen = Velocidad de Regeneracion: {0}/hr +cmd.power.no_permission = No tienes permiso para ver informacion de poder. +cmd.power.header = Poder de {0}: +cmd.power.current = Actual: {0} + +# ========== Comandos - Economia ========== +cmd.economy.balance = Saldo: {0} +cmd.economy.deposited = Depositaste {0} en la tesoreria de la faccion. +cmd.economy.withdrawn = Retiraste {0} de la tesoreria de la faccion. +cmd.economy.transferred = Transferiste {0} a {1}. +cmd.economy.insufficient = Fondos insuficientes en la tesoreria de la faccion. +cmd.economy.invalid_amount = Cantidad invalida: {0} +cmd.economy.economy_disabled = La economia esta desactivada. +cmd.economy.balance_no_permission = No tienes permiso para ver saldos. +cmd.economy.treasury_unavailable = La tesoreria no esta disponible. +cmd.economy.balance_display = Tesoreria de {0}: {1} +cmd.economy.deposit_no_permission = No tienes permiso para depositar. +cmd.economy.deposit_faction_denied = No tienes permiso de faccion para depositar. +cmd.economy.deposit_usage = Uso: /f deposit +cmd.economy.amount_positive = La cantidad debe ser positiva. +cmd.economy.wallet_insufficient = No tienes suficiente dinero. Billetera: {0} +cmd.economy.wallet_withdraw_failed = No se pudo retirar de tu billetera. +cmd.economy.deposit_failed = No se pudo depositar en la tesoreria. Dinero devuelto. +cmd.economy.withdraw_no_permission = No tienes permiso para retirar. +cmd.economy.withdraw_faction_denied = No tienes permiso de faccion para retirar. +cmd.economy.withdraw_usage = Uso: /f withdraw +cmd.economy.withdraw_limit_denied = Retiro denegado: {0} +cmd.economy.wallet_deposit_failed = Advertencia: No se pudo depositar en tu billetera. Contacta a un admin. +cmd.economy.withdraw_limit_exceeded = Retiro denegado: limite excedido. +cmd.economy.withdraw_failed = Retiro fallido: {0} +cmd.economy.transfer_no_permission = No tienes permiso para transferir. +cmd.economy.transfer_faction_denied = No tienes permiso de faccion para transferir. +cmd.economy.transfer_usage = Uso: /f money transfer +cmd.economy.transfer_self = No puedes transferir a tu propia faccion. +cmd.economy.transfer_limit_denied = Transferencia denegada: {0} +cmd.economy.transfer_limit_exceeded = Transferencia denegada: limite excedido. +cmd.economy.transfer_failed = Transferencia fallida: {0} +cmd.economy.log_no_permission = No tienes permiso para ver el registro de transacciones. +cmd.economy.log_header = Registro de Transacciones (pagina {0}/{1}) +cmd.economy.log_empty = No se encontraron transacciones. +cmd.economy.money_help_header = Comandos de Tesoreria: +cmd.economy.money_help_balance = /f money balance [faccion] - Ver saldo +cmd.economy.money_help_deposit = /f money deposit - Depositar en la tesoreria +cmd.economy.money_help_withdraw = /f money withdraw - Retirar de la tesoreria +cmd.economy.money_help_transfer = /f money transfer - Transferir entre facciones +cmd.economy.money_help_log = /f money log [pagina] [tipo] - Ver historial de transacciones + +# ========== Proteccion - Frases de Accion ========== +protection.action.generic = No puedes hacer eso +protection.action.build = No puedes construir ni romper bloques +protection.action.interact = No puedes interactuar con eso +protection.action.door = No puedes usar puertas +protection.action.container = No puedes abrir contenedores +protection.action.bench = No puedes usar estaciones de crafteo +protection.action.processing = No puedes usar estaciones de procesamiento +protection.action.seat = No puedes usar asientos +protection.action.light = No puedes encender o apagar luces +protection.action.teleporter = No puedes usar teletransportadores +protection.action.crate = No puedes usar cajas +protection.action.tame = No puedes domesticar criaturas +protection.action.npc = No puedes interactuar con NPCs +protection.action.mount = No puedes montar criaturas +protection.action.pve = No puedes danar criaturas +protection.action.item_drop = No puedes soltar objetos +protection.action.item_pickup = No puedes recoger objetos + +# ========== Proteccion - Razones de Denegacion ========== +protection.denied.safezone = {0} en una Zona Segura. +protection.denied.warzone = {0} en una Zona de Guerra. +protection.denied.enemy_claim = {0} en territorio enemigo. +protection.denied.claimed = {0} en territorio reclamado. +protection.denied.here = {0} aqui. +protection.denied.zone = {0} en esta zona. +protection.denied.faction_perm = {0} aqui. (Permiso de faccion: {1}) +protection.denied.ally_territory = {0} aqui. (Territorio aliado) +protection.denied.error = Error de proteccion - accion bloqueada por seguridad. + +# ========== Proteccion - PvP ========== +protection.pvp.safezone = El PvP esta desactivado en Zonas Seguras. +protection.pvp.same_faction = No puedes atacar a miembros de tu faccion. +protection.pvp.ally = No puedes atacar a aliados. +protection.pvp.spawn_protected = Ese jugador tiene proteccion de aparicion. +protection.pvp.territory_disabled = El PvP esta desactivado en este territorio. +protection.pvp.generic = No puedes atacar a este jugador. + +# ========== Proteccion - Dano a Entidades ========== +protection.mob_damage_disabled = El dano a mobs esta desactivado en esta zona. +protection.pve_damage_disabled = El dano PvE esta desactivado en esta zona. +protection.pve_territory_denied = No puedes danar mobs en este territorio. + +# ========== Proteccion - Etiqueta de Combate ========== +protection.combat_tag_command = No puedes usar ese comando mientras estas en combate. + +# ========== Anuncios del Servidor ========== +# Estos se transmiten a todos los jugadores conectados para eventos significativos de facciones. +# {0}, {1} = valores dinamicos (nombres de facciones, nombres de jugadores) +server_announce.faction_created = {0} ha fundado la faccion {1}! +server_announce.faction_disbanded = La faccion {0} ha sido disuelta! +server_announce.leadership_transfer = {0} ahora es el lider de {1}! +server_announce.overclaim = {0} ha sobrereclamado territorio de {1}! +server_announce.war_declared = {0} ha declarado la guerra a {1}! +server_announce.alliance_formed = {0} y {1} ahora son aliados! +server_announce.alliance_broken = {0} y {1} ya no son aliados! + +# ========== Sistema de Teletransporte ========== +teleport.cooldown_wait = Debes esperar {0} antes de teletransportarte de nuevo. +teleport.warmup_start = Teletransportandote al hogar de la faccion en {0} segundos... +teleport.combat_cancelled = Teletransporte cancelado - estas en combate! +teleport.success_default = Teletransportado al hogar de la faccion! +teleport.no_home = Tu faccion no tiene hogar establecido. +teleport.world_not_found = Mundo no encontrado. +teleport.failed = El teletransporte fallo. +teleport.countdown = Teletransporte en {0} segundos... +teleport.countdown_one = Teletransporte en 1 segundo... +teleport.moved_cancelled = Teletransporte cancelado - te moviste! +teleport.damage_cancelled = Teletransporte cancelado - recibiste dano! +teleport.mount_teleport_blocked = No puedes teletransportarte a esa zona mientras estas montado. +teleport.mount_entry_blocked = No puedes entrar a esta zona mientras estas montado. + +# ========== Visualizacion del Chat ========== +chat.display.public = Publico +chat.display.faction = Faccion +chat.display.ally = Aliado diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang new file mode 100644 index 00000000..80931a67 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -0,0 +1,263 @@ +# HyperFactions Admin GUI - Traducciones al Espanol +# Formato: clave = valor +# Nota: Las claves se prefijan automaticamente con "hyperfactions_admin." por el I18nModule de Hytale + +# ========== Barra de Navegacion de Admin ========== +nav.dashboard = Panel +nav.actions = Acciones +nav.factions = Facciones +nav.players = Jugadores +nav.economy = Economia +nav.zones = Zonas +nav.config = Configuracion +nav.backups = Respaldos +nav.log = Registro +nav.updates = Actualizaciones +nav.help = Ayuda +nav.version = Version + +# ========== Etiquetas Comunes de Admin ========== +common.faction_not_found = Faccion No Encontrada +common.no_faction = Sin Faccion +common.not_set = Sin establecer +common.on = Activado +common.off = Desactivado +common.enable = Activar +common.disable = Desactivar +common.none_paren = (Ninguno) +common.invalid_faction = Faccion invalida. +common.leader_prefix = Lider: {0} +common.members_suffix = {0} miembros +common.claims_suffix = {0} reclamos +common.factions_suffix = {0} facciones +common.players_suffix = {0} jugadores +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entradas +common.found_suffix = {0} encontrados +common.power_format = {0}/{1} poder +common.raidable = Vulnerable +common.protected = Protegida +common.no_description = Sin descripcion. +common.officers_more = +{0} mas +common.custom_max = (max personalizado) +common.default_max = (max por defecto) +common.now = Ahora +common.ago_suffix = hace {0} +common.just_now = ahora mismo +common.no_membership_history = Sin historial de membresia + +# ========== Panel de Admin ========== +dashboard.factions_prefix = Facciones: {0} +dashboard.members_prefix = Total Miembros: {0} +dashboard.claims_prefix = Total Reclamos: {0} + +# ========== Acciones de Admin ========== +actions.confirm_reset = Confirmar Reinicio? +actions.confirm_trigger = Confirmar Ejecucion? +actions.kd_reset = K/D reiniciado para {0} jugadores. +actions.kd_reset_failed = No se pudo reiniciar K/D: {0} +actions.upkeep_unavailable = El procesador de mantenimiento no esta disponible. +actions.upkeep_triggered = Cobro de mantenimiento ejecutado. +actions.upkeep_failed = Mantenimiento fallido: {0} + +# ========== Admin Disolver ========== +disband.faction_gone = La faccion ya no existe. +disband.success = La faccion '{0}' ha sido disuelta. +disband.failed = No se pudo disolver: {0} +disband.no_leader = La faccion no tiene lider, no se puede disolver. + +# ========== Admin Desreclamar Todo ========== +unclaim.removed = [Admin] Se eliminaron {0} reclamos de {1}. +unclaim.no_claims = {0} no tenia reclamos para eliminar. + +# ========== Lista de Facciones de Admin ========== +factions.home_not_set = Sin establecer +factions.teleported = Teletransportado al hogar de {0}. +factions.no_home = La faccion no tiene hogar establecido. +factions.world_not_found = Mundo destino no encontrado. + +# ========== Info de Faccion de Admin ========== +info.faction_gone = Esta faccion ya no existe. + +# ========== Miembros de Faccion de Admin ========== +members.sort_role = Rol +members.sort_online = Conectado +members.sort_name = Nombre +members.sort_power = Poder +members.promoted = [Admin] {0} promovido a {1}. +members.demoted = [Admin] {0} degradado a {1}. +members.kicked = [Admin] {0} expulsado de la faccion. + +# ========== Relaciones de Faccion de Admin ========== +relations.allies_header = ALIADOS ({0}) +relations.enemies_header = ENEMIGOS ({0}) +relations.no_allies = Sin aliados. +relations.no_enemies = Sin enemigos. +relations.neutral_count = {0} facciones neutrales +relations.since_today = Desde: hoy +relations.since_one_day = Desde: hace 1 dia +relations.since_days = Desde: hace {0} dias +relations.set_ally = [Admin] Estado de alianza mutua establecido con {0}. +relations.set_enemy = Estado de enemistad mutua establecido con {0}. +relations.set_neutral = [Admin] Estado neutral mutuo establecido con {0}. + +# ========== Ajustes de Faccion de Admin ========== +settings.locked = Este ajuste esta bloqueado por la configuracion del servidor. +settings.perm_toggled = {0} establecido a {1}. +settings.color_changed = Color de faccion establecido a {0}. +settings.recruitment_set = Reclutamiento establecido a {0}. +settings.no_home = [Admin] Esta faccion no tiene hogar establecido. +settings.home_cleared = Hogar de faccion eliminado para {0}. + +# ========== Etiquetas de Ordenamiento ========== +sort.power = Poder +sort.name = Nombre +sort.members = Miembros +sort.balance = Saldo + +# ========== Jugadores de Admin ========== +players.sort_last_online = Ultima Conexion +players.sort_faction = Faccion +players.sort_online = Conectado +players.not_online = El jugador no esta conectado. +players.world_not_found = Mundo destino no encontrado. +players.teleported = [Admin] Teletransportado a {0}. + +# ========== Info de Jugador de Admin ========== +playerinfo.disband_faction = Disolver Faccion +playerinfo.kick_leader = Expulsar Lider +playerinfo.enter_valid_number = Ingresa un numero valido. +playerinfo.enter_valid_positive = Ingresa un numero positivo valido. +playerinfo.faction_gone = La faccion ya no existe. +playerinfo.kd_reset = K/D reiniciado para {0}. +playerinfo.kicked_success = {0} expulsado de {1}. +playerinfo.kicked_leader = Lider {0} expulsado. Liderazgo transferido a {1}. +playerinfo.disbanded_kick = [Admin] Faccion '{0}' disuelta (ultimo miembro expulsado). + +# ========== Economia de Admin ========== +economy.no_data = No hay facciones con datos economicos. +economy.amount_zero = La cantidad no puede ser cero. +economy.enter_amount = Ingresa una cantidad. +economy.invalid_number = Numero invalido: {0} +economy.error = Ocurrio un error. +economy.balance_negative = El saldo no puede ser negativo. +economy.failed = Fallo: {0} +economy.bulk_complete = Ajuste masivo completado: {0} {1} a {2} facciones. +economy.bulk_failures = ({0} fallaron) + +# ========== Zonas de Admin ========== +zones.not_found = Zona no encontrada. +zones.invalid_id = ID de zona invalido. +zones.deleted = Zona {0} eliminada. +zones.delete_failed = No se pudo eliminar la zona: {0} +zones.no_chunks = Sin chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Asistente de Creacion de Zona ========== +wizard.enter_name = Ingresa un nombre para la zona. +wizard.name_too_short = El nombre de zona debe tener al menos {0} caracteres. +wizard.name_too_long = El nombre de zona no puede exceder {0} caracteres. +wizard.name_taken = Ya existe una zona con este nombre. +wizard.radius_range = El radio debe estar entre 1 y {0}. +wizard.create_failed = No se pudo crear la zona: {0} +wizard.created_not_found = Zona creada pero no se pudo encontrar. +wizard.created = {0} '{1}' creada! +wizard.chunk_claimed = Chunk reclamado ({0}, {1}). +wizard.chunk_failed = No se pudo reclamar el chunk actual: {0} +wizard.radius_claimed = {0} chunks reclamados en un radio de {1} de {2}. +wizard.radius_no_claims = No se pudieron reclamar chunks (el area puede estar ocupada). +wizard.no_claims = Zona creada sin reclamos. +wizard.chunks_preview = ~{0} chunks + +# ========== Renombrar Zona ========== +zone_rename.zone_gone = La zona ya no existe. +zone_rename.enter_name = Ingresa un nombre para la zona. +zone_rename.too_short = El nombre de zona debe tener al menos {0} caracter. +zone_rename.too_long = El nombre de zona no puede exceder {0} caracteres. +zone_rename.same_name = Ese ya es el nombre de esta zona. +zone_rename.renamed = [Admin] Zona renombrada de {0} a {1}! +zone_rename.name_taken = Ya existe una zona con ese nombre. +zone_rename.invalid_name = Nombre de zona invalido. +zone_rename.rename_failed = No se pudo renombrar la zona: {0} + +# ========== Cambiar Tipo de Zona ========== +zone_type.zone_gone = La zona ya no existe. +zone_type.changed = [Admin] {0} cambiada de {1} a {2} ({3}). +zone_type.failed = No se pudo cambiar el tipo de zona: {0} + +# ========== Flags de Integracion de Zona ========== +zone_int.zone_not_found = Zona No Encontrada +zone_int.no_plugin = (sin plugin) +zone_int.default = (por defecto) +zone_int.custom = (personalizado) + +# ========== Registro de Actividad ========== +log.all_types = Todos los Tipos +log.no_logs = No hay registros de actividad que coincidan con los filtros. + +# ========== Pagina de Version ========== +version.active = Activo +version.not_found = No Encontrado +version.not_detected = No Detectado +version.not_installed = No Instalado +version.active_version = Activo (v{0}) +version.active_compatible = Activo (compatible) +version.active_claims_only = Activo (solo reclamos) +version.installed_no_perm = Instalado (sin proveedor de permisos) +version.active_provider = Activo ({0}) + +# ========== Pagina Principal de Admin ========== +main.reload_hint = Usa /f reload para recargar la configuracion. +main.unclaim_hint = Usa /f admin unclaim {0} para desreclamar los {1} chunks. + +# ========== Flags/Ajustes de Zona ========== +zflags.invalid_flag = Flag invalido. +zflags.zone_not_found = Zona no encontrada. +zflags.conflict = (conflicto) +zflags.mixin = (mixin) +zflags.reset_int = Flags de integracion reiniciados a valores por defecto. +zflags.reset_all = Todos los flags reiniciados a valores por defecto. +zflags.reset_failed = No se pudieron reiniciar los flags: {0} +zflags.back_to_settings = Volver a Ajustes + +# ========== Propiedades de Zona ========== +zprop.current_custom = Actual: "{0}" (personalizado) +zprop.current_default = Actual: "{0}" (por defecto) +zprop.pvp_disabled = PvP Desactivado +zprop.pvp_enabled = PvP Activado +zprop.name_empty = El nombre no puede estar vacio. +zprop.renamed = Zona renombrada a "{0}". +zprop.name_taken = Ya existe una zona con ese nombre. +zprop.name_invalid = Nombre invalido (maximo 32 caracteres). +zprop.rename_failed = No se pudo renombrar: {0} +zprop.upper_empty = El titulo superior no puede estar vacio. Usa Limpiar para reiniciar. +zprop.upper_set = Titulo superior establecido. +zprop.upper_reset = Titulo superior reiniciado al valor por defecto. +zprop.lower_empty = El titulo inferior no puede estar vacio. Usa Limpiar para reiniciar. +zprop.lower_set = Titulo inferior establecido. +zprop.lower_reset = Titulo inferior reiniciado al valor por defecto. + +# ========== Relaciones Adicionales ========== +relations.failed = Fallo: {0} + +# ========== Miembros Adicionales ========== +members.never = Nunca +members.teleported = [Admin] Teletransportado a {0}. + +# ========== Info de Jugador Adicional ========== +playerinfo.records = {0} registros +playerinfo.joined_date = Ingreso: {0} +playerinfo.current = Actual +playerinfo.left_date = Salio: {0} + +# ========== Mapa de Zona ========== +map.world_warning = ADVERTENCIA: Estas en '{0}' - la zona esta en '{1}' +map.position = Tu Posicion: Chunk ({0}, {1}) +map.zone_gone = La zona ya no existe. +map.claimed = Chunk ({0}, {1}) reclamado para {2}. +map.claim_failed = No se pudo reclamar el chunk: {0} +map.unclaimed = Chunk ({0}, {1}) desreclamado de {2}. +map.unclaim_failed = No se pudo desreclamar el chunk: {0} +map.chunk_belongs = Este chunk pertenece a {0}. +map.chunk_faction = Este chunk esta reclamado por una faccion. +map.chunk_protected = Este chunk esta en una region protegida. diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang new file mode 100644 index 00000000..72379ca9 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -0,0 +1,441 @@ +# HyperFactions GUI - Traducciones al Espanol +# Formato: clave = valor +# Nota: Las claves se prefijan automaticamente con "hyperfactions_gui." por el I18nModule de Hytale + +# ========== Barra de Navegacion ========== +nav.dashboard = Panel +nav.chat = Chat +nav.members = Miembros +nav.invites = Invitaciones +nav.browser = Explorar +nav.map = Mapa +nav.leaderboard = Clasificacion +nav.relations = Relaciones +nav.treasury = Tesoreria +nav.settings = Ajustes +nav.logs = Registros +nav.help = Ayuda +nav.admin = Admin +nav.create = Crear + +# ========== Nombres de Categorias de Ayuda ========== +help.category.welcome = Bienvenida +help.category.your_faction = Tu Faccion +help.category.power_land = Poder y Territorio +help.category.diplomacy = Diplomacia +help.category.combat = Combate y Seguridad +help.category.economy = Economia +help.category.quick_ref = Referencia Rapida + +# ========== Menu Principal ========== +main_menu.section_my_faction = Mi Faccion +main_menu.section_get_started = Comenzar +main_menu.section_territory = Territorio +main_menu.section_browse = Explorar +main_menu.section_admin = Admin +main_menu.claim_hint = Usa /f claim para reclamar territorio. + +# ========== Pagina de Info de Faccion ========== +faction_info.no_description = Sin descripcion. +faction_info.status_open = Abierta +faction_info.status_invite_only = Solo Invitacion +faction_info.status_raidable = Vulnerable +faction_info.status_protected = Protegida +faction_info.officers_more = +{0} mas + +# ========== Modal de Renombrar ========== +rename.no_permission = No tienes permiso para renombrar la faccion. +rename.enter_name = Ingresa un nombre para la faccion. +rename.too_short = El nombre de faccion debe tener al menos {0} caracteres. +rename.too_long = El nombre de faccion no puede exceder {0} caracteres. +rename.same_name = Ese ya es el nombre de tu faccion. +rename.name_taken = Ya existe una faccion con ese nombre. +rename.success = Faccion renombrada de {0} a {1}! + +# ========== Modal de Descripcion ========== +desc.no_permission = No tienes permiso para editar la descripcion. +desc.display_none = (Ninguna) +desc.cleared = Descripcion de la faccion borrada. +desc.updated = Descripcion de la faccion actualizada! + +# ========== Modal de Etiqueta ========== +tag.no_permission = No tienes permiso para editar la etiqueta. +tag.display_none = (Ninguna) +tag.cleared = Etiqueta de la faccion borrada. +tag.too_short = La etiqueta debe tener al menos {0} caracter. +tag.too_long = La etiqueta no puede exceder {0} caracteres. +tag.invalid_format = La etiqueta solo puede contener letras y numeros. +tag.same_tag = Esa ya es la etiqueta de tu faccion. +tag.tag_taken = Ya existe una faccion con esa etiqueta. +tag.success = Etiqueta de faccion establecida a [{0}]! + +# ========== Pagina del Panel ========== +dashboard.faction_gone = Tu faccion ya no existe. +dashboard.available = {0} disponibles +dashboard.at_risk = En riesgo! +dashboard.online_count = {0} conectados +dashboard.status_invite = Invitacion +dashboard.in_grace = EN GRACIA +dashboard.billable_chunks = {0} chunks facturables +dashboard.btn_home = Hogar +dashboard.btn_set_home = Fijar Hogar +dashboard.btn_claim = Reclamar +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Salir +dashboard.no_activity = Sin actividad reciente. +dashboard.time_now = ahora +dashboard.time_minutes = hace {0}m +dashboard.time_hours = hace {0}h +dashboard.time_days = hace {0}d +dashboard.no_home_hint = Tu faccion no tiene hogar. Pide a un oficial que lo establezca. +dashboard.chat_mode_set = Modo de chat: {0} +dashboard.claim_success = Chunk reclamado en ({0}, {1}) + +# ========== Pagina Principal de Faccion ========== +main.no_faction = Sin Faccion +main.joined = Te uniste a la faccion! +main.join_failed = No se pudo unir a la faccion: {0} +main.invite_declined = Invitacion rechazada. +main.cooldown = Teletransporte en enfriamiento! {0}s restantes. +main.world_not_found = No se puede teletransportar - mundo no encontrado. +main.leave_failed = No se pudo salir: {0} + +# ========== Etiquetas Compartidas de la Interfaz ========== +common.faction_count = {0} facciones +common.leader_label = Lider: {0} +common.sort_power = Poder +common.sort_members = Miembros +common.page_format = {0}/{1} +common.own_faction = (Tu) + +# ========== Pagina de Miembros ========== +members.count = {0} miembros +members.sort_role = Rol +members.sort_last_online = Ultima Conexion +members.just_now = ahora mismo +members.ago = hace {0} +members.never = Nunca +members.member_not_found = Miembro no encontrado. +members.promoted = {0} promovido a {1}. +members.promote_failed = No se pudo promover: {0} +members.demoted = {0} degradado a {1}. +members.demote_failed = No se pudo degradar: {0} +members.kicked = {0} expulsado de la faccion. +members.kick_failed = No se pudo expulsar: {0} + +# ========== Pagina del Explorador ========== +browser.sort_name = Nombre +browser.invalid_faction = Faccion invalida. + +# ========== Pagina de Clasificacion ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territorio +leaderboard.sort_balance = Saldo + +# ========== Pagina de Info de Jugador ========== +playerinfo.now = Ahora +playerinfo.history_count = {0} registros +playerinfo.joined_label = Ingreso: {0} +playerinfo.current = Actual +playerinfo.left_label = Salio: {0} +playerinfo.no_history = Sin historial de membresia +playerinfo.faction_gone = La faccion ya no existe. +playerinfo.reason_active = ACTIVO +playerinfo.reason_left = SALIO +playerinfo.reason_kicked = EXPULSADO +playerinfo.reason_disbanded = DISUELTA + +# ========== Pagina de Relaciones ========== +relations.relation_count = {0} relaciones +relations.request_count = {0} solicitudes +relations.type_ally = Aliado +relations.type_enemy = Enemigo +relations.type_incoming = Entrante +relations.type_outgoing = Saliente +relations.incoming_request = Solicitud entrante +relations.outgoing_request = Solicitud saliente +relations.empty_relations = Sin relaciones aun. +relations.empty_relations_hint = Sin relaciones aun. Haz clic en + ESTABLECER RELACION para agregar aliados o enemigos. +relations.empty_pending = No hay solicitudes de alianza pendientes. +relations.today = Hoy +relations.one_day_ago = Hace 1 dia +relations.days_ago = Hace {0} dias +relations.now_neutral = Ahora neutral con {0}. +relations.now_enemies = Ahora enemigos con {0}! +relations.request_sent = Solicitud de alianza enviada a {0}. +relations.now_allied = Ahora aliados con {0}! +relations.request_declined = Solicitud de alianza de {0} rechazada. +relations.request_cancelled = Solicitud de alianza a {0} cancelada. +relations.failed = Fallo: {0} +relations.search_hint = Busca una faccion para establecer relacion +relations.no_results = No se encontraron facciones con '{0}' +relations.power_display = {0} poder +relations.member_count = {0} miembros + +# ========== Pagina de Ajustes ========== +settings.officers_only = Solo oficiales y lideres pueden cambiar los ajustes de la faccion. +settings.display_none = (Ninguna) +settings.home_not_set = Sin establecer +settings.no_permission = No tienes permiso para cambiar los ajustes. +settings.only_leader_disband = Solo el lider puede disolver la faccion. +settings.perm_locked = Este ajuste esta bloqueado por el servidor. +settings.no_perm_edit = No tienes permiso para editar los permisos de territorio. +settings.only_leader_officers = Solo el lider puede cambiar el acceso de oficiales. +settings.pvp_enabled = Activado +settings.pvp_disabled = Desactivado +settings.not_in_territory = Debes estar en el territorio de tu faccion para establecer el hogar. +settings.home_set = Hogar de la faccion establecido en tu ubicacion actual! +settings.recruitment_set = Reclutamiento establecido a {0}. +settings.home_no_set = Tu faccion no tiene un hogar establecido. +settings.home_deleted = Hogar de la faccion eliminado! + +# ========== Pagina de Modulos ========== +modules.treasury_name = Tesoreria +modules.treasury_desc = Banco y sistema economico de la faccion +modules.raids_name = Raids +modules.raids_desc = Batallas de facciones programadas +modules.levels_name = Niveles +modules.levels_desc = Progresion y XP de faccion +modules.war_name = Guerra +modules.war_desc = Declaraciones formales de guerra +modules.coming_soon = Proximamente +modules.active = Activo +modules.view_treasury = Ver Tesoreria +modules.unavailable = No disponible +modules.no_economy = No se detecto plugin de economia +modules.disabled = Desactivado +modules.economy_not_available = Las funciones de economia no estan disponibles en este servidor + +# ========== Pagina de Tesoreria ========== +treasury.wallet_label = Tu billetera: {0} +treasury.treasury_label = Saldo de tesoreria: {0} +treasury.chunks_detail = {0} gratis + {1} chunks facturables +treasury.cost_label = Costo: {0} +treasury.pending = Pendiente +treasury.auto_pay_on = Pago automatico: ACTIVADO +treasury.auto_pay_off = Pago automatico: DESACTIVADO +treasury.runway_90_plus = 90+ dias +treasury.runway_days = {0} dias +treasury.runway_day = {0} dia +treasury.runway_less_day = < 1 dia +treasury.runway_no_funds = Sin fondos +treasury.grace_expires = La gracia expira en: {0} +treasury.missed_payments = Pagos perdidos: {0} +treasury.pay_to_clear = Paga {0} para limpiar la gracia +treasury.system = Sistema +treasury.type_deposit = Deposito +treasury.type_withdrawal = Retiro +treasury.type_transfer_in = Transferencia Entrante +treasury.type_transfer_out = Transferencia Saliente +treasury.type_player_transfer = Transferencia de Jugador +treasury.type_upkeep = Mantenimiento +treasury.type_tax = Recaudacion de Impuestos +treasury.type_war_cost = Costo de Guerra +treasury.type_raid_cost = Costo de Raid +treasury.type_spoils = Botin +treasury.type_admin = Ajuste de Admin +treasury.deposit_title = Depositar en la Tesoreria +treasury.withdraw_title = Retirar de la Tesoreria +treasury.fee_label = Comision ({0}%) +treasury.confirm_deposit = Confirmar Deposito +treasury.confirm_withdrawal = Confirmar Retiro +treasury.from_wallet = {0} de la billetera +treasury.to_wallet = {0} a la billetera +treasury.enter_valid_amount = Ingresa una cantidad positiva valida. +treasury.insufficient_wallet = Fondos insuficientes en la billetera. Necesitas {0}, tienes {1}. +treasury.wallet_withdraw_failed = No se pudo retirar de tu billetera. +treasury.deposit_failed_returned = No se pudo depositar. Dinero devuelto. +treasury.deposited = Depositaste {0} en la tesoreria. +treasury.deposited_fee = Depositaste {0} en la tesoreria. (comision: {1}) +treasury.no_withdraw_permission = No tienes permiso para retirar. +treasury.withdraw_denied = Retiro denegado: {0} +treasury.insufficient_treasury = Fondos insuficientes en la tesoreria. +treasury.withdraw_limit = Limite de retiro excedido. +treasury.withdraw_failed = Retiro fallido: {0} +treasury.wallet_deposit_warn = Advertencia: No se pudo depositar en tu billetera. Contacta a un admin. +treasury.withdrew = Retiraste {0} de la tesoreria. +treasury.withdrew_fee = Retiraste {0} de la tesoreria. (comision: {1}, recibido: {2}) +treasury.search_hint = Buscar jugador o faccion +treasury.no_results = Sin resultados para '{0}' +treasury.tag_player = [Jugador] +treasury.tag_faction = [Faccion] +treasury.source_online = Conectado +treasury.source_offline = Desconectado +treasury.source_player_db = Jugador de Hytale +treasury.no_transfer_permission = No tienes permiso para transferir. +treasury.transfer_denied = Transferencia denegada: {0} +treasury.invalid_target_faction = Faccion de destino invalida. +treasury.target_faction_gone = La faccion de destino ya no existe. +treasury.transfer_failed = Transferencia fallida: {0} +treasury.transfer_failed_returned = Transferencia fallida. Fondos devueltos. +treasury.transferred = Transferiste {0} a {1}. +treasury.invalid_target_player = Jugador de destino invalido. +treasury.player_transfer_failed = No se pudo depositar en la billetera del jugador. Transferencia revertida. +treasury.leader_only_perms = Solo el lider puede cambiar los permisos de tesoreria. +treasury.leader_only_upkeep = Solo el lider puede cambiar los ajustes de mantenimiento. +treasury.invalid_limit = Numero invalido en los campos de limite. Usa 0 para ilimitado. + +# ========== Paginas de Confirmacion ========== +confirm.disband_not_leader = Solo el lider puede disolver la faccion. +confirm.disbanded = La faccion '{0}' ha sido disuelta. +confirm.disband_failed = No se pudo disolver la faccion. +confirm.succession_title = El liderazgo se transferira a: +confirm.no_members_warning = ADVERTENCIA: No hay otros miembros! +confirm.will_disband = Salir disolvera la faccion permanentemente. +confirm.not_in_faction = No estas en esta faccion. +confirm.not_leader_anymore = Ya no eres el lider. +confirm.no_successor = No hay sucesor disponible. Usa disolver en su lugar. +confirm.transfer_failed = No se pudo transferir el liderazgo: {0} +confirm.leader_left = Liderazgo transferido a {0}. Has salido de {1}. +confirm.leave_failed = No se pudo salir de la faccion: {0} +confirm.leader_cannot_leave = Los lideres no pueden salir. Transfiere el liderazgo o disuelve la faccion. +confirm.left_faction = Has salido de {0}. +confirm.faction_gone = La faccion ya no existe. +confirm.not_leader_transfer = Solo el lider puede transferir el liderazgo. +confirm.leadership_transferred = Liderazgo transferido a {0}. + +# ========== Pagina del Visor de Registros ========== +logs.title = {0} - Registros de Actividad +logs.entry_count = {0} entradas +logs.all_types = Todos los Tipos +logs.no_logs_type = No hay registros de este tipo. +logs.no_logs = No hay registros de actividad aun. + +# ========== Pagina de Chat ========== +chat.placeholder = Escribe un mensaje... +chat.no_messages = No hay mensajes aun. +chat.no_ally_permission = No tienes permiso para el chat de aliados. +chat.no_permission = Sin permiso. +chat.faction_gone = Tu faccion ya no existe. +chat.time_now = ahora +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Pagina de Invitaciones ========== +invites.invite_count = {0} invitaciones +invites.request_count = {0} solicitudes +invites.invited_by = Invitado por: {0} +invites.no_message = Sin mensaje +invites.expires = Expira: {0} +invites.type_outgoing = Saliente +invites.type_request = Solicitud +invites.invited_by_label = Invitado por: +invites.empty_outgoing = Sin invitaciones salientes. Usa /f invite para invitar a alguien. +invites.empty_requests = Sin solicitudes de ingreso. Los jugadores pueden solicitar unirse con /f request. +invites.invalid_player = Jugador invalido. +invites.cancelled_invite = Invitacion a {0} cancelada. +invites.player_joined = {0} se ha unido a la faccion! +invites.faction_full = La faccion esta llena. No se puede aceptar la solicitud. +invites.add_failed = No se pudo agregar al jugador a la faccion. +invites.request_expired = Solicitud no encontrada o expirada. +invites.request_declined = Solicitud de ingreso de {0} rechazada. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Pagina del Mapa ========== +map.position = Tu Posicion: Chunk ({0}, {1}) +map.legend_protected = Protegido +map.claim_stats = Reclamos: {0}/{1} ({2} Disponibles) +map.overclaimed = SOBRERECLAMADO por {0}! +map.power_display = Poder: {0}/{1} +map.join_to_claim = Unete a una faccion para reclamar +map.claim_success = Chunk reclamado en ({0}, {1})! +map.claim_not_in_faction = Debes estar en una faccion para reclamar territorio. +map.claim_not_officer = Solo oficiales y lideres pueden reclamar territorio. +map.claim_already_yours = Ya posees este chunk. +map.claim_already_claimed = Este chunk ya esta reclamado por otra faccion. +map.claim_not_adjacent = Solo puedes reclamar chunks adyacentes a tu territorio. +map.claim_max = Has alcanzado tu limite maximo de reclamos. +map.claim_world_not_allowed = No se permite reclamar en este mundo. +map.claim_orbisguard = Esta area esta protegida por OrbisGuard. +map.claim_failed = No se pudo reclamar el chunk. +map.unclaim_success = Chunk desreclamado en ({0}, {1}). +map.unclaim_not_in_faction = Debes estar en una faccion. +map.unclaim_not_officer = Solo oficiales y lideres pueden desreclamar territorio. +map.unclaim_not_claimed = Este chunk no esta reclamado. +map.unclaim_not_yours = Este chunk pertenece a otra faccion. +map.unclaim_home = No puedes desreclamar el chunk que contiene el hogar de la faccion. +map.unclaim_failed = No se pudo desreclamar el chunk. +map.overclaim_success = Chunk enemigo sobrereclamado en ({0}, {1})! +map.overclaim_not_in_faction = Debes estar en una faccion. +map.overclaim_not_officer = Solo oficiales y lideres pueden sobrereclamar territorio. +map.overclaim_already_yours = Ya posees este chunk. +map.overclaim_ally = No puedes sobrereclamar territorio aliado. +map.overclaim_has_power = Esta faccion tiene suficiente poder para defender su territorio. +map.overclaim_max = Has alcanzado tu limite maximo de reclamos. +map.overclaim_failed = No se pudo sobrereclamar el chunk. +# ========== Pagina de Crear Faccion ========== +create.preview_name = Nombre de Tu Faccion +create.leader_prefix = Lider: {0} +create.enter_name = Ingresa un nombre para la faccion. +create.name_too_short = El nombre de faccion debe tener al menos {0} caracteres. +create.name_too_long = El nombre de faccion no puede exceder {0} caracteres. +create.name_taken = Ya existe una faccion con este nombre. +create.tag_length = La etiqueta de faccion debe tener entre {0} y {1} caracteres. +create.tag_format = La etiqueta de faccion solo puede contener letras y numeros. +create.desc_too_long = La descripcion no puede exceder {0} caracteres. +create.created = Faccion {0} creada exitosamente! +create.created_no_dashboard = Faccion creada pero no se pudo abrir el panel. +create.invalid_name = Nombre de faccion invalido. +create.create_failed = No se pudo crear la faccion. + +# ========== Paginas de Nuevo Jugador ========== +newplayer.pending_count = {0} pendientes +newplayer.received_header = INVITACIONES RECIBIDAS ({0}) +newplayer.requests_header = TUS SOLICITUDES ({0}) +newplayer.no_invites = Sin invitaciones. Explora facciones para encontrar una! +newplayer.no_requests = Sin solicitudes pendientes. +newplayer.invited_by = Invitado por: {0} +newplayer.member_count = {0} miembros +newplayer.power_count = {0} poder +newplayer.claim_count = {0} reclamos +newplayer.awaiting_review = Esperando revision +newplayer.expires_in = Expira en {0}h +newplayer.time_just_now = ahora mismo +newplayer.time_minutes = hace {0} min +newplayer.time_hours = hace {0}h +newplayer.time_days = hace {0}d +newplayer.invalid_faction = Faccion invalida. +newplayer.invite_expired = Esta invitacion ha expirado o fue revocada. +newplayer.faction_gone = La faccion ya no existe. +newplayer.joined = Te uniste a {0}! +newplayer.faction_full = Esta faccion esta llena. +newplayer.join_failed = No se pudo unir a la faccion. +newplayer.invite_declined = Invitacion rechazada. +newplayer.request_cancelled = Solicitud para unirte a {0} cancelada. +newplayer.faction_count = {0} facciones +newplayer.browse_subtitle = Encuentra tu nuevo hogar! +newplayer.sort_power = Poder +newplayer.sort_name = Nombre +newplayer.sort_members = Miembros +newplayer.btn_accept = Aceptar +newplayer.btn_pending = Pendiente +newplayer.btn_join = Unirse +newplayer.btn_request = Solicitar +newplayer.invite_only_msg = Esta faccion es solo por invitacion. +newplayer.welcome_hint = Bienvenido! Usa /f para abrir el menu de facciones. +newplayer.faction_open_hint = Esta faccion esta abierta! Haz clic en UNIRSE. +newplayer.already_requested = Ya tienes una solicitud pendiente para esta faccion. +newplayer.has_invite_hint = Tienes una invitacion de esta faccion! Haz clic en ACEPTAR. +newplayer.request_sent = Solicitud de ingreso enviada a {0}! +newplayer.officer_review = Un oficial revisara tu solicitud. +newplayer.map_hint = Solo Vista - Unete a una faccion para reclamar territorio! + +# Ajustes de Jugador +nav.player_settings = Ajustes +player_settings.title = Ajustes del Jugador +player_settings.language_section = Idioma +player_settings.auto_detect = Detectar automaticamente del cliente +player_settings.auto_detect_desc = Usa la configuracion de idioma de tu cliente de juego +player_settings.language_label = Idioma +player_settings.notifications_section = Notificaciones +player_settings.territory_alerts = Alertas de Territorio +player_settings.territory_alerts_desc = Mostrar notificaciones al entrar/salir de territorios +player_settings.death_announcements = Anuncios de Muerte +player_settings.death_announcements_desc = Recibir anuncios de ubicacion de muerte de miembros de la faccion +player_settings.power_notifications = Cambios de Poder +player_settings.power_notifications_desc = Mostrar mensajes cuando tu poder cambia +player_settings.language_changed = Idioma cambiado a {0} +player_settings.pref_enabled = {0} activado +player_settings.pref_disabled = {0} desactivado diff --git a/src/main/resources/Server/Languages/fallback.lang b/src/main/resources/Server/Languages/fallback.lang new file mode 100644 index 00000000..28fe8461 --- /dev/null +++ b/src/main/resources/Server/Languages/fallback.lang @@ -0,0 +1,36 @@ +# HyperFactions — Fallback Language Configuration +# +# Hytale's I18nModule automatically falls back to en-US when a translation key +# is missing from the player's locale. This means: +# +# 1. If a locale directory exists (e.g., fr-FR/) but a specific key is missing +# from its .lang file, the en-US value is used automatically. +# +# 2. If a locale directory does not exist at all, ALL keys fall back to en-US. +# +# 3. Partially translated locales work fine — translated keys use the locale's +# value, untranslated keys use en-US. +# +# No explicit mapping is needed in this file. It exists as documentation for +# translators and maintainers. +# +# Supported locales (directories under Server/Languages/): +# en-US — English (United States) [base language, complete] +# de-DE — German (Germany) [stub — untranslated] +# es-ES — Spanish (Spain) [stub — untranslated] +# fr-FR — French (France) [stub — untranslated] +# ja-JP — Japanese (Japan) [stub — untranslated] +# pt-BR — Portuguese (Brazil) [stub — untranslated] +# ru-RU — Russian (Russia) [stub — untranslated] +# tr-TR — Turkish (Turkey) [stub — untranslated] +# zh-CN — Chinese Simplified (China) [stub — untranslated] +# +# To add a new locale: +# ./scripts/new-translation.sh +# (or scripts\new-translation.bat on Windows) +# +# Translation guidelines: +# - Keep all keys exactly as they are (left side of =) +# - Keep {0}, {1}, etc. placeholders in the translated text +# - Do not translate color codes or formatting tokens +# - Test in-game by switching language in /f settings diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang new file mode 100644 index 00000000..32931698 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: French (fr-FR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with French translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang new file mode 100644 index 00000000..165fd4a8 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: French (fr-FR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with French translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang new file mode 100644 index 00000000..dd53d6a4 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: French (fr-FR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with French translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang new file mode 100644 index 00000000..69d52da6 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: Japanese (ja-JP) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Japanese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang new file mode 100644 index 00000000..2e8d5b94 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: Japanese (ja-JP) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Japanese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang new file mode 100644 index 00000000..f5d674f0 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: Japanese (ja-JP) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Japanese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang new file mode 100644 index 00000000..c45e3ffb --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: Brazilian Portuguese (pt-BR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Brazilian Portuguese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang new file mode 100644 index 00000000..fe5d73cf --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: Brazilian Portuguese (pt-BR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Brazilian Portuguese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang new file mode 100644 index 00000000..45d56183 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: Brazilian Portuguese (pt-BR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Brazilian Portuguese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang new file mode 100644 index 00000000..96655253 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: Russian (ru-RU) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Russian translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang new file mode 100644 index 00000000..c31b51a0 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: Russian (ru-RU) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Russian translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang new file mode 100644 index 00000000..bfd9aaba --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: Russian (ru-RU) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Russian translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang new file mode 100644 index 00000000..b88561fa --- /dev/null +++ b/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: Turkish (tr-TR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Turkish translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang new file mode 100644 index 00000000..932ef287 --- /dev/null +++ b/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: Turkish (tr-TR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Turkish translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang new file mode 100644 index 00000000..e5dcd0aa --- /dev/null +++ b/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: Turkish (tr-TR) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Turkish translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang new file mode 100644 index 00000000..66ec67dc --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang @@ -0,0 +1,452 @@ +# Language: Simplified Chinese (zh-CN) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Simplified Chinese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions - English Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Common ========== +common.no_permission = You don't have permission to do that. +common.not_in_faction = You are not in a faction. +common.already_in_faction = You are already in a faction. +common.player_not_found = Player not found. +common.faction_not_found = Faction not found. +common.player_not_online = That player is not online. +common.must_be_leader = Only the faction leader can do that. +common.must_be_officer = You must be an Officer or Leader to do that. +common.combat_tagged = You can't do that while combat tagged. +common.cancel = Cancel +common.confirm = Confirm +common.save = Save +common.close = Close +common.yes = Yes +common.no = No +common.loading = Loading... +common.online = Online +common.offline = Offline +common.enabled = Enabled +common.disabled = Disabled +common.none = None +common.page = Page {0} of {1} +common.unknown = Unknown +common.error_generic = Something went wrong. Please try again. +common.gui_fallback = Could not access GUI. Use /f help for commands. +common.admin_prefix = [Admin] +common.location_error = Could not determine your location. +common.world_error = Could not determine your world. +common.invalid_id = Invalid faction ID. +common.na = N/A + +# ========== Commands - Create ========== +cmd.create.no_permission = You don't have permission to create factions. +cmd.create.usage = Usage: /f create +cmd.create.success = Faction '{0}' created! +cmd.create.already_in_named = You are already in {0}. +cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. +cmd.create.name_taken = That faction name is already taken. +cmd.create.name_too_short = Faction name is too short. +cmd.create.name_too_long = Faction name is too long. +cmd.create.failed = Failed to create faction. + +# ========== Commands - Disband ========== +cmd.disband.no_permission = You don't have permission to disband factions. +cmd.disband.not_leader = Only the faction leader can disband. +cmd.disband.confirm_prompt = Are you sure you want to disband your faction? +cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. +cmd.disband.success = Your faction has been disbanded. +cmd.disband.failed = Failed to disband faction. +cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. + +# ========== Commands - Rename ========== +cmd.rename.no_permission = You don't have permission. +cmd.rename.not_leader = Only the leader can rename the faction. +cmd.rename.usage = Usage: /f rename +cmd.rename.too_short = Name is too short (min {0} chars). +cmd.rename.too_long = Name is too long (max {0} chars). +cmd.rename.name_taken = That name is already taken. +cmd.rename.success = Faction renamed to {0}! +cmd.rename.broadcast = {0} renamed the faction to {1} + +# ========== Commands - Description ========== +cmd.desc.no_permission = You don't have permission. +cmd.desc.not_officer = You must be an officer to set the description. +cmd.desc.set = Faction description set! +cmd.desc.cleared = Faction description cleared. + +# ========== Commands - Open / Close ========== +cmd.open.no_permission = You don't have permission. +cmd.open.not_leader = Only the leader can change this setting. +cmd.open.already_open = Your faction is already open. +cmd.open.success = Your faction is now open! Anyone can join with /f join. +cmd.open.broadcast = {0} opened the faction to public joining. +cmd.close.no_permission = You don't have permission. +cmd.close.not_leader = Only the leader can change this setting. +cmd.close.already_closed = Your faction is already closed. +cmd.close.success = Your faction is now invite-only. +cmd.close.broadcast = {0} closed the faction to invite-only. + +# ========== Commands - Color ========== +cmd.color.no_permission = You don't have permission. +cmd.color.not_officer = You must be an officer to change the color. +cmd.color.colors_disabled = Faction colors are disabled. +cmd.color.usage = Usage: /f color +cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex +cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. +cmd.color.success = Faction color updated! + +# ========== Commands - Claim ========== +cmd.claim.no_permission = You don't have permission to claim territory. +cmd.claim.already_yours = Your faction already owns this chunk. +cmd.claim.cannot_claim_ally = You cannot claim ally territory. +cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. +cmd.claim.success = Claimed chunk at {0}, {1}! +cmd.claim.not_officer = You must be an officer to claim land. +cmd.claim.already_claimed = This chunk is already claimed. +cmd.claim.max_claims = Your faction has reached max claims. Get more power! +cmd.claim.not_adjacent = You must claim adjacent to existing territory. +cmd.claim.world_not_allowed = Claiming is not allowed in this world. +cmd.claim.orbisguard = This area is protected by OrbisGuard. +cmd.claim.zone_protected = This chunk is in a safezone or warzone. +cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. +cmd.claim.failed = Failed to claim chunk. + +# ========== Commands - Invite ========== +cmd.invite.no_permission = You don't have permission to invite players. +cmd.invite.not_officer = You must be an officer to invite players. +cmd.invite.usage = Usage: /f invite +cmd.invite.player_not_found = Player '{0}' not found or offline. +cmd.invite.target_in_faction = That player is already in a faction. +cmd.invite.sent = Invited {0} to your faction. +cmd.invite.received = You have been invited to join {0}! +cmd.invite.accept_hint = Type /f accept {0} to join. + +# ========== Commands - Accept / Join ========== +cmd.join.no_permission = You don't have permission to join factions. +cmd.join.already_in_named = You are already in {0}. +cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.join.no_invites = You have no pending invites. +cmd.join.faction_not_found = Faction '{0}' not found. +cmd.join.not_invited = You have no invite from that faction. +cmd.join.faction_gone = That faction no longer exists. +cmd.join.success = You have joined {0}! +cmd.join.broadcast = {0} has joined the faction! +cmd.join.faction_full = That faction is full. +cmd.join.failed = Failed to join faction. + +# ========== Commands - Kick ========== +cmd.kick.no_permission = You don't have permission to kick members. +cmd.kick.usage = Usage: /f kick +cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. +cmd.kick.success = Kicked {0} from the faction. +cmd.kick.broadcast = {0} was kicked from the faction. +cmd.kick.kicked = You have been kicked from the faction. +cmd.kick.cannot_kick_higher = You don't have permission to kick that player. +cmd.kick.cannot_kick_leader = You cannot kick the faction leader. +cmd.kick.failed = Failed to kick player. + +# ========== Commands - Leave ========== +cmd.leave.no_permission = You don't have permission to leave factions. +cmd.leave.confirm_prompt = Are you sure you want to leave your faction? +cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. +cmd.leave.success = You have left your faction. +cmd.leave.broadcast = {0} has left the faction. +cmd.leave.failed = Failed to leave faction. +cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. + +# ========== Commands - Promote / Demote / Transfer ========== +cmd.rank.promote_no_permission = You don't have permission to promote members. +cmd.rank.promote_usage = Usage: /f promote +cmd.rank.promoted = Promoted {0} to {1}! +cmd.rank.promote_broadcast = {0} was promoted to {1}! +cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. +cmd.rank.promote_failed = Failed to promote player. +cmd.rank.demote_no_permission = You don't have permission to demote members. +cmd.rank.demote_usage = Usage: /f demote +cmd.rank.demoted = Demoted {0} to {1}. +cmd.rank.demote_broadcast = {0} was demoted to {1}. +cmd.rank.already_lowest = That player is already a Member. +cmd.rank.demote_failed = Failed to demote player. +cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. +cmd.rank.transfer_usage = Usage: /f transfer +cmd.rank.player_not_in_faction = Player not found in your faction. +cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? +cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. +cmd.rank.transferred = Transferred leadership to {0}! +cmd.rank.transfer_broadcast = {0} is now the faction leader! +cmd.rank.transfer_failed = Failed to transfer leadership. +cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. + +# ========== Commands - Unclaim ========== +cmd.unclaim.no_permission = You don't have permission to unclaim territory. +cmd.unclaim.success = Unclaimed chunk at {0}, {1}. +cmd.unclaim.not_officer = You must be an officer to unclaim land. +cmd.unclaim.chunk_not_claimed = This chunk is not claimed. +cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. +cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. +cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. +cmd.unclaim.failed = Failed to unclaim chunk. + +# ========== Commands - Overclaim ========== +cmd.overclaim.no_permission = You don't have permission to overclaim territory. +cmd.overclaim.success = Overclaimed enemy territory! +cmd.overclaim.not_officer = You must be an officer to overclaim. +cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. +cmd.overclaim.own_chunk = Your faction already owns this chunk. +cmd.overclaim.ally = You cannot overclaim ally territory. +cmd.overclaim.target_has_power = This faction still has enough power. +cmd.overclaim.failed = Failed to overclaim. + +# ========== Commands - Stuck ========== +cmd.stuck.no_permission = You don't have permission to use /f stuck. +cmd.stuck.not_stuck = You're not stuck - this is wilderness. +cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! +cmd.stuck.no_safe = Could not find a safe location. +cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! + +# ========== Commands - Home ========== +cmd.home.no_permission = You don't have permission to teleport to faction home. +cmd.home.no_home = Your faction has no home set. +cmd.home.combat_tagged = You cannot teleport while in combat! +cmd.home.teleported = Teleported to faction home! + +# ========== Commands - SetHome ========== +cmd.sethome.no_permission = You don't have permission to set faction home. +cmd.sethome.world_not_allowed = Cannot set home in this world. +cmd.sethome.not_in_territory = You can only set home in your faction's territory. +cmd.sethome.set = Faction home set! +cmd.sethome.broadcast = {0} set the faction home. +cmd.sethome.not_officer = You must be an officer to set the home. +cmd.sethome.failed = Failed to set home. + +# ========== Commands - DelHome ========== +cmd.delhome.no_permission = You don't have permission to delete faction home. +cmd.delhome.no_home = Your faction does not have a home set. +cmd.delhome.deleted = Faction home deleted! +cmd.delhome.broadcast = {0} deleted the faction home. +cmd.delhome.not_officer = You must be an officer to delete the home. +cmd.delhome.failed = Failed to delete home. + +# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== +cmd.relation.ally_no_permission = You don't have permission to manage alliances. +cmd.relation.ally_usage = Usage: /f ally +cmd.relation.ally_sent = Ally request sent to {0}! +cmd.relation.ally_formed = You are now allies with {0}! +cmd.relation.already_ally = You are already allied with that faction. +cmd.relation.ally_failed = Failed to send ally request. +cmd.relation.enemy_no_permission = You don't have permission to declare enemies. +cmd.relation.enemy_usage = Usage: /f enemy +cmd.relation.enemy_declared = {0} is now your enemy! +cmd.relation.already_enemy = You are already enemies with that faction. +cmd.relation.max_enemies = You have reached the maximum number of enemies. +cmd.relation.enemy_failed = Failed to set enemy. +cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. +cmd.relation.neutral_usage = Usage: /f neutral +cmd.relation.neutral_set = Your faction is now neutral with {0}. +cmd.relation.already_neutral = You are already neutral with that faction. +cmd.relation.neutral_failed = Failed to set neutral. +cmd.relation.cannot_self = You cannot ally with yourself. +cmd.relation.max_allies = You have reached the maximum number of allies. +cmd.relation.view_no_permission = You don't have permission to view relations. +cmd.relation.header = === Faction Relations === +cmd.relation.allies_count = Allies ({0}): +cmd.relation.enemies_count = Enemies ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commands - Chat ========== +cmd.chat.usage = Usage: /f c [f|a|off] +cmd.chat.no_permission = You don't have permission for that chat mode. +cmd.chat.mode_set = Chat mode set to {0} + +# ========== Commands - Invites ========== +cmd.invites.not_officer = You must be an officer to manage invites. +cmd.invites.header = === Faction Invites === +cmd.invites.no_pending = No pending invites or requests. +cmd.invites.outgoing = Outgoing Invites: +cmd.invites.outgoing_entry = {0} (invited by {1}) +cmd.invites.requests = Join Requests: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Your Invites === +cmd.invites.no_invites = You have no pending invites. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Commands - Request ========== +cmd.request.no_permission = You don't have permission to request faction membership. +cmd.request.already_in_named = You are already in {0}. +cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. +cmd.request.usage = Usage: /f request [message] +cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. +cmd.request.already_requested = You already have a pending request to that faction. +cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. +cmd.request.sent = Sent join request to {0}! +cmd.request.your_message = Your message: "{0}" +cmd.request.officer_review = An officer will review your request. +cmd.request.officer_notify = {0} has requested to join your faction! +cmd.request.officer_review_hint = Use /f gui > Invites to review. + +# ========== Commands - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = You don't have permission to view faction info. +cmd.info.faction_not_found = Faction '{0}' not found. +cmd.info.not_in_faction_hint = You are not in a faction. Use /f info +cmd.info.leader = Leader: {0} +cmd.info.members = Members: {0}/{1} +cmd.info.power = Power: {0} +cmd.info.claims = Claims: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Allies: {0} +cmd.info.enemies = Enemies: {0} +cmd.info.they_consider = They consider you: {0} +cmd.info.you_consider = You consider them: {0} +cmd.info.members_no_permission = You don't have permission to view faction members. +cmd.info.members_header = === {0} Members ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = You don't have permission to view faction list. +cmd.info.list_empty = There are no factions. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} members, {2} power +cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] +cmd.info.help_no_permission = You don't have permission to view help. +cmd.info.who_no_permission = You don't have permission to view player info. +cmd.info.who_faction = Faction: {0} +cmd.info.who_role = Role: {0} +cmd.info.who_joined = Joined: {0} +cmd.info.who_faction_none = Faction: None +cmd.info.who_power = Power: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Last seen: {0} +cmd.info.map_no_permission = You don't have permission to view the map. +cmd.info.map_header = === Territory Map === +cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild +cmd.info.map_gui_hint = Use /f gui for interactive map + +# ========== Commands - Power ========== +cmd.power.personal = Personal Power: {0}/{1} +cmd.power.faction = Faction Power: {0}/{1} +cmd.power.death_loss = Death Loss: {0} +cmd.power.regen = Regen Rate: {0}/hr +cmd.power.no_permission = You don't have permission to view power info. +cmd.power.header = {0}'s Power: +cmd.power.current = Current: {0} + +# ========== Commands - Economy ========== +cmd.economy.balance = Balance: {0} +cmd.economy.deposited = Deposited {0} into the faction treasury. +cmd.economy.withdrawn = Withdrew {0} from the faction treasury. +cmd.economy.transferred = Transferred {0} to {1}. +cmd.economy.insufficient = Insufficient funds in faction treasury. +cmd.economy.invalid_amount = Invalid amount: {0} +cmd.economy.economy_disabled = Economy is disabled. +cmd.economy.balance_no_permission = You don't have permission to view balances. +cmd.economy.treasury_unavailable = Treasury is not available. +cmd.economy.balance_display = {0}'s treasury: {1} +cmd.economy.deposit_no_permission = You don't have permission to deposit. +cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. +cmd.economy.deposit_usage = Usage: /f deposit +cmd.economy.amount_positive = Amount must be positive. +cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. +cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. +cmd.economy.withdraw_no_permission = You don't have permission to withdraw. +cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. +cmd.economy.withdraw_usage = Usage: /f withdraw +cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} +cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. +cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. +cmd.economy.withdraw_failed = Withdrawal failed: {0} +cmd.economy.transfer_no_permission = You don't have permission to transfer. +cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. +cmd.economy.transfer_usage = Usage: /f money transfer +cmd.economy.transfer_self = Cannot transfer to your own faction. +cmd.economy.transfer_limit_denied = Transfer denied: {0} +cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. +cmd.economy.transfer_failed = Transfer failed: {0} +cmd.economy.log_no_permission = You don't have permission to view the transaction log. +cmd.economy.log_header = Transaction Log (page {0}/{1}) +cmd.economy.log_empty = No transactions found. +cmd.economy.money_help_header = Treasury Commands: +cmd.economy.money_help_balance = /f money balance [faction] - View balance +cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury +cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury +cmd.economy.money_help_transfer = /f money transfer - Transfer between factions +cmd.economy.money_help_log = /f money log [page] [type] - View transaction history + +# ========== Protection - Action Phrases ========== +protection.action.generic = You can't do that +protection.action.build = You can't build or break blocks +protection.action.interact = You can't interact with that +protection.action.door = You can't use doors +protection.action.container = You can't open containers +protection.action.bench = You can't use crafting stations +protection.action.processing = You can't use processing stations +protection.action.seat = You can't use seats +protection.action.light = You can't toggle lights +protection.action.teleporter = You can't use teleporters +protection.action.crate = You can't use crates +protection.action.tame = You can't tame creatures +protection.action.npc = You can't interact with NPCs +protection.action.mount = You can't mount creatures +protection.action.pve = You can't damage creatures +protection.action.item_drop = You can't drop items +protection.action.item_pickup = You can't pick up items + +# ========== Protection - Denial Reasons ========== +protection.denied.safezone = {0} in a SafeZone. +protection.denied.warzone = {0} in a WarZone. +protection.denied.enemy_claim = {0} in enemy territory. +protection.denied.claimed = {0} in claimed territory. +protection.denied.here = {0} here. +protection.denied.zone = {0} in this zone. +protection.denied.faction_perm = {0} here. (Faction permission: {1}) +protection.denied.ally_territory = {0} here. (Ally territory) +protection.denied.error = Protection error — action blocked for safety. + +# ========== Protection - PvP ========== +protection.pvp.safezone = PvP is disabled in SafeZones. +protection.pvp.same_faction = You cannot attack faction members. +protection.pvp.ally = You cannot attack allies. +protection.pvp.spawn_protected = That player has spawn protection. +protection.pvp.territory_disabled = PvP is disabled in this territory. +protection.pvp.generic = You cannot attack this player. + +# ========== Protection - Entity Damage ========== +protection.mob_damage_disabled = Mob damage is disabled in this zone. +protection.pve_damage_disabled = PvE damage is disabled in this zone. +protection.pve_territory_denied = You cannot damage mobs in this territory. + +# ========== Protection - Combat Tag ========== +protection.combat_tag_command = You cannot use that command while combat tagged. + +# ========== Server Announcements ========== +# These are broadcast to all online players for significant faction events. +# {0}, {1} = dynamic values (faction names, player names) +server_announce.faction_created = {0} has founded the faction {1}! +server_announce.faction_disbanded = The faction {0} has been disbanded! +server_announce.leadership_transfer = {0} is now the leader of {1}! +server_announce.overclaim = {0} has overclaimed territory from {1}! +server_announce.war_declared = {0} has declared war on {1}! +server_announce.alliance_formed = {0} and {1} are now allies! +server_announce.alliance_broken = {0} and {1} are no longer allies! + +# ========== Teleport System ========== +teleport.cooldown_wait = You must wait {0} before teleporting again. +teleport.warmup_start = Teleporting to faction home in {0} seconds... +teleport.combat_cancelled = Teleportation cancelled - you are in combat! +teleport.success_default = Teleported to faction home! +teleport.no_home = Your faction has no home set. +teleport.world_not_found = World not found. +teleport.failed = Teleportation failed. +teleport.countdown = Teleporting in {0} seconds... +teleport.countdown_one = Teleporting in 1 second... +teleport.moved_cancelled = Teleportation cancelled - you moved! +teleport.damage_cancelled = Teleportation cancelled - you took damage! +teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. +teleport.mount_entry_blocked = You can't enter this zone while mounted. + +# ========== Chat Display ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang new file mode 100644 index 00000000..9f59bc07 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang @@ -0,0 +1,268 @@ +# Language: Simplified Chinese (zh-CN) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Simplified Chinese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions Admin GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Actions +nav.factions = Factions +nav.players = Players +nav.economy = Economy +nav.zones = Zones +nav.config = Config +nav.backups = Backups +nav.log = Log +nav.updates = Updates +nav.help = Help +nav.version = Version + +# ========== Common Admin Labels ========== +common.faction_not_found = Faction Not Found +common.no_faction = No Faction +common.not_set = Not set +common.on = On +common.off = Off +common.enable = Enable +common.disable = Disable +common.none_paren = (None) +common.invalid_faction = Invalid faction. +common.leader_prefix = Leader: {0} +common.members_suffix = {0} members +common.claims_suffix = {0} claims +common.factions_suffix = {0} factions +common.players_suffix = {0} players +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entries +common.found_suffix = {0} found +common.power_format = {0}/{1} power +common.raidable = Raidable +common.protected = Protected +common.no_description = No description set. +common.officers_more = +{0} more +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Now +common.ago_suffix = {0} ago +common.just_now = just now +common.no_membership_history = No membership history + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Factions: {0} +dashboard.members_prefix = Total Members: {0} +dashboard.claims_prefix = Total Claims: {0} + +# ========== Admin Actions ========== +actions.confirm_reset = Confirm Reset? +actions.confirm_trigger = Confirm Trigger? +actions.kd_reset = Reset K/D for {0} players. +actions.kd_reset_failed = Failed to reset K/D: {0} +actions.upkeep_unavailable = Upkeep processor is not available. +actions.upkeep_triggered = Upkeep collection triggered. +actions.upkeep_failed = Upkeep failed: {0} + +# ========== Admin Disband ========== +disband.faction_gone = Faction no longer exists. +disband.success = Faction '{0}' has been disbanded. +disband.failed = Failed to disband: {0} +disband.no_leader = Faction has no leader, cannot disband. + +# ========== Admin Unclaim All ========== +unclaim.removed = [Admin] Removed {0} claims from {1}. +unclaim.no_claims = {0} had no claims to remove. + +# ========== Admin Factions List ========== +factions.home_not_set = Not set +factions.teleported = Teleported to {0}'s home. +factions.no_home = Faction has no home set. +factions.world_not_found = Target world not found. + +# ========== Admin Faction Info ========== +info.faction_gone = This faction no longer exists. + +# ========== Admin Faction Members ========== +members.sort_role = Role +members.sort_online = Online +members.sort_name = Name +members.sort_power = Power +members.promoted = [Admin] Promoted {0} to {1}. +members.demoted = [Admin] Demoted {0} to {1}. +members.kicked = [Admin] Kicked {0} from the faction. + +# ========== Admin Faction Relations ========== +relations.allies_header = ALLIES ({0}) +relations.enemies_header = ENEMIES ({0}) +relations.no_allies = No allies. +relations.no_enemies = No enemies. +relations.neutral_count = {0} neutral factions +relations.since_today = Since: today +relations.since_one_day = Since: 1 day ago +relations.since_days = Since: {0} days ago +relations.set_ally = [Admin] Set mutual ally status with {0}. +relations.set_enemy = Set mutual enemy status with {0}. +relations.set_neutral = [Admin] Set mutual neutral status with {0}. + +# ========== Admin Faction Settings ========== +settings.locked = This setting is locked by server configuration. +settings.perm_toggled = Set {0} to {1}. +settings.color_changed = Set faction color to {0}. +settings.recruitment_set = Set recruitment to {0}. +settings.no_home = [Admin] This faction has no home set. +settings.home_cleared = Cleared faction home for {0}. + +# ========== Sort Dropdown Labels ========== +sort.power = Power +sort.name = Name +sort.members = Members +sort.balance = Balance + +# ========== Admin Players ========== +players.sort_last_online = Last Online +players.sort_faction = Faction +players.sort_online = Online +players.not_online = Player is not online. +players.world_not_found = Target world not found. +players.teleported = [Admin] Teleported to {0}. + +# ========== Admin Player Info ========== +playerinfo.disband_faction = Disband Faction +playerinfo.kick_leader = Kick Leader +playerinfo.enter_valid_number = Enter a valid number. +playerinfo.enter_valid_positive = Enter a valid positive number. +playerinfo.faction_gone = Faction no longer exists. +playerinfo.kd_reset = Reset K/D for {0}. +playerinfo.kicked_success = Kicked {0} from {1}. +playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. +playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). + +# ========== Admin Economy ========== +economy.no_data = No factions with economy data. +economy.amount_zero = Amount cannot be zero. +economy.enter_amount = Please enter an amount. +economy.invalid_number = Invalid number: {0} +economy.error = An error occurred. +economy.balance_negative = Balance cannot be negative. +economy.failed = Failed: {0} +economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. +economy.bulk_failures = ({0} failed) + +# ========== Admin Zones ========== +zones.not_found = Zone not found. +zones.invalid_id = Invalid zone ID. +zones.deleted = Zone {0} deleted. +zones.delete_failed = Failed to delete zone: {0} +zones.no_chunks = No chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Create Wizard ========== +wizard.enter_name = Please enter a zone name. +wizard.name_too_short = Zone name must be at least {0} characters. +wizard.name_too_long = Zone name cannot exceed {0} characters. +wizard.name_taken = A zone with this name already exists. +wizard.radius_range = Radius must be between 1 and {0}. +wizard.create_failed = Could not create zone: {0} +wizard.created_not_found = Zone created but could not be found. +wizard.created = Created {0} '{1}'! +wizard.chunk_claimed = Claimed chunk ({0}, {1}). +wizard.chunk_failed = Could not claim current chunk: {0} +wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. +wizard.radius_no_claims = No chunks could be claimed (area may be occupied). +wizard.no_claims = Zone created with no claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Rename ========== +zone_rename.zone_gone = Zone no longer exists. +zone_rename.enter_name = Please enter a zone name. +zone_rename.too_short = Zone name must be at least {0} character. +zone_rename.too_long = Zone name cannot exceed {0} characters. +zone_rename.same_name = That's already this zone's name. +zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! +zone_rename.name_taken = A zone with that name already exists. +zone_rename.invalid_name = Invalid zone name. +zone_rename.rename_failed = Failed to rename zone: {0} + +# ========== Zone Change Type ========== +zone_type.zone_gone = Zone no longer exists. +zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). +zone_type.failed = Failed to change zone type: {0} + +# ========== Zone Integration Flags ========== +zone_int.zone_not_found = Zone Not Found +zone_int.no_plugin = (no plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# ========== Activity Log ========== +log.all_types = All Types +log.no_logs = No activity logs matching filters. + +# ========== Version Page ========== +version.active = Active +version.not_found = Not Found +version.not_detected = Not Detected +version.not_installed = Not Installed +version.active_version = Active (v{0}) +version.active_compatible = Active (compatible) +version.active_claims_only = Active (claims only) +version.installed_no_perm = Installed (no perm provider) +version.active_provider = Active ({0}) + +# ========== Admin Main Page ========== +main.reload_hint = Use /f reload to reload configuration. +main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. + +# ========== Zone Flags/Settings ========== +zflags.invalid_flag = Invalid flag. +zflags.zone_not_found = Zone not found. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Reset integration flags to defaults. +zflags.reset_all = Reset all flags to defaults. +zflags.reset_failed = Failed to reset flags: {0} +zflags.back_to_settings = Back to Settings + +# ========== Zone Properties ========== +zprop.current_custom = Current: "{0}" (custom) +zprop.current_default = Current: "{0}" (default) +zprop.pvp_disabled = PvP Disabled +zprop.pvp_enabled = PvP Enabled +zprop.name_empty = Name cannot be empty. +zprop.renamed = Zone renamed to "{0}". +zprop.name_taken = A zone with that name already exists. +zprop.name_invalid = Invalid name (max 32 characters). +zprop.rename_failed = Failed to rename: {0} +zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. +zprop.upper_set = Upper title set. +zprop.upper_reset = Upper title reset to default. +zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. +zprop.lower_set = Lower title set. +zprop.lower_reset = Lower title reset to default. + +# ========== Relations Additional ========== +relations.failed = Failed: {0} + +# ========== Members Additional ========== +members.never = Never +members.teleported = [Admin] Teleported to {0}. + +# ========== Player Info Additional ========== +playerinfo.records = {0} records +playerinfo.joined_date = Joined: {0} +playerinfo.current = Current +playerinfo.left_date = Left: {0} + +# ========== Zone Map ========== +map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' +map.position = Your Position: Chunk ({0}, {1}) +map.zone_gone = Zone no longer exists. +map.claimed = Claimed chunk ({0}, {1}) for {2}. +map.claim_failed = Failed to claim chunk: {0} +map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. +map.unclaim_failed = Failed to unclaim chunk: {0} +map.chunk_belongs = This chunk belongs to {0}. +map.chunk_faction = This chunk is claimed by a faction. +map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang new file mode 100644 index 00000000..4483628b --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang @@ -0,0 +1,446 @@ +# Language: Simplified Chinese (zh-CN) +# Status: Untranslated — English placeholder values +# To translate: Replace English values with Simplified Chinese translations +# Keep keys and {0} placeholders unchanged + +# HyperFactions GUI - English Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Members +nav.invites = Invites +nav.browser = Browse +nav.map = Map +nav.leaderboard = Leaderboard +nav.relations = Relations +nav.treasury = Treasury +nav.settings = Settings +nav.logs = Logs +nav.help = Help +nav.admin = Admin +nav.create = Create + +# ========== Help Category Names ========== +help.category.welcome = Welcome +help.category.your_faction = Your Faction +help.category.power_land = Power & Land +help.category.diplomacy = Diplomacy +help.category.combat = Combat & Safety +help.category.economy = Economy +help.category.quick_ref = Quick Reference + +# ========== Main Menu ========== +main_menu.section_my_faction = My Faction +main_menu.section_get_started = Get Started +main_menu.section_territory = Territory +main_menu.section_browse = Browse +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim to claim territory. + +# ========== Faction Info Page ========== +faction_info.no_description = No description set. +faction_info.status_open = Open +faction_info.status_invite_only = Invite Only +faction_info.status_raidable = Raidable +faction_info.status_protected = Protected +faction_info.officers_more = +{0} more + +# ========== Rename Modal ========== +rename.no_permission = You don't have permission to rename the faction. +rename.enter_name = Please enter a faction name. +rename.too_short = Faction name must be at least {0} characters. +rename.too_long = Faction name cannot exceed {0} characters. +rename.same_name = That's already your faction's name. +rename.name_taken = A faction with that name already exists. +rename.success = Faction renamed from {0} to {1}! + +# ========== Description Modal ========== +desc.no_permission = You don't have permission to edit the description. +desc.display_none = (None) +desc.cleared = Faction description cleared. +desc.updated = Faction description updated! + +# ========== Tag Modal ========== +tag.no_permission = You don't have permission to edit the tag. +tag.display_none = (None) +tag.cleared = Faction tag cleared. +tag.too_short = Tag must be at least {0} character. +tag.too_long = Tag cannot exceed {0} characters. +tag.invalid_format = Tag can only contain letters and numbers. +tag.same_tag = That's already your faction's tag. +tag.tag_taken = A faction with that tag already exists. +tag.success = Faction tag set to [{0}]! + +# ========== Dashboard Page ========== +dashboard.faction_gone = Your faction no longer exists. +dashboard.available = {0} available +dashboard.at_risk = At Risk! +dashboard.online_count = {0} online +dashboard.status_invite = Invite +dashboard.in_grace = IN GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Set Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Leave +dashboard.no_activity = No recent activity. +dashboard.time_now = now +dashboard.time_minutes = {0}m ago +dashboard.time_hours = {0}h ago +dashboard.time_days = {0}d ago +dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Claimed chunk at ({0}, {1}) + +# ========== Faction Main Page ========== +main.no_faction = No Faction +main.joined = You joined the faction! +main.join_failed = Failed to join faction: {0} +main.invite_declined = Invite declined. +main.cooldown = Teleport on cooldown! {0}s remaining. +main.world_not_found = Cannot teleport - world not found. +main.leave_failed = Failed to leave: {0} + +# ========== Shared GUI Labels ========== +common.faction_count = {0} factions +common.leader_label = Leader: {0} +common.sort_power = Power +common.sort_members = Members +common.page_format = {0}/{1} +common.own_faction = (You) + +# ========== Members Page ========== +members.count = {0} members +members.sort_role = Role +members.sort_last_online = Last Online +members.just_now = just now +members.ago = {0} ago +members.never = Never +members.member_not_found = Member not found. +members.promoted = Promoted {0} to {1}. +members.promote_failed = Failed to promote: {0} +members.demoted = Demoted {0} to {1}. +members.demote_failed = Failed to demote: {0} +members.kicked = Kicked {0} from the faction. +members.kick_failed = Failed to kick: {0} + +# ========== Browser Page ========== +browser.sort_name = Name +browser.invalid_faction = Invalid faction. + +# ========== Leaderboard Page ========== +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territory +leaderboard.sort_balance = Balance + +# ========== Player Info Page ========== +playerinfo.now = Now +playerinfo.history_count = {0} records +playerinfo.joined_label = Joined: {0} +playerinfo.current = Current +playerinfo.left_label = Left: {0} +playerinfo.no_history = No membership history +playerinfo.faction_gone = Faction no longer exists. +playerinfo.reason_active = ACTIVE +playerinfo.reason_left = LEFT +playerinfo.reason_kicked = KICKED +playerinfo.reason_disbanded = DISBANDED + +# ========== Relations Page ========== +relations.relation_count = {0} relations +relations.request_count = {0} requests +relations.type_ally = Ally +relations.type_enemy = Enemy +relations.type_incoming = Incoming +relations.type_outgoing = Outgoing +relations.incoming_request = Incoming request +relations.outgoing_request = Outgoing request +relations.empty_relations = No relations yet. +relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. +relations.empty_pending = No pending ally requests. +relations.today = Today +relations.one_day_ago = 1 day ago +relations.days_ago = {0} days ago +relations.now_neutral = Now neutral with {0}. +relations.now_enemies = Now enemies with {0}! +relations.request_sent = Alliance request sent to {0}. +relations.now_allied = Now allied with {0}! +relations.request_declined = Ally request from {0} declined. +relations.request_cancelled = Ally request to {0} cancelled. +relations.failed = Failed: {0} +relations.search_hint = Search for a faction to set relation +relations.no_results = No factions found matching '{0}' +relations.power_display = {0} power +relations.member_count = {0} members + +# ========== Settings Page ========== +settings.officers_only = Only officers and leaders can change faction settings. +settings.display_none = (None) +settings.home_not_set = Not set +settings.no_permission = You don't have permission to change settings. +settings.only_leader_disband = Only the leader can disband the faction. +settings.perm_locked = This setting is locked by the server. +settings.no_perm_edit = You don't have permission to edit territory permissions. +settings.only_leader_officers = Only the leader can change officer access. +settings.pvp_enabled = Enabled +settings.pvp_disabled = Disabled +settings.not_in_territory = You must be in your faction's territory to set home. +settings.home_set = Faction home set to your current location! +settings.recruitment_set = Recruitment set to {0}. +settings.home_no_set = Your faction does not have a home set. +settings.home_deleted = Faction home deleted! + +# ========== Modules Page ========== +modules.treasury_name = Treasury +modules.treasury_desc = Faction bank & economy system +modules.raids_name = Raids +modules.raids_desc = Scheduled faction battles +modules.levels_name = Levels +modules.levels_desc = Faction progression & XP +modules.war_name = War +modules.war_desc = Formal war declarations +modules.coming_soon = Coming Soon +modules.active = Active +modules.view_treasury = View Treasury +modules.unavailable = Unavailable +modules.no_economy = No economy plugin detected +modules.disabled = Disabled +modules.economy_not_available = Economy features are not available on this server + +# ========== Treasury Page ========== +treasury.wallet_label = Your wallet: {0} +treasury.treasury_label = Treasury balance: {0} +treasury.chunks_detail = {0} free + {1} billable chunks +treasury.cost_label = Cost: {0} +treasury.pending = Pending +treasury.auto_pay_on = Auto-pay: ON +treasury.auto_pay_off = Auto-pay: OFF +treasury.runway_90_plus = 90+ days +treasury.runway_days = {0} days +treasury.runway_day = {0} day +treasury.runway_less_day = < 1 day +treasury.runway_no_funds = No funds +treasury.grace_expires = Grace expires in: {0} +treasury.missed_payments = Missed payments: {0} +treasury.pay_to_clear = Pay {0} to clear grace +treasury.system = System +treasury.type_deposit = Deposit +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Transfer In +treasury.type_transfer_out = Transfer Out +treasury.type_player_transfer = Player Transfer +treasury.type_upkeep = Upkeep +treasury.type_tax = Tax Collection +treasury.type_war_cost = War Cost +treasury.type_raid_cost = Raid Cost +treasury.type_spoils = Spoils +treasury.type_admin = Admin Adjustment +treasury.deposit_title = Deposit to Treasury +treasury.withdraw_title = Withdraw from Treasury +treasury.fee_label = Fee ({0}%) +treasury.confirm_deposit = Confirm Deposit +treasury.confirm_withdrawal = Confirm Withdrawal +treasury.from_wallet = {0} from wallet +treasury.to_wallet = {0} to wallet +treasury.enter_valid_amount = Enter a valid positive amount. +treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. +treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. +treasury.deposit_failed_returned = Failed to deposit. Money returned. +treasury.deposited = Deposited {0} into the treasury. +treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) +treasury.no_withdraw_permission = You don't have permission to withdraw. +treasury.withdraw_denied = Withdrawal denied: {0} +treasury.insufficient_treasury = Insufficient funds in treasury. +treasury.withdraw_limit = Withdrawal limit exceeded. +treasury.withdraw_failed = Withdrawal failed: {0} +treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. +treasury.withdrew = Withdrew {0} from the treasury. +treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) +treasury.search_hint = Search for a player or faction +treasury.no_results = No results for '{0}' +treasury.tag_player = [Player] +treasury.tag_faction = [Faction] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale player +treasury.no_transfer_permission = You don't have permission to transfer. +treasury.transfer_denied = Transfer denied: {0} +treasury.invalid_target_faction = Invalid target faction. +treasury.target_faction_gone = Target faction no longer exists. +treasury.transfer_failed = Transfer failed: {0} +treasury.transfer_failed_returned = Transfer failed. Funds returned. +treasury.transferred = Transferred {0} to {1}. +treasury.invalid_target_player = Invalid target player. +treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. +treasury.leader_only_perms = Only the leader can change treasury permissions. +treasury.leader_only_upkeep = Only the leader can change upkeep settings. +treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. + +# ========== Confirmation Pages ========== +confirm.disband_not_leader = Only the leader can disband the faction. +confirm.disbanded = Faction '{0}' has been disbanded. +confirm.disband_failed = Failed to disband faction. +confirm.succession_title = Leadership will transfer to: +confirm.no_members_warning = WARNING: No other members! +confirm.will_disband = Leaving will disband the faction permanently. +confirm.not_in_faction = You are not in this faction. +confirm.not_leader_anymore = You are no longer the leader. +confirm.no_successor = No successor available. Use disband instead. +confirm.transfer_failed = Failed to transfer leadership: {0} +confirm.leader_left = Leadership transferred to {0}. You have left {1}. +confirm.leave_failed = Failed to leave faction: {0} +confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. +confirm.left_faction = You have left {0}. +confirm.faction_gone = Faction no longer exists. +confirm.not_leader_transfer = Only the leader can transfer leadership. +confirm.leadership_transferred = Leadership transferred to {0}. + +# ========== Logs Viewer Page ========== +logs.title = {0} - Activity Logs +logs.entry_count = {0} entries +logs.all_types = All Types +logs.no_logs_type = No logs of this type. +logs.no_logs = No activity logs yet. + +# ========== Chat Page ========== +chat.placeholder = Type a message... +chat.no_messages = No messages yet. +chat.no_ally_permission = You don't have permission for ally chat. +chat.no_permission = No permission. +chat.faction_gone = Your faction no longer exists. +chat.time_now = now +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Invites Page ========== +invites.invite_count = {0} invites +invites.request_count = {0} requests +invites.invited_by = Invited by: {0} +invites.no_message = No message +invites.expires = Expires: {0} +invites.type_outgoing = Outgoing +invites.type_request = Request +invites.invited_by_label = Invited by: +invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. +invites.empty_requests = No join requests. Players can request to join with /f request. +invites.invalid_player = Invalid player. +invites.cancelled_invite = Cancelled invite to {0}. +invites.player_joined = {0} has joined the faction! +invites.faction_full = Faction is full. Cannot accept request. +invites.add_failed = Failed to add player to faction. +invites.request_expired = Request not found or expired. +invites.request_declined = Declined join request from {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h + +# ========== Map Page ========== +map.position = Your Position: Chunk ({0}, {1}) +map.legend_protected = Protected +map.claim_stats = Claims: {0}/{1} ({2} Available) +map.overclaimed = OVERCLAIMED by {0}! +map.power_display = Power: {0}/{1} +map.join_to_claim = Join a faction to claim +map.claim_success = Claimed chunk at ({0}, {1})! +map.claim_not_in_faction = You must be in a faction to claim territory. +map.claim_not_officer = Only officers and leaders can claim territory. +map.claim_already_yours = You already own this chunk. +map.claim_already_claimed = This chunk is already claimed by another faction. +map.claim_not_adjacent = You can only claim chunks adjacent to your territory. +map.claim_max = You have reached your maximum claim limit. +map.claim_world_not_allowed = Claiming is not allowed in this world. +map.claim_orbisguard = This area is protected by OrbisGuard. +map.claim_failed = Failed to claim chunk. +map.unclaim_success = Unclaimed chunk at ({0}, {1}). +map.unclaim_not_in_faction = You must be in a faction. +map.unclaim_not_officer = Only officers and leaders can unclaim territory. +map.unclaim_not_claimed = This chunk is not claimed. +map.unclaim_not_yours = This chunk belongs to another faction. +map.unclaim_home = Cannot unclaim the chunk containing your faction home. +map.unclaim_failed = Failed to unclaim chunk. +map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! +map.overclaim_not_in_faction = You must be in a faction. +map.overclaim_not_officer = Only officers and leaders can overclaim territory. +map.overclaim_already_yours = You already own this chunk. +map.overclaim_ally = You cannot overclaim allied territory. +map.overclaim_has_power = This faction has enough power to defend their territory. +map.overclaim_max = You have reached your maximum claim limit. +map.overclaim_failed = Failed to overclaim chunk. +# ========== Create Faction Page ========== +create.preview_name = Your Faction Name +create.leader_prefix = Leader: {0} +create.enter_name = Please enter a faction name. +create.name_too_short = Faction name must be at least {0} characters. +create.name_too_long = Faction name cannot exceed {0} characters. +create.name_taken = A faction with this name already exists. +create.tag_length = Faction tag must be {0}-{1} characters. +create.tag_format = Faction tag can only contain letters and numbers. +create.desc_too_long = Description cannot exceed {0} characters. +create.created = Faction {0} created successfully! +create.created_no_dashboard = Faction created but could not open dashboard. +create.invalid_name = Invalid faction name. +create.create_failed = Could not create faction. + +# ========== New Player Pages ========== +newplayer.pending_count = {0} pending +newplayer.received_header = RECEIVED INVITES ({0}) +newplayer.requests_header = YOUR REQUESTS ({0}) +newplayer.no_invites = No invites. Browse factions to find one! +newplayer.no_requests = No pending requests. +newplayer.invited_by = Invited by: {0} +newplayer.member_count = {0} members +newplayer.power_count = {0} power +newplayer.claim_count = {0} claims +newplayer.awaiting_review = Awaiting review +newplayer.expires_in = Expires in {0}h +newplayer.time_just_now = just now +newplayer.time_minutes = {0} min ago +newplayer.time_hours = {0}h ago +newplayer.time_days = {0}d ago +newplayer.invalid_faction = Invalid faction. +newplayer.invite_expired = This invite has expired or was revoked. +newplayer.faction_gone = Faction no longer exists. +newplayer.joined = You joined {0}! +newplayer.faction_full = This faction is full. +newplayer.join_failed = Could not join faction. +newplayer.invite_declined = Invite declined. +newplayer.request_cancelled = Cancelled request to join {0}. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Find your new home! +newplayer.sort_power = Power +newplayer.sort_name = Name +newplayer.sort_members = Members +newplayer.btn_accept = Accept +newplayer.btn_pending = Pending +newplayer.btn_join = Join +newplayer.btn_request = Request +newplayer.invite_only_msg = This faction is invite-only. +newplayer.welcome_hint = Welcome! Use /f to open faction menu. +newplayer.faction_open_hint = This faction is open! Click JOIN instead. +newplayer.already_requested = You already have a pending request to this faction. +newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. +newplayer.request_sent = Join request sent to {0}! +newplayer.officer_review = An officer will review your request. +newplayer.map_hint = View Only - Join a faction to claim territory! + +# Player Settings +nav.player_settings = Settings +player_settings.title = Player Settings +player_settings.language_section = Language +player_settings.auto_detect = Auto-detect from client +player_settings.auto_detect_desc = Uses your game client's language setting +player_settings.language_label = Language +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Territory Alerts +player_settings.territory_alerts_desc = Show notifications when entering/leaving territories +player_settings.death_announcements = Death Broadcasts +player_settings.death_announcements_desc = Receive faction member death location announcements +player_settings.power_notifications = Power Changes +player_settings.power_notifications_desc = Show messages when your power changes +player_settings.language_changed = Language changed to {0} +player_settings.pref_enabled = {0} enabled +player_settings.pref_disabled = {0} disabled From 894a7b301146cf07ba220b32a3fa0710aa3c8f12 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 19:03:27 -0700 Subject: [PATCH 20/76] fix: redesign Player Settings UI and fix nav bar placement - Rewrite player_settings.ui to follow established Container/Title/Content pattern from browse.ui and faction_settings.ui - Fix crash from Style (HorizontalAlignment) on Group elements - Fix DropdownBox crash by using DropdownEntryInfo with LocalizableString instead of plain List, and string Value instead of integer index - Move "Player" nav button to far right of both faction and new player nav bars using FlexWeight spacer pattern - Remove player_settings from nav bar button list (rendered separately) - Use rebuild() for state changes since page stores preferences as instance fields (async load race condition with openPlayerSettings) --- .../com/hyperfactions/gui/GuiManager.java | 44 ++--- .../gui/faction/NavBarHelper.java | 19 ++ .../gui/newplayer/NewPlayerNavBarHelper.java | 19 ++ .../gui/shared/page/PlayerSettingsPage.java | 60 +++--- .../UI/Custom/HyperFactions/nav/nav_bar.ui | 1 + .../HyperFactions/shared/player_settings.ui | 173 +++++++++++------- .../Languages/en-US/hyperfactions_gui.lang | 2 +- 7 files changed, 194 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/GuiManager.java b/src/main/java/com/hyperfactions/gui/GuiManager.java index 871ef748..df7a2703 100644 --- a/src/main/java/com/hyperfactions/gui/GuiManager.java +++ b/src/main/java/com/hyperfactions/gui/GuiManager.java @@ -290,29 +290,29 @@ private void registerPages() { 10 )); - // Player Settings page (available to all players) + // Help page (available to all players in faction nav bar) registry.registerEntry(new Entry( - "player_settings", - MessageKeys.Nav.PLAYER_SETTINGS, + "help", + MessageKeys.Nav.HELP, null, (player, ref, store, playerRef, faction, guiManager) -> - new PlayerSettingsPage(playerRef, factionManager.get(), - plugin.get().getPlayerStorage(), guiManager), + new HelpMainPage(playerRef, guiManager, factionManager.get()), true, // Show in nav bar false, // Doesn't require faction 11 )); - // Help page (available to all players in faction nav bar) + // Player Settings page (registered but NOT in nav bar — rendered separately on far right) registry.registerEntry(new Entry( - "help", - MessageKeys.Nav.HELP, + "player_settings", + MessageKeys.Nav.PLAYER_SETTINGS, null, (player, ref, store, playerRef, faction, guiManager) -> - new HelpMainPage(playerRef, guiManager, factionManager.get()), - true, // Show in nav bar + new PlayerSettingsPage(playerRef, factionManager.get(), + plugin.get().getPlayerStorage(), guiManager), + false, // NOT in nav bar (rendered separately on far right) false, // Doesn't require faction - 12 + 99 )); // Admin page (requires permission) - accessed via /f admin, not in main nav bar @@ -399,27 +399,27 @@ private void registerNewPlayerPages() { 4 )); - // Player Settings page + // Help Page registry.registerEntry(new NewPlayerPageRegistry.Entry( - "player_settings", - MessageKeys.Nav.PLAYER_SETTINGS, + "help", + MessageKeys.Nav.HELP, null, (player, ref, store, playerRef, guiManager) -> - new PlayerSettingsPage(playerRef, factionManager.get(), - plugin.get().getPlayerStorage(), guiManager), + new HelpMainPage(playerRef, guiManager, factionManager.get()), true, 5 )); - // Help Page + // Player Settings page (registered but NOT in nav bar — rendered separately on far right) registry.registerEntry(new NewPlayerPageRegistry.Entry( - "help", - MessageKeys.Nav.HELP, + "player_settings", + MessageKeys.Nav.PLAYER_SETTINGS, null, (player, ref, store, playerRef, guiManager) -> - new HelpMainPage(playerRef, guiManager, factionManager.get()), - true, - 6 + new PlayerSettingsPage(playerRef, factionManager.get(), + plugin.get().getPlayerStorage(), guiManager), + false, + 99 )); Logger.debug("[GUI] Registered %d pages with NewPlayerPageRegistry", registry.getEntries().size()); diff --git a/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java b/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java index 34e09ec0..73fa9a0c 100644 --- a/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/faction/NavBarHelper.java @@ -6,10 +6,14 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.shared.NavBarUtil; import com.hyperfactions.gui.shared.data.NavAwareData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; +import com.hypixel.hytale.server.core.ui.builder.EventData; import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; import com.hypixel.hytale.server.core.universe.PlayerRef; @@ -61,6 +65,21 @@ public static void setupBar( cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", "Group #NavCards { LayoutMode: Left; }"); NavBarUtil.buildButtons(entries, "#NavCards", UIPaths.NAV_BUTTON, "#NavActionButton", "Nav", "NavBar", playerRef, cmd, events); + + // Flex spacer pushes "Player" button to far right + cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", + "Group { FlexWeight: 1; }"); + + // "Player" button on far right + cmd.append("#HyperFactionsNavBar #NavBarButtons", UIPaths.NAV_BUTTON); + cmd.set("#HyperFactionsNavBar #NavBarButtons[2] #NavActionButton.Text", + HFMessages.get(playerRef, MessageKeys.Nav.PLAYER_SETTINGS)); + events.addEventBinding( + CustomUIEventBindingType.Activating, + "#HyperFactionsNavBar #NavBarButtons[2] #NavActionButton", + EventData.of("Button", "Nav").append("NavBar", "player_settings"), + false + ); } /** diff --git a/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java b/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java index c1ee40f0..20f913df 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/NewPlayerNavBarHelper.java @@ -5,10 +5,14 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.shared.NavBarUtil; import com.hyperfactions.gui.shared.data.NavAwareData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; +import com.hypixel.hytale.server.core.ui.builder.EventData; import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; import com.hypixel.hytale.server.core.universe.PlayerRef; @@ -57,6 +61,21 @@ public static void setupBar( cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", "Group #NavCards { LayoutMode: Left; }"); NavBarUtil.buildButtons(entries, "#NavCards", UIPaths.NAV_BUTTON, "#NavActionButton", "Nav", "NavBar", playerRef, cmd, events); + + // Flex spacer pushes "Player" button to far right + cmd.appendInline("#HyperFactionsNavBar #NavBarButtons", + "Group { FlexWeight: 1; }"); + + // "Player" button on far right + cmd.append("#HyperFactionsNavBar #NavBarButtons", UIPaths.NAV_BUTTON); + cmd.set("#HyperFactionsNavBar #NavBarButtons[2] #NavActionButton.Text", + HFMessages.get(playerRef, MessageKeys.Nav.PLAYER_SETTINGS)); + events.addEventBinding( + CustomUIEventBindingType.Activating, + "#HyperFactionsNavBar #NavBarButtons[2] #NavActionButton", + EventData.of("Button", "Nav").append("NavBar", "player_settings"), + false + ); } /** diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index a376cbc8..f22103c2 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -9,7 +9,6 @@ import com.hyperfactions.manager.FactionManager; import com.hyperfactions.storage.PlayerStorage; import com.hyperfactions.util.HFMessages; -import com.hyperfactions.util.Logger; import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.MessageUtil; import com.hypixel.hytale.component.Ref; @@ -23,10 +22,11 @@ import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import com.hypixel.hytale.server.core.ui.DropdownEntryInfo; +import com.hypixel.hytale.server.core.ui.LocalizableString; import java.util.List; import java.util.UUID; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * Player Settings page for personal preferences. @@ -108,9 +108,6 @@ public void build(Ref ref, UICommandBuilder cmd, NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); } - // Page title - cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.PlayerSettings.TITLE)); - // === Language Section === cmd.set("#LanguageSectionTitle.Text", HFMessages.get(playerRef, MessageKeys.PlayerSettings.LANGUAGE_SECTION)); @@ -132,18 +129,21 @@ public void build(Ref ref, UICommandBuilder cmd, ); // Language dropdown - cmd.set("#LanguageDropdown.Entries", LOCALE_DISPLAY_NAMES); - int selectedIndex = 0; - if (languagePreference != null) { - int idx = AVAILABLE_LOCALES.indexOf(languagePreference); - if (idx >= 0) { - selectedIndex = idx; - } + List localeEntries = new java.util.ArrayList<>(); + for (int i = 0; i < AVAILABLE_LOCALES.size(); i++) { + localeEntries.add(new DropdownEntryInfo( + LocalizableString.fromString(LOCALE_DISPLAY_NAMES.get(i)), + AVAILABLE_LOCALES.get(i))); } - cmd.set("#LanguageDropdown.Value", selectedIndex); + cmd.set("#LanguageDropdown.Entries", localeEntries); + String selectedLocale = (languagePreference != null && AVAILABLE_LOCALES.contains(languagePreference)) + ? languagePreference : AVAILABLE_LOCALES.get(0); + cmd.set("#LanguageDropdown.Value", selectedLocale); // Disable dropdown when auto-detect is on - cmd.set("#LanguageRow.Visible", !autoDetect); + if (autoDetect) { + cmd.set("#LanguageDropdown.Disabled", true); + } // Language dropdown change event events.addEventBinding( @@ -243,27 +243,23 @@ public void handleDataEvent(Ref ref, Store store, } savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); HFMessages.setLanguageOverride(uuid, languagePreference); - sendUpdate(); + rebuild(); } case "LanguageChanged" -> { - // Dropdown value is an index into AVAILABLE_LOCALES + // Dropdown value is the locale code string (e.g. "en-US") if (data.language != null) { - try { - int index = Integer.parseInt(data.language); - if (index >= 0 && index < AVAILABLE_LOCALES.size()) { - languagePreference = AVAILABLE_LOCALES.get(index); - savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); - HFMessages.setLanguageOverride(uuid, languagePreference); - player.sendMessage(MessageUtil.successText(playerRef, - MessageKeys.PlayerSettings.LANGUAGE_CHANGED, - LOCALE_DISPLAY_NAMES.get(index))); - } - } catch (NumberFormatException e) { - // Invalid dropdown value + int idx = AVAILABLE_LOCALES.indexOf(data.language); + if (idx >= 0) { + languagePreference = data.language; + savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); + HFMessages.setLanguageOverride(uuid, languagePreference); + player.sendMessage(MessageUtil.successText(playerRef, + MessageKeys.PlayerSettings.LANGUAGE_CHANGED, + LOCALE_DISPLAY_NAMES.get(idx))); } } - sendUpdate(); + rebuild(); } case "ToggleTerritoryAlerts" -> { @@ -274,7 +270,7 @@ public void handleDataEvent(Ref ref, Store store, HFMessages.get(playerRef, MessageKeys.PlayerSettings.TERRITORY_ALERTS)) : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", HFMessages.get(playerRef, MessageKeys.PlayerSettings.TERRITORY_ALERTS))); - sendUpdate(); + rebuild(); } case "ToggleDeathAnnouncements" -> { @@ -285,7 +281,7 @@ public void handleDataEvent(Ref ref, Store store, HFMessages.get(playerRef, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS)) : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", HFMessages.get(playerRef, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS))); - sendUpdate(); + rebuild(); } case "TogglePowerNotifications" -> { @@ -296,7 +292,7 @@ public void handleDataEvent(Ref ref, Store store, HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS)) : MessageUtil.text(playerRef, MessageKeys.PlayerSettings.PREF_DISABLED, "#FFAA00", HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS))); - sendUpdate(); + rebuild(); } default -> sendUpdate(); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/nav/nav_bar.ui b/src/main/resources/Common/UI/Custom/HyperFactions/nav/nav_bar.ui index b068e8d4..885487c3 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/nav/nav_bar.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/nav/nav_bar.ui @@ -41,6 +41,7 @@ } Group #NavBarButtons { + FlexWeight: 1; LayoutMode: Left; } }; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui index a8776a8e..c9792e7d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui @@ -1,56 +1,53 @@ +// Player Settings Page - Language & Notification Preferences +// Available to all players (faction and non-faction) + $C = "../../Common.ui"; $S = "../shared/styles.ui"; $Nav = "../nav/nav_bar.ui"; $C.@PageOverlay { - Group { - Anchor: (Width: 620, Height: 520); - Style: (HorizontalAlignment: Center, VerticalAlignment: Center); - LayoutMode: Top; - - // Navigation bar - $Nav.@NavBar #HyperFactionsNavBar {} - - // Page Title - Group { - Anchor: (Height: 40); - Style: (HorizontalAlignment: Center); - - Label #PageTitle { - Anchor: (Height: 36); - Style: (FontSize: 20, TextColor: #FFFFFF, HorizontalAlignment: Center, VerticalAlignment: Center); - Text: "Player Settings"; + $Nav.@HyperFactionsNavBar #HyperFactionsNavBar {} + + $C.@Container { + Anchor: (Width: 550, Height: 480); + + #Title { + $C.@Title { + @Text = "Player Settings"; } } - // Content Area - Group #Content { - Anchor: (Height: 430); + #Content { LayoutMode: Top; - Padding: (Left: 24, Right: 24, Top: 8, Bottom: 8); + Padding: (Left: 20, Right: 20, Top: 10, Bottom: 10); // === Language Section === - $C.@DecoratedContainer { - Anchor: (Bottom: 12); - LayoutMode: Top; - Padding: (Full: 12); + Label #LanguageSectionTitle { + Text: "Language"; + Style: (FontSize: 13, TextColor: #55FFFF, RenderBold: true); + Anchor: (Height: 22, Bottom: 4); + } + Group { + Anchor: (Height: 1, Bottom: 8); + Background: (Color: #334455); + } - Label #LanguageSectionTitle { - Anchor: (Height: 26); - Style: (FontSize: 15, TextColor: #55FFFF); - Text: "Language"; - } + Group { + Background: (Color: #1a2a3a); + Padding: (Left: 12, Right: 12, Top: 8, Bottom: 8); + LayoutMode: Top; + Anchor: (Bottom: 12); // Auto-detect checkbox $C.@CheckBoxWithLabel #AutoDetectCB { @Text = "Auto-detect from client"; @Checked = true; - Anchor: (Height: 28, Bottom: 4); + Anchor: (Height: 28, Bottom: 2); } Label #AutoDetectDesc { - Anchor: (Height: 18, Bottom: 8); - Style: (FontSize: 11, TextColor: #888888); + Anchor: (Height: 16, Bottom: 8); + Style: (FontSize: 10, TextColor: #666666); Text: "Uses your game client's language setting"; } @@ -60,73 +57,111 @@ $C.@PageOverlay { LayoutMode: Left; Label #LanguageLabel { - Anchor: (Width: 90, Height: 26); - Style: (FontSize: 13, TextColor: #AAAAAA, VerticalAlignment: Center); + Anchor: (Width: 80, Height: 26); + Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Text: "Language"; } - Group { - Anchor: (Width: 200, Height: 26); - Background: (Color: #0d1520); - Padding: (Left: 6, Right: 6); - - DropdownBox #LanguageDropdown { - Anchor: (Height: 26); - } + DropdownBox #LanguageDropdown { + Style: $C.@DefaultDropdownBoxStyle; + Anchor: (Height: 28, Width: 180); } } } // === Notifications Section === - $C.@DecoratedContainer { - LayoutMode: Top; - Padding: (Full: 12); + Label #NotifSectionTitle { + Text: "Notifications"; + Style: (FontSize: 13, TextColor: #55FFFF, RenderBold: true); + Anchor: (Height: 22, Bottom: 4); + } + Group { + Anchor: (Height: 1, Bottom: 8); + Background: (Color: #334455); + } - Label #NotifSectionTitle { - Anchor: (Height: 26); - Style: (FontSize: 15, TextColor: #55FFFF); - Text: "Notifications"; - } + Group { + Background: (Color: #1a2a3a); + Padding: (Left: 12, Right: 12, Top: 8, Bottom: 8); + LayoutMode: Top; // Territory Alerts - $C.@CheckBoxWithLabel #TerritoryAlertsCB { - @Text = "Territory Alerts"; - @Checked = true; - Anchor: (Height: 28, Bottom: 2); + Group { + LayoutMode: Left; + Anchor: (Height: 28, Bottom: 1); + Background: (Color: #0d1520); + Padding: (Left: 6, Right: 6); + + Label { + Text: "Territory Alerts"; + Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); + Anchor: (Width: 160); + } + Label { FlexWeight: 1; } + $C.@CheckBoxWithLabel #TerritoryAlertsCB { + @Text = ""; @Checked = true; + Anchor: (Height: 22, Width: 44); + } } Label #TerritoryAlertsDesc { - Anchor: (Height: 18, Bottom: 8); - Style: (FontSize: 11, TextColor: #888888); + Anchor: (Height: 16, Bottom: 6); + Style: (FontSize: 10, TextColor: #555555); Text: "Show notifications when entering/leaving territories"; } // Death Announcements - $C.@CheckBoxWithLabel #DeathAnnounceCB { - @Text = "Death Broadcasts"; - @Checked = true; - Anchor: (Height: 28, Bottom: 2); + Group { + LayoutMode: Left; + Anchor: (Height: 28, Bottom: 1); + Background: (Color: #111a28); + Padding: (Left: 6, Right: 6); + + Label { + Text: "Death Broadcasts"; + Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); + Anchor: (Width: 160); + } + Label { FlexWeight: 1; } + $C.@CheckBoxWithLabel #DeathAnnounceCB { + @Text = ""; @Checked = true; + Anchor: (Height: 22, Width: 44); + } } Label #DeathAnnounceDesc { - Anchor: (Height: 18, Bottom: 8); - Style: (FontSize: 11, TextColor: #888888); + Anchor: (Height: 16, Bottom: 6); + Style: (FontSize: 10, TextColor: #555555); Text: "Receive faction member death location announcements"; } // Power Notifications - $C.@CheckBoxWithLabel #PowerNotifCB { - @Text = "Power Changes"; - @Checked = true; - Anchor: (Height: 28, Bottom: 2); + Group { + LayoutMode: Left; + Anchor: (Height: 28, Bottom: 1); + Background: (Color: #0d1520); + Padding: (Left: 6, Right: 6); + + Label { + Text: "Power Changes"; + Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); + Anchor: (Width: 160); + } + Label { FlexWeight: 1; } + $C.@CheckBoxWithLabel #PowerNotifCB { + @Text = ""; @Checked = true; + Anchor: (Height: 22, Width: 44); + } } Label #PowerNotifDesc { - Anchor: (Height: 18); - Style: (FontSize: 11, TextColor: #888888); + Anchor: (Height: 16); + Style: (FontSize: 10, TextColor: #555555); Text: "Show messages when your power changes"; } } } } } + +$C.@BackButton {} diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 28a16084..3229e562 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -423,7 +423,7 @@ newplayer.officer_review = An officer will review your request. newplayer.map_hint = View Only - Join a faction to claim territory! # Player Settings -nav.player_settings = Settings +nav.player_settings = Player player_settings.title = Player Settings player_settings.language_section = Language player_settings.auto_detect = Auto-detect from client From e62e2d9156b3d90544d19de3bf8263d6b772909b Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 19:11:28 -0700 Subject: [PATCH 21/76] feat: use native locale display names and add es-ES to language selector MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace hardcoded LOCALE_DISPLAY_NAMES list with Java's Locale class to generate native display names (e.g. "Español (España)") - Add es-ES as second available locale in the language dropdown - Fix es-ES nav.player_settings to match en-US ("Jugador" not "Ajustes") --- .../gui/shared/page/PlayerSettingsPage.java | 46 +++++++++++-------- .../Languages/es-ES/hyperfactions_gui.lang | 2 +- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index f22103c2..30e9c989 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -25,6 +25,7 @@ import com.hypixel.hytale.server.core.ui.DropdownEntryInfo; import com.hypixel.hytale.server.core.ui.LocalizableString; import java.util.List; +import java.util.Locale; import java.util.UUID; import org.jetbrains.annotations.NotNull; @@ -39,13 +40,23 @@ public class PlayerSettingsPage extends InteractiveCustomUIPage AVAILABLE_LOCALES = List.of( - "en-US" + "en-US", + "es-ES" ); - /** Display names for available locales (parallel to AVAILABLE_LOCALES). */ - private static final List LOCALE_DISPLAY_NAMES = List.of( - "English (US)" - ); + /** + * Returns the native display name for a locale code (e.g. "es-ES" → "Español (España)"). + * Uses Java's Locale class so each language name is shown in its own language. + */ + private static String nativeDisplayName(String localeCode) { + Locale locale = Locale.forLanguageTag(localeCode); + String name = locale.getDisplayName(locale); + // Capitalize first letter (Java returns lowercase for some locales) + if (!name.isEmpty()) { + name = Character.toUpperCase(name.charAt(0)) + name.substring(1); + } + return name; + } private final PlayerRef playerRef; @@ -128,12 +139,12 @@ public void build(Ref ref, UICommandBuilder cmd, false ); - // Language dropdown + // Language dropdown — display names in native language List localeEntries = new java.util.ArrayList<>(); - for (int i = 0; i < AVAILABLE_LOCALES.size(); i++) { + for (String code : AVAILABLE_LOCALES) { localeEntries.add(new DropdownEntryInfo( - LocalizableString.fromString(LOCALE_DISPLAY_NAMES.get(i)), - AVAILABLE_LOCALES.get(i))); + LocalizableString.fromString(nativeDisplayName(code)), + code)); } cmd.set("#LanguageDropdown.Entries", localeEntries); String selectedLocale = (languagePreference != null && AVAILABLE_LOCALES.contains(languagePreference)) @@ -248,16 +259,13 @@ public void handleDataEvent(Ref ref, Store store, case "LanguageChanged" -> { // Dropdown value is the locale code string (e.g. "en-US") - if (data.language != null) { - int idx = AVAILABLE_LOCALES.indexOf(data.language); - if (idx >= 0) { - languagePreference = data.language; - savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); - HFMessages.setLanguageOverride(uuid, languagePreference); - player.sendMessage(MessageUtil.successText(playerRef, - MessageKeys.PlayerSettings.LANGUAGE_CHANGED, - LOCALE_DISPLAY_NAMES.get(idx))); - } + if (data.language != null && AVAILABLE_LOCALES.contains(data.language)) { + languagePreference = data.language; + savePreference(uuid, d -> d.setLanguagePreference(languagePreference)); + HFMessages.setLanguageOverride(uuid, languagePreference); + player.sendMessage(MessageUtil.successText(playerRef, + MessageKeys.PlayerSettings.LANGUAGE_CHANGED, + nativeDisplayName(data.language))); } rebuild(); } diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index 72379ca9..2fa3285c 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -423,7 +423,7 @@ newplayer.officer_review = Un oficial revisara tu solicitud. newplayer.map_hint = Solo Vista - Unete a una faccion para reclamar territorio! # Ajustes de Jugador -nav.player_settings = Ajustes +nav.player_settings = Jugador player_settings.title = Ajustes del Jugador player_settings.language_section = Idioma player_settings.auto_detect = Detectar automaticamente del cliente From 028e53e8dc512fdaf043feae512043194bd807d3 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 20:16:59 -0700 Subject: [PATCH 22/76] feat: localize all GUI pages with i18n support Add cmd.set() calls to override hardcoded English text in all .ui templates with HFMessages.get() lookups. Covers faction pages, admin pages, shared/modal pages, new player pages, and help pages. - Add ~570 new MessageKeys constants across all page domains - Add ~280 new en-US .lang keys for GUI labels - Add ~320 new es-ES admin .lang keys - Add ~280 new es-ES GUI .lang keys - Add element IDs to ~95 .ui template files for runtime text override - Add common keys: clear, back, leave, transfer, disband --- .../gui/admin/page/AdminActionsPage.java | 10 + .../gui/admin/page/AdminActivityLogPage.java | 20 +- .../gui/admin/page/AdminBackupsPage.java | 9 + .../gui/admin/page/AdminBulkEconomyPage.java | 11 + .../gui/admin/page/AdminConfigPage.java | 9 + .../gui/admin/page/AdminDashboardPage.java | 15 + .../admin/page/AdminEconomyAdjustPage.java | 13 + .../gui/admin/page/AdminEconomyPage.java | 29 +- .../gui/admin/page/AdminFactionInfoPage.java | 33 + .../admin/page/AdminFactionMembersPage.java | 9 + .../admin/page/AdminFactionRelationsPage.java | 7 + .../admin/page/AdminFactionSettingsPage.java | 6 + .../gui/admin/page/AdminFactionsPage.java | 7 + .../gui/admin/page/AdminHelpPage.java | 9 + .../gui/admin/page/AdminMainPage.java | 7 + .../gui/admin/page/AdminPlayerInfoPage.java | 34 + .../gui/admin/page/AdminPlayersPage.java | 7 + .../gui/admin/page/AdminUpdatesPage.java | 9 + .../gui/admin/page/AdminVersionPage.java | 46 +- .../page/AdminZoneIntegrationFlagsPage.java | 11 + .../gui/admin/page/AdminZoneMapPage.java | 17 +- .../gui/admin/page/AdminZonePage.java | 22 +- .../admin/page/AdminZonePropertiesPage.java | 19 + .../gui/admin/page/AdminZoneSettingsPage.java | 21 + .../gui/faction/page/ChunkMapPage.java | 15 + .../gui/faction/page/DisbandConfirmPage.java | 7 + .../gui/faction/page/FactionBrowserPage.java | 7 + .../gui/faction/page/FactionChatPage.java | 6 + .../faction/page/FactionDashboardPage.java | 31 +- .../gui/faction/page/FactionHelpPage.java | 27 + .../gui/faction/page/FactionInvitesPage.java | 7 + .../faction/page/FactionLeaderboardPage.java | 10 + .../gui/faction/page/FactionMembersPage.java | 7 + .../gui/faction/page/FactionModulesPage.java | 5 + .../faction/page/FactionRelationsPage.java | 8 + .../gui/faction/page/FactionSettingsPage.java | 57 ++ .../faction/page/LeaderLeaveConfirmPage.java | 7 + .../gui/faction/page/LeaveConfirmPage.java | 7 + .../gui/faction/page/LogsViewerPage.java | 8 + .../gui/faction/page/PlayerInfoPage.java | 17 + .../gui/faction/page/TransferConfirmPage.java | 7 + .../gui/faction/page/TreasuryPage.java | 26 + .../faction/page/TreasurySettingsPage.java | 13 + .../hyperfactions/gui/help/HelpCategory.java | 10 +- .../gui/help/page/HelpMainPage.java | 11 + .../gui/newplayer/page/CreateFactionPage.java | 47 ++ .../gui/newplayer/page/HelpPage.java | 27 +- .../gui/newplayer/page/InvitesPage.java | 3 + .../newplayer/page/NewPlayerBrowsePage.java | 7 + .../gui/shared/page/DescriptionModalPage.java | 8 + .../gui/shared/page/FactionInfoPage.java | 24 + .../gui/shared/page/MainMenuPage.java | 2 +- .../gui/shared/page/PlayerSettingsPage.java | 12 + .../gui/shared/page/RenameModalPage.java | 7 + .../gui/shared/page/TagModalPage.java | 8 + .../com/hyperfactions/util/MessageKeys.java | 617 +++++++++++++++++- .../HyperFactions/admin/admin_actions.ui | 12 +- .../HyperFactions/admin/admin_activity_log.ui | 14 +- .../HyperFactions/admin/admin_bulk_economy.ui | 12 +- .../HyperFactions/admin/admin_dashboard.ui | 24 +- .../HyperFactions/admin/admin_economy.ui | 24 +- .../admin/admin_economy_adjust.ui | 12 +- .../HyperFactions/admin/admin_faction_info.ui | 32 +- .../admin/admin_faction_members.ui | 4 +- .../admin/admin_faction_relations.ui | 4 +- .../admin/admin_faction_settings.ui | 4 +- .../HyperFactions/admin/admin_factions.ui | 4 +- .../HyperFactions/admin/admin_player_info.ui | 28 +- .../HyperFactions/admin/admin_players.ui | 4 +- .../HyperFactions/admin/admin_version.ui | 14 +- .../admin/admin_zone_integration_flags.ui | 10 +- .../HyperFactions/admin/admin_zone_map.ui | 16 +- .../admin/admin_zone_map_terrain.ui | 14 +- .../admin/admin_zone_properties.ui | 12 +- .../admin/admin_zone_settings.ui | 28 +- .../Custom/HyperFactions/admin/admin_zones.ui | 2 +- .../admin/unclaim_all_confirm.ui | 6 +- .../admin/zone_change_type_modal.ui | 6 +- .../HyperFactions/admin/zone_rename_modal.ui | 4 +- .../Custom/HyperFactions/faction/chunk_map.ui | 18 +- .../faction/chunk_map_terrain.ui | 16 +- .../HyperFactions/faction/faction_browser.ui | 6 +- .../HyperFactions/faction/faction_chat.ui | 2 +- .../faction/faction_dashboard.ui | 40 +- .../HyperFactions/faction/faction_invites.ui | 2 +- .../faction/faction_leaderboard.ui | 12 +- .../HyperFactions/faction/faction_members.ui | 6 +- .../HyperFactions/faction/faction_modules.ui | 4 +- .../faction/faction_relations.ui | 2 +- .../HyperFactions/faction/faction_settings.ui | 94 +-- .../HyperFactions/faction/faction_treasury.ui | 36 +- .../HyperFactions/faction/logs_viewer.ui | 8 +- .../HyperFactions/faction/player_info.ui | 24 +- .../HyperFactions/faction/transfer_confirm.ui | 6 +- .../faction/treasury_settings.ui | 20 +- .../UI/Custom/HyperFactions/help/help_main.ui | 2 +- .../Custom/HyperFactions/newplayer/browse.ui | 6 +- .../HyperFactions/newplayer/create_faction.ui | 80 +-- .../UI/Custom/HyperFactions/newplayer/help.ui | 46 +- .../Custom/HyperFactions/newplayer/invites.ui | 2 +- .../HyperFactions/newplayer/map_readonly.ui | 4 +- .../HyperFactions/shared/description_modal.ui | 6 +- .../HyperFactions/shared/disband_confirm.ui | 6 +- .../Custom/HyperFactions/shared/error_page.ui | 2 +- .../HyperFactions/shared/faction_info.ui | 26 +- .../shared/leader_leave_confirm.ui | 4 +- .../HyperFactions/shared/leave_confirm.ui | 6 +- .../HyperFactions/shared/player_settings.ui | 25 +- .../HyperFactions/shared/rename_modal.ui | 6 +- .../Custom/HyperFactions/shared/tag_modal.ui | 8 +- .../Server/Languages/en-US/hyperfactions.lang | 5 + .../Languages/en-US/hyperfactions_admin.lang | 319 +++++++++ .../Languages/en-US/hyperfactions_gui.lang | 283 ++++++++ .../Server/Languages/es-ES/hyperfactions.lang | 5 + .../Languages/es-ES/hyperfactions_admin.lang | 319 +++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 277 ++++++++ 116 files changed, 3021 insertions(+), 437 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java index 9a4b96ff..caec4d5e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java @@ -69,6 +69,16 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar (highlight "actions" tab) AdminNavBarHelper.setupBar(playerRef, "actions", cmd, events); + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIONS)); + cmd.set("#CombatStatsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_COMBAT_STATS)); + cmd.set("#CombatDescLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_COMBAT_DESC)); + cmd.set("#EconomyLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_ECONOMY)); + cmd.set("#EconomyDescLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_ECONOMY_DESC)); + cmd.set("#BulkAdjustBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_BULK_ADJUST)); + cmd.set("#UpkeepLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_UPKEEP_COLLECTION)); + cmd.set("#UpkeepDescLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_UPKEEP_DESC)); + buildContent(cmd, events); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index 228fb8fb..dda724c0 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -98,6 +98,24 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "log", cmd, events); + // Localize page title + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIVITY_LOG)); + + // Localize filter labels + cmd.set("#TypeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_LOG_TYPE)); + cmd.set("#TimeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_LOG_TIME)); + cmd.set("#PlayerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_LOG_PLAYER)); + + // Localize column headers + cmd.set("#ColTime.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_TIME)); + cmd.set("#ColType.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_TYPE)); + cmd.set("#ColFaction.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_FACTION)); + cmd.set("#ColMessage.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_MESSAGE)); + + // Localize pagination buttons + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + buildLogList(cmd, events); } @@ -196,7 +214,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { // Empty state if (index == 0) { cmd.appendInline("#LogList", - "Label { Text: \"No activity logs matching filters.\"; " + "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_LOG_NO_LOGS) + "\"; " + "Style: (FontSize: 11, TextColor: #555555); Anchor: (Height: 30); }"); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java index 6b309f51..48fcc22b 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java @@ -4,6 +4,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.admin.AdminNavBarHelper; import com.hyperfactions.gui.admin.data.AdminBackupsData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -39,6 +41,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar (must be after template load) AdminNavBarHelper.setupBar(playerRef, "backups", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BACKUPS)); + cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACKUP_HEADING)); + cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); + cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACKUP_DESC1)); + cmd.set("#Description2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACKUP_DESC2)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java index 9927c363..f6240104 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java @@ -64,6 +64,17 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "actions", cmd, events); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BULK_ECONOMY)); + cmd.set("#SectionHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_HEADER)); + cmd.set("#FactionsInfoLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_FACTIONS_LABEL)); + cmd.set("#TotalBalanceInfoLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_TOTAL_LABEL)); + cmd.set("#AmountLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_AMOUNT_HINT)); + cmd.set("#HintLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_HINT)); + cmd.set("#WarningLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_WARNING_MSG)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_APPLY_ALL)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + int factionCount = economyManager.getFactionEconomyCount(); BigDecimal totalBalance = economyManager.getServerTotalBalance(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java index 2069f8aa..0a1c7179 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java @@ -4,6 +4,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.admin.AdminNavBarHelper; import com.hyperfactions.gui.admin.data.AdminConfigData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -39,6 +41,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar (must be after template load) AdminNavBarHelper.setupBar(playerRef, "config", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_CONFIG)); + cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CONFIG_HEADING)); + cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); + cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CONFIG_DESC1)); + cmd.set("#Description2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CONFIG_DESC2)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java index a166282f..7ddb3f9d 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java @@ -70,6 +70,21 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "dashboard", cmd, events); + // Localize page title and stat labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_DASHBOARD)); + cmd.set("#ServerStatsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_SERVER_STATS)); + cmd.set("#FactionsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_FACTIONS)); + cmd.set("#TotalMembersLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_TOTAL_MEMBERS)); + cmd.set("#TotalClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_TOTAL_CLAIMS)); + cmd.set("#ZonesLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_ZONES)); + cmd.set("#SafeWarLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_SAFE_WAR)); + cmd.set("#TotalPowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_TOTAL_POWER)); + cmd.set("#AvgPowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_AVG_POWER)); + cmd.set("#TotalEconomyLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_TOTAL_ECONOMY)); + cmd.set("#WealthiestLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_WEALTHIEST)); + cmd.set("#AvgBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_AVG_BALANCE)); + cmd.set("#BypassLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_PROTECTION_BYPASS)); + // Calculate server-wide statistics Collection allFactions = factionManager.getAllFactions(); int totalFactions = allFactions.size(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java index 7bff708a..ff907247 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java @@ -69,6 +69,19 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "economy", cmd, events); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY_ADJUST)); + cmd.set("#SectionHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_HEADER)); + cmd.set("#FactionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_FACTION_LABEL)); + cmd.set("#CurrentBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_CURRENT_BALANCE)); + cmd.set("#AmountLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_AMOUNT_HINT)); + cmd.set("#HintText.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_PREVIEW_HINT)); + cmd.set("#AdjustmentLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_ADJUSTMENT)); + cmd.set("#NewBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_NEW_BALANCE)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + cmd.set("#SetBalanceBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_SET_BALANCE)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_CONFIRM)); + // Get faction info Faction faction = factionManager.getFaction(factionId); if (faction == null) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java index 0417282f..8acad8fe 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java @@ -80,6 +80,33 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "economy", cmd, events); + // Localize page title + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY)); + + // Localize stat card labels + cmd.set("#TotalBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_TOTAL_BALANCE)); + cmd.set("#FactionsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_FACTIONS)); + cmd.set("#AvgBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_AVG_BALANCE)); + + // Localize upkeep stat labels + cmd.set("#InGraceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_IN_GRACE)); + cmd.set("#CollectedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_COLLECTED)); + cmd.set("#NextCollectionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_NEXT_COLLECTION)); + + // Localize search/sort labels + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); + + // Localize column headers + cmd.set("#ColFaction.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_FACTION)); + cmd.set("#ColBalance.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_BALANCE)); + cmd.set("#ColMembers.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_MEMBERS)); + cmd.set("#ColActions.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COL_ACTIONS)); + + // Localize pagination buttons + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + // === Server Economy Stats === buildServerStats(cmd); @@ -240,7 +267,7 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { // Empty state if (index == 0) { cmd.appendInline("#FactionList", - "Label { Text: \"No factions with economy data.\"; " + "Label { Text: \"" + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_NO_DATA) + "\"; " + "Style: (FontSize: 11, TextColor: #555555); Anchor: (Height: 30); }"); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java index 1dce4db5..83e7fe7e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java @@ -82,6 +82,39 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + // Localize page title + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_INFO)); + + // Localize stat card labels + cmd.set("#PowerCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_POWER)); + cmd.set("#PowerSubLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_CURRENT_MAX)); + cmd.set("#ClaimsCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_CLAIMS)); + cmd.set("#ClaimsSubLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_CLAIMED_MAX)); + cmd.set("#MembersCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_MEMBERS)); + cmd.set("#RelationsCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_RELATIONS)); + cmd.set("#RelationsSubLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ALLY_ENEMY)); + cmd.set("#StatusCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_STATUS)); + cmd.set("#InfoCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_INFO)); + cmd.set("#TreasurySubLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_TREASURY_BALANCE)); + + // Localize section headers + cmd.set("#LeadershipHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_LEADERSHIP)); + cmd.set("#LeaderLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_LEADER_LABEL)); + cmd.set("#OfficersLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_OFFICERS_LABEL)); + cmd.set("#PowerMgmtHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_POWER_MANAGEMENT)); + cmd.set("#EconMgmtHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ECON_MGMT)); + cmd.set("#DangerZoneHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_DANGER_ZONE)); + + // Localize button labels + cmd.set("#PowerResetAll.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_RESET_ALL_POWER)); + cmd.set("#EconAdjustBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ECON_ADJUST)); + cmd.set("#EconViewLogBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_VIEW_TREASURY)); + cmd.set("#DisbandBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_DISBAND)); + cmd.set("#ViewMembersBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_VIEW_MEMBERS)); + cmd.set("#ViewRelationsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_VIEW_RELATIONS)); + cmd.set("#ViewSettingsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_VIEW_SETTINGS)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + // Get the faction Faction faction = factionManager.getFaction(factionId); if (faction == null) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java index 093639b5..a7d01afb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java @@ -78,6 +78,15 @@ public AdminFactionMembersPage(PlayerRef playerRef, UUID factionId, FactionManag public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder events, Store store) { cmd.append(UIPaths.ADMIN_FACTION_MEMBERS); AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_MEMBERS)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + Faction faction = factionManager.getFaction(factionId); if (faction == null) { cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java index cea5e28b..39860604 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java @@ -58,6 +58,13 @@ public AdminFactionRelationsPage(PlayerRef playerRef, UUID factionId, FactionMan public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder events, Store store) { cmd.append(UIPaths.ADMIN_FACTION_RELATIONS); AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_RELATIONS)); + cmd.set("#SubtitleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_SUBTITLE)); + cmd.set("#SetNewRelationLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_SET_NEW)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + Faction faction = factionManager.getFaction(factionId); if (faction == null) { cmd.set("#FactionName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.FACTION_NOT_FOUND_LABEL)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java index 979a72d6..3f96b51e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java @@ -66,6 +66,12 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_SETTINGS)); + cmd.set("#EditingLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_EDITING)); + cmd.set("#AdminOverrideLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_ADMIN_OVERRIDE)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + // Get the faction Faction faction = factionManager.getFaction(factionId); if (faction == null) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java index 11544d40..89a539cd 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java @@ -91,6 +91,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + // Localize page title and common labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTIONS)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + // Build faction list buildFactionList(cmd, events); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java index d2c9fe75..3549b99c 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java @@ -4,6 +4,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.admin.AdminNavBarHelper; import com.hyperfactions.gui.admin.data.AdminHelpData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -39,6 +41,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar (must be after template load) AdminNavBarHelper.setupBar(playerRef, "help", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_HELP)); + cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_HEADING)); + cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); + cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_DESC1)); + cmd.set("#Description2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_DESC2)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java index 7e6c9a03..ee395cce 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java @@ -66,6 +66,13 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "dashboard", cmd, events); + // Localize page title and buttons + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_MAIN)); + cmd.set("#ZonesBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONES_BTN)); + cmd.set("#ReloadBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_RELOAD_BTN)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + // Stats overview Collection allFactions = factionManager.getAllFactions(); int totalFactions = allFactions.size(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index 51b59703..634912ca 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -94,6 +94,40 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder events, Store store) { cmd.append(UIPaths.ADMIN_PLAYER_INFO); AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); + + // Localize page title + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYER_INFO)); + + // Localize header labels + cmd.set("#FirstJoinedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_FIRST_JOINED)); + cmd.set("#LastOnlineLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_LAST_ONLINE)); + cmd.set("#UuidLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_UUID)); + + // Localize stat card labels + cmd.set("#PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_POWER)); + cmd.set("#CombatLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_COMBAT)); + cmd.set("#KDLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_KD_SUBTITLE)); + cmd.set("#KDRLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_KDR)); + cmd.set("#FactionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_FACTION)); + + // Localize section headers + cmd.set("#HistoryHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_MEMBERSHIP_HISTORY)); + cmd.set("#AdminControlsHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ADMIN_CONTROLS)); + cmd.set("#PowerMgmtHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_POWER_MANAGEMENT)); + cmd.set("#CombatSectionHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_COMBAT)); + cmd.set("#BypassHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_BYPASS_FLAGS)); + + // Localize button labels + cmd.set("#SetPowerBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET)); + cmd.set("#ResetPowerBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_RESET)); + cmd.set("#MaxLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_MAX_PREFIX)); + cmd.set("#SetMaxBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_SET_MAX_BTN)); + cmd.set("#ResetMaxBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_RESET)); + cmd.set("#ResetKDBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_RESET_KD)); + cmd.set("#ViewFactionBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_VIEW)); + cmd.set("#KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_KICK_FROM_FACTION)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + buildContent(cmd, events); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java index 1f8073d8..93538650 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java @@ -115,6 +115,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "players", cmd, events); + // Localize page title and common labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYERS)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + // Load player data (synchronous for initial build) loadPlayerCache(); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java index cbcb2680..6b2dc6e2 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java @@ -4,6 +4,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.admin.AdminNavBarHelper; import com.hyperfactions.gui.admin.data.AdminUpdatesData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -39,6 +41,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar (must be after template load) AdminNavBarHelper.setupBar(playerRef, "updates", cmd, events); + + // Localize page title and labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_UPDATES)); + cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UPDATES_HEADING)); + cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); + cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UPDATES_DESC1)); + cmd.set("#Description2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UPDATES_DESC2)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java index 74cb3f6d..1d8d74ad 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java @@ -62,6 +62,20 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "version", cmd, events); + // Localize page title + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_VERSION)); + + // Localize version card labels + cmd.set("#VersionLabelFactions.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_HYPERFACTIONS)); + cmd.set("#VersionLabelServer.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_HYTALE_SERVER)); + cmd.set("#VersionLabelJava.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_JAVA)); + + // Localize section headers + cmd.set("#SectionPermissions.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_PERMISSIONS)); + cmd.set("#SectionPlaceholders.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_PLACEHOLDERS)); + cmd.set("#SectionEconomy.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_ECONOMY_SECTION)); + cmd.set("#SectionProtection.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_PROTECTION)); + // --- Version Info --- cmd.set("#FactionsVersion.Text", "v" + HyperFactions.VERSION); @@ -75,7 +89,7 @@ public void build(Ref ref, UICommandBuilder cmd, String providerNames = PermissionManager.get().getProviderNames(); - setStatus(cmd, "#LuckPermsStatus", providerNames.contains("LuckPerms"), "Active", "Not Found"); + setStatus(cmd, "#LuckPermsStatus", providerNames.contains("LuckPerms"), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); boolean vaultAvailable = providerNames.contains("VaultUnlocked"); boolean vaultInstalled = false; @@ -86,14 +100,14 @@ public void build(Ref ref, UICommandBuilder cmd, } catch (ClassNotFoundException ignored) {} } if (vaultAvailable) { - setStatusColor(cmd, "#VaultUnlockedStatus", "Active", COLOR_GREEN); + setStatusColor(cmd, "#VaultUnlockedStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), COLOR_GREEN); } else if (vaultInstalled) { - setStatusColor(cmd, "#VaultUnlockedStatus", "Installed (no perm provider)", COLOR_YELLOW); + setStatusColor(cmd, "#VaultUnlockedStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE_PROVIDER), COLOR_YELLOW); } else { setStatusColor(cmd, "#VaultUnlockedStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_INSTALLED), COLOR_GRAY); } - setStatus(cmd, "#NativeStatus", providerNames.contains("HytaleNative"), "Active", "Not Found"); + setStatus(cmd, "#NativeStatus", providerNames.contains("HytaleNative"), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); // --- Protection --- ProtectionMixinBridge.MixinProvider provider = ProtectionMixinBridge.getProvider(); @@ -102,28 +116,28 @@ public void build(Ref ref, UICommandBuilder cmd, switch (provider) { case BOTH -> { String hpVersion = System.getProperty("hyperprotect.bridge.version", "unknown"); - setStatusColor(cmd, "#HyperProtectStatus", "Active (v" + hpVersion + ")", COLOR_GREEN); - setStatusColor(cmd, "#OrbisGuardMixinsStatus", "Active (compatible)", COLOR_GREEN); + setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) + " (v" + hpVersion + ")", COLOR_GREEN); + setStatusColor(cmd, "#OrbisGuardMixinsStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) + " (compatible)", COLOR_GREEN); } case HYPERPROTECT -> { String hpVersion = System.getProperty("hyperprotect.bridge.version", "unknown"); - setStatusColor(cmd, "#HyperProtectStatus", "Active (v" + hpVersion + ")", COLOR_GREEN); + setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) + " (v" + hpVersion + ")", COLOR_GREEN); setStatusColor(cmd, "#OrbisGuardMixinsStatus", HFMessages.get(playerRef, MessageKeys.Common.NA), COLOR_GRAY); } case ORBISGUARD -> { setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); - setStatusColor(cmd, "#OrbisGuardMixinsStatus", "Active", COLOR_GREEN); + setStatusColor(cmd, "#OrbisGuardMixinsStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), COLOR_GREEN); } case NONE -> { setStatusColor(cmd, "#HyperProtectStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); - setStatusColor(cmd, "#OrbisGuardMixinsStatus", "Not Detected", COLOR_GRAY); + setStatusColor(cmd, "#OrbisGuardMixinsStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_DETECTED), COLOR_GRAY); } default -> throw new IllegalStateException("Unexpected value"); } if (ogApiAvailable) { String ogLabel = provider == ProtectionMixinBridge.MixinProvider.NONE - ? "Active (claims only)" : "Active"; + ? HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) + " (claims only)" : HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE); String ogColor = provider == ProtectionMixinBridge.MixinProvider.NONE ? COLOR_YELLOW : COLOR_GREEN; setStatusColor(cmd, "#OrbisGuardApiStatus", ogLabel, ogColor); @@ -138,16 +152,16 @@ public void build(Ref ref, UICommandBuilder cmd, GravestoneIntegration gs = plugin.getProtectionChecker().getGravestoneIntegration(); boolean gsAvailable = gs != null && gs.isAvailable(); boolean gsEnabled = ConfigManager.get().gravestones().isEnabled(); - String gsStatus = !gsAvailable ? "Not Found" : (gsEnabled ? "Active" : "Disabled"); + String gsStatus = !gsAvailable ? HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND) : (gsEnabled ? HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) : HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_DISABLED)); String gsColor = gsAvailable && gsEnabled ? COLOR_GREEN : (gsAvailable ? COLOR_YELLOW : COLOR_GRAY); setStatusColor(cmd, "#GravestonesStatus", gsStatus, gsColor); KyuubiSoftIntegration ks = plugin.getKyuubiSoftIntegration(); boolean ksAvailable = ks != null && ks.isAvailable(); - setStatus(cmd, "#KyuubiSoftStatus", ksAvailable, "Active", "Not Found"); + setStatus(cmd, "#KyuubiSoftStatus", ksAvailable, HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); // --- Placeholders --- - setStatus(cmd, "#PlaceholderAPIStatus", PlaceholderAPIIntegration.isAvailable(), "Active", "Not Found"); + setStatus(cmd, "#PlaceholderAPIStatus", PlaceholderAPIIntegration.isAvailable(), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); boolean wiflowAvailable; try { @@ -155,7 +169,7 @@ public void build(Ref ref, UICommandBuilder cmd, } catch (NoClassDefFoundError e) { wiflowAvailable = false; } - setStatus(cmd, "#WiFlowPAPIStatus", wiflowAvailable, "Active", "Not Found"); + setStatus(cmd, "#WiFlowPAPIStatus", wiflowAvailable, HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); // --- Economy --- if (plugin.isTreasuryEnabled()) { @@ -164,10 +178,10 @@ public void build(Ref ref, UICommandBuilder cmd, if (econMgr != null) { econName = econMgr.getVaultProvider().getEconomyName(); } - String treasuryLabel = econName != null ? "Active (" + econName + ")" : "Active"; + String treasuryLabel = econName != null ? HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE) + " (" + econName + ")" : HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE); setStatusColor(cmd, "#TreasuryStatus", treasuryLabel, COLOR_GREEN); } else { - setStatusColor(cmd, "#TreasuryStatus", "Not Found", COLOR_GRAY); + setStatusColor(cmd, "#TreasuryStatus", HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND), COLOR_GRAY); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java index 8a73189b..56f5a8d0 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java @@ -68,6 +68,17 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); + cmd.set("#CatGravestones.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_CAT_GRAVESTONES)); + cmd.set("#GravestonesDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_GRAVESTONES_DESC)); + cmd.set("#CatWorldMap.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_CAT_WORLD_MAP)); + cmd.set("#WorldMapDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_WORLD_MAP_DESC)); + cmd.set("#MapVisibilityLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_VISIBILITY_LABEL)); + cmd.set("#CatEssentials.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_CAT_ESSENTIALS)); + cmd.set("#ResetBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_RESET_DEFAULTS)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_BACK_TO_FLAGS)); + // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java index 3dca8d00..d7c5bfb5 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java @@ -142,6 +142,18 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.ADMIN_ZONE_MAP); } + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_MAP)); + cmd.set("#ActionHint.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_ACTION_HINT)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_DONE)); + cmd.set("#LegendZoneSafe.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_ZONE_SAFE)); + cmd.set("#LegendZoneWar.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_ZONE_WAR)); + cmd.set("#LegendOtherSafe.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_OTHER_SAFE)); + cmd.set("#LegendOtherWar.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_OTHER_WAR)); + cmd.set("#LegendFactionClaim.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_FACTION)); + cmd.set("#LegendUnclaimed.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_UNCLAIMED)); + cmd.set("#LegendYouAreHere.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_YOU_HERE)); + // Zone header info cmd.set("#ZoneTitle.Text", zone.name() + " (" + zone.type().getDisplayName() + ")"); cmd.set("#ZoneStats.Text", zone.getChunkCount() + " chunks in " + zone.world()); @@ -154,19 +166,20 @@ public void build(Ref ref, UICommandBuilder cmd, } // Dynamic legend: add OrbisGuard protected region entry when OG is available + String protectedLabel = " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_PROTECTED); if (OrbisGuardIntegration.isAvailable()) { if (terrainEnabled) { // Terrain mode: append to row 2 (#LegendContainer[1]) cmd.appendInline("#LegendContainer[1]", "Group { LayoutMode: Left; Anchor: (Width: 110); " + "Group { Anchor: (Width: 10, Height: 10); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \"" + protectedLabel + "\"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } }"); } else { // Flat mode: append to column 3 (#LegendContainer[2]) cmd.appendInline("#LegendContainer[2]", "Group { LayoutMode: Left; Anchor: (Height: 16); " + "Group { Anchor: (Width: 12, Height: 12); Background: (Color: " + COLOR_OG_PROTECTED + "); } " - + "Label { Text: \" Protected\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); + + "Label { Text: \"" + protectedLabel + "\"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } }"); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java index 87cbf3ac..094de186 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java @@ -92,6 +92,16 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); + // Localize page title and common labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONES)); + cmd.set("#TabAll.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ALL)); + cmd.set("#TabSafe.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SAFE)); + cmd.set("#TabWar.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_WAR)); + cmd.set("#CreateZoneBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CREATE_ZONE)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_NEXT)); + // Build zone list buildZoneList(cmd, events); } @@ -126,10 +136,10 @@ private void buildZoneList(UICommandBuilder cmd, UIEventBuilder events) { // Sort dropdown cmd.set("#SortDropdown.Entries", List.of( - new DropdownEntryInfo(LocalizableString.fromString("Name"), "NAME"), - new DropdownEntryInfo(LocalizableString.fromString("Type"), "TYPE"), - new DropdownEntryInfo(LocalizableString.fromString("Chunks"), "CHUNKS"), - new DropdownEntryInfo(LocalizableString.fromString("World"), "WORLD") + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_SORT_NAME)), "NAME"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_SORT_TYPE)), "TYPE"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_SORT_CHUNKS)), "CHUNKS"), + new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_SORT_WORLD)), "WORLD") )); cmd.set("#SortDropdown.Value", zoneSortMode.name()); events.addEventBinding( @@ -157,7 +167,7 @@ private void buildZoneList(UICommandBuilder cmd, UIEventBuilder events) { // Zone count (with total chunks) int totalChunks = zones.stream().mapToInt(Zone::getChunkCount).sum(); String tabLabel = currentTab.equals("all") ? "" : currentTab + " "; - cmd.set("#ZoneCount.Text", zones.size() + " " + tabLabel + "zones (" + totalChunks + " chunks)"); + cmd.set("#ZoneCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_COUNT_FORMAT, zones.size(), tabLabel, totalChunks)); // Create zone button events.addEventBinding( @@ -186,7 +196,7 @@ private void buildZoneList(UICommandBuilder cmd, UIEventBuilder events) { } // Pagination - cmd.set("#PageInfo.Text", (currentPage + 1) + "/" + totalPages); + cmd.set("#PageInfo.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PAGE_FORMAT, currentPage + 1, totalPages)); if (currentPage > 0) { events.addEventBinding( diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java index ef016af8..e79c40b6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java @@ -74,6 +74,25 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_PROPERTIES)); + cmd.set("#GeneralHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_GENERAL)); + cmd.set("#ZoneNameLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_ZONE_NAME)); + cmd.set("#ZoneTypeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_ZONE_TYPE)); + cmd.set("#ChangeTypeBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_CHANGE_TYPE)); + cmd.set("#NotificationsHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_NOTIFICATIONS)); + cmd.set("#UpperTitleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_UPPER_DESC)); + cmd.set("#LowerTitleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_LOWER_DESC)); + String saveText = HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SAVE); + cmd.set("#SaveNameBtn.Text", saveText); + cmd.set("#SaveUpperBtn.Text", saveText); + cmd.set("#SaveLowerBtn.Text", saveText); + String clearText = HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CLEAR); + cmd.set("#ClearUpperBtn.Text", clearText); + cmd.set("#ClearLowerBtn.Text", clearText); + cmd.set("#FlagsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_EDIT_FLAGS)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_BACK_TO_ZONES)); + // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java index 0c4d702c..a59a3fdd 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java @@ -99,6 +99,27 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); + cmd.set("#CatCombat.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_COMBAT)); + cmd.set("#CatDamage.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_DAMAGE)); + cmd.set("#CatDeath.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_DEATH)); + cmd.set("#CatBuilding.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_BUILDING)); + cmd.set("#CatInteraction.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_INTERACTION)); + cmd.set("#CatTransport.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_TRANSPORT)); + cmd.set("#CatItems.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_ITEMS)); + cmd.set("#CatSpawning.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_SPAWNING)); + cmd.set("#CatMobClear.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_MOB_CLEAR)); + String childrenHint = HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CHILDREN_HINT); + cmd.set("#CatCombatSub.Text", childrenHint); + cmd.set("#CatBuildingSub.Text", childrenHint); + cmd.set("#CatInteractionSub.Text", childrenHint); + cmd.set("#CatSpawningSub.Text", childrenHint); + cmd.set("#CatMobClearSub.Text", childrenHint); + cmd.set("#ResetBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_RESET_DEFAULTS)); + cmd.set("#IntegrationFlagsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_INTEGRATION_FLAGS)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_BACK_TO_ZONES)); + // Get the zone Zone zone = zoneManager.getZoneById(zoneId); if (zone == null) { diff --git a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java index f8b89767..55b90c65 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java @@ -141,6 +141,21 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.CHUNK_MAP); } + // Localize static labels + cmd.set("#MapTitle.Text", HFMessages.get(playerRef, MessageKeys.MapGui.TITLE)); + cmd.set("#ActionHint.Text", HFMessages.get(playerRef, MessageKeys.MapGui.ACTION_HINT)); + cmd.set("#LegendYourLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_YOUR)); + cmd.set("#LegendAllyLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_ALLY)); + cmd.set("#LegendEnemyLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_ENEMY)); + cmd.set("#LegendOtherLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_OTHER)); + if (!terrainEnabled) { + // Flat mode has additional legend entries + cmd.set("#LegendWildernessLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_WILDERNESS)); + } + cmd.set("#LegendSafeLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_SAFE)); + cmd.set("#LegendWarLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_WAR)); + cmd.set("#LegendYouLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_YOU)); + // Setup navigation bar - use new player nav when no faction if (viewerFaction != null) { NavBarHelper.setupBar(playerRef, viewerFaction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java index 703a8146..76f048bd 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/DisbandConfirmPage.java @@ -57,6 +57,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the disband confirmation template cmd.append(UIPaths.DISBAND_CONFIRM); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_TITLE)); + cmd.set("#ConfirmText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_PROMPT)); + cmd.set("#WarningText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_WARNING)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.DISBAND)); + // Set faction name in the modal cmd.set("#FactionName.Text", faction.name()); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java index 951979c0..8de7a5f1 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java @@ -89,6 +89,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.FACTION_BROWSER); + // Localize static labels + cmd.set("#BrowserTitle.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.TITLE)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + // Setup navigation bar - use new player nav when no faction if (viewerFaction != null) { NavBarHelper.setupBar(playerRef, viewerFaction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java index 8595ebe4..0c298655 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionChatPage.java @@ -95,6 +95,12 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.FACTION_CHAT); + // Localize static labels + cmd.set("#ChatTitle.Text", HFMessages.get(playerRef, MessageKeys.ChatGui.TITLE)); + cmd.set("#TabFactionBtn.Text", HFMessages.get(playerRef, MessageKeys.ChatGui.TAB_FACTION)); + cmd.set("#TabAllyBtn.Text", HFMessages.get(playerRef, MessageKeys.ChatGui.TAB_ALLY)); + cmd.set("#SendBtn.Text", HFMessages.get(playerRef, MessageKeys.ChatGui.SEND_BTN)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java index 5afc54ce..636c81c7 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java @@ -121,6 +121,29 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.FACTION_DASHBOARD); + // Localize static labels + cmd.set("#DashboardTitle.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.TITLE)); + cmd.set("#PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.POWER_LABEL)); + cmd.set("#ClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.LAND_LABEL)); + cmd.set("#MembersLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.MEMBERS_LABEL)); + cmd.set("#RelationsLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.RELATIONS_LABEL)); + cmd.set("#AllyEnemyLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.ALLY_ENEMY_LABEL)); + cmd.set("#StatusLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.STATUS_LABEL)); + cmd.set("#InvitesLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.INVITES_LABEL)); + cmd.set("#SentRequestsLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.SENT_REQUESTS_LABEL)); + cmd.set("#TreasuryLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.TREASURY_LABEL)); + cmd.set("#UpkeepLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.UPKEEP_LABEL)); + cmd.set("#PerCycleLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.PER_CYCLE)); + cmd.set("#YourWalletLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.YOUR_WALLET)); + cmd.set("#PersonalBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.PERSONAL_BALANCE)); + cmd.set("#QuickActionsLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.QUICK_ACTIONS)); + cmd.set("#TeleportLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.TELEPORT_LABEL)); + cmd.set("#TerritoryLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.TERRITORY_LABEL)); + cmd.set("#ChannelLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.CHANNEL_LABEL)); + cmd.set("#MembershipLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.MEMBERSHIP_LABEL)); + cmd.set("#RecentActivityLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.RECENT_ACTIVITY)); + cmd.set("#ViewLogsBtn.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.VIEW_ALL)); + // Setup navigation bar setupNavBar(cmd, events); @@ -259,14 +282,14 @@ private void buildStatCards(UICommandBuilder cmd, Faction currentFaction) { FactionEconomy fEcon = econ.getEconomy(currentFaction.id()); if (fEcon != null && fEcon.upkeepGraceStartTimestamp() > 0) { cmd.set("#UpkeepValue.Style.TextColor", "#FF5555"); - cmd.set("#UpkeepSubtext.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.IN_GRACE)); - cmd.set("#UpkeepSubtext.Style.TextColor", "#FF5555"); + cmd.set("#PerCycleLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.IN_GRACE)); + cmd.set("#PerCycleLabel.Style.TextColor", "#FF5555"); } else if (fEcon != null && fEcon.lastUpkeepTimestamp() > 0) { long intervalMs = ConfigManager.get().getUpkeepIntervalHours() * 3600_000L; long remaining = Math.max(0, (fEcon.lastUpkeepTimestamp() + intervalMs) - System.currentTimeMillis()); - cmd.set("#UpkeepSubtext.Text", "in " + com.hyperfactions.economy.UpkeepProcessor.formatDuration(remaining)); + cmd.set("#PerCycleLabel.Text", "in " + com.hyperfactions.economy.UpkeepProcessor.formatDuration(remaining)); } else { - cmd.set("#UpkeepSubtext.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BILLABLE_CHUNKS, billableChunks)); + cmd.set("#PerCycleLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BILLABLE_CHUNKS, billableChunks)); } // Color based on affordability diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionHelpPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionHelpPage.java index 9c357fe7..6d6a51c0 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionHelpPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionHelpPage.java @@ -5,6 +5,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.faction.NavBarHelper; import com.hyperfactions.gui.faction.data.FactionPageData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -48,6 +50,31 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup faction navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); + + // Localize all static content + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.GETTING_STARTED_TITLE)); + cmd.set("#WhatTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_TITLE)); + cmd.set("#WhatDesc1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_1)); + cmd.set("#WhatDesc2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_2)); + cmd.set("#WhatBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_1)); + cmd.set("#WhatBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_2)); + cmd.set("#WhatBullet3.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_3)); + cmd.set("#JoinTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_TITLE)); + cmd.set("#JoinDesc.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_DESC)); + cmd.set("#JoinBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_1)); + cmd.set("#JoinBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_2)); + cmd.set("#JoinBullet3.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_3)); + cmd.set("#CreateTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_TITLE)); + cmd.set("#CreateDesc.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_DESC)); + cmd.set("#CreateBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_BULLET_1)); + cmd.set("#CreateBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_BULLET_2)); + cmd.set("#CmdTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.COMMANDS_TITLE)); + cmd.set("#CmdF.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F)); + cmd.set("#CmdFList.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_LIST)); + cmd.set("#CmdFJoin.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_JOIN)); + cmd.set("#CmdFCreate.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_CREATE)); + cmd.set("#CmdFHelp.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_HELP)); + cmd.set("#TipText.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.TIP)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java index d56634f8..47c810cd 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java @@ -92,6 +92,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.FACTION_INVITES); + // Localize static labels + cmd.set("#InvitesTitle.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.TITLE)); + cmd.set("#TabOutgoing.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.TAB_OUTGOING)); + cmd.set("#TabRequests.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.TAB_REQUESTS)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionLeaderboardPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionLeaderboardPage.java index 534c1eba..8da3fc75 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionLeaderboardPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionLeaderboardPage.java @@ -98,6 +98,16 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.FACTION_LEADERBOARD); + // Localize static labels + cmd.set("#LeaderboardTitle.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.TITLE)); + cmd.set("#RankByLabel.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.RANK_BY)); + cmd.set("#ColRankLabel.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.COL_RANK)); + cmd.set("#ColFactionLabel.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.COL_FACTION)); + cmd.set("#ColClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.COL_CLAIMS)); + cmd.set("#ColMembersLabel.Text", HFMessages.get(playerRef, MessageKeys.LeaderboardGui.COL_MEMBERS)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + // Setup navigation bar if (viewerFaction != null) { NavBarHelper.setupBar(playerRef, viewerFaction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java index 8410cda7..0f38a18d 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java @@ -102,6 +102,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.FACTION_MEMBERS); + // Localize static labels + cmd.set("#MembersTitle.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.TITLE)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.SEARCH)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.SORT)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java index 3059826e..8cc0c9db 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionModulesPage.java @@ -71,6 +71,11 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modules template cmd.append(UIPaths.FACTION_MODULES); + // Localize static labels + cmd.set("#ModulesTitle.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.TITLE)); + cmd.set("#ModulesDescription.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.DESCRIPTION)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.ModulesGui.BACK_BTN)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java index 6f75dbed..531030df 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java @@ -103,6 +103,14 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.FACTION_RELATIONS); + // Localize static labels + cmd.set("#RelationsTitle.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.TITLE)); + cmd.set("#TabRelations.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.TAB_RELATIONS)); + cmd.set("#TabPending.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.TAB_PENDING)); + cmd.set("#SetRelationBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.SET_RELATION_BTN)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionSettingsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionSettingsPage.java index 5e352135..ddd65c04 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionSettingsPage.java @@ -105,6 +105,63 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the unified settings template cmd.append(UIPaths.FACTION_SETTINGS); + // Localize static labels + cmd.set("#SettingsTitle.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.TITLE)); + cmd.set("#GeneralHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.GENERAL)); + cmd.set("#NameLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.NAME_LABEL)); + cmd.set("#TagLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.TAG_LABEL)); + cmd.set("#DescLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.DESC_LABEL)); + cmd.set("#NameEditBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.EDIT_BTN)); + cmd.set("#TagEditBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.EDIT_BTN)); + cmd.set("#DescEditBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.EDIT_BTN)); + cmd.set("#RecruitmentHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.RECRUITMENT)); + cmd.set("#StatusLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.STATUS_LABEL)); + cmd.set("#HomeLocationHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.HOME_LOCATION)); + cmd.set("#LocationLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.LOCATION_LABEL)); + cmd.set("#SetHomeBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.SET_HOME_BTN)); + cmd.set("#TeleportHomeBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.TELEPORT_BTN)); + cmd.set("#DeleteHomeBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.DELETE_BTN)); + cmd.set("#OptionalFeaturesHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.OPTIONAL_FEATURES)); + cmd.set("#ModulesDescLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CONFIGURE_MODULES)); + cmd.set("#ModulesBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MODULES_BTN)); + cmd.set("#DangerZoneHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.DANGER_ZONE)); + cmd.set("#IrreversibleLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.IRREVERSIBLE)); + cmd.set("#DisbandBtn.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.DISBAND_BTN)); + cmd.set("#LockHintLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.LOCK_HINT)); + cmd.set("#TerritoryPermissionsHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.TERRITORY_PERMISSIONS)); + cmd.set("#ColOutLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_OUT)); + cmd.set("#ColAllyLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_ALLY)); + cmd.set("#ColMemLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_MEM)); + cmd.set("#ColOffLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_OFF)); + cmd.set("#BuildingCatLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_BUILDING)); + cmd.set("#BreakPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_BREAK)); + cmd.set("#PlacePermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PLACE)); + cmd.set("#InteractionCatLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_INTERACTION)); + cmd.set("#InteractionHintLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.INTERACTION_HINT)); + cmd.set("#AllPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_ALL)); + cmd.set("#DoorPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_DOOR)); + cmd.set("#ChestPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_CHEST)); + cmd.set("#BenchPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_BENCH)); + cmd.set("#ProcessingPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PROCESSING)); + cmd.set("#SeatPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_SEAT)); + cmd.set("#TransportPermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_TRANSPORT)); + cmd.set("#OtherCatLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_OTHER)); + cmd.set("#CrateUsePermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_CRATE)); + cmd.set("#NpcTamePermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_NPC_TAME)); + cmd.set("#PveDamagePermLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PVE)); + cmd.set("#AppearanceHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.APPEARANCE)); + cmd.set("#ColorLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COLOR_LABEL)); + cmd.set("#MobSpawningHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING)); + cmd.set("#MobSpawningHintLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING_HINT)); + cmd.set("#MobSpawningMasterLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING_LABEL)); + cmd.set("#HostileMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.HOSTILE_MOBS)); + cmd.set("#PassiveMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PASSIVE_MOBS)); + cmd.set("#NeutralMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.NEUTRAL_MOBS)); + cmd.set("#FactionSettingsHeader.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.FACTION_SETTINGS)); + cmd.set("#PvpLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_IN_TERRITORY)); + cmd.set("#OfficersCanEditLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.OFFICERS_CAN_EDIT)); + cmd.set("#LeaderOnlyLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.LEADER_ONLY)); + // Setup navigation bar NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LeaderLeaveConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LeaderLeaveConfirmPage.java index 07cfb196..2cda86e1 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LeaderLeaveConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LeaderLeaveConfirmPage.java @@ -62,6 +62,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the leader leave confirmation template cmd.append(UIPaths.LEADER_LEAVE_CONFIRM); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.LEADER_LEAVE_TITLE)); + cmd.set("#ConfirmText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.LEADER_LEAVE_PROMPT)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#LeaveBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.LEAVE)); + cmd.set("#DisbandBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.DISBAND)); + // Set faction name cmd.set("#FactionName.Text", faction.name()); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java index 2ff83803..b1893a82 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LeaveConfirmPage.java @@ -57,6 +57,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the leave confirmation template cmd.append(UIPaths.LEAVE_CONFIRM); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.LEAVE_TITLE)); + cmd.set("#ConfirmText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.LEAVE_PROMPT)); + cmd.set("#WarningText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.LEAVE_WARNING)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.LEAVE)); + // Set faction name in the modal cmd.set("#FactionName.Text", faction.name()); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java index 9b662345..5995e499 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java @@ -83,6 +83,14 @@ public void build(Ref ref, UICommandBuilder cmd, // Set title with faction name cmd.set("#LogsTitle.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.TITLE, faction.name())); + // Localize static labels + cmd.set("#FilterLabel.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.FILTER_LABEL)); + cmd.set("#ColTimeLabel.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.COL_TIME)); + cmd.set("#ColTypeLabel.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.COL_TYPE)); + cmd.set("#ColMessageLabel.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.COL_MESSAGE)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.PREV)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.NEXT)); + buildLogList(cmd, events); } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/PlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/faction/page/PlayerInfoPage.java index 61af636f..deb7c9b3 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/PlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/PlayerInfoPage.java @@ -104,6 +104,23 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the player info template cmd.append(UIPaths.PLAYER_INFO); + // === Static labels === + cmd.set("#PageTitle.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.TITLE)); + cmd.set("#FirstJoinedLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.FIRST_JOINED_LABEL)); + cmd.set("#LastOnlineLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.LAST_ONLINE_LABEL)); + cmd.set("#FactionLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.FACTION_LABEL)); + cmd.set("#RoleLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.ROLE_LABEL)); + cmd.set("#JoinedLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.JOINED_LABEL_STATIC)); + cmd.set("#NoFactionLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.NOT_IN_FACTION)); + cmd.set("#PowerHeader.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.POWER_HEADER)); + cmd.set("#PowerSubtitle.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.CURRENT_MAX)); + cmd.set("#CombatHeader.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.COMBAT_HEADER)); + cmd.set("#CombatSubtitle.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.KILLS_DEATHS)); + cmd.set("#KDRHeader.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.KDR_HEADER)); + cmd.set("#MembershipHistoryLabel.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.MEMBERSHIP_HISTORY)); + cmd.set("#ViewFactionBtn.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.VIEW_FACTION_BTN)); + cmd.set("#BackBtn.Text", HFMessages.get(viewerRef, MessageKeys.PlayerInfoGui.BACK_BTN)); + // === Header === cmd.set("#PlayerName.Text", targetPlayerName); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java index f98dd750..778d1921 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TransferConfirmPage.java @@ -65,6 +65,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the transfer confirmation template cmd.append(UIPaths.TRANSFER_CONFIRM); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.TRANSFER_TITLE)); + cmd.set("#ConfirmText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.TRANSFER_PROMPT)); + cmd.set("#WarningText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.TRANSFER_WARNING)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.TRANSFER)); + // Set dynamic values cmd.set("#TargetName.Text", targetName); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java index a4f0b9e8..7e407df5 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java @@ -86,6 +86,32 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder events, Store store) { cmd.append(UIPaths.FACTION_TREASURY); + + // Localize static labels + cmd.set("#TreasuryTitle.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TITLE)); + cmd.set("#BalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.BALANCE_LABEL)); + cmd.set("#IncomeLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.INCOME_24H)); + cmd.set("#IncomeDescLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.DEPOSITS_TRANSFERS_IN)); + cmd.set("#ExpensesLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.EXPENSES_24H)); + cmd.set("#ExpensesDescLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.WITHDRAWALS_TRANSFERS_OUT)); + cmd.set("#MaintenanceLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MAINTENANCE)); + cmd.set("#RunwayLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.RUNWAY_LABEL)); + cmd.set("#AddFundsLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.ADD_FUNDS)); + cmd.set("#DepositBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.DEPOSIT_BTN)); + cmd.set("#TakeFundsLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TAKE_FUNDS)); + cmd.set("#WithdrawBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.WITHDRAW_BTN)); + cmd.set("#SendToFactionLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.SEND_TO_FACTION)); + cmd.set("#TransferBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TRANSFER_BTN)); + cmd.set("#TreasuryConfigLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.TREASURY_CONFIG)); + cmd.set("#SettingsBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.SETTINGS_BTN)); + cmd.set("#RecentTransactionsLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.RECENT_TRANSACTIONS)); + cmd.set("#ColDateLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COL_DATE)); + cmd.set("#ColTypeLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COL_TYPE)); + cmd.set("#ColByLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COL_BY)); + cmd.set("#ColAmountLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COL_AMOUNT)); + cmd.set("#ColDetailsLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COL_DETAILS)); + cmd.set("#PayNowBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.PAY_NOW_BTN)); + NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); UUID uuid = playerRef.getUuid(); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java index 655f8ae2..006853f1 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasurySettingsPage.java @@ -67,6 +67,19 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.TREASURY_SETTINGS); + // Localize static labels + cmd.set("#TreasurySettingsTitle.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.SETTINGS_TITLE)); + cmd.set("#OfficerPermissionsHeader.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.OFFICER_PERMISSIONS)); + cmd.set("#LimitsHeader.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.LIMITS_SECTION)); + cmd.set("#MaxWithdrawLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MAX_PER_WITHDRAWAL)); + cmd.set("#MaxWithdrawPeriodLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MAX_WITHDRAWALS_PER)); + cmd.set("#MaxTransferLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MAX_PER_TRANSFER)); + cmd.set("#MaxTransferPeriodLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.MAX_TRANSFERS_PER)); + cmd.set("#PeriodHoursLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.LIMIT_PERIOD)); + cmd.set("#NoLimitHintLabel.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.NO_LIMIT_HINT)); + cmd.set("#UpkeepSettingsHeader.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.UPKEEP_SETTINGS)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.BACK_BTN)); + FactionPermissions perms = faction.getEffectivePermissions(); FactionEconomy economy = economyManager.getEconomy(faction.id()); diff --git a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java index 0341e401..03561abc 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java @@ -42,13 +42,21 @@ public String id() { } /** - * Gets the display name shown in the UI, resolved via i18n. + * Gets the display name shown in the UI, resolved via i18n (default locale). */ @NotNull public String displayName() { return HFMessages.get((PlayerRef) null, displayNameKey); } + /** + * Gets the display name shown in the UI, resolved via i18n for a specific player. + */ + @NotNull + public String displayName(PlayerRef playerRef) { + return HFMessages.get(playerRef, displayNameKey); + } + /** * Gets the accent color hex string (e.g. "#00FFFF") for UI rendering. */ diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index 32439ded..56092ca4 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -8,6 +8,8 @@ import com.hyperfactions.gui.help.data.HelpPageData; import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.manager.FactionManager; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -93,6 +95,15 @@ public void build(Ref ref, UICommandBuilder cmd, NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); } + // Page title + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.HELP_CENTER_TITLE)); + + // Set localized sidebar button labels + for (HelpCategory category : HelpCategory.values()) { + int idx = category.ordinal(); + cmd.set("#Cat" + idx + ".Text", " " + category.displayName(playerRef)); + } + // Setup category buttons (disable selected, bind events to others) setupCategoryButtons(cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java index 4ef6bd4d..1009acbb 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/CreateFactionPage.java @@ -80,6 +80,53 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup navigation bar NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); + // Localize static labels — page title and section headers + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.TITLE)); + cmd.set("#SectionPreview.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.SECTION_PREVIEW)); + cmd.set("#NamePrefix.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.NAME_PREFIX)); + cmd.set("#SectionBasicInfo.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.SECTION_BASIC_INFO)); + cmd.set("#FactionNameLabel.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.FACTION_NAME_LABEL)); + cmd.set("#TagLabel.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.TAG_LABEL)); + cmd.set("#SectionDetails.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.SECTION_DETAILS)); + cmd.set("#DescLabel.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.DESC_LABEL)); + cmd.set("#RecruitmentLabel.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.RECRUITMENT_LABEL)); + + // Localize middle column — territory permissions (reuse SettingsGui keys) + cmd.set("#LockHint.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.LOCK_HINT)); + cmd.set("#TerritoryPermissionsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.TERRITORY_PERMISSIONS)); + cmd.set("#ColOut.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_OUT)); + cmd.set("#ColAlly.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_ALLY)); + cmd.set("#ColMem.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_MEM)); + cmd.set("#ColOff.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.COL_OFF)); + cmd.set("#CatBuilding.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_BUILDING)); + cmd.set("#PermBreak.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_BREAK)); + cmd.set("#PermPlace.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PLACE)); + cmd.set("#CatInteraction.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_INTERACTION)); + cmd.set("#InteractionHint.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.INTERACTION_HINT)); + cmd.set("#PermAll.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_ALL)); + cmd.set("#PermDoor.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_DOOR)); + cmd.set("#PermChest.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_CHEST)); + cmd.set("#PermBench.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_BENCH)); + cmd.set("#PermProcessing.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PROCESSING)); + cmd.set("#PermSeat.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_SEAT)); + cmd.set("#PermTransport.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_TRANSPORT)); + cmd.set("#CatOther.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.CAT_OTHER)); + cmd.set("#PermCrate.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_CRATE)); + cmd.set("#PermNpcTame.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_NPC_TAME)); + cmd.set("#PermPve.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PERM_PVE)); + + // Localize right column — faction color, mob spawning, combat + cmd.set("#SectionFactionColor.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.SECTION_FACTION_COLOR)); + cmd.set("#SectionMobSpawning.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING)); + cmd.set("#MobSpawningHint.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING_HINT)); + cmd.set("#MobSpawningLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.MOB_SPAWNING_LABEL)); + cmd.set("#HostileMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.HOSTILE_MOBS)); + cmd.set("#PassiveMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PASSIVE_MOBS)); + cmd.set("#NeutralMobsLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.NEUTRAL_MOBS)); + cmd.set("#SectionCombat.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.SECTION_COMBAT)); + cmd.set("#PvPLabel.Text", HFMessages.get(playerRef, MessageKeys.SettingsGui.PVP_IN_TERRITORY)); + cmd.set("#CreateBtn.Text", HFMessages.get(playerRef, MessageKeys.CreateGui.CREATE_BTN)); + // Set default ColorPicker value (cyan) cmd.set("#FactionColorPicker.Value", DEFAULT_COLOR); diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/HelpPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/HelpPage.java index 844baec4..a9b6c237 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/HelpPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/HelpPage.java @@ -4,6 +4,8 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.newplayer.NewPlayerNavBarHelper; import com.hyperfactions.gui.newplayer.data.NewPlayerPageData; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; @@ -44,7 +46,30 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup navigation bar for new players NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); - // Content is defined in the template - this is a static page + // Localize all static content + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.GETTING_STARTED_TITLE)); + cmd.set("#WhatTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_TITLE)); + cmd.set("#WhatDesc1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_1)); + cmd.set("#WhatDesc2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_2)); + cmd.set("#WhatBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_1)); + cmd.set("#WhatBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_2)); + cmd.set("#WhatBullet3.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.WHAT_ARE_FACTIONS_BULLET_3)); + cmd.set("#JoinTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_TITLE)); + cmd.set("#JoinDesc.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_DESC)); + cmd.set("#JoinBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_1)); + cmd.set("#JoinBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_2)); + cmd.set("#JoinBullet3.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.JOINING_BULLET_3)); + cmd.set("#CreateTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_TITLE)); + cmd.set("#CreateDesc.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_DESC)); + cmd.set("#CreateBullet1.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_BULLET_1)); + cmd.set("#CreateBullet2.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CREATING_BULLET_2)); + cmd.set("#CmdTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.COMMANDS_TITLE)); + cmd.set("#CmdF.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F)); + cmd.set("#CmdFList.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_LIST)); + cmd.set("#CmdFJoin.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_JOIN)); + cmd.set("#CmdFCreate.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_CREATE)); + cmd.set("#CmdFHelp.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.CMD_F_HELP)); + cmd.set("#TipText.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.TIP)); } /** Handles data event. */ diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java index 4e781a8d..486fdf6a 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/InvitesPage.java @@ -89,6 +89,9 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.NEWPLAYER_INVITES); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.INVITES_TITLE)); + // Setup navigation bar for new players NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java index 3c08efac..26f20ab4 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java @@ -120,6 +120,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the main template cmd.append(UIPaths.NEWPLAYER_BROWSE); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.BROWSE_TITLE)); + cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.SEARCH_LABEL)); + cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.SORT_LABEL)); + cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.PREV_BTN)); + cmd.set("#NextBtn.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.NEXT_BTN)); + // Setup navigation bar for new players NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); diff --git a/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java index 26ecd383..01f5efaf 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/DescriptionModalPage.java @@ -72,6 +72,14 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modal template cmd.append(UIPaths.DESCRIPTION_MODAL); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.DescGui.TITLE)); + cmd.set("#CurrentLabel.Text", HFMessages.get(playerRef, MessageKeys.DescGui.CURRENT_LABEL)); + cmd.set("#NewDescLabel.Text", HFMessages.get(playerRef, MessageKeys.DescGui.NEW_DESC_LABEL)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#ClearBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CLEAR)); + cmd.set("#SaveBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.SAVE)); + // Show current description String currentDesc = faction.description(); if (currentDesc == null || currentDesc.isEmpty()) { diff --git a/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java b/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java index bb7b72d7..20bc9ed1 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/FactionInfoPage.java @@ -136,6 +136,9 @@ public void build(Ref ref, UICommandBuilder cmd, Faction viewerFaction = factionManager.getPlayerFaction(viewerRef.getUuid()); boolean isOwnFaction = viewerFaction != null && viewerFaction.id().equals(targetFaction.id()); + // === Page Title === + cmd.set("#PageTitle.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.TITLE)); + // === Header Section === // Faction name cmd.set("#FactionName.Text", targetFaction.name()); @@ -162,6 +165,27 @@ public void build(Ref ref, UICommandBuilder cmd, // Note: Cannot dynamically set text color via cmd.set() // === Stats Section === + // Set stat card headers and subtitles + cmd.set("#PowerHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.POWER_HEADER)); + cmd.set("#PowerSubtitle.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.CURRENT_MAX)); + cmd.set("#ClaimsHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.CLAIMS_HEADER)); + cmd.set("#ClaimsSubtitle.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.CLAIMED_MAX)); + cmd.set("#MembersHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.MEMBERS_HEADER)); + cmd.set("#RelationsHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.RELATIONS_HEADER)); + cmd.set("#RelationsSubtitle.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.ALLY_ENEMY)); + cmd.set("#StatusHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.STATUS_HEADER)); + cmd.set("#TreasuryHeader.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.TREASURY_HEADER)); + cmd.set("#TreasurySubtitle.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.FACTION_BALANCE)); + + // Leadership labels + cmd.set("#LeaderLabel.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.LEADER_LABEL)); + cmd.set("#OfficersLabel.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.OFFICERS_LABEL)); + + // Button text + cmd.set("#ViewMembersBtn.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.VIEW_MEMBERS_BTN)); + cmd.set("#ViewRelationsBtn.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.RELATIONS_BTN)); + cmd.set("#BackBtn.Text", HFMessages.get(viewerRef, MessageKeys.FactionInfoGui.BACK_BTN)); + PowerManager.FactionPowerStats powerStats = powerManager.getFactionPowerStats(targetFaction.id()); // Power diff --git a/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java b/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java index 61f7bbeb..77270444 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/MainMenuPage.java @@ -56,7 +56,7 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.MAIN_MENU); // Set title - cmd.set("#MenuTitle.Text", "HyperFactions"); + cmd.set("#MenuTitle.Text", HFMessages.get(playerRef, MessageKeys.MainMenu.TITLE)); // Section: My Faction if (faction != null) { diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index 30e9c989..835be09f 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -112,6 +112,10 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the template cmd.append(UIPaths.PLAYER_SETTINGS); + // Page title + cmd.set("#PageTitle.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.TITLE)); + // Setup nav bar based on faction status if (faction != null) { NavBarHelper.setupBar(playerRef, faction, PAGE_ID, cmd, events); @@ -128,6 +132,8 @@ public void build(Ref ref, UICommandBuilder cmd, HFMessages.get(playerRef, MessageKeys.PlayerSettings.LANGUAGE_LABEL)); // Auto-detect checkbox + cmd.set("#AutoDetectLabel.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.AUTO_DETECT)); boolean autoDetect = (languagePreference == null); cmd.set("#AutoDetectCB #CheckBox.Value", autoDetect); @@ -170,18 +176,24 @@ public void build(Ref ref, UICommandBuilder cmd, HFMessages.get(playerRef, MessageKeys.PlayerSettings.NOTIFICATIONS_SECTION)); // Territory Alerts + cmd.set("#TerritoryAlertsLabel.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.TERRITORY_ALERTS)); buildNotificationToggle(cmd, events, "#TerritoryAlertsCB", MessageKeys.PlayerSettings.TERRITORY_ALERTS, MessageKeys.PlayerSettings.TERRITORY_ALERTS_DESC, "#TerritoryAlertsDesc", territoryAlerts, "ToggleTerritoryAlerts"); // Death Announcements + cmd.set("#DeathAnnounceLabel.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS)); buildNotificationToggle(cmd, events, "#DeathAnnounceCB", MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS_DESC, "#DeathAnnounceDesc", deathAnnouncements, "ToggleDeathAnnouncements"); // Power Notifications + cmd.set("#PowerNotifLabel.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS)); buildNotificationToggle(cmd, events, "#PowerNotifCB", MessageKeys.PlayerSettings.POWER_NOTIFICATIONS, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS_DESC, diff --git a/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java index efd40df2..e0ba2076 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/RenameModalPage.java @@ -82,6 +82,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modal template cmd.append(UIPaths.RENAME_MODAL); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.RenameGui.TITLE)); + cmd.set("#CurrentLabel.Text", HFMessages.get(playerRef, MessageKeys.RenameGui.CURRENT_LABEL)); + cmd.set("#NewNameLabel.Text", HFMessages.get(playerRef, MessageKeys.RenameGui.NEW_NAME_LABEL)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#SaveBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.SAVE)); + // Show current name cmd.set("#CurrentName.Text", faction.name()); diff --git a/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java b/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java index 18d6083e..067d8ccb 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/TagModalPage.java @@ -85,6 +85,14 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modal template cmd.append(UIPaths.TAG_MODAL); + // Static labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.TagGui.TITLE)); + cmd.set("#CurrentLabel.Text", HFMessages.get(playerRef, MessageKeys.TagGui.CURRENT_LABEL)); + cmd.set("#TagInstructions.Text", HFMessages.get(playerRef, MessageKeys.TagGui.INSTRUCTIONS)); + cmd.set("#TagHelpText.Text", HFMessages.get(playerRef, MessageKeys.TagGui.HELP_TEXT)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#SaveBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.SAVE)); + // Show current tag String currentTag = faction.tag(); if (currentTag == null || currentTag.isEmpty()) { diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 169d73a1..f4807177 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -56,6 +56,11 @@ public static final class Common { public static final String WORLD_ERROR = "hyperfactions.common.world_error"; public static final String INVALID_ID = "hyperfactions.common.invalid_id"; public static final String NA = "hyperfactions.common.na"; + public static final String CLEAR = "hyperfactions.common.clear"; + public static final String BACK = "hyperfactions.common.back"; + public static final String LEAVE = "hyperfactions.common.leave"; + public static final String TRANSFER = "hyperfactions.common.transfer"; + public static final String DISBAND = "hyperfactions.common.disband"; private Common() {} } @@ -682,6 +687,7 @@ private AdminNav() {} /** Main menu page labels. */ public static final class MainMenu { + public static final String TITLE = "hyperfactions_gui.main_menu.title"; public static final String SECTION_MY_FACTION = "hyperfactions_gui.main_menu.section_my_faction"; public static final String SECTION_GET_STARTED = "hyperfactions_gui.main_menu.section_get_started"; public static final String SECTION_TERRITORY = "hyperfactions_gui.main_menu.section_territory"; @@ -694,18 +700,41 @@ private MainMenu() {} /** Faction info page labels. */ public static final class FactionInfoGui { + public static final String TITLE = "hyperfactions_gui.faction_info.title"; public static final String NO_DESCRIPTION = "hyperfactions_gui.faction_info.no_description"; public static final String STATUS_OPEN = "hyperfactions_gui.faction_info.status_open"; public static final String STATUS_INVITE_ONLY = "hyperfactions_gui.faction_info.status_invite_only"; public static final String STATUS_RAIDABLE = "hyperfactions_gui.faction_info.status_raidable"; public static final String STATUS_PROTECTED = "hyperfactions_gui.faction_info.status_protected"; public static final String OFFICERS_MORE = "hyperfactions_gui.faction_info.officers_more"; + // Stat card headers + public static final String POWER_HEADER = "hyperfactions_gui.faction_info.power_header"; + public static final String CLAIMS_HEADER = "hyperfactions_gui.faction_info.claims_header"; + public static final String MEMBERS_HEADER = "hyperfactions_gui.faction_info.members_header"; + public static final String RELATIONS_HEADER = "hyperfactions_gui.faction_info.relations_header"; + public static final String STATUS_HEADER = "hyperfactions_gui.faction_info.status_header"; + public static final String TREASURY_HEADER = "hyperfactions_gui.faction_info.treasury_header"; + // Stat card subtitles + public static final String CURRENT_MAX = "hyperfactions_gui.faction_info.current_max"; + public static final String CLAIMED_MAX = "hyperfactions_gui.faction_info.claimed_max"; + public static final String ALLY_ENEMY = "hyperfactions_gui.faction_info.ally_enemy"; + public static final String FACTION_BALANCE = "hyperfactions_gui.faction_info.faction_balance"; + // Leadership labels + public static final String LEADER_LABEL = "hyperfactions_gui.faction_info.leader_label"; + public static final String OFFICERS_LABEL = "hyperfactions_gui.faction_info.officers_label"; + // Button text + public static final String VIEW_MEMBERS_BTN = "hyperfactions_gui.faction_info.view_members_btn"; + public static final String RELATIONS_BTN = "hyperfactions_gui.faction_info.relations_btn"; + public static final String BACK_BTN = "hyperfactions_gui.faction_info.back_btn"; private FactionInfoGui() {} } /** Rename modal page messages. */ public static final class RenameGui { + public static final String TITLE = "hyperfactions_gui.rename.title"; + public static final String CURRENT_LABEL = "hyperfactions_gui.rename.current_label"; + public static final String NEW_NAME_LABEL = "hyperfactions_gui.rename.new_name_label"; public static final String NO_PERMISSION = "hyperfactions_gui.rename.no_permission"; public static final String ENTER_NAME = "hyperfactions_gui.rename.enter_name"; public static final String TOO_SHORT = "hyperfactions_gui.rename.too_short"; @@ -719,6 +748,9 @@ private RenameGui() {} /** Description modal page messages. */ public static final class DescGui { + public static final String TITLE = "hyperfactions_gui.desc.title"; + public static final String CURRENT_LABEL = "hyperfactions_gui.desc.current_label"; + public static final String NEW_DESC_LABEL = "hyperfactions_gui.desc.new_desc_label"; public static final String NO_PERMISSION = "hyperfactions_gui.desc.no_permission"; public static final String DISPLAY_NONE = "hyperfactions_gui.desc.display_none"; public static final String CLEARED = "hyperfactions_gui.desc.cleared"; @@ -729,6 +761,10 @@ private DescGui() {} /** Tag modal page messages. */ public static final class TagGui { + public static final String TITLE = "hyperfactions_gui.tag.title"; + public static final String CURRENT_LABEL = "hyperfactions_gui.tag.current_label"; + public static final String INSTRUCTIONS = "hyperfactions_gui.tag.instructions"; + public static final String HELP_TEXT = "hyperfactions_gui.tag.help_text"; public static final String NO_PERMISSION = "hyperfactions_gui.tag.no_permission"; public static final String DISPLAY_NONE = "hyperfactions_gui.tag.display_none"; public static final String CLEARED = "hyperfactions_gui.tag.cleared"; @@ -744,12 +780,34 @@ private TagGui() {} /** Dashboard page labels and messages. */ public static final class DashboardGui { + public static final String TITLE = "hyperfactions_gui.dashboard.title"; public static final String POWER_LABEL = "hyperfactions_gui.dashboard.power_label"; public static final String LAND_LABEL = "hyperfactions_gui.dashboard.land_label"; public static final String MEMBERS_LABEL = "hyperfactions_gui.dashboard.members_label"; public static final String ONLINE_LABEL = "hyperfactions_gui.dashboard.online_label"; public static final String ALLIES_LABEL = "hyperfactions_gui.dashboard.allies_label"; public static final String ENEMIES_LABEL = "hyperfactions_gui.dashboard.enemies_label"; + public static final String RELATIONS_LABEL = "hyperfactions_gui.dashboard.relations_label"; + public static final String ALLY_ENEMY_LABEL = "hyperfactions_gui.dashboard.ally_enemy_label"; + public static final String STATUS_LABEL = "hyperfactions_gui.dashboard.status_label"; + public static final String INVITES_LABEL = "hyperfactions_gui.dashboard.invites_label"; + public static final String SENT_REQUESTS_LABEL = "hyperfactions_gui.dashboard.sent_requests_label"; + public static final String TREASURY_LABEL = "hyperfactions_gui.dashboard.treasury_label"; + public static final String UPKEEP_LABEL = "hyperfactions_gui.dashboard.upkeep_label"; + public static final String PER_CYCLE = "hyperfactions_gui.dashboard.per_cycle"; + public static final String YOUR_WALLET = "hyperfactions_gui.dashboard.your_wallet"; + public static final String PERSONAL_BALANCE = "hyperfactions_gui.dashboard.personal_balance"; + public static final String QUICK_ACTIONS = "hyperfactions_gui.dashboard.quick_actions"; + public static final String TELEPORT_LABEL = "hyperfactions_gui.dashboard.teleport_label"; + public static final String TERRITORY_LABEL = "hyperfactions_gui.dashboard.territory_label"; + public static final String CHANNEL_LABEL = "hyperfactions_gui.dashboard.channel_label"; + public static final String MEMBERSHIP_LABEL = "hyperfactions_gui.dashboard.membership_label"; + public static final String RECENT_ACTIVITY = "hyperfactions_gui.dashboard.recent_activity"; + public static final String VIEW_ALL = "hyperfactions_gui.dashboard.view_all"; + public static final String INCOME_24H = "hyperfactions_gui.dashboard.income_24h"; + public static final String DEPOSITS_TRANSFERS_IN = "hyperfactions_gui.dashboard.deposits_transfers_in"; + public static final String EXPENSES_24H = "hyperfactions_gui.dashboard.expenses_24h"; + public static final String WITHDRAWALS_TRANSFERS_OUT = "hyperfactions_gui.dashboard.withdrawals_transfers_out"; public static final String FACTION_GONE = "hyperfactions_gui.dashboard.faction_gone"; public static final String AVAILABLE = "hyperfactions_gui.dashboard.available"; public static final String AT_RISK = "hyperfactions_gui.dashboard.at_risk"; @@ -782,12 +840,21 @@ public static final class GuiCommon { public static final String SORT_MEMBERS = "hyperfactions_gui.common.sort_members"; public static final String PAGE_FORMAT = "hyperfactions_gui.common.page_format"; public static final String OWN_FACTION = "hyperfactions_gui.common.own_faction"; + public static final String SEARCH = "hyperfactions_gui.common.search"; + public static final String SORT = "hyperfactions_gui.common.sort"; + public static final String PREV = "hyperfactions_gui.common.prev"; + public static final String NEXT = "hyperfactions_gui.common.next"; private GuiCommon() {} } /** Members page labels and messages. */ public static final class MembersGui { + public static final String TITLE = "hyperfactions_gui.members.title"; + public static final String SEARCH_LABEL = "hyperfactions_gui.members.search_label"; + public static final String SORT_LABEL = "hyperfactions_gui.members.sort_label"; + public static final String PREV_BTN = "hyperfactions_gui.members.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.members.next_btn"; public static final String MEMBER_COUNT = "hyperfactions_gui.members.count"; public static final String SORT_ROLE = "hyperfactions_gui.members.sort_role"; public static final String SORT_LAST_ONLINE = "hyperfactions_gui.members.sort_last_online"; @@ -807,6 +874,11 @@ private MembersGui() {} /** Browser page labels. */ public static final class BrowserGui { + public static final String TITLE = "hyperfactions_gui.browser.title"; + public static final String SEARCH_LABEL = "hyperfactions_gui.browser.search_label"; + public static final String SORT_LABEL = "hyperfactions_gui.browser.sort_label"; + public static final String PREV_BTN = "hyperfactions_gui.browser.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.browser.next_btn"; public static final String SORT_NAME = "hyperfactions_gui.browser.sort_name"; public static final String INVALID_FACTION = "hyperfactions_gui.browser.invalid_faction"; @@ -815,6 +887,14 @@ private BrowserGui() {} /** Leaderboard page labels. */ public static final class LeaderboardGui { + public static final String TITLE = "hyperfactions_gui.leaderboard.title"; + public static final String RANK_BY = "hyperfactions_gui.leaderboard.rank_by"; + public static final String COL_RANK = "hyperfactions_gui.leaderboard.col_rank"; + public static final String COL_FACTION = "hyperfactions_gui.leaderboard.col_faction"; + public static final String COL_CLAIMS = "hyperfactions_gui.leaderboard.col_claims"; + public static final String COL_MEMBERS = "hyperfactions_gui.leaderboard.col_members"; + public static final String PREV_BTN = "hyperfactions_gui.leaderboard.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.leaderboard.next_btn"; public static final String SORT_KD = "hyperfactions_gui.leaderboard.sort_kd"; public static final String SORT_TERRITORY = "hyperfactions_gui.leaderboard.sort_territory"; public static final String SORT_BALANCE = "hyperfactions_gui.leaderboard.sort_balance"; @@ -824,6 +904,21 @@ private LeaderboardGui() {} /** Player info page labels and messages. */ public static final class PlayerInfoGui { + public static final String TITLE = "hyperfactions_gui.playerinfo.title"; + public static final String FIRST_JOINED_LABEL = "hyperfactions_gui.playerinfo.first_joined_label"; + public static final String LAST_ONLINE_LABEL = "hyperfactions_gui.playerinfo.last_online_label"; + public static final String FACTION_LABEL = "hyperfactions_gui.playerinfo.faction_label"; + public static final String ROLE_LABEL = "hyperfactions_gui.playerinfo.role_label"; + public static final String JOINED_LABEL_STATIC = "hyperfactions_gui.playerinfo.joined_label_static"; + public static final String NOT_IN_FACTION = "hyperfactions_gui.playerinfo.not_in_faction"; + public static final String POWER_HEADER = "hyperfactions_gui.playerinfo.power_header"; + public static final String CURRENT_MAX = "hyperfactions_gui.playerinfo.current_max"; + public static final String COMBAT_HEADER = "hyperfactions_gui.playerinfo.combat_header"; + public static final String KILLS_DEATHS = "hyperfactions_gui.playerinfo.kills_deaths"; + public static final String KDR_HEADER = "hyperfactions_gui.playerinfo.kdr_header"; + public static final String MEMBERSHIP_HISTORY = "hyperfactions_gui.playerinfo.membership_history"; + public static final String VIEW_FACTION_BTN = "hyperfactions_gui.playerinfo.view_faction_btn"; + public static final String BACK_BTN = "hyperfactions_gui.playerinfo.back_btn"; public static final String NOW = "hyperfactions_gui.playerinfo.now"; public static final String HISTORY_COUNT = "hyperfactions_gui.playerinfo.history_count"; public static final String JOINED_LABEL = "hyperfactions_gui.playerinfo.joined_label"; @@ -852,7 +947,7 @@ public static final class FactionMainGui { private FactionMainGui() {} } - /** Help GUI category display names. */ + /** Help GUI category display names and new player help page content. */ public static final class HelpGui { public static final String WELCOME = "hyperfactions_gui.help.category.welcome"; public static final String YOUR_FACTION = "hyperfactions_gui.help.category.your_faction"; @@ -861,6 +956,32 @@ public static final class HelpGui { public static final String COMBAT = "hyperfactions_gui.help.category.combat"; public static final String ECONOMY = "hyperfactions_gui.help.category.economy"; public static final String QUICK_REF = "hyperfactions_gui.help.category.quick_ref"; + // Help Center page title + public static final String HELP_CENTER_TITLE = "hyperfactions_gui.help.center_title"; + // New player help page + public static final String GETTING_STARTED_TITLE = "hyperfactions_gui.help.getting_started_title"; + public static final String WHAT_ARE_FACTIONS_TITLE = "hyperfactions_gui.help.what_are_factions_title"; + public static final String WHAT_ARE_FACTIONS_1 = "hyperfactions_gui.help.what_are_factions_1"; + public static final String WHAT_ARE_FACTIONS_2 = "hyperfactions_gui.help.what_are_factions_2"; + public static final String WHAT_ARE_FACTIONS_BULLET_1 = "hyperfactions_gui.help.what_are_factions_bullet_1"; + public static final String WHAT_ARE_FACTIONS_BULLET_2 = "hyperfactions_gui.help.what_are_factions_bullet_2"; + public static final String WHAT_ARE_FACTIONS_BULLET_3 = "hyperfactions_gui.help.what_are_factions_bullet_3"; + public static final String JOINING_TITLE = "hyperfactions_gui.help.joining_title"; + public static final String JOINING_DESC = "hyperfactions_gui.help.joining_desc"; + public static final String JOINING_BULLET_1 = "hyperfactions_gui.help.joining_bullet_1"; + public static final String JOINING_BULLET_2 = "hyperfactions_gui.help.joining_bullet_2"; + public static final String JOINING_BULLET_3 = "hyperfactions_gui.help.joining_bullet_3"; + public static final String CREATING_TITLE = "hyperfactions_gui.help.creating_title"; + public static final String CREATING_DESC = "hyperfactions_gui.help.creating_desc"; + public static final String CREATING_BULLET_1 = "hyperfactions_gui.help.creating_bullet_1"; + public static final String CREATING_BULLET_2 = "hyperfactions_gui.help.creating_bullet_2"; + public static final String COMMANDS_TITLE = "hyperfactions_gui.help.commands_title"; + public static final String CMD_F = "hyperfactions_gui.help.cmd_f"; + public static final String CMD_F_LIST = "hyperfactions_gui.help.cmd_f_list"; + public static final String CMD_F_JOIN = "hyperfactions_gui.help.cmd_f_join"; + public static final String CMD_F_CREATE = "hyperfactions_gui.help.cmd_f_create"; + public static final String CMD_F_HELP = "hyperfactions_gui.help.cmd_f_help"; + public static final String TIP = "hyperfactions_gui.help.tip"; private HelpGui() {} } @@ -895,6 +1016,12 @@ private ChatDisplay() {} /** Relations page labels and messages. */ public static final class RelationsGui { + public static final String TITLE = "hyperfactions_gui.relations.title"; + public static final String TAB_RELATIONS = "hyperfactions_gui.relations.tab_relations"; + public static final String TAB_PENDING = "hyperfactions_gui.relations.tab_pending"; + public static final String SET_RELATION_BTN = "hyperfactions_gui.relations.set_relation_btn"; + public static final String PREV_BTN = "hyperfactions_gui.relations.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.relations.next_btn"; public static final String RELATION_COUNT = "hyperfactions_gui.relations.relation_count"; public static final String REQUEST_COUNT = "hyperfactions_gui.relations.request_count"; public static final String TYPE_ALLY = "hyperfactions_gui.relations.type_ally"; @@ -926,6 +1053,59 @@ private RelationsGui() {} /** Settings page labels and messages. */ public static final class SettingsGui { + public static final String TITLE = "hyperfactions_gui.settings.title"; + public static final String GENERAL = "hyperfactions_gui.settings.general"; + public static final String NAME_LABEL = "hyperfactions_gui.settings.name_label"; + public static final String TAG_LABEL = "hyperfactions_gui.settings.tag_label"; + public static final String DESC_LABEL = "hyperfactions_gui.settings.desc_label"; + public static final String EDIT_BTN = "hyperfactions_gui.settings.edit_btn"; + public static final String RECRUITMENT = "hyperfactions_gui.settings.recruitment"; + public static final String STATUS_LABEL = "hyperfactions_gui.settings.status_label"; + public static final String HOME_LOCATION = "hyperfactions_gui.settings.home_location"; + public static final String LOCATION_LABEL = "hyperfactions_gui.settings.location_label"; + public static final String SET_HOME_BTN = "hyperfactions_gui.settings.set_home_btn"; + public static final String TELEPORT_BTN = "hyperfactions_gui.settings.teleport_btn"; + public static final String DELETE_BTN = "hyperfactions_gui.settings.delete_btn"; + public static final String OPTIONAL_FEATURES = "hyperfactions_gui.settings.optional_features"; + public static final String CONFIGURE_MODULES = "hyperfactions_gui.settings.configure_modules"; + public static final String MODULES_BTN = "hyperfactions_gui.settings.modules_btn"; + public static final String DANGER_ZONE = "hyperfactions_gui.settings.danger_zone"; + public static final String IRREVERSIBLE = "hyperfactions_gui.settings.irreversible"; + public static final String DISBAND_BTN = "hyperfactions_gui.settings.disband_btn"; + public static final String LOCK_HINT = "hyperfactions_gui.settings.lock_hint"; + public static final String TERRITORY_PERMISSIONS = "hyperfactions_gui.settings.territory_permissions"; + public static final String COL_OUT = "hyperfactions_gui.settings.col_out"; + public static final String COL_ALLY = "hyperfactions_gui.settings.col_ally"; + public static final String COL_MEM = "hyperfactions_gui.settings.col_mem"; + public static final String COL_OFF = "hyperfactions_gui.settings.col_off"; + public static final String CAT_BUILDING = "hyperfactions_gui.settings.cat_building"; + public static final String PERM_BREAK = "hyperfactions_gui.settings.perm_break"; + public static final String PERM_PLACE = "hyperfactions_gui.settings.perm_place"; + public static final String CAT_INTERACTION = "hyperfactions_gui.settings.cat_interaction"; + public static final String INTERACTION_HINT = "hyperfactions_gui.settings.interaction_hint"; + public static final String PERM_ALL = "hyperfactions_gui.settings.perm_all"; + public static final String PERM_DOOR = "hyperfactions_gui.settings.perm_door"; + public static final String PERM_CHEST = "hyperfactions_gui.settings.perm_chest"; + public static final String PERM_BENCH = "hyperfactions_gui.settings.perm_bench"; + public static final String PERM_PROCESSING = "hyperfactions_gui.settings.perm_processing"; + public static final String PERM_SEAT = "hyperfactions_gui.settings.perm_seat"; + public static final String PERM_TRANSPORT = "hyperfactions_gui.settings.perm_transport"; + public static final String CAT_OTHER = "hyperfactions_gui.settings.cat_other"; + public static final String PERM_CRATE = "hyperfactions_gui.settings.perm_crate"; + public static final String PERM_NPC_TAME = "hyperfactions_gui.settings.perm_npc_tame"; + public static final String PERM_PVE = "hyperfactions_gui.settings.perm_pve"; + public static final String APPEARANCE = "hyperfactions_gui.settings.appearance"; + public static final String COLOR_LABEL = "hyperfactions_gui.settings.color_label"; + public static final String MOB_SPAWNING = "hyperfactions_gui.settings.mob_spawning"; + public static final String MOB_SPAWNING_HINT = "hyperfactions_gui.settings.mob_spawning_hint"; + public static final String MOB_SPAWNING_LABEL = "hyperfactions_gui.settings.mob_spawning_label"; + public static final String HOSTILE_MOBS = "hyperfactions_gui.settings.hostile_mobs"; + public static final String PASSIVE_MOBS = "hyperfactions_gui.settings.passive_mobs"; + public static final String NEUTRAL_MOBS = "hyperfactions_gui.settings.neutral_mobs"; + public static final String FACTION_SETTINGS = "hyperfactions_gui.settings.faction_settings"; + public static final String PVP_IN_TERRITORY = "hyperfactions_gui.settings.pvp_in_territory"; + public static final String OFFICERS_CAN_EDIT = "hyperfactions_gui.settings.officers_can_edit"; + public static final String LEADER_ONLY = "hyperfactions_gui.settings.leader_only"; public static final String OFFICERS_ONLY = "hyperfactions_gui.settings.officers_only"; public static final String DISPLAY_NONE = "hyperfactions_gui.settings.display_none"; public static final String HOME_NOT_SET = "hyperfactions_gui.settings.home_not_set"; @@ -947,6 +1127,10 @@ private SettingsGui() {} /** Modules page labels. */ public static final class ModulesGui { + public static final String TITLE = "hyperfactions_gui.modules.title"; + public static final String DESCRIPTION = "hyperfactions_gui.modules.description"; + public static final String CONFIGURE_BTN = "hyperfactions_gui.modules.configure_btn"; + public static final String BACK_BTN = "hyperfactions_gui.modules.back_btn"; public static final String TREASURY_NAME = "hyperfactions_gui.modules.treasury_name"; public static final String TREASURY_DESC = "hyperfactions_gui.modules.treasury_desc"; public static final String RAIDS_NAME = "hyperfactions_gui.modules.raids_name"; @@ -968,6 +1152,34 @@ private ModulesGui() {} /** Treasury page labels and messages. */ public static final class TreasuryGui { + // Page labels + public static final String TITLE = "hyperfactions_gui.treasury.title"; + public static final String BALANCE_LABEL = "hyperfactions_gui.treasury.balance_label"; + public static final String INCOME_24H = "hyperfactions_gui.treasury.income_24h"; + public static final String DEPOSITS_TRANSFERS_IN = "hyperfactions_gui.treasury.deposits_transfers_in"; + public static final String EXPENSES_24H = "hyperfactions_gui.treasury.expenses_24h"; + public static final String WITHDRAWALS_TRANSFERS_OUT = "hyperfactions_gui.treasury.withdrawals_transfers_out"; + public static final String MAINTENANCE = "hyperfactions_gui.treasury.maintenance"; + public static final String RUNWAY_LABEL = "hyperfactions_gui.treasury.runway_label"; + public static final String ADD_FUNDS = "hyperfactions_gui.treasury.add_funds"; + public static final String DEPOSIT_BTN = "hyperfactions_gui.treasury.deposit_btn"; + public static final String TAKE_FUNDS = "hyperfactions_gui.treasury.take_funds"; + public static final String WITHDRAW_BTN = "hyperfactions_gui.treasury.withdraw_btn"; + public static final String SEND_TO_FACTION = "hyperfactions_gui.treasury.send_to_faction"; + public static final String TRANSFER_BTN = "hyperfactions_gui.treasury.transfer_btn"; + public static final String TREASURY_CONFIG = "hyperfactions_gui.treasury.treasury_config"; + public static final String SETTINGS_BTN = "hyperfactions_gui.treasury.settings_btn"; + public static final String RECENT_TRANSACTIONS = "hyperfactions_gui.treasury.recent_transactions"; + public static final String NO_TRANSACTIONS = "hyperfactions_gui.treasury.no_transactions"; + public static final String COL_DATE = "hyperfactions_gui.treasury.col_date"; + public static final String COL_TYPE = "hyperfactions_gui.treasury.col_type"; + public static final String COL_BY = "hyperfactions_gui.treasury.col_by"; + public static final String COL_AMOUNT = "hyperfactions_gui.treasury.col_amount"; + public static final String COL_DETAILS = "hyperfactions_gui.treasury.col_details"; + public static final String PAY_NOW_BTN = "hyperfactions_gui.treasury.pay_now_btn"; + public static final String COST_7D = "hyperfactions_gui.treasury.cost_7d"; + public static final String COST_14D = "hyperfactions_gui.treasury.cost_14d"; + public static final String COST_30D = "hyperfactions_gui.treasury.cost_30d"; // Dashboard labels public static final String WALLET_LABEL = "hyperfactions_gui.treasury.wallet_label"; public static final String TREASURY_LABEL = "hyperfactions_gui.treasury.treasury_label"; @@ -1041,12 +1253,41 @@ public static final class TreasuryGui { public static final String LEADER_ONLY_PERMS = "hyperfactions_gui.treasury.leader_only_perms"; public static final String LEADER_ONLY_UPKEEP = "hyperfactions_gui.treasury.leader_only_upkeep"; public static final String INVALID_LIMIT = "hyperfactions_gui.treasury.invalid_limit"; + // Treasury settings page + public static final String SETTINGS_TITLE = "hyperfactions_gui.treasury.settings_title"; + public static final String OFFICER_PERMISSIONS = "hyperfactions_gui.treasury.officer_permissions"; + public static final String ALLOW_WITHDRAW = "hyperfactions_gui.treasury.allow_withdraw"; + public static final String ALLOW_TRANSFER = "hyperfactions_gui.treasury.allow_transfer"; + public static final String LIMITS_SECTION = "hyperfactions_gui.treasury.limits_section"; + public static final String MAX_PER_WITHDRAWAL = "hyperfactions_gui.treasury.max_per_withdrawal"; + public static final String MAX_WITHDRAWALS_PER = "hyperfactions_gui.treasury.max_withdrawals_per"; + public static final String MAX_PER_TRANSFER = "hyperfactions_gui.treasury.max_per_transfer"; + public static final String MAX_TRANSFERS_PER = "hyperfactions_gui.treasury.max_transfers_per"; + public static final String LIMIT_PERIOD = "hyperfactions_gui.treasury.limit_period"; + public static final String NO_LIMIT_HINT = "hyperfactions_gui.treasury.no_limit_hint"; + public static final String UPKEEP_SETTINGS = "hyperfactions_gui.treasury.upkeep_settings"; + public static final String AUTO_PAY_UPKEEP = "hyperfactions_gui.treasury.auto_pay_upkeep"; + public static final String BACK_BTN = "hyperfactions_gui.treasury.back_btn"; private TreasuryGui() {} } /** Confirmation page messages (disband, leave, transfer). */ public static final class ConfirmGui { + // Static UI labels + public static final String DISBAND_TITLE = "hyperfactions_gui.confirm.disband_title"; + public static final String DISBAND_PROMPT = "hyperfactions_gui.confirm.disband_prompt"; + public static final String DISBAND_WARNING = "hyperfactions_gui.confirm.disband_warning"; + public static final String LEAVE_TITLE = "hyperfactions_gui.confirm.leave_title"; + public static final String LEAVE_PROMPT = "hyperfactions_gui.confirm.leave_prompt"; + public static final String LEAVE_WARNING = "hyperfactions_gui.confirm.leave_warning"; + public static final String LEADER_LEAVE_TITLE = "hyperfactions_gui.confirm.leader_leave_title"; + public static final String LEADER_LEAVE_PROMPT = "hyperfactions_gui.confirm.leader_leave_prompt"; + public static final String TRANSFER_TITLE = "hyperfactions_gui.confirm.transfer_title"; + public static final String TRANSFER_PROMPT = "hyperfactions_gui.confirm.transfer_prompt"; + public static final String TRANSFER_WARNING = "hyperfactions_gui.confirm.transfer_warning"; + public static final String ERROR_TITLE = "hyperfactions_gui.confirm.error_title"; + public static final String ERROR_DEFAULT = "hyperfactions_gui.confirm.error_default"; // DisbandConfirm public static final String DISBAND_NOT_LEADER = "hyperfactions_gui.confirm.disband_not_leader"; public static final String DISBANDED = "hyperfactions_gui.confirm.disbanded"; @@ -1076,6 +1317,12 @@ private ConfirmGui() {} public static final class LogsGui { public static final String TITLE = "hyperfactions_gui.logs.title"; public static final String ENTRY_COUNT = "hyperfactions_gui.logs.entry_count"; + public static final String FILTER_LABEL = "hyperfactions_gui.logs.filter_label"; + public static final String COL_TIME = "hyperfactions_gui.logs.col_time"; + public static final String COL_TYPE = "hyperfactions_gui.logs.col_type"; + public static final String COL_MESSAGE = "hyperfactions_gui.logs.col_message"; + public static final String PREV_BTN = "hyperfactions_gui.logs.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.logs.next_btn"; public static final String ALL_TYPES = "hyperfactions_gui.logs.all_types"; public static final String NO_LOGS_TYPE = "hyperfactions_gui.logs.no_logs_type"; public static final String NO_LOGS = "hyperfactions_gui.logs.no_logs"; @@ -1085,6 +1332,10 @@ private LogsGui() {} /** Faction chat page labels and messages. */ public static final class ChatGui { + public static final String TITLE = "hyperfactions_gui.chat.title"; + public static final String TAB_FACTION = "hyperfactions_gui.chat.tab_faction"; + public static final String TAB_ALLY = "hyperfactions_gui.chat.tab_ally"; + public static final String SEND_BTN = "hyperfactions_gui.chat.send_btn"; public static final String PLACEHOLDER = "hyperfactions_gui.chat.placeholder"; public static final String NO_MESSAGES = "hyperfactions_gui.chat.no_messages"; public static final String NO_ALLY_PERMISSION = "hyperfactions_gui.chat.no_ally_permission"; @@ -1099,6 +1350,11 @@ private ChatGui() {} /** Faction invites page labels and messages. */ public static final class InvitesGui { + public static final String TITLE = "hyperfactions_gui.invites.title"; + public static final String TAB_OUTGOING = "hyperfactions_gui.invites.tab_outgoing"; + public static final String TAB_REQUESTS = "hyperfactions_gui.invites.tab_requests"; + public static final String PREV_BTN = "hyperfactions_gui.invites.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.invites.next_btn"; public static final String INVITE_COUNT = "hyperfactions_gui.invites.invite_count"; public static final String REQUEST_COUNT = "hyperfactions_gui.invites.request_count"; public static final String INVITED_BY = "hyperfactions_gui.invites.invited_by"; @@ -1125,6 +1381,16 @@ private InvitesGui() {} /** Chunk map page labels and messages. */ public static final class MapGui { + public static final String TITLE = "hyperfactions_gui.map.title"; + public static final String ACTION_HINT = "hyperfactions_gui.map.action_hint"; + public static final String LEGEND_YOUR = "hyperfactions_gui.map.legend_your"; + public static final String LEGEND_ALLY = "hyperfactions_gui.map.legend_ally"; + public static final String LEGEND_ENEMY = "hyperfactions_gui.map.legend_enemy"; + public static final String LEGEND_OTHER = "hyperfactions_gui.map.legend_other"; + public static final String LEGEND_WILDERNESS = "hyperfactions_gui.map.legend_wilderness"; + public static final String LEGEND_SAFE = "hyperfactions_gui.map.legend_safe"; + public static final String LEGEND_WAR = "hyperfactions_gui.map.legend_war"; + public static final String LEGEND_YOU = "hyperfactions_gui.map.legend_you"; public static final String POSITION = "hyperfactions_gui.map.position"; public static final String LEGEND_PROTECTED = "hyperfactions_gui.map.legend_protected"; public static final String CLAIM_STATS = "hyperfactions_gui.map.claim_stats"; @@ -1179,12 +1445,39 @@ public static final class CreateGui { public static final String CREATED_NO_DASHBOARD = "hyperfactions_gui.create.created_no_dashboard"; public static final String INVALID_NAME = "hyperfactions_gui.create.invalid_name"; public static final String CREATE_FAILED = "hyperfactions_gui.create.create_failed"; + // Static UI labels + public static final String TITLE = "hyperfactions_gui.create.title"; + public static final String SECTION_PREVIEW = "hyperfactions_gui.create.section_preview"; + public static final String SECTION_BASIC_INFO = "hyperfactions_gui.create.section_basic_info"; + public static final String SECTION_DETAILS = "hyperfactions_gui.create.section_details"; + public static final String NAME_PREFIX = "hyperfactions_gui.create.name_prefix"; + public static final String FACTION_NAME_LABEL = "hyperfactions_gui.create.faction_name_label"; + public static final String TAG_LABEL = "hyperfactions_gui.create.tag_label"; + public static final String DESC_LABEL = "hyperfactions_gui.create.desc_label"; + public static final String RECRUITMENT_LABEL = "hyperfactions_gui.create.recruitment_label"; + public static final String SECTION_FACTION_COLOR = "hyperfactions_gui.create.section_faction_color"; + public static final String SECTION_COMBAT = "hyperfactions_gui.create.section_combat"; + public static final String CREATE_BTN = "hyperfactions_gui.create.create_btn"; private CreateGui() {} } /** New player page labels and messages (invites, browse, map). */ public static final class NewPlayerGui { + // Page titles and static labels + public static final String BROWSE_TITLE = "hyperfactions_gui.newplayer.browse_title"; + public static final String INVITES_TITLE = "hyperfactions_gui.newplayer.invites_title"; + public static final String MAP_TITLE = "hyperfactions_gui.newplayer.map_title"; + public static final String VIEW_ONLY_BADGE = "hyperfactions_gui.newplayer.view_only_badge"; + public static final String LEGEND_LABEL = "hyperfactions_gui.newplayer.legend_label"; + public static final String LEGEND_SAFEZONE = "hyperfactions_gui.newplayer.legend_safezone"; + public static final String LEGEND_WARZONE = "hyperfactions_gui.newplayer.legend_warzone"; + public static final String LEGEND_FACTION = "hyperfactions_gui.newplayer.legend_faction"; + public static final String LEGEND_WILDERNESS = "hyperfactions_gui.newplayer.legend_wilderness"; + public static final String SEARCH_LABEL = "hyperfactions_gui.newplayer.search_label"; + public static final String SORT_LABEL = "hyperfactions_gui.newplayer.sort_label"; + public static final String PREV_BTN = "hyperfactions_gui.newplayer.prev_btn"; + public static final String NEXT_BTN = "hyperfactions_gui.newplayer.next_btn"; // Invites page public static final String PENDING_COUNT = "hyperfactions_gui.newplayer.pending_count"; public static final String RECEIVED_HEADER = "hyperfactions_gui.newplayer.received_header"; @@ -1390,6 +1683,17 @@ public static final class AdminGui { public static final String ZINT_NO_PLUGIN = "hyperfactions_admin.zone_int.no_plugin"; public static final String ZINT_DEFAULT = "hyperfactions_admin.zone_int.default"; public static final String ZINT_CUSTOM = "hyperfactions_admin.zone_int.custom"; + + // Integration flags UI labels + public static final String GUI_ZINT_CAT_GRAVESTONES = "hyperfactions_admin.gui.zint_cat_gravestones"; + public static final String GUI_ZINT_GRAVESTONES_DESC = "hyperfactions_admin.gui.zint_gravestones_desc"; + public static final String GUI_ZINT_CAT_WORLD_MAP = "hyperfactions_admin.gui.zint_cat_world_map"; + public static final String GUI_ZINT_WORLD_MAP_DESC = "hyperfactions_admin.gui.zint_world_map_desc"; + public static final String GUI_ZINT_VISIBILITY_LABEL = "hyperfactions_admin.gui.zint_visibility_label"; + public static final String GUI_ZINT_CAT_ESSENTIALS = "hyperfactions_admin.gui.zint_cat_essentials"; + public static final String GUI_ZINT_RESET_DEFAULTS = "hyperfactions_admin.gui.zint_reset_defaults"; + public static final String GUI_ZINT_BACK_TO_FLAGS = "hyperfactions_admin.gui.zint_back_to_flags"; + // Activity log public static final String LOG_ALL_TYPES = "hyperfactions_admin.log.all_types"; public static final String LOG_NO_LOGS = "hyperfactions_admin.log.no_logs"; @@ -1416,6 +1720,22 @@ public static final class AdminGui { public static final String ZFLAGS_RESET_ALL = "hyperfactions_admin.zflags.reset_all"; public static final String ZFLAGS_RESET_FAILED = "hyperfactions_admin.zflags.reset_failed"; public static final String ZFLAGS_BACK_TO_SETTINGS = "hyperfactions_admin.zflags.back_to_settings"; + + // Zone settings UI labels + public static final String GUI_ZSET_CAT_COMBAT = "hyperfactions_admin.gui.zset_cat_combat"; + public static final String GUI_ZSET_CAT_DAMAGE = "hyperfactions_admin.gui.zset_cat_damage"; + public static final String GUI_ZSET_CAT_DEATH = "hyperfactions_admin.gui.zset_cat_death"; + public static final String GUI_ZSET_CAT_BUILDING = "hyperfactions_admin.gui.zset_cat_building"; + public static final String GUI_ZSET_CAT_INTERACTION = "hyperfactions_admin.gui.zset_cat_interaction"; + public static final String GUI_ZSET_CAT_TRANSPORT = "hyperfactions_admin.gui.zset_cat_transport"; + public static final String GUI_ZSET_CAT_ITEMS = "hyperfactions_admin.gui.zset_cat_items"; + public static final String GUI_ZSET_CAT_SPAWNING = "hyperfactions_admin.gui.zset_cat_spawning"; + public static final String GUI_ZSET_CAT_MOB_CLEAR = "hyperfactions_admin.gui.zset_cat_mob_clear"; + public static final String GUI_ZSET_CHILDREN_HINT = "hyperfactions_admin.gui.zset_children_hint"; + public static final String GUI_ZSET_RESET_DEFAULTS = "hyperfactions_admin.gui.zset_reset_defaults"; + public static final String GUI_ZSET_INTEGRATION_FLAGS = "hyperfactions_admin.gui.zset_integration_flags"; + public static final String GUI_ZSET_BACK_TO_ZONES = "hyperfactions_admin.gui.zset_back_to_zones"; + // Zone properties public static final String ZPROP_CURRENT_CUSTOM = "hyperfactions_admin.zprop.current_custom"; public static final String ZPROP_CURRENT_DEFAULT = "hyperfactions_admin.zprop.current_default"; @@ -1453,6 +1773,301 @@ public static final class AdminGui { public static final String MAP_CHUNK_BELONGS = "hyperfactions_admin.map.chunk_belongs"; public static final String MAP_CHUNK_FACTION = "hyperfactions_admin.map.chunk_faction"; public static final String MAP_CHUNK_PROTECTED = "hyperfactions_admin.map.chunk_protected"; + + // ========== GUI Label Keys (for .ui hardcoded text localization) ========== + + // Page Titles + public static final String GUI_TITLE_DASHBOARD = "hyperfactions_admin.gui.title_dashboard"; + public static final String GUI_TITLE_MAIN = "hyperfactions_admin.gui.title_main"; + public static final String GUI_TITLE_ACTIONS = "hyperfactions_admin.gui.title_actions"; + public static final String GUI_TITLE_FACTIONS = "hyperfactions_admin.gui.title_factions"; + public static final String GUI_TITLE_PLAYERS = "hyperfactions_admin.gui.title_players"; + public static final String GUI_TITLE_ECONOMY = "hyperfactions_admin.gui.title_economy"; + public static final String GUI_TITLE_ZONES = "hyperfactions_admin.gui.title_zones"; + public static final String GUI_TITLE_BACKUPS = "hyperfactions_admin.gui.title_backups"; + public static final String GUI_TITLE_CONFIG = "hyperfactions_admin.gui.title_config"; + public static final String GUI_TITLE_HELP = "hyperfactions_admin.gui.title_help"; + public static final String GUI_TITLE_UPDATES = "hyperfactions_admin.gui.title_updates"; + public static final String GUI_TITLE_VERSION = "hyperfactions_admin.gui.title_version"; + public static final String GUI_TITLE_ACTIVITY_LOG = "hyperfactions_admin.gui.title_activity_log"; + public static final String GUI_TITLE_PLAYER_INFO = "hyperfactions_admin.gui.title_player_info"; + public static final String GUI_TITLE_FACTION_INFO = "hyperfactions_admin.gui.title_faction_info"; + public static final String GUI_TITLE_FACTION_SETTINGS = "hyperfactions_admin.gui.title_faction_settings"; + public static final String GUI_TITLE_FACTION_MEMBERS = "hyperfactions_admin.gui.title_faction_members"; + public static final String GUI_TITLE_FACTION_RELATIONS = "hyperfactions_admin.gui.title_faction_relations"; + public static final String GUI_TITLE_ZONE_MAP = "hyperfactions_admin.gui.title_zone_map"; + public static final String GUI_TITLE_ZONE_SETTINGS = "hyperfactions_admin.gui.title_zone_settings"; + public static final String GUI_TITLE_ZONE_PROPERTIES = "hyperfactions_admin.gui.title_zone_properties"; + public static final String GUI_TITLE_BULK_ECONOMY = "hyperfactions_admin.gui.title_bulk_economy"; + public static final String GUI_TITLE_ECONOMY_ADJUST = "hyperfactions_admin.gui.title_economy_adjust"; + + // Dashboard labels + public static final String GUI_DASH_SERVER_STATS = "hyperfactions_admin.gui.dash_server_stats"; + public static final String GUI_DASH_FACTIONS = "hyperfactions_admin.gui.dash_factions"; + public static final String GUI_DASH_TOTAL_MEMBERS = "hyperfactions_admin.gui.dash_total_members"; + public static final String GUI_DASH_TOTAL_CLAIMS = "hyperfactions_admin.gui.dash_total_claims"; + public static final String GUI_DASH_ZONES = "hyperfactions_admin.gui.dash_zones"; + public static final String GUI_DASH_SAFE_WAR = "hyperfactions_admin.gui.dash_safe_war"; + public static final String GUI_DASH_TOTAL_POWER = "hyperfactions_admin.gui.dash_total_power"; + public static final String GUI_DASH_AVG_POWER = "hyperfactions_admin.gui.dash_avg_power"; + public static final String GUI_DASH_TOTAL_ECONOMY = "hyperfactions_admin.gui.dash_total_economy"; + public static final String GUI_DASH_WEALTHIEST = "hyperfactions_admin.gui.dash_wealthiest"; + public static final String GUI_DASH_AVG_BALANCE = "hyperfactions_admin.gui.dash_avg_balance"; + public static final String GUI_DASH_PROTECTION_BYPASS = "hyperfactions_admin.gui.dash_protection_bypass"; + + // Common buttons and labels + public static final String GUI_SEARCH = "hyperfactions_admin.gui.search"; + public static final String GUI_SORT = "hyperfactions_admin.gui.sort"; + public static final String GUI_PREV = "hyperfactions_admin.gui.prev"; + public static final String GUI_NEXT = "hyperfactions_admin.gui.next"; + public static final String GUI_BACK = "hyperfactions_admin.gui.back"; + public static final String GUI_DONE = "hyperfactions_admin.gui.done"; + public static final String GUI_CANCEL = "hyperfactions_admin.gui.cancel"; + public static final String GUI_APPLY = "hyperfactions_admin.gui.apply"; + public static final String GUI_SET = "hyperfactions_admin.gui.set"; + public static final String GUI_RESET = "hyperfactions_admin.gui.reset"; + public static final String GUI_COMING_SOON = "hyperfactions_admin.gui.coming_soon"; + public static final String GUI_ZONES_BTN = "hyperfactions_admin.gui.zones_btn"; + public static final String GUI_RELOAD_BTN = "hyperfactions_admin.gui.reload_btn"; + public static final String GUI_ALL = "hyperfactions_admin.gui.all"; + public static final String GUI_SAFE = "hyperfactions_admin.gui.safe"; + public static final String GUI_WAR = "hyperfactions_admin.gui.war"; + public static final String GUI_CREATE_ZONE = "hyperfactions_admin.gui.create_zone"; + + // Actions page labels + public static final String GUI_ACT_COMBAT_STATS = "hyperfactions_admin.gui.act_combat_stats"; + public static final String GUI_ACT_COMBAT_DESC = "hyperfactions_admin.gui.act_combat_desc"; + public static final String GUI_ACT_RESET_KD = "hyperfactions_admin.gui.act_reset_kd"; + public static final String GUI_ACT_ECONOMY = "hyperfactions_admin.gui.act_economy"; + public static final String GUI_ACT_ECONOMY_DESC = "hyperfactions_admin.gui.act_economy_desc"; + public static final String GUI_ACT_BULK_ADJUST = "hyperfactions_admin.gui.act_bulk_adjust"; + public static final String GUI_ACT_UPKEEP_COLLECTION = "hyperfactions_admin.gui.act_upkeep_collection"; + public static final String GUI_ACT_UPKEEP_DESC = "hyperfactions_admin.gui.act_upkeep_desc"; + public static final String GUI_ACT_TRIGGER_UPKEEP = "hyperfactions_admin.gui.act_trigger_upkeep"; + + // Placeholder page labels + public static final String GUI_BACKUP_HEADING = "hyperfactions_admin.gui.backup_heading"; + public static final String GUI_BACKUP_DESC1 = "hyperfactions_admin.gui.backup_desc1"; + public static final String GUI_BACKUP_DESC2 = "hyperfactions_admin.gui.backup_desc2"; + public static final String GUI_CONFIG_HEADING = "hyperfactions_admin.gui.config_heading"; + public static final String GUI_CONFIG_DESC1 = "hyperfactions_admin.gui.config_desc1"; + public static final String GUI_CONFIG_DESC2 = "hyperfactions_admin.gui.config_desc2"; + public static final String GUI_HELP_HEADING = "hyperfactions_admin.gui.help_heading"; + public static final String GUI_HELP_DESC1 = "hyperfactions_admin.gui.help_desc1"; + public static final String GUI_HELP_DESC2 = "hyperfactions_admin.gui.help_desc2"; + public static final String GUI_UPDATES_HEADING = "hyperfactions_admin.gui.updates_heading"; + public static final String GUI_UPDATES_DESC1 = "hyperfactions_admin.gui.updates_desc1"; + public static final String GUI_UPDATES_DESC2 = "hyperfactions_admin.gui.updates_desc2"; + + // Version page labels + public static final String GUI_VER_HYPERFACTIONS = "hyperfactions_admin.gui.ver_hyperfactions"; + public static final String GUI_VER_HYTALE_SERVER = "hyperfactions_admin.gui.ver_hytale_server"; + public static final String GUI_VER_JAVA = "hyperfactions_admin.gui.ver_java"; + public static final String GUI_VER_PERMISSIONS = "hyperfactions_admin.gui.ver_permissions"; + public static final String GUI_VER_PLACEHOLDERS = "hyperfactions_admin.gui.ver_placeholders"; + public static final String GUI_VER_ECONOMY_SECTION = "hyperfactions_admin.gui.ver_economy_section"; + public static final String GUI_VER_PROTECTION = "hyperfactions_admin.gui.ver_protection"; + public static final String GUI_VER_DISABLED = "hyperfactions_admin.gui.ver_disabled"; + + // Column headers (shared across pages) + public static final String GUI_COL_FACTION = "hyperfactions_admin.gui.col_faction"; + public static final String GUI_COL_BALANCE = "hyperfactions_admin.gui.col_balance"; + public static final String GUI_COL_MEMBERS = "hyperfactions_admin.gui.col_members"; + public static final String GUI_COL_ACTIONS = "hyperfactions_admin.gui.col_actions"; + public static final String GUI_COL_TIME = "hyperfactions_admin.gui.col_time"; + public static final String GUI_COL_TYPE = "hyperfactions_admin.gui.col_type"; + public static final String GUI_COL_MESSAGE = "hyperfactions_admin.gui.col_message"; + + // Economy page labels + public static final String GUI_ECON_TOTAL_BALANCE = "hyperfactions_admin.gui.econ_total_balance"; + public static final String GUI_ECON_FACTIONS = "hyperfactions_admin.gui.econ_factions"; + public static final String GUI_ECON_AVG_BALANCE = "hyperfactions_admin.gui.econ_avg_balance"; + public static final String GUI_ECON_IN_GRACE = "hyperfactions_admin.gui.econ_in_grace"; + public static final String GUI_ECON_COLLECTED = "hyperfactions_admin.gui.econ_collected"; + public static final String GUI_ECON_NEXT_COLLECTION = "hyperfactions_admin.gui.econ_next_collection"; + public static final String GUI_ECON_NO_DATA = "hyperfactions_admin.gui.econ_no_data"; + + // Activity log labels + public static final String GUI_LOG_TYPE = "hyperfactions_admin.gui.log_type"; + public static final String GUI_LOG_TIME = "hyperfactions_admin.gui.log_time"; + public static final String GUI_LOG_PLAYER = "hyperfactions_admin.gui.log_player"; + public static final String GUI_LOG_NO_LOGS = "hyperfactions_admin.gui.log_no_logs"; + + // Player info labels + public static final String GUI_PLR_FIRST_JOINED = "hyperfactions_admin.gui.plr_first_joined"; + public static final String GUI_PLR_LAST_ONLINE = "hyperfactions_admin.gui.plr_last_online"; + public static final String GUI_PLR_UUID = "hyperfactions_admin.gui.plr_uuid"; + public static final String GUI_PLR_FACTION = "hyperfactions_admin.gui.plr_faction"; + public static final String GUI_PLR_ROLE = "hyperfactions_admin.gui.plr_role"; + public static final String GUI_PLR_VIEW_FACTION = "hyperfactions_admin.gui.plr_view_faction"; + public static final String GUI_PLR_POWER = "hyperfactions_admin.gui.plr_power"; + public static final String GUI_PLR_MAX_POWER = "hyperfactions_admin.gui.plr_max_power"; + public static final String GUI_PLR_SET_POWER = "hyperfactions_admin.gui.plr_set_power"; + public static final String GUI_PLR_RESET_POWER = "hyperfactions_admin.gui.plr_reset_power"; + public static final String GUI_PLR_SET_MAX = "hyperfactions_admin.gui.plr_set_max"; + public static final String GUI_PLR_RESET_MAX = "hyperfactions_admin.gui.plr_reset_max"; + public static final String GUI_PLR_NO_POWER_LOSS = "hyperfactions_admin.gui.plr_no_power_loss"; + public static final String GUI_PLR_NO_CLAIM_DECAY = "hyperfactions_admin.gui.plr_no_claim_decay"; + public static final String GUI_PLR_KILLS = "hyperfactions_admin.gui.plr_kills"; + public static final String GUI_PLR_DEATHS = "hyperfactions_admin.gui.plr_deaths"; + public static final String GUI_PLR_KDR = "hyperfactions_admin.gui.plr_kdr"; + public static final String GUI_PLR_RESET_KD = "hyperfactions_admin.gui.plr_reset_kd"; + public static final String GUI_PLR_KICK = "hyperfactions_admin.gui.plr_kick"; + public static final String GUI_PLR_MEMBERSHIP_HISTORY = "hyperfactions_admin.gui.plr_membership_history"; + public static final String GUI_PLR_NO_FACTION = "hyperfactions_admin.gui.plr_no_faction_label"; + public static final String GUI_PLR_POWER_MANAGEMENT = "hyperfactions_admin.gui.plr_power_management"; + public static final String GUI_PLR_COMBAT_STATS = "hyperfactions_admin.gui.plr_combat_stats"; + public static final String GUI_PLR_BYPASS_FLAGS = "hyperfactions_admin.gui.plr_bypass_flags"; + public static final String GUI_PLR_ADMIN_CONTROLS = "hyperfactions_admin.gui.plr_admin_controls"; + public static final String GUI_PLR_KD_SUBTITLE = "hyperfactions_admin.gui.plr_kd_subtitle"; + public static final String GUI_PLR_MAX_PREFIX = "hyperfactions_admin.gui.plr_max_prefix"; + public static final String GUI_PLR_VIEW = "hyperfactions_admin.gui.plr_view"; + public static final String GUI_PLR_KICK_FROM_FACTION = "hyperfactions_admin.gui.plr_kick_from_faction"; + public static final String GUI_PLR_SET_MAX_BTN = "hyperfactions_admin.gui.plr_set_max_btn"; + public static final String GUI_PLR_COMBAT = "hyperfactions_admin.gui.plr_combat"; + + // Faction info labels + public static final String GUI_FAC_DESCRIPTION = "hyperfactions_admin.gui.fac_description"; + public static final String GUI_FAC_POWER = "hyperfactions_admin.gui.fac_power"; + public static final String GUI_FAC_CLAIMS = "hyperfactions_admin.gui.fac_claims"; + public static final String GUI_FAC_MEMBERS = "hyperfactions_admin.gui.fac_members"; + public static final String GUI_FAC_RECRUITMENT = "hyperfactions_admin.gui.fac_recruitment"; + public static final String GUI_FAC_FOUNDED = "hyperfactions_admin.gui.fac_founded"; + public static final String GUI_FAC_ALLIES = "hyperfactions_admin.gui.fac_allies"; + public static final String GUI_FAC_ENEMIES = "hyperfactions_admin.gui.fac_enemies"; + public static final String GUI_FAC_RAIDABLE = "hyperfactions_admin.gui.fac_raidable"; + public static final String GUI_FAC_TREASURY = "hyperfactions_admin.gui.fac_treasury"; + public static final String GUI_FAC_LEADER = "hyperfactions_admin.gui.fac_leader"; + public static final String GUI_FAC_OFFICERS = "hyperfactions_admin.gui.fac_officers"; + public static final String GUI_FAC_VIEW_MEMBERS = "hyperfactions_admin.gui.fac_view_members"; + public static final String GUI_FAC_VIEW_RELATIONS = "hyperfactions_admin.gui.fac_view_relations"; + public static final String GUI_FAC_VIEW_SETTINGS = "hyperfactions_admin.gui.fac_view_settings"; + public static final String GUI_FAC_DISBAND = "hyperfactions_admin.gui.fac_disband"; + public static final String GUI_FAC_POWER_MANAGEMENT = "hyperfactions_admin.gui.fac_power_management"; + public static final String GUI_FAC_RESET_ALL_POWER = "hyperfactions_admin.gui.fac_reset_all_power"; + public static final String GUI_FAC_ECON_ADJUST = "hyperfactions_admin.gui.fac_econ_adjust"; + public static final String GUI_FAC_ECON_VIEW_LOG = "hyperfactions_admin.gui.fac_econ_view_log"; + public static final String GUI_FAC_CURRENT_MAX = "hyperfactions_admin.gui.fac_current_max"; + public static final String GUI_FAC_CLAIMED_MAX = "hyperfactions_admin.gui.fac_claimed_max"; + public static final String GUI_FAC_RELATIONS = "hyperfactions_admin.gui.fac_relations"; + public static final String GUI_FAC_ALLY_ENEMY = "hyperfactions_admin.gui.fac_ally_enemy"; + public static final String GUI_FAC_STATUS = "hyperfactions_admin.gui.fac_status"; + public static final String GUI_FAC_INFO = "hyperfactions_admin.gui.fac_info"; + public static final String GUI_FAC_TREASURY_BALANCE = "hyperfactions_admin.gui.fac_treasury_balance"; + public static final String GUI_FAC_LEADERSHIP = "hyperfactions_admin.gui.fac_leadership"; + public static final String GUI_FAC_LEADER_LABEL = "hyperfactions_admin.gui.fac_leader_label"; + public static final String GUI_FAC_OFFICERS_LABEL = "hyperfactions_admin.gui.fac_officers_label"; + public static final String GUI_FAC_ECON_MGMT = "hyperfactions_admin.gui.fac_econ_mgmt"; + public static final String GUI_FAC_DANGER_ZONE = "hyperfactions_admin.gui.fac_danger_zone"; + public static final String GUI_FAC_VIEW_TREASURY = "hyperfactions_admin.gui.fac_view_treasury"; + + // Faction settings labels + public static final String GUI_SET_EDITING = "hyperfactions_admin.gui.set_editing"; + public static final String GUI_SET_GENERAL = "hyperfactions_admin.gui.set_general"; + public static final String GUI_SET_NAME = "hyperfactions_admin.gui.set_name"; + public static final String GUI_SET_TAG = "hyperfactions_admin.gui.set_tag"; + public static final String GUI_SET_DESCRIPTION = "hyperfactions_admin.gui.set_description"; + public static final String GUI_SET_RECRUITMENT = "hyperfactions_admin.gui.set_recruitment"; + public static final String GUI_SET_HOME = "hyperfactions_admin.gui.set_home"; + public static final String GUI_SET_CLEAR_HOME = "hyperfactions_admin.gui.set_clear_home"; + public static final String GUI_SET_DISBAND_FACTION = "hyperfactions_admin.gui.set_disband_faction"; + public static final String GUI_SET_FACTION_COLOR = "hyperfactions_admin.gui.set_faction_color"; + public static final String GUI_SET_ADMIN_OVERRIDE = "hyperfactions_admin.gui.set_admin_override"; + public static final String GUI_SET_TERRITORY_PERMS = "hyperfactions_admin.gui.set_territory_perms"; + public static final String GUI_SET_MOB_SPAWNING = "hyperfactions_admin.gui.set_mob_spawning"; + public static final String GUI_SET_FACTION_SETTINGS = "hyperfactions_admin.gui.set_faction_settings"; + + // Faction relations labels + public static final String GUI_REL_SUBTITLE = "hyperfactions_admin.gui.rel_subtitle"; + public static final String GUI_REL_SET_NEW = "hyperfactions_admin.gui.rel_set_new"; + + // Zone page labels + public static final String GUI_ZONE_SORT_NAME = "hyperfactions_admin.gui.zone_sort_name"; + public static final String GUI_ZONE_SORT_TYPE = "hyperfactions_admin.gui.zone_sort_type"; + public static final String GUI_ZONE_SORT_CHUNKS = "hyperfactions_admin.gui.zone_sort_chunks"; + public static final String GUI_ZONE_SORT_WORLD = "hyperfactions_admin.gui.zone_sort_world"; + public static final String GUI_ZONE_COUNT_FORMAT = "hyperfactions_admin.gui.zone_count_format"; + + // Zone map labels + public static final String GUI_MAP_ZONE_CHUNK = "hyperfactions_admin.gui.map_zone_chunk"; + public static final String GUI_MAP_EMPTY = "hyperfactions_admin.gui.map_empty"; + public static final String GUI_MAP_OTHER_ZONE = "hyperfactions_admin.gui.map_other_zone"; + public static final String GUI_MAP_FACTION_CLAIM = "hyperfactions_admin.gui.map_faction_claim"; + public static final String GUI_MAP_PROTECTED = "hyperfactions_admin.gui.map_protected"; + public static final String GUI_MAP_YOUR_POS = "hyperfactions_admin.gui.map_your_pos"; + public static final String GUI_MAP_CLICK_HINT = "hyperfactions_admin.gui.map_click_hint"; + public static final String GUI_MAP_LEGEND_ZONE_SAFE = "hyperfactions_admin.gui.map_legend_zone_safe"; + public static final String GUI_MAP_LEGEND_ZONE_WAR = "hyperfactions_admin.gui.map_legend_zone_war"; + public static final String GUI_MAP_LEGEND_OTHER_SAFE = "hyperfactions_admin.gui.map_legend_other_safe"; + public static final String GUI_MAP_LEGEND_OTHER_WAR = "hyperfactions_admin.gui.map_legend_other_war"; + public static final String GUI_MAP_LEGEND_FACTION = "hyperfactions_admin.gui.map_legend_faction"; + public static final String GUI_MAP_LEGEND_UNCLAIMED = "hyperfactions_admin.gui.map_legend_unclaimed"; + public static final String GUI_MAP_LEGEND_YOU_HERE = "hyperfactions_admin.gui.map_legend_you_here"; + public static final String GUI_MAP_ACTION_HINT = "hyperfactions_admin.gui.map_action_hint"; + public static final String GUI_MAP_DONE = "hyperfactions_admin.gui.map_done"; + + // Zone properties labels + public static final String GUI_ZPROP_GENERAL = "hyperfactions_admin.gui.zprop_general"; + public static final String GUI_ZPROP_ZONE_NAME = "hyperfactions_admin.gui.zprop_zone_name"; + public static final String GUI_ZPROP_ZONE_TYPE = "hyperfactions_admin.gui.zprop_zone_type"; + public static final String GUI_ZPROP_CHANGE_TYPE = "hyperfactions_admin.gui.zprop_change_type"; + public static final String GUI_ZPROP_NOTIFICATIONS = "hyperfactions_admin.gui.zprop_notifications"; + public static final String GUI_ZPROP_SHOW_ENTRY = "hyperfactions_admin.gui.zprop_show_entry"; + public static final String GUI_ZPROP_UPPER_TITLE = "hyperfactions_admin.gui.zprop_upper_title"; + public static final String GUI_ZPROP_UPPER_DESC = "hyperfactions_admin.gui.zprop_upper_desc"; + public static final String GUI_ZPROP_LOWER_TITLE = "hyperfactions_admin.gui.zprop_lower_title"; + public static final String GUI_ZPROP_LOWER_DESC = "hyperfactions_admin.gui.zprop_lower_desc"; + public static final String GUI_ZPROP_EDIT_FLAGS = "hyperfactions_admin.gui.zprop_edit_flags"; + public static final String GUI_ZPROP_BACK_TO_ZONES = "hyperfactions_admin.gui.zprop_back_to_zones"; + public static final String GUI_SAVE = "hyperfactions_admin.gui.save"; + public static final String GUI_CLEAR = "hyperfactions_admin.gui.clear"; + + // Bulk economy labels + public static final String GUI_BULK_HEADER = "hyperfactions_admin.gui.bulk_header"; + public static final String GUI_BULK_FACTIONS_LABEL = "hyperfactions_admin.gui.bulk_factions_label"; + public static final String GUI_BULK_TOTAL_LABEL = "hyperfactions_admin.gui.bulk_total_label"; + public static final String GUI_BULK_AMOUNT_HINT = "hyperfactions_admin.gui.bulk_amount_hint"; + public static final String GUI_BULK_HINT = "hyperfactions_admin.gui.bulk_hint"; + public static final String GUI_BULK_WARNING_MSG = "hyperfactions_admin.gui.bulk_warning_msg"; + public static final String GUI_BULK_APPLY_ALL = "hyperfactions_admin.gui.bulk_apply_all"; + public static final String GUI_BULK_OPERATION = "hyperfactions_admin.gui.bulk_operation"; + public static final String GUI_BULK_ADD = "hyperfactions_admin.gui.bulk_add"; + public static final String GUI_BULK_REMOVE = "hyperfactions_admin.gui.bulk_remove"; + public static final String GUI_BULK_AMOUNT = "hyperfactions_admin.gui.bulk_amount"; + public static final String GUI_BULK_WARNING = "hyperfactions_admin.gui.bulk_warning"; + public static final String GUI_BULK_PREVIEW = "hyperfactions_admin.gui.bulk_preview"; + + // Economy adjust labels + public static final String GUI_ECADJ_HEADER = "hyperfactions_admin.gui.ecadj_header"; + public static final String GUI_ECADJ_FACTION_LABEL = "hyperfactions_admin.gui.ecadj_faction_label"; + public static final String GUI_ECADJ_CURRENT_BALANCE = "hyperfactions_admin.gui.ecadj_current_balance"; + public static final String GUI_ECADJ_AMOUNT_HINT = "hyperfactions_admin.gui.ecadj_amount_hint"; + public static final String GUI_ECADJ_PREVIEW_HINT = "hyperfactions_admin.gui.ecadj_preview_hint"; + public static final String GUI_ECADJ_ADJUSTMENT = "hyperfactions_admin.gui.ecadj_adjustment"; + public static final String GUI_ECADJ_SET_BALANCE = "hyperfactions_admin.gui.ecadj_set_balance"; + public static final String GUI_ECADJ_CONFIRM = "hyperfactions_admin.gui.ecadj_confirm"; + public static final String GUI_ECADJ_OPERATION = "hyperfactions_admin.gui.ecadj_operation"; + public static final String GUI_ECADJ_ADD = "hyperfactions_admin.gui.ecadj_add"; + public static final String GUI_ECADJ_REMOVE = "hyperfactions_admin.gui.ecadj_remove"; + public static final String GUI_ECADJ_SET_TO = "hyperfactions_admin.gui.ecadj_set_to"; + public static final String GUI_ECADJ_AMOUNT = "hyperfactions_admin.gui.ecadj_amount"; + public static final String GUI_ECADJ_NEW_BALANCE = "hyperfactions_admin.gui.ecadj_new_balance"; + + // Version page integration labels + public static final String GUI_VER_HYPERPERMS = "hyperfactions_admin.gui.ver_hyperperms"; + public static final String GUI_VER_LUCKPERMS = "hyperfactions_admin.gui.ver_luckperms"; + public static final String GUI_VER_VAULT = "hyperfactions_admin.gui.ver_vault"; + public static final String GUI_VER_NATIVE = "hyperfactions_admin.gui.ver_native"; + public static final String GUI_VER_HYPERPROTECT = "hyperfactions_admin.gui.ver_hyperprotect"; + public static final String GUI_VER_ORBISGUARD_MIXINS = "hyperfactions_admin.gui.ver_orbisguard_mixins"; + public static final String GUI_VER_ORBISGUARD_API = "hyperfactions_admin.gui.ver_orbisguard_api"; + public static final String GUI_VER_MIXIN_HOOKS = "hyperfactions_admin.gui.ver_mixin_hooks"; + public static final String GUI_VER_GRAVESTONES = "hyperfactions_admin.gui.ver_gravestones"; + public static final String GUI_VER_KYUUBISOFT = "hyperfactions_admin.gui.ver_kyuubisoft"; + public static final String GUI_VER_PLACEHOLDER_API = "hyperfactions_admin.gui.ver_placeholder_api"; + public static final String GUI_VER_WIFLOW_PAPI = "hyperfactions_admin.gui.ver_wiflow_papi"; + public static final String GUI_VER_TREASURY = "hyperfactions_admin.gui.ver_treasury"; + private AdminGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_actions.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_actions.ui index 1bce59eb..e55f7d1d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_actions.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_actions.ui @@ -28,13 +28,13 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - Label { + Label #CombatStatsLabel { Text: "Combat Statistics"; Style: (FontSize: 14, TextColor: #FFFFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 8); } - Label { + Label #CombatDescLabel { Text: "Reset kills and deaths for ALL players on the server. This action cannot be undone."; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 32, Bottom: 10); @@ -55,13 +55,13 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - Label { + Label #EconomyLabel { Text: "Economy"; Style: (FontSize: 14, TextColor: #FFFFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 8); } - Label { + Label #EconomyDescLabel { Text: "Add or remove money from ALL faction treasuries at once."; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 18, Bottom: 10); @@ -82,13 +82,13 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - Label { + Label #UpkeepLabel { Text: "Upkeep Collection"; Style: (FontSize: 14, TextColor: #FFFFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 8); } - Label { + Label #UpkeepDescLabel { Text: "Manually trigger upkeep collection for all factions right now, regardless of the scheduled timer."; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 32, Bottom: 10); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_activity_log.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_activity_log.ui index 1751cc65..56133fce 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_activity_log.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_activity_log.ui @@ -26,7 +26,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #TypeLabel { Text: "Type:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); @@ -38,7 +38,7 @@ $C.@PageOverlay { Label { Anchor: (Width: 12); } - Label { + Label #TimeLabel { Text: "Time:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); @@ -50,7 +50,7 @@ $C.@PageOverlay { Label { Anchor: (Width: 12); } - Label { + Label #PlayerLabel { Text: "Player:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 45); @@ -79,22 +79,22 @@ $C.@PageOverlay { LayoutMode: Left; Padding: (Left: 12, Right: 12); - Label { + Label #ColTime { Text: "Time"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 80); } - Label { + Label #ColType { Text: "Type"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 65); } - Label { + Label #ColFaction { Text: "Faction"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 120); } - Label { + Label #ColMessage { Text: "Message"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); FlexWeight: 1; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_bulk_economy.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_bulk_economy.ui index ca73500d..bd0d4146 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_bulk_economy.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_bulk_economy.ui @@ -23,7 +23,7 @@ $C.@PageOverlay { Padding: (Left: 25, Right: 25, Top: 12, Bottom: 12); // Section header - Label { + Label #SectionHeader { Text: "Adjust All Faction Treasuries"; Style: (FontSize: 14, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 28, Bottom: 8); @@ -40,7 +40,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #FactionsInfoLabel { Text: "Factions:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 120); @@ -55,7 +55,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #TotalBalanceInfoLabel { Text: "Total Balance:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 120); @@ -70,7 +70,7 @@ $C.@PageOverlay { // Amount input Group { Anchor: (Height: 20, Bottom: 4); - Label { + Label #AmountLabel { Text: "Amount (positive to add, negative to remove):"; Style: (FontSize: 11, TextColor: #AAAAAA); } @@ -82,7 +82,7 @@ $C.@PageOverlay { } // Hint text - Label { + Label #HintLabel { Text: "This will apply to every faction with a treasury"; Style: (FontSize: 10, TextColor: #555555); Anchor: (Height: 16, Bottom: 10); @@ -94,7 +94,7 @@ $C.@PageOverlay { Background: (Color: #3a2a1a); Padding: (Left: 10, Right: 10, Top: 6, Bottom: 6); - Label { + Label #WarningLabel { Text: "Warning: This action affects ALL factions and cannot be undone."; Style: (FontSize: 10, TextColor: #FFAA00); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui index c46d4f42..2e1b078f 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui @@ -23,7 +23,7 @@ $C.@PageOverlay { Anchor: (Height: 25, Bottom: 15); LayoutMode: Left; - Label { + Label #ServerStatsLabel { Text: "Server Statistics"; Style: (FontSize: 14, TextColor: #00FFFF, RenderBold: true, VerticalAlignment: Center); } @@ -42,7 +42,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #FactionsLabel { Text: "Factions"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -62,7 +62,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #TotalMembersLabel { Text: "Total Members"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -82,7 +82,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #TotalClaimsLabel { Text: "Total Claims"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -108,7 +108,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #ZonesLabel { Text: "Zones"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -133,7 +133,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #SafeWarLabel { Text: "safe / war"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -148,7 +148,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #TotalPowerLabel { Text: "Total Power"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -168,7 +168,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #AvgPowerLabel { Text: "Avg Power/Faction"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -195,7 +195,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #TotalEconomyLabel { Text: "Total Economy"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -215,7 +215,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #WealthiestLabel { Text: "Wealthiest"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -235,7 +235,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #AvgBalanceLabel { Text: "Avg Balance"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -255,7 +255,7 @@ $C.@PageOverlay { Padding: (Left: 20, Right: 20, Top: 10, Bottom: 10); LayoutMode: Left; - Label { + Label #BypassLabel { Text: "Protection Bypass:"; Style: (FontSize: 13, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 130); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui index f84853c4..c6e25e7c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui @@ -34,7 +34,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #TotalBalanceLabel { Text: "Total Balance"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -54,7 +54,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #FactionsLabel { Text: "Factions"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -74,7 +74,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #AvgBalanceLabel { Text: "Avg Balance"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -105,7 +105,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #55FF55, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #InGraceLabel { Text: "In Grace"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 12); @@ -126,7 +126,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #FFD700, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #CollectedLabel { Text: "Collected (24h)"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 12); @@ -147,7 +147,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #AAAAAA, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #NextCollectionLabel { Text: "Next Collection"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 12); @@ -160,7 +160,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -184,7 +184,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); @@ -207,23 +207,23 @@ $C.@PageOverlay { LayoutMode: Left; Padding: (Left: 12, Right: 12); - Label { + Label #ColFaction { Text: "Faction"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 160); } - Label { + Label #ColBalance { Text: "Balance"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 120); } - Label { + Label #ColMembers { Text: "Members"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 80); } Label { FlexWeight: 1; } - Label { + Label #ColActions { Text: "Actions"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 135); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy_adjust.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy_adjust.ui index 56ce09c1..371e91de 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy_adjust.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy_adjust.ui @@ -23,7 +23,7 @@ $C.@PageOverlay { Padding: (Left: 25, Right: 25, Top: 12, Bottom: 12); // Section header - Label { + Label #SectionHeader { Text: "Adjust Treasury Balance"; Style: (FontSize: 14, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 28, Bottom: 8); @@ -40,7 +40,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #FactionLabel { Text: "Faction:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 100); @@ -55,7 +55,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #CurrentBalanceLabel { Text: "Current Balance:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 100); @@ -70,7 +70,7 @@ $C.@PageOverlay { // Amount input Group { Anchor: (Height: 20, Bottom: 4); - Label { + Label #AmountLabel { Text: "Amount (positive to add, negative to deduct):"; Style: (FontSize: 11, TextColor: #AAAAAA); } @@ -100,7 +100,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #AdjustmentLabel { Text: "Adjustment:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 100); @@ -115,7 +115,7 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #NewBalanceLabel { Text: "New Balance:"; Style: (FontSize: 12, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 100); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui index 40f7002b..fb5b71e6 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui @@ -72,7 +72,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #PowerCardLabel { Text: "Power"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -82,7 +82,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #44CC44, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); FlexWeight: 1; } - Label { + Label #PowerSubLabel { Text: "current / max"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -97,7 +97,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #ClaimsCardLabel { Text: "Claims"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -107,7 +107,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #FFAA00, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); FlexWeight: 1; } - Label { + Label #ClaimsSubLabel { Text: "claimed / max"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -122,7 +122,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #MembersCardLabel { Text: "Members"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -153,7 +153,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #RelationsCardLabel { Text: "Relations"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -178,7 +178,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #RelationsSubLabel { Text: "ally / enemy"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -193,7 +193,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #StatusCardLabel { Text: "Status"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -218,7 +218,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #InfoCardLabel { Text: "Info"; Style: (FontSize: 9, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -235,7 +235,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #FFD700, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); FlexWeight: 1; } - Label { + Label #TreasurySubLabel { Text: "treasury balance"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -268,7 +268,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); LayoutMode: Top; - Label { + Label #LeadershipHeader { Text: "Leadership"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); Anchor: (Height: 16, Bottom: 6); @@ -278,7 +278,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 22, Bottom: 4); - Label { + Label #LeaderLabel { Text: "Leader:"; Style: (FontSize: 12, TextColor: #FFD700, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 60); @@ -293,7 +293,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 22); - Label { + Label #OfficersLabel { Text: "Officers:"; Style: (FontSize: 12, TextColor: #87CEEB, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 60); @@ -319,7 +319,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 6); - Label { + Label #PowerMgmtHeader { Text: "Power Management"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); Anchor: (Height: 16, Bottom: 6); @@ -374,7 +374,7 @@ $C.@PageOverlay { Visible: false; Anchor: (Bottom: 6); - Label { + Label #EconMgmtHeader { Text: "Economy Management"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); Anchor: (Height: 16, Bottom: 6); @@ -404,7 +404,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); LayoutMode: Top; - Label { + Label #DangerZoneHeader { Text: "Danger Zone"; Style: (FontSize: 11, TextColor: #FF5555, RenderBold: true); Anchor: (Height: 16, Bottom: 6); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui index 91fa550a..209d84fe 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui @@ -41,7 +41,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -66,7 +66,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_relations.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_relations.ui index daafdab1..dc871e6c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_relations.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_relations.ui @@ -40,7 +40,7 @@ $C.@PageOverlay { Anchor: (Height: 30, Bottom: 8); LayoutMode: Left; - Label { + Label #SubtitleLabel { Text: "Manage faction relations (bypasses approval)"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); } @@ -107,7 +107,7 @@ $C.@PageOverlay { Anchor: (Height: 22, Bottom: 6); LayoutMode: Left; - Label { + Label #SetNewRelationLabel { Text: "Set New Relation"; Style: (FontSize: 12, TextColor: #888888, RenderBold: true, VerticalAlignment: Center); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui index fbb0330a..4f61ed5e 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui @@ -30,7 +30,7 @@ $C.@PageOverlay { Anchor: (Height: 32, Bottom: 8); LayoutMode: Left; - Label { + Label #EditingLabel { Text: "Editing:"; Style: (FontSize: 13, TextColor: #AAAAAA, VerticalAlignment: Center); } @@ -44,7 +44,7 @@ $C.@PageOverlay { Label { FlexWeight: 1; } - Label { + Label #AdminOverrideLabel { Text: "[Admin Override]"; Style: (FontSize: 10, TextColor: #FFAA00, VerticalAlignment: Center); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui index 60b8ecf9..ac491ca5 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui @@ -23,7 +23,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -47,7 +47,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui index 6198cd47..6ced3b95 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui @@ -56,7 +56,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16); - Label { + Label #FirstJoinedLabel { Text: "First joined:"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 68); @@ -67,7 +67,7 @@ $C.@PageOverlay { Anchor: (Width: 120); } - Label { + Label #LastOnlineLabel { Text: "Last online:"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 64); @@ -80,7 +80,7 @@ $C.@PageOverlay { Label { FlexWeight: 1; } - Label { + Label #UuidLabel { Text: "UUID:"; Style: (FontSize: 8, TextColor: #444444, VerticalAlignment: Center); Anchor: (Width: 28); @@ -111,7 +111,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 3); - Label { + Label #PowerLabel { Text: "Power"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12); @@ -137,7 +137,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 3, Right: 3); - Label { + Label #CombatLabel { Text: "Combat"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12); @@ -160,7 +160,7 @@ $C.@PageOverlay { Style: (FontSize: 13, TextColor: #FF5555, RenderBold: true, VerticalAlignment: Center); } } - Label { + Label #KDLabel { Text: "K / D"; Style: (FontSize: 8, TextColor: #444444); Anchor: (Height: 10); @@ -175,7 +175,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 3, Right: 3); - Label { + Label #KDRLabel { Text: "K/D Ratio"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12); @@ -200,7 +200,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 3); - Label { + Label #FactionLabel { Text: "Faction"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12); @@ -258,7 +258,7 @@ $C.@PageOverlay { Anchor: (Height: 16, Bottom: 3); LayoutMode: Left; - Label { + Label #HistoryHeader { Text: "Membership History"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center); } @@ -284,7 +284,7 @@ $C.@PageOverlay { Padding: (Left: 8); // Admin Controls header (aligns with Membership History header) - Label { + Label #AdminControlsHeader { Text: "Admin Controls"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center); Anchor: (Height: 16, Bottom: 3); @@ -302,7 +302,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 18, Bottom: 3); - Label { + Label #PowerMgmtHeader { Text: "Power Management"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center); } @@ -359,7 +359,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 26); - Label { + Label #MaxLabel { Text: "Max:"; Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 33); @@ -392,7 +392,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 26); - Label { + Label #CombatSectionHeader { Text: "Combat"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center); } @@ -411,7 +411,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 8, Bottom: 8); LayoutMode: Top; - Label { + Label #BypassHeader { Text: "Power Bypass Toggles"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true); Anchor: (Height: 16, Bottom: 3); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui index ade05d69..8847051d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui @@ -27,7 +27,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -52,7 +52,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_version.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_version.ui index 5484382c..2fafd968 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_version.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_version.ui @@ -31,7 +31,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #VersionLabelFactions { Text: "HyperFactions"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -51,7 +51,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #VersionLabelServer { Text: "Hytale Server"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -71,7 +71,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #VersionLabelJava { Text: "Java"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -96,7 +96,7 @@ $C.@PageOverlay { Anchor: (Right: 6); // PERMISSIONS Section - Label { + Label #SectionPermissions { Text: "PERMISSIONS"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 4); @@ -135,7 +135,7 @@ $C.@PageOverlay { } // PLACEHOLDERS Section - Label { + Label #SectionPlaceholders { Text: "PLACEHOLDERS"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 4); @@ -158,7 +158,7 @@ $C.@PageOverlay { } // ECONOMY Section - Label { + Label #SectionEconomy { Text: "ECONOMY"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22, Top: 10, Bottom: 4); @@ -180,7 +180,7 @@ $C.@PageOverlay { Anchor: (Left: 6); // PROTECTION Section - Label { + Label #SectionProtection { Text: "PROTECTION"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22, Bottom: 4); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_integration_flags.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_integration_flags.ui index a8105d2b..11b53616 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_integration_flags.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_integration_flags.ui @@ -62,7 +62,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatGravestones { Text: "Gravestones"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -93,7 +93,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 16); Padding: (Left: 4, Right: 0, Top: 0, Bottom: 0); - Label { + Label #GravestonesDesc { Text: "When ON, non-owners can loot graves. Owners always can."; Style: (FontSize: 9, TextColor: #666666); } @@ -109,7 +109,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatWorldMap { Text: "World Map"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -162,7 +162,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 24); Padding: (Left: 4, Right: 0, Top: 2, Bottom: 0); - Label { + Label #WorldMapDesc { Text: "Override map hiding for players in this zone. When enabled, select who can see players in this zone."; Style: (FontSize: 9, TextColor: #666666); } @@ -178,7 +178,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatEssentials { Text: "HyperEssentials"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map.ui index f23cb663..2276a793 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map.ui @@ -55,7 +55,7 @@ $C.@Container { // Action hints Label #ActionHint { - Text: "Left-click: Claim for zone | Right-click: Unclaim from zone"; + Text: "Left-click: Claim for zone | Right-click: Unclaim from zone"; Style: (FontSize: 11, TextColor: #888888, HorizontalAlignment: Center); Anchor: (Height: 18, Top: 8, Bottom: 5); } @@ -80,13 +80,13 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #14b8a6); } - Label { Text: " This Zone (Safe)"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendZoneSafe { Text: " This Zone (Safe)"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #a855f7); } - Label { Text: " This Zone (War)"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendZoneWar { Text: " This Zone (War)"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -99,13 +99,13 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #2dd4bf80); } - Label { Text: " Other SafeZone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherSafe { Text: " Other SafeZone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #c084fc80); } - Label { Text: " Other WarZone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherWar { Text: " Other WarZone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -118,13 +118,13 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #6b7280); } - Label { Text: " Faction Claim"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendFactionClaim { Text: " Faction Claim"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #1e293b); } - Label { Text: " Unclaimed"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendUnclaimed { Text: " Unclaimed"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -137,7 +137,7 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 16); Label { Text: " + "; Style: (FontSize: 10, TextColor: #ffffff, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 16); } - Label { Text: "You are here"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYouAreHere { Text: "You are here"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map_terrain.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map_terrain.ui index 3ed4fc3a..7ce785a9 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map_terrain.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_map_terrain.ui @@ -89,25 +89,25 @@ $C.@Container { LayoutMode: Left; Anchor: (Width: 120); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #14b8a6); } - Label { Text: " This Zone (Safe)"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendZoneSafe { Text: " This Zone (Safe)"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 120); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #c084fc); } - Label { Text: " This Zone (War)"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendZoneWar { Text: " This Zone (War)"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 110); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #2dd4bf80); } - Label { Text: " Other SafeZone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherSafe { Text: " Other SafeZone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 110); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #c084fc80); } - Label { Text: " Other WarZone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherWar { Text: " Other WarZone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -120,19 +120,19 @@ $C.@Container { LayoutMode: Left; Anchor: (Width: 120); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #6b7280); } - Label { Text: " Faction Claim"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendFactionClaim { Text: " Faction Claim"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 120); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #00000000); } - Label { Text: " Unclaimed"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendUnclaimed { Text: " Unclaimed"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 110); Label { Text: " + "; Style: (FontSize: 9, TextColor: #ffffff, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 14); } - Label { Text: "You are here"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYouAreHere { Text: "You are here"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_properties.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_properties.ui index c804668a..fcb71241 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_properties.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_properties.ui @@ -62,14 +62,14 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - Label { + Label #GeneralHeader { Text: "General"; Style: (FontSize: 13, TextColor: #00AAAA, RenderBold: true); Anchor: (Height: 20, Bottom: 4); } // Name subsection - Label { + Label #ZoneNameLabel { Text: "Zone Name"; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 16, Bottom: 2); @@ -102,7 +102,7 @@ $C.@PageOverlay { } // Type subsection - Label { + Label #ZoneTypeLabel { Text: "Zone Type"; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 16, Bottom: 2); @@ -132,7 +132,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - Label { + Label #NotificationsHeader { Text: "Notifications"; Style: (FontSize: 13, TextColor: #00AAAA, RenderBold: true); Anchor: (Height: 20, Bottom: 4); @@ -152,7 +152,7 @@ $C.@PageOverlay { } // Upper title - Label { + Label #UpperTitleLabel { Text: "Upper Title (small text above zone name)"; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 16); @@ -191,7 +191,7 @@ $C.@PageOverlay { } // Lower title - Label { + Label #LowerTitleLabel { Text: "Lower Title (large zone name text)"; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 16); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_settings.ui index 7d74117c..45da9210 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_settings.ui @@ -77,14 +77,14 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 0); - Label { + Label #CatCombat { Text: "Combat"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } } Group { Anchor: (Height: 12, Bottom: 4); - Label { + Label #CatCombatSub { Text: "(children only apply when parent ON)"; Style: (FontSize: 8, TextColor: #666666); } @@ -250,7 +250,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatDamage { Text: "Damage"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -350,7 +350,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatDeath { Text: "Death"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -415,14 +415,14 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 0); - Label { + Label #CatBuilding { Text: "Building"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } } Group { Anchor: (Height: 12, Bottom: 4); - Label { + Label #CatBuildingSub { Text: "(children only apply when parent ON)"; Style: (FontSize: 8, TextColor: #666666); } @@ -525,14 +525,14 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 0); - Label { + Label #CatInteraction { Text: "Interaction"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } } Group { Anchor: (Height: 12, Bottom: 4); - Label { + Label #CatInteractionSub { Text: "(children only apply when parent ON)"; Style: (FontSize: 8, TextColor: #666666); } @@ -837,7 +837,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatTransport { Text: "Transport"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -916,7 +916,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 4); - Label { + Label #CatItems { Text: "Items"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } @@ -1016,14 +1016,14 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 0); - Label { + Label #CatSpawning { Text: "Mob Spawning"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } } Group { Anchor: (Height: 12, Bottom: 4); - Label { + Label #CatSpawningSub { Text: "(children only apply when parent ON)"; Style: (FontSize: 8, TextColor: #666666); } @@ -1148,14 +1148,14 @@ $C.@PageOverlay { Group { Anchor: (Height: 18, Bottom: 0); - Label { + Label #CatMobClear { Text: "Mob Clearing"; Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); } } Group { Anchor: (Height: 12, Bottom: 4); - Label { + Label #CatMobClearSub { Text: "(children only apply when parent ON)"; Style: (FontSize: 8, TextColor: #666666); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui index bd3323fe..7baadaf5 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui @@ -71,7 +71,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/unclaim_all_confirm.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/unclaim_all_confirm.ui index 2f79e2d2..1bfb3f8f 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/unclaim_all_confirm.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/unclaim_all_confirm.ui @@ -20,7 +20,7 @@ $C.@PageOverlay { LayoutMode: Top; Padding: (Left: 20, Right: 20, Top: 15, Bottom: 15); - Label { + Label #ConfirmMsg1 { Text: "Are you sure you want to unclaim all"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 22); @@ -32,7 +32,7 @@ $C.@PageOverlay { Anchor: (Height: 22); } - Label { + Label #ConfirmMsg2 { Text: "from"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 18); @@ -44,7 +44,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 8); } - Label { + Label #WarningLabel { Text: "This action cannot be undone!"; Style: (FontSize: 12, TextColor: #AA5555, HorizontalAlignment: Center); Anchor: (Height: 20, Bottom: 15); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui index c6b1bf43..7cf16129 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui @@ -26,7 +26,7 @@ $C.@PageOverlay { Anchor: (Height: 26, Bottom: 6); LayoutMode: Left; - Label { + Label #ZoneLabel { Text: "Zone:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -44,7 +44,7 @@ $C.@PageOverlay { Anchor: (Height: 26, Bottom: 4); LayoutMode: Left; - Label { + Label #CurrentLabel { Text: "Current:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -63,7 +63,7 @@ $C.@PageOverlay { } // Arrow indicator - Label { + Label #WillBecomeLabel { Text: "will become"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center); Anchor: (Height: 18); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_rename_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_rename_modal.ui index 07b37ef9..73a41cf7 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_rename_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_rename_modal.ui @@ -25,7 +25,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 10); LayoutMode: Left; - Label { + Label #CurrentLabel { Text: "Current:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 70); @@ -39,7 +39,7 @@ $C.@PageOverlay { } // New name input - Label { + Label #NewNameLabel { Text: "New Name:"; Style: (FontSize: 12, TextColor: #888888); Anchor: (Height: 24, Bottom: 4); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map.ui index 2693598f..97fe7baa 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map.ui @@ -14,7 +14,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #MapTitle { @Text = "Territory Map"; } } @@ -66,19 +66,19 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #4ade80); } - Label { Text: " Your Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYourLabel { Text: " Your Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #60a5fa); } - Label { Text: " Ally Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendAllyLabel { Text: " Ally Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #f87171); } - Label { Text: " Enemy Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendEnemyLabel { Text: " Enemy Territory"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -91,13 +91,13 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #fbbf24); } - Label { Text: " Other Faction"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherLabel { Text: " Other Faction"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #1e293b); } - Label { Text: " Wilderness"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendWildernessLabel { Text: " Wilderness"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -110,13 +110,13 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #2dd4bf); } - Label { Text: " Safe Zone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendSafeLabel { Text: " Safe Zone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Height: 16); Group { Anchor: (Width: 12, Height: 12); Background: (Color: #c084fc); } - Label { Text: " War Zone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendWarLabel { Text: " War Zone"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -129,7 +129,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16); Label { Text: " + "; Style: (FontSize: 10, TextColor: #ffffff, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 16); } - Label { Text: "You are here"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYouLabel { Text: "You are here"; Style: (FontSize: 10, TextColor: #cccccc, VerticalAlignment: Center); } } } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map_terrain.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map_terrain.ui index b1f60bae..25b074a9 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map_terrain.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/chunk_map_terrain.ui @@ -14,7 +14,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #MapTitle { @Text = "Territory Map"; } } @@ -75,25 +75,25 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Width: 110); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #4ade80); } - Label { Text: " Your Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYourLabel { Text: " Your Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 100); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #60a5fa); } - Label { Text: " Ally Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendAllyLabel { Text: " Ally Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 110); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #f87171); } - Label { Text: " Enemy Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendEnemyLabel { Text: " Enemy Territory"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 100); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #fbbf24); } - Label { Text: " Other Faction"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendOtherLabel { Text: " Other Faction"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } } @@ -106,19 +106,19 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Width: 110); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #2dd4bf); } - Label { Text: " Safe Zone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendSafeLabel { Text: " Safe Zone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 100); Group { Anchor: (Width: 10, Height: 10); Background: (Color: #c084fc); } - Label { Text: " War Zone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendWarLabel { Text: " War Zone"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } Group { LayoutMode: Left; Anchor: (Width: 110); Label { Text: " + "; Style: (FontSize: 9, TextColor: #ffffff, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 14); } - Label { Text: "You are here"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } + Label #LegendYouLabel { Text: "You are here"; Style: (FontSize: 9, TextColor: #cccccc, VerticalAlignment: Center); } } } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browser.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browser.ui index 40f034b9..b4a543d1 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browser.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browser.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { Anchor: (Width: 700, Height: 500); #Title { - $C.@Title { + $C.@Title #BrowserTitle { @Text = "Browse Factions"; } } @@ -27,7 +27,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -52,7 +52,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_chat.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_chat.ui index 7133ea54..4324a158 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_chat.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_chat.ui @@ -12,7 +12,7 @@ $C.@PageOverlay { Anchor: (Width: 550, Height: 500); #Title { - $C.@Title { + $C.@Title #ChatTitle { @Text = "Faction Chat"; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_dashboard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_dashboard.ui index 711e76f1..272502b7 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_dashboard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_dashboard.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #DashboardTitle { @Text = "Faction Dashboard"; } } @@ -64,7 +64,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #PowerLabel { Text: "Power"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -89,7 +89,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #ClaimsLabel { Text: "Claims"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -114,7 +114,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #MembersLabel { Text: "Members"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -145,7 +145,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #RelationsLabel { Text: "Relations"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -170,7 +170,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #AllyEnemyLabel { Text: "ally / enemy"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -185,7 +185,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #StatusLabel { Text: "Status"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -210,7 +210,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #InvitesLabel { Text: "Invites"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -235,7 +235,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #SentRequestsLabel { Text: "sent / requests"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -257,7 +257,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #TreasuryLabel { Text: "Treasury"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -283,7 +283,7 @@ $C.@PageOverlay { Anchor: (Left: 5, Right: 5); Visible: false; - Label { + Label #UpkeepLabel { Text: "Upkeep"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -293,7 +293,7 @@ $C.@PageOverlay { Style: (FontSize: 22, TextColor: #FF5555, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); FlexWeight: 1; } - Label #UpkeepSubtext { + Label #PerCycleLabel { Text: "per cycle"; Style: (FontSize: 9, TextColor: #888888, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -308,7 +308,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #YourWalletLabel { Text: "Your Wallet"; Style: (FontSize: 10, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 16); @@ -318,7 +318,7 @@ $C.@PageOverlay { Style: (FontSize: 22, TextColor: #AAAAAA, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); FlexWeight: 1; } - Label { + Label #PersonalBalanceLabel { Text: "personal balance"; Style: (FontSize: 9, TextColor: #444444, HorizontalAlignment: Center, VerticalAlignment: Center); Anchor: (Height: 14); @@ -330,7 +330,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 25, Bottom: 8); - Label { + Label #QuickActionsLabel { Text: "Quick Actions"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); } @@ -347,7 +347,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #TeleportLabel { Text: "Teleport"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -361,7 +361,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #TerritoryLabel { Text: "Territory"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -375,7 +375,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #ChannelLabel { Text: "Channel"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -389,7 +389,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #MembershipLabel { Text: "Membership"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -408,7 +408,7 @@ $C.@PageOverlay { Anchor: (Height: 25, Bottom: 5); LayoutMode: Left; - Label { + Label #RecentActivityLabel { Text: "Recent Activity"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invites.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invites.ui index a1812230..9f94ccf3 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invites.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invites.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { Anchor: (Width: 550, Height: 450); #Title { - $C.@Title { + $C.@Title #InvitesTitle { @Text = "Invites"; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_leaderboard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_leaderboard.ui index 906c6ad5..54a07763 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_leaderboard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_leaderboard.ui @@ -12,7 +12,7 @@ $C.@PageOverlay { Anchor: (Width: 700, Height: 500); #Title { - $C.@Title { + $C.@Title #LeaderboardTitle { @Text = "Faction Leaderboard"; } } @@ -34,7 +34,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #RankByLabel { Text: "Rank by:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -51,12 +51,12 @@ $C.@PageOverlay { LayoutMode: Left; Padding: (Left: 12, Right: 12); - Label { + Label #ColRankLabel { Text: "#"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Width: 35); } - Label { + Label #ColFactionLabel { Text: "Faction"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 200); @@ -66,12 +66,12 @@ $C.@PageOverlay { Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Width: 100); } - Label { + Label #ColClaimsLabel { Text: "Claims"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Width: 70); } - Label { + Label #ColMembersLabel { Text: "Members"; Style: (FontSize: 10, TextColor: #666666, RenderBold: true, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Width: 70); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_members.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_members.ui index 6dc0e610..f6d0339b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_members.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_members.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #MembersTitle { @Text = "Members"; } } @@ -28,7 +28,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -53,7 +53,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_modules.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_modules.ui index 81f677ee..d831121c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_modules.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_modules.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #ModulesTitle { @Text = "Faction Modules"; } } @@ -27,7 +27,7 @@ $C.@PageOverlay { Group { Anchor: (Height: 35, Bottom: 10); - Label { + Label #ModulesDescription { Text: "Optional features to enhance your faction"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relations.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relations.ui index c864760a..7a793b49 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relations.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relations.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { Anchor: (Width: 550, Height: 500); #Title { - $C.@Title { + $C.@Title #RelationsTitle { @Text = "Relations"; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_settings.ui index d5f603d5..c99392c0 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_settings.ui @@ -15,7 +15,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #SettingsTitle { @Text = "Faction Settings"; } } @@ -38,7 +38,7 @@ $C.@PageOverlay { Padding: (Left: 0, Right: 8, Top: 0, Bottom: 0); // --- General --- - Label { + Label #GeneralHeader { Text: "General"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -59,7 +59,7 @@ $C.@PageOverlay { Anchor: (Height: 32, Bottom: 4); LayoutMode: Left; - Label { + Label #NameLabel { Text: "Name:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 60); @@ -81,7 +81,7 @@ $C.@PageOverlay { Anchor: (Height: 32, Bottom: 4); LayoutMode: Left; - Label { + Label #TagLabel { Text: "Tag:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 60); @@ -103,7 +103,7 @@ $C.@PageOverlay { Anchor: (Height: 32); LayoutMode: Left; - Label { + Label #DescLabel { Text: "Desc:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 60); @@ -122,7 +122,7 @@ $C.@PageOverlay { } // --- Recruitment --- - Label { + Label #RecruitmentHeader { Text: "Recruitment"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -142,7 +142,7 @@ $C.@PageOverlay { Anchor: (Height: 32); LayoutMode: Left; - Label { + Label #StatusLabel { Text: "Status:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 60); @@ -156,7 +156,7 @@ $C.@PageOverlay { } // --- Home Location --- - Label { + Label #HomeLocationHeader { Text: "Home Location"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -176,7 +176,7 @@ $C.@PageOverlay { Anchor: (Height: 28, Bottom: 4); LayoutMode: Left; - Label { + Label #LocationLabel { Text: "Location:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 60); @@ -217,7 +217,7 @@ $C.@PageOverlay { } // --- Optional Features --- - Label { + Label #OptionalFeaturesHeader { Text: "Optional Features"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -237,7 +237,7 @@ $C.@PageOverlay { Anchor: (Height: 32); LayoutMode: Left; - Label { + Label #ModulesDescLabel { Text: "Configure optional modules."; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); FlexWeight: 1; @@ -257,7 +257,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 8); - Label { + Label #DangerZoneHeader { Text: "Danger Zone"; Style: (FontSize: 11, TextColor: #FF5555, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -272,7 +272,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 8, Bottom: 8); LayoutMode: Top; - Label { + Label #IrreversibleLabel { Text: "This action is irreversible."; Style: (FontSize: 10, TextColor: #AA5555); Anchor: (Height: 18, Bottom: 4); @@ -307,7 +307,7 @@ $C.@PageOverlay { Padding: (Left: 8, Right: 8, Top: 0, Bottom: 0); LayoutMode: Left; - Label { + Label #LockHintLabel { Text: "Some options may be locked by the server and won't accept changes."; Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center); FlexWeight: 1; @@ -315,7 +315,7 @@ $C.@PageOverlay { } // ---- TERRITORY PERMISSIONS ---- - Label { + Label #TerritoryPermissionsHeader { Text: "Territory Permissions"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -338,22 +338,22 @@ $C.@PageOverlay { Padding: (Left: 6, Right: 6); Label { Anchor: (Width: 122); } - Label { + Label #ColOutLabel { Text: "Out"; Style: (FontSize: 9, TextColor: #AAAAAA, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColAllyLabel { Text: "Ally"; Style: (FontSize: 9, TextColor: #55FF55, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColMemLabel { Text: "Mem"; Style: (FontSize: 9, TextColor: #00FFFF, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColOffLabel { Text: "Off"; Style: (FontSize: 9, TextColor: #FFD700, RenderBold: true); Anchor: (Width: 52); @@ -361,7 +361,7 @@ $C.@PageOverlay { } // ---- BUILDING category ---- - Label { + Label #BuildingCatLabel { Text: "BUILDING"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2); @@ -374,7 +374,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #BreakPermLabel { Text: "Break"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -392,7 +392,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #PlacePermLabel { Text: "Place"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -404,12 +404,12 @@ $C.@PageOverlay { } // ---- INTERACTION category ---- - Label { + Label #InteractionCatLabel { Text: "INTERACTION"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2); } - Label { + Label #InteractionHintLabel { Text: "(children disabled when All is off)"; Style: (FontSize: 8, TextColor: #555566); Anchor: (Height: 12, Bottom: 2); @@ -422,7 +422,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #AllPermLabel { Text: "All"; Style: (FontSize: 11, TextColor: #CCCCCC, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 114); @@ -440,7 +440,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #DoorPermLabel { Text: "Door"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -458,7 +458,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #ChestPermLabel { Text: "Chest"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -476,7 +476,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #BenchPermLabel { Text: "Bench"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -494,7 +494,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #ProcessingPermLabel { Text: "Processing"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -512,7 +512,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #SeatPermLabel { Text: "Seat"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -530,7 +530,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #TransportPermLabel { Text: "Transport"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -542,7 +542,7 @@ $C.@PageOverlay { } // ---- OTHER PERMISSIONS category ---- - Label { + Label #OtherCatLabel { Text: "OTHER"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2, Top: 6); @@ -555,7 +555,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #CrateUsePermLabel { Text: "Crate Use"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -573,7 +573,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #NpcTamePermLabel { Text: "NPC Tame"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -591,7 +591,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PveDamagePermLabel { Text: "PvE Damage"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -617,7 +617,7 @@ $C.@PageOverlay { Padding: (Left: 8, Right: 0, Top: 0, Bottom: 0); // --- Appearance --- - Label { + Label #AppearanceHeader { Text: "Appearance"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -638,7 +638,7 @@ $C.@PageOverlay { Anchor: (Height: 28, Bottom: 4); LayoutMode: Left; - Label { + Label #ColorLabel { Text: "Color:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 42); @@ -671,12 +671,12 @@ $C.@PageOverlay { } // --- Mob Spawning --- - Label { + Label #MobSpawningHeader { Text: "Mob Spawning"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 2); } - Label { + Label #MobSpawningHintLabel { Text: "(children disabled when master is off)"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12, Bottom: 4); @@ -699,7 +699,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #MobSpawningMasterLabel { Text: "Mob Spawning"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 120); @@ -718,7 +718,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #HostileMobsLabel { Text: "Hostile Mobs"; Style: (FontSize: 10, TextColor: #FF5555, VerticalAlignment: Center); Anchor: (Width: 108); @@ -737,7 +737,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PassiveMobsLabel { Text: "Passive Mobs"; Style: (FontSize: 10, TextColor: #55FF55, VerticalAlignment: Center); Anchor: (Width: 108); @@ -756,7 +756,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #NeutralMobsLabel { Text: "Neutral Mobs"; Style: (FontSize: 10, TextColor: #FFFF55, VerticalAlignment: Center); Anchor: (Width: 108); @@ -770,7 +770,7 @@ $C.@PageOverlay { } // --- Faction Settings --- - Label { + Label #FactionSettingsHeader { Text: "Faction Settings"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -793,7 +793,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PvpLabel { Text: "PvP in Territory"; Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 120); @@ -817,7 +817,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #OfficersCanEditLabel { Text: "Officers can edit"; Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 120); @@ -826,7 +826,7 @@ $C.@PageOverlay { @Text = ""; @Checked = false; Anchor: (Height: 24, Width: 40); } - Label { + Label #LeaderOnlyLabel { Text: "Leader only"; Style: (FontSize: 9, TextColor: #FFD700, VerticalAlignment: Center); FlexWeight: 1; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui index e1bc89ce..3709479e 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #TreasuryTitle { @Text = "Faction Treasury"; } } @@ -36,7 +36,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 5); - Label { + Label #BalanceLabel { Text: "Balance"; Style: (FontSize: 10, TextColor: #666666); Anchor: (Height: 16); @@ -61,7 +61,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5, Right: 5); - Label { + Label #IncomeLabel { Text: "Income (24h)"; Style: (FontSize: 10, TextColor: #666666); Anchor: (Height: 16); @@ -71,7 +71,7 @@ $C.@PageOverlay { Style: (FontSize: 22, TextColor: #44CC44, RenderBold: true); FlexWeight: 1; } - Label { + Label #IncomeDescLabel { Text: "deposits, transfers in"; Style: (FontSize: 10, TextColor: #888888); Anchor: (Height: 14); @@ -86,7 +86,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 5); - Label { + Label #ExpensesLabel { Text: "Expenses (24h)"; Style: (FontSize: 10, TextColor: #666666); Anchor: (Height: 16); @@ -96,7 +96,7 @@ $C.@PageOverlay { Style: (FontSize: 22, TextColor: #FF5555, RenderBold: true); FlexWeight: 1; } - Label { + Label #ExpensesDescLabel { Text: "withdrawals, transfers out"; Style: (FontSize: 10, TextColor: #888888); Anchor: (Height: 14); @@ -117,7 +117,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 18); - Label { + Label #MaintenanceLabel { Text: "MAINTENANCE"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); } @@ -177,7 +177,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 16, Bottom: 4); - Label { + Label #RunwayLabel { Text: "Runway:"; Style: (FontSize: 10, TextColor: #888888); Anchor: (Width: 55); @@ -281,7 +281,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #AddFundsLabel { Text: "Add funds"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -300,7 +300,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #TakeFundsLabel { Text: "Take funds"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -319,7 +319,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #SendToFactionLabel { Text: "Send to faction"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -340,7 +340,7 @@ $C.@PageOverlay { Anchor: (Left: 4); Visible: false; - Label { + Label #TreasuryConfigLabel { Text: "Treasury config"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 4); @@ -364,7 +364,7 @@ $C.@PageOverlay { Anchor: (Height: 22); LayoutMode: Left; - Label { + Label #RecentTransactionsLabel { Text: "Recent Transactions"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); FlexWeight: 1; @@ -382,27 +382,27 @@ $C.@PageOverlay { Anchor: (Height: 20); LayoutMode: Left; - Label { + Label #ColDateLabel { Text: "Date"; Style: (FontSize: 10, TextColor: #555555); Anchor: (Width: 100); } - Label { + Label #ColTypeLabel { Text: "Type"; Style: (FontSize: 10, TextColor: #555555); Anchor: (Width: 100); } - Label { + Label #ColByLabel { Text: "By"; Style: (FontSize: 10, TextColor: #555555); Anchor: (Width: 90); } - Label { + Label #ColAmountLabel { Text: "Amount"; Style: (FontSize: 10, TextColor: #555555); Anchor: (Width: 100); } - Label { + Label #ColDetailsLabel { Text: "Details"; Style: (FontSize: 10, TextColor: #555555); FlexWeight: 1; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/logs_viewer.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/logs_viewer.ui index a42d7673..57c9c2a5 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/logs_viewer.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/logs_viewer.ui @@ -34,7 +34,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #FilterLabel { Text: "Filter:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 40); @@ -51,17 +51,17 @@ $C.@PageOverlay { LayoutMode: Left; Padding: (Left: 12, Right: 12); - Label { + Label #ColTimeLabel { Text: "Time"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 90); } - Label { + Label #ColTypeLabel { Text: "Type"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 75); } - Label { + Label #ColMessageLabel { Text: "Message"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); FlexWeight: 1; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui index d099267b..01c05df2 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { Anchor: (Width: 560, Height: 580); #Title { - $C.@Title { + $C.@Title #PageTitle { @Text = "Player Info"; } } @@ -47,7 +47,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 18); - Label { + Label #FirstJoinedLabel { Text: "First joined:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 75); @@ -58,7 +58,7 @@ $C.@PageOverlay { Anchor: (Width: 130); } - Label { + Label #LastOnlineLabel { Text: "Last online:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 70); @@ -82,7 +82,7 @@ $C.@PageOverlay { Anchor: (Height: 22); LayoutMode: Left; - Label { + Label #FactionLabel { Text: "Faction:"; Style: (FontSize: 12, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 60); @@ -99,7 +99,7 @@ $C.@PageOverlay { Anchor: (Height: 22); LayoutMode: Left; - Label { + Label #RoleLabel { Text: "Role:"; Style: (FontSize: 12, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 60); @@ -116,7 +116,7 @@ $C.@PageOverlay { Anchor: (Height: 26); LayoutMode: Left; - Label { + Label #JoinedLabel { Text: "Joined:"; Style: (FontSize: 12, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 60); @@ -158,7 +158,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #PowerHeader { Text: "Power"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -168,7 +168,7 @@ $C.@PageOverlay { Style: (FontSize: 20, TextColor: #FFFFFF, RenderBold: true); FlexWeight: 1; } - Label { + Label #PowerSubtitle { Text: "current / max"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -183,7 +183,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #CombatHeader { Text: "Combat"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -208,7 +208,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #CombatSubtitle { Text: "kills / deaths"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -223,7 +223,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #KDRHeader { Text: "K/D Ratio"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -259,7 +259,7 @@ $C.@PageOverlay { Anchor: (Height: 20, Bottom: 4); LayoutMode: Left; - Label { + Label #MembershipHistoryLabel { Text: "Membership History"; Style: (FontSize: 11, TextColor: #666666, RenderBold: true); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/transfer_confirm.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/transfer_confirm.ui index 49874f64..e5c3ec18 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/transfer_confirm.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/transfer_confirm.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Transfer Leadership"; } } @@ -20,7 +20,7 @@ $C.@PageOverlay { LayoutMode: Top; Padding: (Left: 20, Right: 20, Top: 15, Bottom: 15); - Label { + Label #ConfirmText { Text: "Are you sure you want to transfer leadership to"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 22); @@ -32,7 +32,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 8); } - Label { + Label #WarningText { Text: "You will become an Officer."; Style: (FontSize: 12, TextColor: #FFAA00, HorizontalAlignment: Center); Anchor: (Height: 20, Bottom: 15); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/treasury_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/treasury_settings.ui index 7ea8b772..aafa5b54 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/treasury_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/treasury_settings.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #TreasurySettingsTitle { @Text = "Treasury Settings"; } } @@ -21,7 +21,7 @@ $C.@PageOverlay { Padding: (Left: 20, Right: 20, Top: 10, Bottom: 10); // === Officer Permissions Section === - Label { + Label #OfficerPermissionsHeader { Text: "OFFICER PERMISSIONS"; Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, RenderUppercase: true); Anchor: (Height: 18, Bottom: 4); @@ -61,7 +61,7 @@ $C.@PageOverlay { } // === Limits Section === - Label { + Label #LimitsHeader { Text: "WITHDRAWAL AND TRANSFER LIMITS"; Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, RenderUppercase: true); Anchor: (Height: 18, Bottom: 4); @@ -76,7 +76,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; Anchor: (Height: 28, Bottom: 4); - Label { + Label #MaxWithdrawLabel { Text: "Max per withdrawal:"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 200); @@ -90,7 +90,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; Anchor: (Height: 28, Bottom: 4); - Label { + Label #MaxWithdrawPeriodLabel { Text: "Max withdrawals per period:"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 200); @@ -104,7 +104,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; Anchor: (Height: 28, Bottom: 4); - Label { + Label #MaxTransferLabel { Text: "Max per transfer:"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 200); @@ -118,7 +118,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; Anchor: (Height: 28, Bottom: 4); - Label { + Label #MaxTransferPeriodLabel { Text: "Max transfers per period:"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 200); @@ -132,7 +132,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; Anchor: (Height: 28); - Label { + Label #PeriodHoursLabel { Text: "Limit period (hours):"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 200); @@ -144,7 +144,7 @@ $C.@PageOverlay { } } - Label { + Label #NoLimitHintLabel { Text: "Set to 0 for no limit"; Style: (FontSize: 9, TextColor: #555555); Anchor: (Height: 14, Bottom: 10); @@ -156,7 +156,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 10); - Label { + Label #UpkeepSettingsHeader { Text: "UPKEEP SETTINGS"; Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, RenderUppercase: true); Anchor: (Height: 18, Bottom: 4); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui index ecfc68cf..9fc3bd6f 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui @@ -119,7 +119,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Help Center"; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/browse.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/browse.ui index c5fc23b1..6ea3632c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/browse.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/browse.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { Anchor: (Width: 700, Height: 500); #Title { - $C.@Title { + $C.@Title #PageTitle { @Text = "Browse Factions"; } } @@ -47,7 +47,7 @@ $C.@PageOverlay { Anchor: (Height: 38, Bottom: 8); LayoutMode: Left; - Label { + Label #SearchLabel { Text: "Search:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -66,7 +66,7 @@ $C.@PageOverlay { Group { FlexWeight: 1; } - Label { + Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 35); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui index 56083a1b..1c8b528e 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui @@ -14,7 +14,7 @@ $C.@PageOverlay { Anchor: (Width: 1000, Height: 700); #Title { - $C.@Title { + $C.@Title #PageTitle { @Text = "Create Your Faction"; } } @@ -35,7 +35,7 @@ $C.@PageOverlay { Padding: (Left: 0, Right: 8, Top: 0, Bottom: 0); // --- PREVIEW --- - Label { + Label #SectionPreview { Text: "Preview"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -55,7 +55,7 @@ $C.@PageOverlay { LayoutMode: Left; Anchor: (Height: 20); - Label { + Label #NamePrefix { Text: "Name: "; Style: (FontSize: 13, TextColor: #AAAAAA); } @@ -73,7 +73,7 @@ $C.@PageOverlay { } // --- BASIC INFO --- - Label { + Label #SectionBasicInfo { Text: "Basic Info"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -89,7 +89,7 @@ $C.@PageOverlay { Anchor: (Height: 130, Bottom: 12); LayoutMode: Top; - Label { + Label #FactionNameLabel { Text: "Faction Name *"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -98,7 +98,7 @@ $C.@PageOverlay { Anchor: (Height: 32, Bottom: 6); } - Label { + Label #TagLabel { Text: "TAG (2-4 chars, auto if empty)"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -114,7 +114,7 @@ $C.@PageOverlay { } // --- DETAILS --- - Label { + Label #SectionDetails { Text: "Details"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -129,7 +129,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); LayoutMode: Top; - Label { + Label #DescLabel { Text: "Description (Optional)"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -138,7 +138,7 @@ $C.@PageOverlay { Anchor: (Height: 50, Bottom: 6); } - Label { + Label #RecruitmentLabel { Text: "Recruitment"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16, Bottom: 4); @@ -175,7 +175,7 @@ $C.@PageOverlay { Padding: (Left: 8, Right: 8, Top: 0, Bottom: 0); LayoutMode: Left; - Label { + Label #LockHint { Text: "Some options may be locked by the server and won't accept changes."; Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center); FlexWeight: 1; @@ -183,7 +183,7 @@ $C.@PageOverlay { } // ---- TERRITORY PERMISSIONS ---- - Label { + Label #TerritoryPermissionsLabel { Text: "Territory Permissions"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -205,22 +205,22 @@ $C.@PageOverlay { Padding: (Left: 6, Right: 6); Label { Anchor: (Width: 122); } - Label { + Label #ColOut { Text: "Out"; Style: (FontSize: 9, TextColor: #AAAAAA, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColAlly { Text: "Ally"; Style: (FontSize: 9, TextColor: #55FF55, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColMem { Text: "Mem"; Style: (FontSize: 9, TextColor: #00FFFF, RenderBold: true); Anchor: (Width: 52); } - Label { + Label #ColOff { Text: "Off"; Style: (FontSize: 9, TextColor: #FFD700, RenderBold: true); Anchor: (Width: 52); @@ -228,7 +228,7 @@ $C.@PageOverlay { } // ---- BUILDING category ---- - Label { + Label #CatBuilding { Text: "BUILDING"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2); @@ -241,7 +241,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PermBreak { Text: "Break"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -259,7 +259,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #PermPlace { Text: "Place"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -271,12 +271,12 @@ $C.@PageOverlay { } // ---- INTERACTION category ---- - Label { + Label #CatInteraction { Text: "INTERACTION"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2); } - Label { + Label #InteractionHint { Text: "(children disabled when All is off)"; Style: (FontSize: 8, TextColor: #555566); Anchor: (Height: 12, Bottom: 2); @@ -289,7 +289,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PermAll { Text: "All"; Style: (FontSize: 11, TextColor: #CCCCCC, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 114); @@ -307,7 +307,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermDoor { Text: "Door"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -325,7 +325,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermChest { Text: "Chest"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -343,7 +343,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermBench { Text: "Bench"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -361,7 +361,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermProcessing { Text: "Processing"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -379,7 +379,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermSeat { Text: "Seat"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -397,7 +397,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PermTransport { Text: "Transport"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 102); @@ -409,7 +409,7 @@ $C.@PageOverlay { } // ---- OTHER PERMISSIONS category ---- - Label { + Label #CatOther { Text: "OTHER"; Style: (FontSize: 9, TextColor: #666688, RenderBold: true); Anchor: (Height: 16, Bottom: 2, Top: 6); @@ -422,7 +422,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PermCrate { Text: "Crate Use"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -440,7 +440,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #PermNpcTame { Text: "NPC Tame"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -458,7 +458,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PermPve { Text: "PvE Damage"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 114); @@ -484,7 +484,7 @@ $C.@PageOverlay { Padding: (Left: 8, Right: 0, Top: 0, Bottom: 0); // --- FACTION COLOR --- - Label { + Label #SectionFactionColor { Text: "Faction Color"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -506,12 +506,12 @@ $C.@PageOverlay { } // --- MOB SPAWNING --- - Label { + Label #SectionMobSpawning { Text: "Mob Spawning"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 2); } - Label { + Label #MobSpawningHint { Text: "(children disabled when master is off)"; Style: (FontSize: 8, TextColor: #666666); Anchor: (Height: 12, Bottom: 4); @@ -534,7 +534,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #MobSpawningLabel { Text: "Mob Spawning"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 120); @@ -553,7 +553,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #HostileMobsLabel { Text: "Hostile Mobs"; Style: (FontSize: 10, TextColor: #FF5555, VerticalAlignment: Center); Anchor: (Width: 108); @@ -572,7 +572,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #PassiveMobsLabel { Text: "Passive Mobs"; Style: (FontSize: 10, TextColor: #55FF55, VerticalAlignment: Center); Anchor: (Width: 108); @@ -591,7 +591,7 @@ $C.@PageOverlay { Background: (Color: #0a1018); Padding: (Left: 18, Right: 6); - Label { + Label #NeutralMobsLabel { Text: "Neutral Mobs"; Style: (FontSize: 10, TextColor: #FFFF55, VerticalAlignment: Center); Anchor: (Width: 108); @@ -605,7 +605,7 @@ $C.@PageOverlay { } // --- COMBAT --- - Label { + Label #SectionCombat { Text: "Combat"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); Anchor: (Height: 18, Bottom: 4); @@ -627,7 +627,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PvPLabel { Text: "PvP in Territory"; Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 120); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/help.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/help.ui index 5c3290ad..76450572 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/help.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/help.ui @@ -13,7 +13,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Getting Started"; } } @@ -29,37 +29,37 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Height: 120, Bottom: 20); - Label { + Label #WhatTitle { Text: "What Are Factions?"; Style: (FontSize: 13, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #WhatDesc1 { Text: "Factions are player-created groups that work together"; Style: (FontSize: 12, TextColor: #CCCCCC); Anchor: (Height: 18); } - Label { + Label #WhatDesc2 { Text: "to claim territory, build bases, and compete."; Style: (FontSize: 12, TextColor: #CCCCCC); Anchor: (Height: 18); } - Label { + Label #WhatBullet1 { Text: "- Protected territory for building"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); } - Label { + Label #WhatBullet2 { Text: "- Teammates to play with"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); } - Label { + Label #WhatBullet3 { Text: "- Access to faction chat and features"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -71,31 +71,31 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Height: 95, Bottom: 20); - Label { + Label #JoinTitle { Text: "Joining a Faction"; Style: (FontSize: 13, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #JoinDesc { Text: "There are several ways to join a faction:"; Style: (FontSize: 12, TextColor: #CCCCCC); Anchor: (Height: 20); } - Label { + Label #JoinBullet1 { Text: "- Browse - Find open factions and click JOIN"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); } - Label { + Label #JoinBullet2 { Text: "- Invites - Accept invitations from officers"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); } - Label { + Label #JoinBullet3 { Text: "- Request - Ask to join invite-only factions"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -107,25 +107,25 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Height: 80, Bottom: 20); - Label { + Label #CreateTitle { Text: "Creating a Faction"; Style: (FontSize: 13, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #CreateDesc { Text: "Go to the Create tab to start your own faction."; Style: (FontSize: 12, TextColor: #CCCCCC); Anchor: (Height: 20); } - Label { + Label #CreateBullet1 { Text: "- Invite and manage members"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); } - Label { + Label #CreateBullet2 { Text: "- Claim and protect territory"; Style: (FontSize: 11, TextColor: #AAAAAA); Anchor: (Height: 16); @@ -137,37 +137,37 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Height: 130, Bottom: 10); - Label { + Label #CmdTitle { Text: "Quick Commands"; Style: (FontSize: 13, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 22); } - Label { + Label #CmdF { Text: "/f - Open faction menu"; Style: (FontSize: 11, TextColor: #FFFF55); Anchor: (Height: 16); } - Label { + Label #CmdFList { Text: "/f list - List all factions"; Style: (FontSize: 11, TextColor: #FFFF55); Anchor: (Height: 16); } - Label { + Label #CmdFJoin { Text: "/f join - Join an open faction"; Style: (FontSize: 11, TextColor: #FFFF55); Anchor: (Height: 16); } - Label { + Label #CmdFCreate { Text: "/f create - Create a new faction"; Style: (FontSize: 11, TextColor: #FFFF55); Anchor: (Height: 16); } - Label { + Label #CmdFHelp { Text: "/f help - Full command list"; Style: (FontSize: 11, TextColor: #FFFF55); Anchor: (Height: 16); @@ -180,7 +180,7 @@ $C.@PageOverlay { Background: (Color: #1a2a3a); Padding: (Left: 10, Right: 10, Top: 10, Bottom: 10); - Label { + Label #TipText { Text: "Tip: Browse factions to find a group that matches you!"; Style: (FontSize: 12, TextColor: #55FF55); } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/invites.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/invites.ui index a5c99b3a..4677a707 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/invites.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/invites.ui @@ -15,7 +15,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; - $C.@Title { + $C.@Title #PageTitle { @Text = "Invites & Requests"; } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/map_readonly.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/map_readonly.ui index 0fe9f2a5..c581c9aa 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/map_readonly.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/map_readonly.ui @@ -15,7 +15,7 @@ $C.@PageOverlay { Group { LayoutMode: Left; - $C.@Title { + $C.@Title #PageTitle { @Text = "Territory Map"; } @@ -58,7 +58,7 @@ $C.@PageOverlay { Anchor: (Height: 60, Top: 10); LayoutMode: Top; - Label { + Label #LegendTitle { Text: "Legend:"; Style: (FontSize: 11, TextColor: #888888); Anchor: (Height: 18); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/description_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/description_modal.ui index 965e6e64..61256f9b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/description_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/description_modal.ui @@ -9,7 +9,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Edit Description"; } } @@ -24,7 +24,7 @@ $C.@PageOverlay { Anchor: (Height: 36, Bottom: 10); LayoutMode: Left; - Label { + Label #CurrentLabel { Text: "Current:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 70); @@ -38,7 +38,7 @@ $C.@PageOverlay { } // New description input - Label { + Label #NewDescLabel { Text: "New Description:"; Style: (FontSize: 12, TextColor: #888888); Anchor: (Height: 24, Bottom: 4); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/disband_confirm.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/disband_confirm.ui index 4335c62f..8e44cf30 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/disband_confirm.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/disband_confirm.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Disband Faction"; } } @@ -20,7 +20,7 @@ $C.@PageOverlay { LayoutMode: Top; Padding: (Left: 20, Right: 20, Top: 15, Bottom: 15); - Label { + Label #ConfirmText { Text: "Are you sure you want to disband"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 22); @@ -32,7 +32,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 8); } - Label { + Label #WarningText { Text: "This action cannot be undone!"; Style: (FontSize: 12, TextColor: #AA5555, HorizontalAlignment: Center); Anchor: (Height: 20, Bottom: 15); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/error_page.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/error_page.ui index aca968f8..b7946574 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/error_page.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/error_page.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Error"; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/faction_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/faction_info.ui index 35386344..6d83227c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/faction_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/faction_info.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { Anchor: (Width: 560, Height: 520); #Title { - $C.@Title { + $C.@Title #PageTitle { @Text = "Faction Info"; } } @@ -69,7 +69,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #PowerHeader { Text: "Power"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -79,7 +79,7 @@ $C.@PageOverlay { Style: (FontSize: 20, TextColor: #44CC44, RenderBold: true); FlexWeight: 1; } - Label { + Label #PowerSubtitle { Text: "current / max"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -94,7 +94,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #ClaimsHeader { Text: "Claims"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -104,7 +104,7 @@ $C.@PageOverlay { Style: (FontSize: 20, TextColor: #FFAA00, RenderBold: true); FlexWeight: 1; } - Label { + Label #ClaimsSubtitle { Text: "claimed / max"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -119,7 +119,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4); - Label { + Label #MembersHeader { Text: "Members"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -150,7 +150,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Right: 4); - Label { + Label #RelationsHeader { Text: "Relations"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -175,7 +175,7 @@ $C.@PageOverlay { FlexWeight: 1; } } - Label { + Label #RelationsSubtitle { Text: "ally / enemy"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -190,7 +190,7 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Left: 4, Right: 4); - Label { + Label #StatusHeader { Text: "Status"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -216,7 +216,7 @@ $C.@PageOverlay { Anchor: (Left: 4); Visible: false; - Label { + Label #TreasuryHeader { Text: "Treasury"; Style: (FontSize: 9, TextColor: #666666); Anchor: (Height: 14); @@ -226,7 +226,7 @@ $C.@PageOverlay { Style: (FontSize: 18, TextColor: #FFD700, RenderBold: true); FlexWeight: 1; } - Label { + Label #TreasurySubtitle { Text: "faction balance"; Style: (FontSize: 9, TextColor: #444444); Anchor: (Height: 14); @@ -247,7 +247,7 @@ $C.@PageOverlay { Padding: (Left: 12, Right: 12, Top: 8, Bottom: 8); LayoutMode: Left; - Label { + Label #LeaderLabel { Text: "Leader:"; Style: (FontSize: 12, TextColor: #FFD700, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 65); @@ -260,7 +260,7 @@ $C.@PageOverlay { Label { Anchor: (Width: 30); } - Label { + Label #OfficersLabel { Text: "Officers:"; Style: (FontSize: 12, TextColor: #87CEEB, RenderBold: true, VerticalAlignment: Center); Anchor: (Width: 70); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/leader_leave_confirm.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/leader_leave_confirm.ui index 60958272..65ef7ba1 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/leader_leave_confirm.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/leader_leave_confirm.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Leave as Leader"; } } @@ -20,7 +20,7 @@ $C.@PageOverlay { LayoutMode: Top; Padding: (Left: 20, Right: 20, Top: 15, Bottom: 15); - Label { + Label #ConfirmText { Text: "You are leaving"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 22); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/leave_confirm.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/leave_confirm.ui index c3581561..ea731b13 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/leave_confirm.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/leave_confirm.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Leave Faction"; } } @@ -20,7 +20,7 @@ $C.@PageOverlay { LayoutMode: Top; Padding: (Left: 20, Right: 20, Top: 15, Bottom: 15); - Label { + Label #ConfirmText { Text: "Are you sure you want to leave"; Style: (FontSize: 13, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 22); @@ -32,7 +32,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 8); } - Label { + Label #WarningText { Text: "You will lose access to faction territory."; Style: (FontSize: 12, TextColor: #888888, HorizontalAlignment: Center); Anchor: (Height: 20, Bottom: 15); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui index c9792e7d..233972d8 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/player_settings.ui @@ -12,7 +12,7 @@ $C.@PageOverlay { Anchor: (Width: 550, Height: 480); #Title { - $C.@Title { + $C.@Title #PageTitle { @Text = "Player Settings"; } } @@ -38,11 +38,20 @@ $C.@PageOverlay { LayoutMode: Top; Anchor: (Bottom: 12); - // Auto-detect checkbox - $C.@CheckBoxWithLabel #AutoDetectCB { - @Text = "Auto-detect from client"; - @Checked = true; + // Auto-detect checkbox + label + Group { + LayoutMode: Left; Anchor: (Height: 28, Bottom: 2); + + $C.@CheckBoxWithLabel #AutoDetectCB { + @Text = ""; + @Checked = true; + Anchor: (Height: 28, Width: 30); + } + Label #AutoDetectLabel { + Text: "Auto-detect from client"; + Style: (FontSize: 12, TextColor: #CCCCCC, VerticalAlignment: Center); + } } Label #AutoDetectDesc { @@ -92,7 +101,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #TerritoryAlertsLabel { Text: "Territory Alerts"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 160); @@ -117,7 +126,7 @@ $C.@PageOverlay { Background: (Color: #111a28); Padding: (Left: 6, Right: 6); - Label { + Label #DeathAnnounceLabel { Text: "Death Broadcasts"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 160); @@ -142,7 +151,7 @@ $C.@PageOverlay { Background: (Color: #0d1520); Padding: (Left: 6, Right: 6); - Label { + Label #PowerNotifLabel { Text: "Power Changes"; Style: (FontSize: 11, TextColor: #CCCCCC, VerticalAlignment: Center); Anchor: (Width: 160); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/rename_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/rename_modal.ui index 31923e3e..29cde4e8 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/rename_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/rename_modal.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Rename Faction"; } } @@ -25,7 +25,7 @@ $C.@PageOverlay { Anchor: (Height: 24, Bottom: 10); LayoutMode: Left; - Label { + Label #CurrentLabel { Text: "Current:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 70); @@ -39,7 +39,7 @@ $C.@PageOverlay { } // New name input - Label { + Label #NewNameLabel { Text: "New Name:"; Style: (FontSize: 12, TextColor: #888888); Anchor: (Height: 24, Bottom: 4); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/shared/tag_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/shared/tag_modal.ui index 422454b6..3b051562 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/shared/tag_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/shared/tag_modal.ui @@ -10,7 +10,7 @@ $C.@PageOverlay { #Title { Group { - $C.@Title { + $C.@Title #PageTitle { @Text = "Edit Tag"; } } @@ -25,7 +25,7 @@ $C.@PageOverlay { Anchor: (Height: 28, Bottom: 10); LayoutMode: Left; - Label { + Label #CurrentLabel { Text: "Current:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 70); @@ -39,7 +39,7 @@ $C.@PageOverlay { } // Instructions - Label { + Label #TagInstructions { Text: "Tag (1-5 chars, letters and numbers only):"; Style: (FontSize: 12, TextColor: #888888); Anchor: (Height: 24, Bottom: 4); @@ -51,7 +51,7 @@ $C.@PageOverlay { } // Help text - Label { + Label #TagHelpText { Text: "Tags appear in chat and on the map"; Style: (FontSize: 10, TextColor: #555555, HorizontalAlignment: Center); Anchor: (Height: 16, Bottom: 10); diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index bea46e75..c9c9ab92 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -17,6 +17,11 @@ common.cancel = Cancel common.confirm = Confirm common.save = Save common.close = Close +common.clear = Clear +common.back = Back +common.leave = Leave +common.transfer = Transfer +common.disband = Disband common.yes = Yes common.no = No common.loading = Loading... diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 0e2ccdc9..bf24a7bb 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -191,6 +191,16 @@ zone_int.no_plugin = (no plugin) zone_int.default = (default) zone_int.custom = (custom) +# Integration flags UI labels +gui.zint_cat_gravestones = Gravestones +gui.zint_gravestones_desc = When ON, non-owners can loot graves. Owners always can. +gui.zint_cat_world_map = World Map +gui.zint_world_map_desc = Override map hiding for players in this zone. When enabled, select who can see players in this zone. +gui.zint_visibility_label = Visibility Level: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Reset to Defaults +gui.zint_back_to_flags = Back to Flags + # ========== Activity Log ========== log.all_types = All Types log.no_logs = No activity logs matching filters. @@ -220,6 +230,21 @@ zflags.reset_all = Reset all flags to defaults. zflags.reset_failed = Failed to reset flags: {0} zflags.back_to_settings = Back to Settings +# Zone settings UI labels +gui.zset_cat_combat = Combat +gui.zset_cat_damage = Damage +gui.zset_cat_death = Death +gui.zset_cat_building = Building +gui.zset_cat_interaction = Interaction +gui.zset_cat_transport = Transport +gui.zset_cat_items = Items +gui.zset_cat_spawning = Mob Spawning +gui.zset_cat_mob_clear = Mob Clearing +gui.zset_children_hint = (children only apply when parent ON) +gui.zset_reset_defaults = Reset to Defaults +gui.zset_integration_flags = Integration Flags +gui.zset_back_to_zones = Back to Zones + # ========== Zone Properties ========== zprop.current_custom = Current: "{0}" (custom) zprop.current_default = Current: "{0}" (default) @@ -261,3 +286,297 @@ map.unclaim_failed = Failed to unclaim chunk: {0} map.chunk_belongs = This chunk belongs to {0}. map.chunk_faction = This chunk is claimed by a faction. map.chunk_protected = This chunk is in a protected region. + +# ========== GUI Label Keys (for .ui hardcoded text localization) ========== + +# Page Titles +gui.title_dashboard = Admin Dashboard +gui.title_main = Factions Admin +gui.title_actions = Admin: Server Actions +gui.title_factions = Faction Management +gui.title_players = Player Management +gui.title_economy = Admin: Server Economy +gui.title_zones = Zone Management +gui.title_backups = Backups +gui.title_config = Configuration +gui.title_help = Admin Help +gui.title_updates = Updates +gui.title_version = Version and Integrations +gui.title_activity_log = Admin: Activity Log +gui.title_player_info = Admin: Player Info +gui.title_faction_info = Admin: Faction Info +gui.title_faction_settings = Admin: Faction Settings +gui.title_faction_members = Admin: Members +gui.title_faction_relations = Admin: Relations +gui.title_zone_map = Zone Map Editor +gui.title_zone_settings = Admin: Zone Settings +gui.title_zone_properties = Admin: Zone Properties +gui.title_bulk_economy = Bulk Treasury Adjust +gui.title_economy_adjust = Admin: Economy + +# Dashboard labels +gui.dash_server_stats = Server Statistics +gui.dash_factions = Factions +gui.dash_total_members = Total Members +gui.dash_total_claims = Total Claims +gui.dash_zones = Zones +gui.dash_safe_war = safe / war +gui.dash_total_power = Total Power +gui.dash_avg_power = Avg Power/Faction +gui.dash_total_economy = Total Economy +gui.dash_wealthiest = Wealthiest +gui.dash_avg_balance = Avg Balance +gui.dash_protection_bypass = Protection Bypass: + +# Common buttons and labels +gui.search = Search: +gui.sort = Sort: +gui.prev = < Prev +gui.next = Next > +gui.back = Back +gui.done = Done +gui.cancel = Cancel +gui.apply = Apply +gui.set = Set +gui.reset = Reset +gui.coming_soon = Coming Soon +gui.zones_btn = Zones +gui.reload_btn = Reload +gui.all = All +gui.safe = Safe +gui.war = War +gui.create_zone = + Create + +# Actions page labels +gui.act_combat_stats = Combat Statistics +gui.act_combat_desc = Reset kills and deaths for ALL players on the server. This action cannot be undone. +gui.act_reset_kd = Reset All K/D +gui.act_economy = Economy +gui.act_economy_desc = Add or remove money from ALL faction treasuries at once. +gui.act_bulk_adjust = Bulk Add/Remove +gui.act_upkeep_collection = Upkeep Collection +gui.act_upkeep_desc = Manually trigger upkeep collection for all factions right now, regardless of the scheduled timer. +gui.act_trigger_upkeep = Trigger Upkeep + +# Placeholder page labels +gui.backup_heading = Backup Management +gui.backup_desc1 = Create, restore, and manage faction data backups. +gui.backup_desc2 = Automatic backups are saved to the data/backups folder. +gui.config_heading = Configuration Editor +gui.config_desc1 = Configure HyperFactions settings directly from the GUI. +gui.config_desc2 = For now, use /f reload to reload configuration changes. +gui.help_heading = Admin Documentation +gui.help_desc1 = View admin documentation and command reference. +gui.help_desc2 = For help, visit the HyperFactions wiki. +gui.updates_heading = Update Center +gui.updates_desc1 = Check for new versions and view changelogs. +gui.updates_desc2 = Visit the HyperFactions page for the latest updates. + +# Version page labels +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = PERMISSIONS +gui.ver_placeholders = PLACEHOLDERS +gui.ver_economy_section = ECONOMY +gui.ver_protection = PROTECTION +gui.ver_disabled = Disabled + +# Column headers (shared across pages) +gui.col_faction = Faction +gui.col_balance = Balance +gui.col_members = Members +gui.col_actions = Actions +gui.col_time = Time +gui.col_type = Type +gui.col_message = Message + +# Economy page labels +gui.econ_total_balance = Total Balance +gui.econ_factions = Factions +gui.econ_avg_balance = Avg Balance +gui.econ_in_grace = In Grace +gui.econ_collected = Collected (24h) +gui.econ_next_collection = Next Collection +gui.econ_no_data = No factions with economy data. + +# Activity log labels +gui.log_type = Type: +gui.log_time = Time: +gui.log_player = Player: +gui.log_no_logs = No activity logs matching filters. + +# Player info labels +gui.plr_first_joined = First joined: +gui.plr_last_online = Last online: +gui.plr_uuid = UUID: +gui.plr_faction = Faction: +gui.plr_role = Role: +gui.plr_view_faction = View Faction +gui.plr_power = Power +gui.plr_max_power = Max Power +gui.plr_set_power = Set +gui.plr_reset_power = Reset +gui.plr_set_max = Set +gui.plr_reset_max = Reset +gui.plr_no_power_loss = No Power Loss +gui.plr_no_claim_decay = No Claim Decay +gui.plr_kills = Kills +gui.plr_deaths = Deaths +gui.plr_kdr = K/D Ratio +gui.plr_reset_kd = Reset K/D +gui.plr_kick = Kick +gui.plr_membership_history = Membership History +gui.plr_no_faction_label = Not in a faction +gui.plr_power_management = Power Management +gui.plr_combat_stats = Combat Stats +gui.plr_bypass_flags = Bypass Flags +gui.plr_admin_controls = Admin Controls +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Max: +gui.plr_view = View +gui.plr_kick_from_faction = Kick from Faction +gui.plr_set_max_btn = Set Max +gui.plr_combat = Combat + +# Faction info labels +gui.fac_description = Description +gui.fac_power = Power +gui.fac_claims = Claims +gui.fac_members = Members +gui.fac_recruitment = Recruitment +gui.fac_founded = Founded +gui.fac_allies = Allies +gui.fac_enemies = Enemies +gui.fac_raidable = Raidable Status +gui.fac_treasury = Treasury +gui.fac_leader = Leader +gui.fac_officers = Officers +gui.fac_view_members = View Members +gui.fac_view_relations = View Relations +gui.fac_view_settings = Settings +gui.fac_disband = Disband Faction +gui.fac_power_management = Power Management +gui.fac_reset_all_power = Reset All Power +gui.fac_econ_adjust = Adjust Balance +gui.fac_econ_view_log = View Transaction Log +gui.fac_current_max = current / max +gui.fac_claimed_max = claimed / max +gui.fac_relations = Relations +gui.fac_ally_enemy = ally / enemy +gui.fac_status = Status +gui.fac_info = Info +gui.fac_treasury_balance = treasury balance +gui.fac_leadership = Leadership +gui.fac_leader_label = Leader: +gui.fac_officers_label = Officers: +gui.fac_econ_mgmt = Economy Management +gui.fac_danger_zone = Danger Zone +gui.fac_view_treasury = View Treasury + +# Faction settings labels +gui.set_editing = Editing: +gui.set_general = General Settings +gui.set_name = Name +gui.set_tag = Tag +gui.set_description = Description +gui.set_recruitment = Recruitment +gui.set_home = Home Location +gui.set_clear_home = Clear Home +gui.set_disband_faction = Disband Faction +gui.set_faction_color = Faction Color +gui.set_admin_override = [Admin Override] +gui.set_territory_perms = Territory Permissions +gui.set_mob_spawning = Mob Spawning +gui.set_faction_settings = Faction Settings + +# Faction relations labels +gui.rel_subtitle = Manage faction relations (bypasses approval) +gui.rel_set_new = Set New Relation + +# Zone page labels +gui.zone_sort_name = Name +gui.zone_sort_type = Type +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = World +gui.zone_count_format = {0} {1}zones ({2} chunks) + +# Zone map labels +gui.map_zone_chunk = Zone Chunk +gui.map_empty = Empty +gui.map_other_zone = Other Zone +gui.map_faction_claim = Faction Claim +gui.map_protected = Protected +gui.map_your_pos = Your Position +gui.map_click_hint = Click to claim/unclaim chunks +gui.map_legend_zone_safe = This Zone (Safe) +gui.map_legend_zone_war = This Zone (War) +gui.map_legend_other_safe = Other SafeZone +gui.map_legend_other_war = Other WarZone +gui.map_legend_faction = Faction Claim +gui.map_legend_unclaimed = Unclaimed +gui.map_legend_you_here = You are here +gui.map_action_hint = Left-click: Claim for zone | Right-click: Unclaim from zone +gui.map_done = Done + +# Zone properties labels +gui.zprop_general = General +gui.zprop_zone_name = Zone Name +gui.zprop_zone_type = Zone Type +gui.zprop_change_type = Change Type +gui.zprop_notifications = Notifications +gui.zprop_show_entry = Show Entry Notification +gui.zprop_upper_title = Upper Title +gui.zprop_upper_desc = Upper Title (small text above zone name) +gui.zprop_lower_title = Lower Title +gui.zprop_lower_desc = Lower Title (large zone name text) +gui.zprop_edit_flags = Edit Flags +gui.zprop_back_to_zones = Back to Zones +gui.save = Save +gui.clear = Clear + +# Bulk economy labels +gui.bulk_header = Adjust All Faction Treasuries +gui.bulk_factions_label = Factions: +gui.bulk_total_label = Total Balance: +gui.bulk_amount_hint = Amount (positive to add, negative to remove): +gui.bulk_hint = This will apply to every faction with a treasury +gui.bulk_warning_msg = Warning: This action affects ALL factions and cannot be undone. +gui.bulk_apply_all = Apply to All +gui.bulk_operation = Operation +gui.bulk_add = Add +gui.bulk_remove = Remove +gui.bulk_amount = Amount +gui.bulk_warning = This will affect ALL faction treasuries. +gui.bulk_preview = Preview + +# Economy adjust labels +gui.ecadj_header = Adjust Treasury Balance +gui.ecadj_faction_label = Faction: +gui.ecadj_current_balance = Current Balance: +gui.ecadj_amount_hint = Amount (positive to add, negative to deduct): +gui.ecadj_preview_hint = Enter a number to preview the change +gui.ecadj_adjustment = Adjustment: +gui.ecadj_set_balance = Set Balance +gui.ecadj_confirm = Confirm +/- +gui.ecadj_operation = Operation +gui.ecadj_add = Add +gui.ecadj_remove = Remove +gui.ecadj_set_to = Set To +gui.ecadj_amount = Amount +gui.ecadj_new_balance = New Balance: + +# Version page integration labels +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Gravestones +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Treasury diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 3229e562..66a595c6 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -28,6 +28,7 @@ help.category.economy = Economy help.category.quick_ref = Quick Reference # ========== Main Menu ========== +main_menu.title = HyperFactions main_menu.section_my_faction = My Faction main_menu.section_get_started = Get Started main_menu.section_territory = Territory @@ -36,14 +37,33 @@ main_menu.section_admin = Admin main_menu.claim_hint = Use /f claim to claim territory. # ========== Faction Info Page ========== +faction_info.title = Faction Info faction_info.no_description = No description set. faction_info.status_open = Open faction_info.status_invite_only = Invite Only faction_info.status_raidable = Raidable faction_info.status_protected = Protected faction_info.officers_more = +{0} more +faction_info.power_header = Power +faction_info.claims_header = Claims +faction_info.members_header = Members +faction_info.relations_header = Relations +faction_info.status_header = Status +faction_info.treasury_header = Treasury +faction_info.current_max = current / max +faction_info.claimed_max = claimed / max +faction_info.ally_enemy = ally / enemy +faction_info.faction_balance = faction balance +faction_info.leader_label = Leader: +faction_info.officers_label = Officers: +faction_info.view_members_btn = View Members +faction_info.relations_btn = Relations +faction_info.back_btn = Back # ========== Rename Modal ========== +rename.title = Rename Faction +rename.current_label = Current: +rename.new_name_label = New Name: rename.no_permission = You don't have permission to rename the faction. rename.enter_name = Please enter a faction name. rename.too_short = Faction name must be at least {0} characters. @@ -53,12 +73,19 @@ rename.name_taken = A faction with that name already exists. rename.success = Faction renamed from {0} to {1}! # ========== Description Modal ========== +desc.title = Edit Description +desc.current_label = Current: +desc.new_desc_label = New Description: desc.no_permission = You don't have permission to edit the description. desc.display_none = (None) desc.cleared = Faction description cleared. desc.updated = Faction description updated! # ========== Tag Modal ========== +tag.title = Edit Tag +tag.current_label = Current: +tag.instructions = Tag (1-5 chars, letters and numbers only): +tag.help_text = Tags appear in chat and on the map tag.no_permission = You don't have permission to edit the tag. tag.display_none = (None) tag.cleared = Faction tag cleared. @@ -70,6 +97,34 @@ tag.tag_taken = A faction with that tag already exists. tag.success = Faction tag set to [{0}]! # ========== Dashboard Page ========== +dashboard.title = Faction Dashboard +dashboard.power_label = Power +dashboard.land_label = Claims +dashboard.members_label = Members +dashboard.online_label = Online +dashboard.allies_label = Allies +dashboard.enemies_label = Enemies +dashboard.relations_label = Relations +dashboard.ally_enemy_label = ally / enemy +dashboard.status_label = Status +dashboard.invites_label = Invites +dashboard.sent_requests_label = sent / requests +dashboard.treasury_label = Treasury +dashboard.upkeep_label = Upkeep +dashboard.per_cycle = per cycle +dashboard.your_wallet = Your Wallet +dashboard.personal_balance = personal balance +dashboard.quick_actions = Quick Actions +dashboard.teleport_label = Teleport +dashboard.territory_label = Territory +dashboard.channel_label = Channel +dashboard.membership_label = Membership +dashboard.recent_activity = Recent Activity +dashboard.view_all = View All +dashboard.income_24h = Income (24h) +dashboard.deposits_transfers_in = deposits, transfers in +dashboard.expenses_24h = Expenses (24h) +dashboard.withdrawals_transfers_out = withdrawals, transfers out dashboard.faction_gone = Your faction no longer exists. dashboard.available = {0} available dashboard.at_risk = At Risk! @@ -107,8 +162,17 @@ common.sort_power = Power common.sort_members = Members common.page_format = {0}/{1} common.own_faction = (You) +common.search = Search: +common.sort = Sort: +common.prev = < Prev +common.next = Next > # ========== Members Page ========== +members.title = Members +members.search_label = Search: +members.sort_label = Sort: +members.prev_btn = < Prev +members.next_btn = Next > members.count = {0} members members.sort_role = Role members.sort_last_online = Last Online @@ -124,15 +188,43 @@ members.kicked = Kicked {0} from the faction. members.kick_failed = Failed to kick: {0} # ========== Browser Page ========== +browser.title = Browse Factions +browser.search_label = Search: +browser.sort_label = Sort: +browser.prev_btn = < Prev +browser.next_btn = Next > browser.sort_name = Name browser.invalid_faction = Invalid faction. # ========== Leaderboard Page ========== +leaderboard.title = Faction Leaderboard +leaderboard.rank_by = Rank by: +leaderboard.col_rank = # +leaderboard.col_faction = Faction +leaderboard.col_claims = Claims +leaderboard.col_members = Members +leaderboard.prev_btn = < Prev +leaderboard.next_btn = Next > leaderboard.sort_kd = K/D leaderboard.sort_territory = Territory leaderboard.sort_balance = Balance # ========== Player Info Page ========== +playerinfo.title = Player Info +playerinfo.first_joined_label = First joined: +playerinfo.last_online_label = Last online: +playerinfo.faction_label = Faction: +playerinfo.role_label = Role: +playerinfo.joined_label_static = Joined: +playerinfo.not_in_faction = Not in a faction +playerinfo.power_header = Power +playerinfo.current_max = current / max +playerinfo.combat_header = Combat +playerinfo.kills_deaths = kills / deaths +playerinfo.kdr_header = K/D Ratio +playerinfo.membership_history = Membership History +playerinfo.view_faction_btn = View Faction +playerinfo.back_btn = Back playerinfo.now = Now playerinfo.history_count = {0} records playerinfo.joined_label = Joined: {0} @@ -146,6 +238,12 @@ playerinfo.reason_kicked = KICKED playerinfo.reason_disbanded = DISBANDED # ========== Relations Page ========== +relations.title = Relations +relations.tab_relations = Relations +relations.tab_pending = Pending +relations.set_relation_btn = + Set Relation +relations.prev_btn = < Prev +relations.next_btn = Next > relations.relation_count = {0} relations relations.request_count = {0} requests relations.type_ally = Ally @@ -173,6 +271,59 @@ relations.power_display = {0} power relations.member_count = {0} members # ========== Settings Page ========== +settings.title = Faction Settings +settings.general = General +settings.name_label = Name: +settings.tag_label = Tag: +settings.desc_label = Desc: +settings.edit_btn = Edit +settings.recruitment = Recruitment +settings.status_label = Status: +settings.home_location = Home Location +settings.location_label = Location: +settings.set_home_btn = Set Home +settings.teleport_btn = Teleport +settings.delete_btn = Delete +settings.optional_features = Optional Features +settings.configure_modules = Configure optional modules. +settings.modules_btn = Modules +settings.danger_zone = Danger Zone +settings.irreversible = This action is irreversible. +settings.disband_btn = Disband Faction +settings.lock_hint = Some options may be locked by the server and won't accept changes. +settings.territory_permissions = Territory Permissions +settings.col_out = Out +settings.col_ally = Ally +settings.col_mem = Mem +settings.col_off = Off +settings.cat_building = BUILDING +settings.perm_break = Break +settings.perm_place = Place +settings.cat_interaction = INTERACTION +settings.interaction_hint = (children disabled when All is off) +settings.perm_all = All +settings.perm_door = Door +settings.perm_chest = Chest +settings.perm_bench = Bench +settings.perm_processing = Processing +settings.perm_seat = Seat +settings.perm_transport = Transport +settings.cat_other = OTHER +settings.perm_crate = Crate Use +settings.perm_npc_tame = NPC Tame +settings.perm_pve = PvE Damage +settings.appearance = Appearance +settings.color_label = Color: +settings.mob_spawning = Mob Spawning +settings.mob_spawning_hint = (children disabled when master is off) +settings.mob_spawning_label = Mob Spawning +settings.hostile_mobs = Hostile Mobs +settings.passive_mobs = Passive Mobs +settings.neutral_mobs = Neutral Mobs +settings.faction_settings = Faction Settings +settings.pvp_in_territory = PvP in Territory +settings.officers_can_edit = Officers can edit +settings.leader_only = Leader only settings.officers_only = Only officers and leaders can change faction settings. settings.display_none = (None) settings.home_not_set = Not set @@ -190,6 +341,10 @@ settings.home_no_set = Your faction does not have a home set. settings.home_deleted = Faction home deleted! # ========== Modules Page ========== +modules.title = Faction Modules +modules.description = Optional features to enhance your faction +modules.configure_btn = Configure +modules.back_btn = < Back to Settings modules.treasury_name = Treasury modules.treasury_desc = Faction bank & economy system modules.raids_name = Raids @@ -207,6 +362,47 @@ modules.disabled = Disabled modules.economy_not_available = Economy features are not available on this server # ========== Treasury Page ========== +treasury.title = Faction Treasury +treasury.balance_label = Balance +treasury.income_24h = Income (24h) +treasury.deposits_transfers_in = deposits, transfers in +treasury.expenses_24h = Expenses (24h) +treasury.withdrawals_transfers_out = withdrawals, transfers out +treasury.maintenance = MAINTENANCE +treasury.runway_label = Runway: +treasury.add_funds = Add funds +treasury.deposit_btn = Deposit +treasury.take_funds = Take funds +treasury.withdraw_btn = Withdraw +treasury.send_to_faction = Send to faction +treasury.transfer_btn = Transfer +treasury.treasury_config = Treasury config +treasury.settings_btn = Settings +treasury.recent_transactions = Recent Transactions +treasury.no_transactions = No transactions yet +treasury.col_date = Date +treasury.col_type = Type +treasury.col_by = By +treasury.col_amount = Amount +treasury.col_details = Details +treasury.pay_now_btn = Pay Now +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Treasury Settings +treasury.officer_permissions = OFFICER PERMISSIONS +treasury.allow_withdraw = Allow Officers to Withdraw +treasury.allow_transfer = Allow Officers to Transfer +treasury.limits_section = WITHDRAWAL AND TRANSFER LIMITS +treasury.max_per_withdrawal = Max per withdrawal: +treasury.max_withdrawals_per = Max withdrawals per period: +treasury.max_per_transfer = Max per transfer: +treasury.max_transfers_per = Max transfers per period: +treasury.limit_period = Limit period (hours): +treasury.no_limit_hint = Set to 0 for no limit +treasury.upkeep_settings = UPKEEP SETTINGS +treasury.auto_pay_upkeep = Auto-pay upkeep from treasury +treasury.back_btn = Back treasury.wallet_label = Your wallet: {0} treasury.treasury_label = Treasury balance: {0} treasury.chunks_detail = {0} free + {1} billable chunks @@ -276,6 +472,17 @@ treasury.leader_only_upkeep = Only the leader can change upkeep settings. treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. # ========== Confirmation Pages ========== +confirm.disband_title = Disband Faction +confirm.disband_prompt = Are you sure you want to disband +confirm.disband_warning = This action cannot be undone! +confirm.leave_title = Leave Faction +confirm.leave_prompt = Are you sure you want to leave +confirm.leave_warning = You will lose access to faction territory. +confirm.leader_leave_title = Leave as Leader +confirm.leader_leave_prompt = You are leaving +confirm.transfer_title = Transfer Leadership +confirm.transfer_prompt = Are you sure you want to transfer leadership to +confirm.transfer_warning = You will become an Officer. confirm.disband_not_leader = Only the leader can disband the faction. confirm.disbanded = Faction '{0}' has been disbanded. confirm.disband_failed = Failed to disband faction. @@ -297,11 +504,21 @@ confirm.leadership_transferred = Leadership transferred to {0}. # ========== Logs Viewer Page ========== logs.title = {0} - Activity Logs logs.entry_count = {0} entries +logs.filter_label = Filter: +logs.col_time = Time +logs.col_type = Type +logs.col_message = Message +logs.prev_btn = < Prev +logs.next_btn = Next > logs.all_types = All Types logs.no_logs_type = No logs of this type. logs.no_logs = No activity logs yet. # ========== Chat Page ========== +chat.title = Faction Chat +chat.tab_faction = Faction +chat.tab_ally = Ally +chat.send_btn = Send chat.placeholder = Type a message... chat.no_messages = No messages yet. chat.no_ally_permission = You don't have permission for ally chat. @@ -312,6 +529,11 @@ chat.time_minutes = {0}m chat.time_hours = {0}h # ========== Invites Page ========== +invites.title = Invites +invites.tab_outgoing = Outgoing +invites.tab_requests = Requests +invites.prev_btn = < Prev +invites.next_btn = Next > invites.invite_count = {0} invites invites.request_count = {0} requests invites.invited_by = Invited by: {0} @@ -334,6 +556,16 @@ invites.time_minutes = {0}m invites.time_hours = {0}h # ========== Map Page ========== +map.title = Territory Map +map.action_hint = Left-click: Claim | Right-click: Unclaim +map.legend_your = Your Territory +map.legend_ally = Ally Territory +map.legend_enemy = Enemy Territory +map.legend_other = Other Faction +map.legend_wilderness = Wilderness +map.legend_safe = Safe Zone +map.legend_war = War Zone +map.legend_you = You are here map.position = Your Position: Chunk ({0}, {1}) map.legend_protected = Protected map.claim_stats = Claims: {0}/{1} ({2} Available) @@ -366,6 +598,18 @@ map.overclaim_has_power = This faction has enough power to defend their territor map.overclaim_max = You have reached your maximum claim limit. map.overclaim_failed = Failed to overclaim chunk. # ========== Create Faction Page ========== +create.title = Create Your Faction +create.section_preview = Preview +create.section_basic_info = Basic Info +create.section_details = Details +create.name_prefix = Name: +create.faction_name_label = Faction Name * +create.tag_label = TAG (2-4 chars, auto if empty) +create.desc_label = Description (Optional) +create.recruitment_label = Recruitment +create.section_faction_color = Faction Color +create.section_combat = Combat +create.create_btn = Create Faction create.preview_name = Your Faction Name create.leader_prefix = Leader: {0} create.enter_name = Please enter a faction name. @@ -381,6 +625,19 @@ create.invalid_name = Invalid faction name. create.create_failed = Could not create faction. # ========== New Player Pages ========== +newplayer.browse_title = Browse Factions +newplayer.invites_title = Invites & Requests +newplayer.map_title = Territory Map +newplayer.view_only_badge = View Only Mode +newplayer.legend_label = Legend: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Faction +newplayer.legend_wilderness = Wilderness +newplayer.search_label = Search: +newplayer.sort_label = Sort: +newplayer.prev_btn = < Prev +newplayer.next_btn = Next > newplayer.pending_count = {0} pending newplayer.received_header = RECEIVED INVITES ({0}) newplayer.requests_header = YOUR REQUESTS ({0}) @@ -439,3 +696,29 @@ player_settings.power_notifications_desc = Show messages when your power changes player_settings.language_changed = Language changed to {0} player_settings.pref_enabled = {0} enabled player_settings.pref_disabled = {0} disabled + +# ========== Help Pages ========== +help.center_title = Help Center +help.getting_started_title = Getting Started +help.what_are_factions_title = What Are Factions? +help.what_are_factions_1 = Factions are player-created groups that work together +help.what_are_factions_2 = to claim territory, build bases, and compete. +help.what_are_factions_bullet_1 = - Protected territory for building +help.what_are_factions_bullet_2 = - Teammates to play with +help.what_are_factions_bullet_3 = - Access to faction chat and features +help.joining_title = Joining a Faction +help.joining_desc = There are several ways to join a faction: +help.joining_bullet_1 = - Browse - Find open factions and click JOIN +help.joining_bullet_2 = - Invites - Accept invitations from officers +help.joining_bullet_3 = - Request - Ask to join invite-only factions +help.creating_title = Creating a Faction +help.creating_desc = Go to the Create tab to start your own faction. +help.creating_bullet_1 = - Invite and manage members +help.creating_bullet_2 = - Claim and protect territory +help.commands_title = Quick Commands +help.cmd_f = /f - Open faction menu +help.cmd_f_list = /f list - List all factions +help.cmd_f_join = /f join - Join an open faction +help.cmd_f_create = /f create - Create a new faction +help.cmd_f_help = /f help - Full command list +help.tip = Tip: Browse factions to find a group that matches you! diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang index abccd262..8f7d943b 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang @@ -17,6 +17,11 @@ common.cancel = Cancelar common.confirm = Confirmar common.save = Guardar common.close = Cerrar +common.clear = Limpiar +common.back = Volver +common.leave = Salir +common.transfer = Transferir +common.disband = Disolver common.yes = Si common.no = No common.loading = Cargando... diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 80931a67..b62770d9 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -191,6 +191,16 @@ zone_int.no_plugin = (sin plugin) zone_int.default = (por defecto) zone_int.custom = (personalizado) +# Etiquetas de interfaz de flags de integracion +gui.zint_cat_gravestones = Tumbas +gui.zint_gravestones_desc = Cuando esta EN, otros jugadores pueden saquear tumbas. Los duenos siempre pueden. +gui.zint_cat_world_map = Mapa del Mundo +gui.zint_world_map_desc = Sobrescribir ocultamiento en mapa para jugadores en esta zona. Cuando esta habilitado, selecciona quien puede ver jugadores en esta zona. +gui.zint_visibility_label = Nivel de Visibilidad: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Restablecer Valores +gui.zint_back_to_flags = Volver a Flags + # ========== Registro de Actividad ========== log.all_types = Todos los Tipos log.no_logs = No hay registros de actividad que coincidan con los filtros. @@ -220,6 +230,21 @@ zflags.reset_all = Todos los flags reiniciados a valores por defecto. zflags.reset_failed = No se pudieron reiniciar los flags: {0} zflags.back_to_settings = Volver a Ajustes +# Etiquetas de interfaz de ajustes de zona +gui.zset_cat_combat = Combate +gui.zset_cat_damage = Dano +gui.zset_cat_death = Muerte +gui.zset_cat_building = Construccion +gui.zset_cat_interaction = Interaccion +gui.zset_cat_transport = Transporte +gui.zset_cat_items = Objetos +gui.zset_cat_spawning = Aparicion de Mobs +gui.zset_cat_mob_clear = Limpieza de Mobs +gui.zset_children_hint = (hijos solo aplican cuando el padre esta EN) +gui.zset_reset_defaults = Restablecer Valores +gui.zset_integration_flags = Flags de Integracion +gui.zset_back_to_zones = Volver a Zonas + # ========== Propiedades de Zona ========== zprop.current_custom = Actual: "{0}" (personalizado) zprop.current_default = Actual: "{0}" (por defecto) @@ -261,3 +286,297 @@ map.unclaim_failed = No se pudo desreclamar el chunk: {0} map.chunk_belongs = Este chunk pertenece a {0}. map.chunk_faction = Este chunk esta reclamado por una faccion. map.chunk_protected = Este chunk esta en una region protegida. + +# ========== Claves de Etiquetas GUI (localizacion de texto en .ui) ========== + +# Titulos de Pagina +gui.title_dashboard = Panel de Admin +gui.title_main = Admin de Facciones +gui.title_actions = Admin: Acciones del Servidor +gui.title_factions = Gestion de Facciones +gui.title_players = Gestion de Jugadores +gui.title_economy = Admin: Economia del Servidor +gui.title_zones = Gestion de Zonas +gui.title_backups = Respaldos +gui.title_config = Configuracion +gui.title_help = Ayuda de Admin +gui.title_updates = Actualizaciones +gui.title_version = Version e Integraciones +gui.title_activity_log = Admin: Registro de Actividad +gui.title_player_info = Admin: Info del Jugador +gui.title_faction_info = Admin: Info de Faccion +gui.title_faction_settings = Admin: Ajustes de Faccion +gui.title_faction_members = Admin: Miembros +gui.title_faction_relations = Admin: Relaciones +gui.title_zone_map = Editor de Mapa de Zona +gui.title_zone_settings = Admin: Ajustes de Zona +gui.title_zone_properties = Admin: Propiedades de Zona +gui.title_bulk_economy = Ajuste Masivo de Tesoreria +gui.title_economy_adjust = Admin: Economia + +# Etiquetas del Panel +gui.dash_server_stats = Estadisticas del Servidor +gui.dash_factions = Facciones +gui.dash_total_members = Total Miembros +gui.dash_total_claims = Total Reclamos +gui.dash_zones = Zonas +gui.dash_safe_war = segura / guerra +gui.dash_total_power = Poder Total +gui.dash_avg_power = Poder Prom/Faccion +gui.dash_total_economy = Economia Total +gui.dash_wealthiest = Mas Rica +gui.dash_avg_balance = Saldo Promedio +gui.dash_protection_bypass = Bypass de Proteccion: + +# Botones y etiquetas comunes +gui.search = Buscar: +gui.sort = Ordenar: +gui.prev = < Anterior +gui.next = Siguiente > +gui.back = Volver +gui.done = Listo +gui.cancel = Cancelar +gui.apply = Aplicar +gui.set = Establecer +gui.reset = Reiniciar +gui.coming_soon = Proximamente +gui.zones_btn = Zonas +gui.reload_btn = Recargar +gui.all = Todas +gui.safe = Segura +gui.war = Guerra +gui.create_zone = + Crear + +# Etiquetas de pagina de acciones +gui.act_combat_stats = Estadisticas de Combate +gui.act_combat_desc = Reiniciar muertes y asesinatos para TODOS los jugadores del servidor. Esta accion no se puede deshacer. +gui.act_reset_kd = Reiniciar Todos K/D +gui.act_economy = Economia +gui.act_economy_desc = Agregar o quitar dinero de TODAS las tesorerias de facciones a la vez. +gui.act_bulk_adjust = Agregar/Quitar Masivo +gui.act_upkeep_collection = Cobro de Mantenimiento +gui.act_upkeep_desc = Ejecutar manualmente el cobro de mantenimiento para todas las facciones ahora, sin importar el temporizador programado. +gui.act_trigger_upkeep = Ejecutar Mantenimiento + +# Etiquetas de paginas placeholder +gui.backup_heading = Gestion de Respaldos +gui.backup_desc1 = Crear, restaurar y gestionar respaldos de datos de facciones. +gui.backup_desc2 = Los respaldos automaticos se guardan en la carpeta data/backups. +gui.config_heading = Editor de Configuracion +gui.config_desc1 = Configurar los ajustes de HyperFactions directamente desde la GUI. +gui.config_desc2 = Por ahora, usa /f reload para recargar los cambios de configuracion. +gui.help_heading = Documentacion de Admin +gui.help_desc1 = Ver documentacion de admin y referencia de comandos. +gui.help_desc2 = Para ayuda, visita la wiki de HyperFactions. +gui.updates_heading = Centro de Actualizaciones +gui.updates_desc1 = Buscar nuevas versiones y ver changelogs. +gui.updates_desc2 = Visita la pagina de HyperFactions para las ultimas actualizaciones. + +# Etiquetas de pagina de version +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Servidor Hytale +gui.ver_java = Java +gui.ver_permissions = PERMISOS +gui.ver_placeholders = PLACEHOLDERS +gui.ver_economy_section = ECONOMIA +gui.ver_protection = PROTECCION +gui.ver_disabled = Desactivado + +# Encabezados de columna (compartidos entre paginas) +gui.col_faction = Faccion +gui.col_balance = Saldo +gui.col_members = Miembros +gui.col_actions = Acciones +gui.col_time = Hora +gui.col_type = Tipo +gui.col_message = Mensaje + +# Etiquetas de pagina de economia +gui.econ_total_balance = Saldo Total +gui.econ_factions = Facciones +gui.econ_avg_balance = Saldo Promedio +gui.econ_in_grace = En Gracia +gui.econ_collected = Cobrado (24h) +gui.econ_next_collection = Proximo Cobro +gui.econ_no_data = No hay facciones con datos economicos. + +# Etiquetas de registro de actividad +gui.log_type = Tipo: +gui.log_time = Hora: +gui.log_player = Jugador: +gui.log_no_logs = No hay registros de actividad que coincidan con los filtros. + +# Etiquetas de info de jugador +gui.plr_first_joined = Primera conexion: +gui.plr_last_online = Ultima conexion: +gui.plr_uuid = UUID: +gui.plr_faction = Faccion: +gui.plr_role = Rol: +gui.plr_view_faction = Ver Faccion +gui.plr_power = Poder +gui.plr_max_power = Poder Maximo +gui.plr_set_power = Establecer +gui.plr_reset_power = Reiniciar +gui.plr_set_max = Establecer +gui.plr_reset_max = Reiniciar +gui.plr_no_power_loss = Sin Perdida de Poder +gui.plr_no_claim_decay = Sin Decaimiento de Reclamos +gui.plr_kills = Asesinatos +gui.plr_deaths = Muertes +gui.plr_kdr = Ratio K/D +gui.plr_reset_kd = Reiniciar K/D +gui.plr_kick = Expulsar +gui.plr_membership_history = Historial de Membresia +gui.plr_no_faction_label = No esta en una faccion +gui.plr_power_management = Gestion de Poder +gui.plr_combat_stats = Estadisticas de Combate +gui.plr_bypass_flags = Flags de Bypass +gui.plr_admin_controls = Controles de Admin +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Max: +gui.plr_view = Ver +gui.plr_kick_from_faction = Expulsar de Faccion +gui.plr_set_max_btn = Establecer Max +gui.plr_combat = Combate + +# Etiquetas de info de faccion +gui.fac_description = Descripcion +gui.fac_power = Poder +gui.fac_claims = Reclamos +gui.fac_members = Miembros +gui.fac_recruitment = Reclutamiento +gui.fac_founded = Fundada +gui.fac_allies = Aliados +gui.fac_enemies = Enemigos +gui.fac_raidable = Estado de Vulnerabilidad +gui.fac_treasury = Tesoreria +gui.fac_leader = Lider +gui.fac_officers = Oficiales +gui.fac_view_members = Ver Miembros +gui.fac_view_relations = Ver Relaciones +gui.fac_view_settings = Ajustes +gui.fac_disband = Disolver Faccion +gui.fac_power_management = Gestion de Poder +gui.fac_reset_all_power = Reiniciar Todo el Poder +gui.fac_econ_adjust = Ajustar Saldo +gui.fac_econ_view_log = Ver Registro de Transacciones +gui.fac_current_max = actual / max +gui.fac_claimed_max = reclamado / max +gui.fac_relations = Relaciones +gui.fac_ally_enemy = aliado / enemigo +gui.fac_status = Estado +gui.fac_info = Info +gui.fac_treasury_balance = saldo de tesoreria +gui.fac_leadership = Liderazgo +gui.fac_leader_label = Lider: +gui.fac_officers_label = Oficiales: +gui.fac_econ_mgmt = Gestion de Economia +gui.fac_danger_zone = Zona de Peligro +gui.fac_view_treasury = Ver Tesoreria + +# Etiquetas de ajustes de faccion +gui.set_editing = Editando: +gui.set_general = Ajustes Generales +gui.set_name = Nombre +gui.set_tag = Etiqueta +gui.set_description = Descripcion +gui.set_recruitment = Reclutamiento +gui.set_home = Ubicacion del Hogar +gui.set_clear_home = Limpiar Hogar +gui.set_disband_faction = Disolver Faccion +gui.set_faction_color = Color de Faccion +gui.set_admin_override = [Override de Admin] +gui.set_territory_perms = Permisos de Territorio +gui.set_mob_spawning = Generacion de Mobs +gui.set_faction_settings = Ajustes de Faccion + +# Etiquetas de relaciones de faccion +gui.rel_subtitle = Gestionar relaciones de faccion (sin aprobacion) +gui.rel_set_new = Establecer Nueva Relacion + +# Etiquetas de pagina de zonas +gui.zone_sort_name = Nombre +gui.zone_sort_type = Tipo +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = Mundo +gui.zone_count_format = {0} {1}zonas ({2} chunks) + +# Etiquetas de mapa de zona +gui.map_zone_chunk = Chunk de Zona +gui.map_empty = Vacio +gui.map_other_zone = Otra Zona +gui.map_faction_claim = Reclamo de Faccion +gui.map_protected = Protegido +gui.map_your_pos = Tu Posicion +gui.map_click_hint = Clic para reclamar/desreclamar chunks +gui.map_legend_zone_safe = Esta Zona (Segura) +gui.map_legend_zone_war = Esta Zona (Guerra) +gui.map_legend_other_safe = Otra Zona Segura +gui.map_legend_other_war = Otra Zona de Guerra +gui.map_legend_faction = Reclamo de Faccion +gui.map_legend_unclaimed = Sin Reclamar +gui.map_legend_you_here = Estas aqui +gui.map_action_hint = Clic izq: Reclamar para zona | Clic der: Desreclamar de zona +gui.map_done = Listo + +# Etiquetas de propiedades de zona +gui.zprop_general = General +gui.zprop_zone_name = Nombre de Zona +gui.zprop_zone_type = Tipo de Zona +gui.zprop_change_type = Cambiar Tipo +gui.zprop_notifications = Notificaciones +gui.zprop_show_entry = Mostrar Notificacion de Entrada +gui.zprop_upper_title = Titulo Superior +gui.zprop_upper_desc = Titulo Superior (texto pequeno sobre nombre de zona) +gui.zprop_lower_title = Titulo Inferior +gui.zprop_lower_desc = Titulo Inferior (texto grande del nombre de zona) +gui.zprop_edit_flags = Editar Flags +gui.zprop_back_to_zones = Volver a Zonas +gui.save = Guardar +gui.clear = Limpiar + +# Etiquetas de economia masiva +gui.bulk_header = Ajustar Todas las Tesorerias +gui.bulk_factions_label = Facciones: +gui.bulk_total_label = Saldo Total: +gui.bulk_amount_hint = Cantidad (positivo para agregar, negativo para quitar): +gui.bulk_hint = Esto se aplicara a cada faccion con tesoreria +gui.bulk_warning_msg = Advertencia: Esta accion afecta TODAS las facciones y no se puede deshacer. +gui.bulk_apply_all = Aplicar a Todas +gui.bulk_operation = Operacion +gui.bulk_add = Agregar +gui.bulk_remove = Quitar +gui.bulk_amount = Cantidad +gui.bulk_warning = Esto afectara TODAS las tesorerias de facciones. +gui.bulk_preview = Vista Previa + +# Etiquetas de ajuste de economia +gui.ecadj_header = Ajustar Saldo de Tesoreria +gui.ecadj_faction_label = Faccion: +gui.ecadj_current_balance = Saldo Actual: +gui.ecadj_amount_hint = Cantidad (positivo para agregar, negativo para deducir): +gui.ecadj_preview_hint = Ingresa un numero para previsualizar el cambio +gui.ecadj_adjustment = Ajuste: +gui.ecadj_set_balance = Establecer Saldo +gui.ecadj_confirm = Confirmar +/- +gui.ecadj_operation = Operacion +gui.ecadj_add = Agregar +gui.ecadj_remove = Quitar +gui.ecadj_set_to = Establecer En +gui.ecadj_amount = Cantidad +gui.ecadj_new_balance = Nuevo Saldo: + +# Etiquetas de integraciones en pagina de version +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Nativo +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Gravestones +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Tesoreria diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index 2fa3285c..86283a10 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -28,6 +28,7 @@ help.category.economy = Economia help.category.quick_ref = Referencia Rapida # ========== Menu Principal ========== +main_menu.title = HyperFactions main_menu.section_my_faction = Mi Faccion main_menu.section_get_started = Comenzar main_menu.section_territory = Territorio @@ -36,14 +37,33 @@ main_menu.section_admin = Admin main_menu.claim_hint = Usa /f claim para reclamar territorio. # ========== Pagina de Info de Faccion ========== +faction_info.title = Info de Faccion faction_info.no_description = Sin descripcion. faction_info.status_open = Abierta faction_info.status_invite_only = Solo Invitacion faction_info.status_raidable = Vulnerable faction_info.status_protected = Protegida faction_info.officers_more = +{0} mas +faction_info.power_header = Poder +faction_info.claims_header = Reclamos +faction_info.members_header = Miembros +faction_info.relations_header = Relaciones +faction_info.status_header = Estado +faction_info.treasury_header = Tesoreria +faction_info.current_max = actual / max +faction_info.claimed_max = reclamados / max +faction_info.ally_enemy = aliado / enemigo +faction_info.faction_balance = saldo de faccion +faction_info.leader_label = Lider: +faction_info.officers_label = Oficiales: +faction_info.view_members_btn = Ver Miembros +faction_info.relations_btn = Relaciones +faction_info.back_btn = Volver # ========== Modal de Renombrar ========== +rename.title = Renombrar Faccion +rename.current_label = Actual: +rename.new_name_label = Nuevo Nombre: rename.no_permission = No tienes permiso para renombrar la faccion. rename.enter_name = Ingresa un nombre para la faccion. rename.too_short = El nombre de faccion debe tener al menos {0} caracteres. @@ -53,12 +73,19 @@ rename.name_taken = Ya existe una faccion con ese nombre. rename.success = Faccion renombrada de {0} a {1}! # ========== Modal de Descripcion ========== +desc.title = Editar Descripcion +desc.current_label = Actual: +desc.new_desc_label = Nueva Descripcion: desc.no_permission = No tienes permiso para editar la descripcion. desc.display_none = (Ninguna) desc.cleared = Descripcion de la faccion borrada. desc.updated = Descripcion de la faccion actualizada! # ========== Modal de Etiqueta ========== +tag.title = Editar Etiqueta +tag.current_label = Actual: +tag.instructions = Etiqueta (1-5 caracteres, solo letras y numeros): +tag.help_text = Las etiquetas aparecen en el chat y en el mapa tag.no_permission = No tienes permiso para editar la etiqueta. tag.display_none = (Ninguna) tag.cleared = Etiqueta de la faccion borrada. @@ -70,6 +97,34 @@ tag.tag_taken = Ya existe una faccion con esa etiqueta. tag.success = Etiqueta de faccion establecida a [{0}]! # ========== Pagina del Panel ========== +dashboard.title = Panel de Faccion +dashboard.power_label = Poder +dashboard.land_label = Reclamos +dashboard.members_label = Miembros +dashboard.online_label = Conectados +dashboard.allies_label = Aliados +dashboard.enemies_label = Enemigos +dashboard.relations_label = Relaciones +dashboard.ally_enemy_label = aliado / enemigo +dashboard.status_label = Estado +dashboard.invites_label = Invitaciones +dashboard.sent_requests_label = enviadas / solicitudes +dashboard.treasury_label = Tesoreria +dashboard.upkeep_label = Mantenimiento +dashboard.per_cycle = por ciclo +dashboard.your_wallet = Tu Billetera +dashboard.personal_balance = saldo personal +dashboard.quick_actions = Acciones Rapidas +dashboard.teleport_label = Teletransporte +dashboard.territory_label = Territorio +dashboard.channel_label = Canal +dashboard.membership_label = Membresia +dashboard.recent_activity = Actividad Reciente +dashboard.view_all = Ver Todo +dashboard.income_24h = Ingresos (24h) +dashboard.deposits_transfers_in = depositos, transferencias entrantes +dashboard.expenses_24h = Gastos (24h) +dashboard.withdrawals_transfers_out = retiros, transferencias salientes dashboard.faction_gone = Tu faccion ya no existe. dashboard.available = {0} disponibles dashboard.at_risk = En riesgo! @@ -107,8 +162,17 @@ common.sort_power = Poder common.sort_members = Miembros common.page_format = {0}/{1} common.own_faction = (Tu) +common.search = Buscar: +common.sort = Ordenar: +common.prev = < Anterior +common.next = Siguiente > # ========== Pagina de Miembros ========== +members.title = Miembros +members.search_label = Buscar: +members.sort_label = Ordenar: +members.prev_btn = < Anterior +members.next_btn = Siguiente > members.count = {0} miembros members.sort_role = Rol members.sort_last_online = Ultima Conexion @@ -124,15 +188,43 @@ members.kicked = {0} expulsado de la faccion. members.kick_failed = No se pudo expulsar: {0} # ========== Pagina del Explorador ========== +browser.title = Explorar Facciones +browser.search_label = Buscar: +browser.sort_label = Ordenar: +browser.prev_btn = < Anterior +browser.next_btn = Siguiente > browser.sort_name = Nombre browser.invalid_faction = Faccion invalida. # ========== Pagina de Clasificacion ========== +leaderboard.title = Clasificacion de Facciones +leaderboard.rank_by = Clasificar por: +leaderboard.col_rank = # +leaderboard.col_faction = Faccion +leaderboard.col_claims = Reclamos +leaderboard.col_members = Miembros +leaderboard.prev_btn = < Anterior +leaderboard.next_btn = Siguiente > leaderboard.sort_kd = K/D leaderboard.sort_territory = Territorio leaderboard.sort_balance = Saldo # ========== Pagina de Info de Jugador ========== +playerinfo.title = Info de Jugador +playerinfo.first_joined_label = Primera conexion: +playerinfo.last_online_label = Ultima conexion: +playerinfo.faction_label = Faccion: +playerinfo.role_label = Rol: +playerinfo.joined_label_static = Ingreso: +playerinfo.not_in_faction = No esta en una faccion +playerinfo.power_header = Poder +playerinfo.current_max = actual / max +playerinfo.combat_header = Combate +playerinfo.kills_deaths = muertes / asesinatos +playerinfo.kdr_header = Ratio K/D +playerinfo.membership_history = Historial de Membresia +playerinfo.view_faction_btn = Ver Faccion +playerinfo.back_btn = Volver playerinfo.now = Ahora playerinfo.history_count = {0} registros playerinfo.joined_label = Ingreso: {0} @@ -146,6 +238,12 @@ playerinfo.reason_kicked = EXPULSADO playerinfo.reason_disbanded = DISUELTA # ========== Pagina de Relaciones ========== +relations.title = Relaciones +relations.tab_relations = Relaciones +relations.tab_pending = Pendientes +relations.set_relation_btn = + Establecer Relacion +relations.prev_btn = < Anterior +relations.next_btn = Siguiente > relations.relation_count = {0} relaciones relations.request_count = {0} solicitudes relations.type_ally = Aliado @@ -173,6 +271,59 @@ relations.power_display = {0} poder relations.member_count = {0} miembros # ========== Pagina de Ajustes ========== +settings.title = Ajustes de Faccion +settings.general = General +settings.name_label = Nombre: +settings.tag_label = Etiqueta: +settings.desc_label = Desc: +settings.edit_btn = Editar +settings.recruitment = Reclutamiento +settings.status_label = Estado: +settings.home_location = Ubicacion del Hogar +settings.location_label = Ubicacion: +settings.set_home_btn = Fijar Hogar +settings.teleport_btn = Teletransportar +settings.delete_btn = Eliminar +settings.optional_features = Funciones Opcionales +settings.configure_modules = Configurar modulos opcionales. +settings.modules_btn = Modulos +settings.danger_zone = Zona de Peligro +settings.irreversible = Esta accion es irreversible. +settings.disband_btn = Disolver Faccion +settings.lock_hint = Algunas opciones pueden estar bloqueadas por el servidor y no aceptaran cambios. +settings.territory_permissions = Permisos de Territorio +settings.col_out = Ext +settings.col_ally = Ali +settings.col_mem = Mie +settings.col_off = Ofi +settings.cat_building = CONSTRUCCION +settings.perm_break = Romper +settings.perm_place = Colocar +settings.cat_interaction = INTERACCION +settings.interaction_hint = (hijos desactivados cuando Todo esta apagado) +settings.perm_all = Todo +settings.perm_door = Puerta +settings.perm_chest = Cofre +settings.perm_bench = Banco +settings.perm_processing = Procesamiento +settings.perm_seat = Asiento +settings.perm_transport = Transporte +settings.cat_other = OTROS +settings.perm_crate = Uso de Caja +settings.perm_npc_tame = Domar NPC +settings.perm_pve = Dano PvE +settings.appearance = Apariencia +settings.color_label = Color: +settings.mob_spawning = Generacion de Mobs +settings.mob_spawning_hint = (hijos desactivados cuando el maestro esta apagado) +settings.mob_spawning_label = Generacion de Mobs +settings.hostile_mobs = Mobs Hostiles +settings.passive_mobs = Mobs Pasivos +settings.neutral_mobs = Mobs Neutrales +settings.faction_settings = Ajustes de Faccion +settings.pvp_in_territory = PvP en Territorio +settings.officers_can_edit = Oficiales pueden editar +settings.leader_only = Solo lider settings.officers_only = Solo oficiales y lideres pueden cambiar los ajustes de la faccion. settings.display_none = (Ninguna) settings.home_not_set = Sin establecer @@ -190,6 +341,10 @@ settings.home_no_set = Tu faccion no tiene un hogar establecido. settings.home_deleted = Hogar de la faccion eliminado! # ========== Pagina de Modulos ========== +modules.title = Modulos de Faccion +modules.description = Funciones opcionales para mejorar tu faccion +modules.configure_btn = Configurar +modules.back_btn = < Volver a Ajustes modules.treasury_name = Tesoreria modules.treasury_desc = Banco y sistema economico de la faccion modules.raids_name = Raids @@ -207,6 +362,47 @@ modules.disabled = Desactivado modules.economy_not_available = Las funciones de economia no estan disponibles en este servidor # ========== Pagina de Tesoreria ========== +treasury.title = Tesoreria de Faccion +treasury.balance_label = Saldo +treasury.income_24h = Ingresos (24h) +treasury.deposits_transfers_in = depositos, transferencias entrantes +treasury.expenses_24h = Gastos (24h) +treasury.withdrawals_transfers_out = retiros, transferencias salientes +treasury.maintenance = MANTENIMIENTO +treasury.runway_label = Duracion: +treasury.add_funds = Agregar fondos +treasury.deposit_btn = Depositar +treasury.take_funds = Retirar fondos +treasury.withdraw_btn = Retirar +treasury.send_to_faction = Enviar a faccion +treasury.transfer_btn = Transferir +treasury.treasury_config = Config. tesoreria +treasury.settings_btn = Ajustes +treasury.recent_transactions = Transacciones Recientes +treasury.no_transactions = Sin transacciones aun +treasury.col_date = Fecha +treasury.col_type = Tipo +treasury.col_by = Por +treasury.col_amount = Monto +treasury.col_details = Detalles +treasury.pay_now_btn = Pagar Ahora +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Ajustes de Tesoreria +treasury.officer_permissions = PERMISOS DE OFICIALES +treasury.allow_withdraw = Permitir a Oficiales Retirar +treasury.allow_transfer = Permitir a Oficiales Transferir +treasury.limits_section = LIMITES DE RETIRO Y TRANSFERENCIA +treasury.max_per_withdrawal = Max por retiro: +treasury.max_withdrawals_per = Max retiros por periodo: +treasury.max_per_transfer = Max por transferencia: +treasury.max_transfers_per = Max transferencias por periodo: +treasury.limit_period = Periodo de limite (horas): +treasury.no_limit_hint = Usar 0 para sin limite +treasury.upkeep_settings = AJUSTES DE MANTENIMIENTO +treasury.auto_pay_upkeep = Pago automatico de mantenimiento desde tesoreria +treasury.back_btn = Volver treasury.wallet_label = Tu billetera: {0} treasury.treasury_label = Saldo de tesoreria: {0} treasury.chunks_detail = {0} gratis + {1} chunks facturables @@ -276,6 +472,17 @@ treasury.leader_only_upkeep = Solo el lider puede cambiar los ajustes de manteni treasury.invalid_limit = Numero invalido en los campos de limite. Usa 0 para ilimitado. # ========== Paginas de Confirmacion ========== +confirm.disband_title = Disolver Faccion +confirm.disband_prompt = Estas seguro de que quieres disolver +confirm.disband_warning = Esta accion no se puede deshacer! +confirm.leave_title = Salir de la Faccion +confirm.leave_prompt = Estas seguro de que quieres salir de +confirm.leave_warning = Perderas acceso al territorio de la faccion. +confirm.leader_leave_title = Salir como Lider +confirm.leader_leave_prompt = Estas saliendo de +confirm.transfer_title = Transferir Liderazgo +confirm.transfer_prompt = Estas seguro de que quieres transferir el liderazgo a +confirm.transfer_warning = Te convertiras en Oficial. confirm.disband_not_leader = Solo el lider puede disolver la faccion. confirm.disbanded = La faccion '{0}' ha sido disuelta. confirm.disband_failed = No se pudo disolver la faccion. @@ -302,6 +509,10 @@ logs.no_logs_type = No hay registros de este tipo. logs.no_logs = No hay registros de actividad aun. # ========== Pagina de Chat ========== +chat.title = Chat de Faccion +chat.tab_faction = Faccion +chat.tab_ally = Aliado +chat.send_btn = Enviar chat.placeholder = Escribe un mensaje... chat.no_messages = No hay mensajes aun. chat.no_ally_permission = No tienes permiso para el chat de aliados. @@ -312,6 +523,11 @@ chat.time_minutes = {0}m chat.time_hours = {0}h # ========== Pagina de Invitaciones ========== +invites.title = Invitaciones +invites.tab_outgoing = Salientes +invites.tab_requests = Solicitudes +invites.prev_btn = < Anterior +invites.next_btn = Siguiente > invites.invite_count = {0} invitaciones invites.request_count = {0} solicitudes invites.invited_by = Invitado por: {0} @@ -334,6 +550,16 @@ invites.time_minutes = {0}m invites.time_hours = {0}h # ========== Pagina del Mapa ========== +map.title = Mapa de Territorio +map.action_hint = Clic izquierdo: Reclamar | Clic derecho: Desreclamar +map.legend_your = Tu Territorio +map.legend_ally = Territorio Aliado +map.legend_enemy = Territorio Enemigo +map.legend_other = Otra Faccion +map.legend_wilderness = Naturaleza +map.legend_safe = Zona Segura +map.legend_war = Zona de Guerra +map.legend_you = Estas aqui map.position = Tu Posicion: Chunk ({0}, {1}) map.legend_protected = Protegido map.claim_stats = Reclamos: {0}/{1} ({2} Disponibles) @@ -366,6 +592,18 @@ map.overclaim_has_power = Esta faccion tiene suficiente poder para defender su t map.overclaim_max = Has alcanzado tu limite maximo de reclamos. map.overclaim_failed = No se pudo sobrereclamar el chunk. # ========== Pagina de Crear Faccion ========== +create.title = Crea Tu Faccion +create.section_preview = Vista Previa +create.section_basic_info = Info Basica +create.section_details = Detalles +create.name_prefix = Nombre: +create.faction_name_label = Nombre de Faccion * +create.tag_label = ETIQUETA (2-4 caracteres, automatica si vacia) +create.desc_label = Descripcion (Opcional) +create.recruitment_label = Reclutamiento +create.section_faction_color = Color de Faccion +create.section_combat = Combate +create.create_btn = Crear Faccion create.preview_name = Nombre de Tu Faccion create.leader_prefix = Lider: {0} create.enter_name = Ingresa un nombre para la faccion. @@ -381,6 +619,19 @@ create.invalid_name = Nombre de faccion invalido. create.create_failed = No se pudo crear la faccion. # ========== Paginas de Nuevo Jugador ========== +newplayer.browse_title = Explorar Facciones +newplayer.invites_title = Invitaciones y Solicitudes +newplayer.map_title = Mapa de Territorio +newplayer.view_only_badge = Solo Vista +newplayer.legend_label = Leyenda: +newplayer.legend_safezone = Zona Segura +newplayer.legend_warzone = Zona de Guerra +newplayer.legend_faction = Faccion +newplayer.legend_wilderness = Naturaleza +newplayer.search_label = Buscar: +newplayer.sort_label = Ordenar: +newplayer.prev_btn = < Anterior +newplayer.next_btn = Siguiente > newplayer.pending_count = {0} pendientes newplayer.received_header = INVITACIONES RECIBIDAS ({0}) newplayer.requests_header = TUS SOLICITUDES ({0}) @@ -439,3 +690,29 @@ player_settings.power_notifications_desc = Mostrar mensajes cuando tu poder camb player_settings.language_changed = Idioma cambiado a {0} player_settings.pref_enabled = {0} activado player_settings.pref_disabled = {0} desactivado + +# ========== Paginas de Ayuda ========== +help.center_title = Centro de Ayuda +help.getting_started_title = Primeros Pasos +help.what_are_factions_title = Que son las Facciones? +help.what_are_factions_1 = Las facciones son grupos creados por jugadores que trabajan juntos +help.what_are_factions_2 = para reclamar territorio, construir bases y competir. +help.what_are_factions_bullet_1 = - Territorio protegido para construir +help.what_are_factions_bullet_2 = - Companeros de equipo para jugar +help.what_are_factions_bullet_3 = - Acceso al chat y funciones de faccion +help.joining_title = Unirse a una Faccion +help.joining_desc = Hay varias formas de unirse a una faccion: +help.joining_bullet_1 = - Explorar - Encuentra facciones abiertas y haz clic en UNIRSE +help.joining_bullet_2 = - Invitaciones - Acepta invitaciones de oficiales +help.joining_bullet_3 = - Solicitar - Pide unirte a facciones de solo invitacion +help.creating_title = Crear una Faccion +help.creating_desc = Ve a la pestana Crear para iniciar tu propia faccion. +help.creating_bullet_1 = - Invita y administra miembros +help.creating_bullet_2 = - Reclama y protege territorio +help.commands_title = Comandos Rapidos +help.cmd_f = /f - Abrir menu de faccion +help.cmd_f_list = /f list - Listar todas las facciones +help.cmd_f_join = /f join - Unirse a una faccion abierta +help.cmd_f_create = /f create - Crear una nueva faccion +help.cmd_f_help = /f help - Lista completa de comandos +help.tip = Consejo: Explora facciones para encontrar un grupo que se adapte a ti! From 9bc2c0f9b0d4fc3f9fea3af744844d8c188ca62a Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 20:22:01 -0700 Subject: [PATCH 23/76] feat: localize admin zone wizard, unclaim confirm, and type modal pages Add i18n support for remaining admin pages: zone creation wizard, zone type change modal, and unclaim-all confirmation page. Fix duplicate GUI_CANCEL constant in MessageKeys. --- .../page/AdminUnclaimAllConfirmPage.java | 8 +++ .../com/hyperfactions/util/MessageKeys.java | 53 ++++++++++++++++++ .../HyperFactions/admin/create_zone_wizard.ui | 32 +++++------ .../admin/zone_change_type_modal.ui | 10 ++-- .../Languages/en-US/hyperfactions_admin.lang | 56 +++++++++++++++++++ .../Languages/es-ES/hyperfactions_admin.lang | 56 +++++++++++++++++++ 6 files changed, 194 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java index a9a70e39..6c5d1fa6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java @@ -63,6 +63,14 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.UNCLAIM_ALL_CONFIRM); + // Localize labels + cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_TITLE)); + cmd.set("#ConfirmMsg1.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_CONFIRM_MSG1)); + cmd.set("#ConfirmMsg2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_CONFIRM_MSG2)); + cmd.set("#WarningLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_WARNING)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CANCEL)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_ALL)); + // Set faction info cmd.set("#FactionName.Text", factionName); cmd.set("#ClaimCount.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.CHUNKS_SUFFIX, claimCount)); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index f4807177..4e1046b4 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -2068,6 +2068,59 @@ public static final class AdminGui { public static final String GUI_VER_WIFLOW_PAPI = "hyperfactions_admin.gui.ver_wiflow_papi"; public static final String GUI_VER_TREASURY = "hyperfactions_admin.gui.ver_treasury"; + // Unclaim all confirm modal labels + public static final String GUI_UNCLAIM_TITLE = "hyperfactions_admin.gui.unclaim_title"; + public static final String GUI_UNCLAIM_CONFIRM_MSG1 = "hyperfactions_admin.gui.unclaim_confirm_msg1"; + public static final String GUI_UNCLAIM_CONFIRM_MSG2 = "hyperfactions_admin.gui.unclaim_confirm_msg2"; + public static final String GUI_UNCLAIM_WARNING = "hyperfactions_admin.gui.unclaim_warning"; + public static final String GUI_UNCLAIM_ALL = "hyperfactions_admin.gui.unclaim_all"; + + // Zone rename modal labels + public static final String GUI_ZREN_TITLE = "hyperfactions_admin.gui.zren_title"; + public static final String GUI_ZREN_CURRENT = "hyperfactions_admin.gui.zren_current"; + public static final String GUI_ZREN_NEW_NAME = "hyperfactions_admin.gui.zren_new_name"; + + // Zone change type modal labels + public static final String GUI_ZTYPE_TITLE = "hyperfactions_admin.gui.ztype_title"; + public static final String GUI_ZTYPE_ZONE_LABEL = "hyperfactions_admin.gui.ztype_zone_label"; + public static final String GUI_ZTYPE_CURRENT = "hyperfactions_admin.gui.ztype_current"; + public static final String GUI_ZTYPE_WILL_BECOME = "hyperfactions_admin.gui.ztype_will_become"; + public static final String GUI_ZTYPE_NEW = "hyperfactions_admin.gui.ztype_new"; + public static final String GUI_ZTYPE_WARNING1 = "hyperfactions_admin.gui.ztype_warning1"; + public static final String GUI_ZTYPE_WARNING2 = "hyperfactions_admin.gui.ztype_warning2"; + public static final String GUI_ZTYPE_KEEP_DESC = "hyperfactions_admin.gui.ztype_keep_desc"; + public static final String GUI_ZTYPE_KEEP_FLAGS = "hyperfactions_admin.gui.ztype_keep_flags"; + public static final String GUI_ZTYPE_RESET_DESC = "hyperfactions_admin.gui.ztype_reset_desc"; + public static final String GUI_ZTYPE_RESET_FLAGS = "hyperfactions_admin.gui.ztype_reset_flags"; + + // Create zone wizard labels + public static final String GUI_CZW_TITLE = "hyperfactions_admin.gui.czw_title"; + public static final String GUI_CZW_BACK = "hyperfactions_admin.gui.czw_back"; + public static final String GUI_CZW_CREATE = "hyperfactions_admin.gui.czw_create"; + public static final String GUI_CZW_ZONE_TYPE = "hyperfactions_admin.gui.czw_zone_type"; + public static final String GUI_CZW_SAFE_DESC = "hyperfactions_admin.gui.czw_safe_desc"; + public static final String GUI_CZW_WAR_DESC = "hyperfactions_admin.gui.czw_war_desc"; + public static final String GUI_CZW_ZONE_NAME = "hyperfactions_admin.gui.czw_zone_name"; + public static final String GUI_CZW_NAME_DESC = "hyperfactions_admin.gui.czw_name_desc"; + public static final String GUI_CZW_CLAIM_METHOD = "hyperfactions_admin.gui.czw_claim_method"; + public static final String GUI_CZW_METHOD_NONE_DESC = "hyperfactions_admin.gui.czw_method_none_desc"; + public static final String GUI_CZW_METHOD_NONE = "hyperfactions_admin.gui.czw_method_none"; + public static final String GUI_CZW_METHOD_SINGLE_DESC = "hyperfactions_admin.gui.czw_method_single_desc"; + public static final String GUI_CZW_METHOD_SINGLE = "hyperfactions_admin.gui.czw_method_single"; + public static final String GUI_CZW_METHOD_CIRCLE_DESC = "hyperfactions_admin.gui.czw_method_circle_desc"; + public static final String GUI_CZW_METHOD_CIRCLE = "hyperfactions_admin.gui.czw_method_circle"; + public static final String GUI_CZW_METHOD_SQUARE_DESC = "hyperfactions_admin.gui.czw_method_square_desc"; + public static final String GUI_CZW_METHOD_SQUARE = "hyperfactions_admin.gui.czw_method_square"; + public static final String GUI_CZW_METHOD_MAP_DESC = "hyperfactions_admin.gui.czw_method_map_desc"; + public static final String GUI_CZW_METHOD_MAP = "hyperfactions_admin.gui.czw_method_map"; + public static final String GUI_CZW_RADIUS = "hyperfactions_admin.gui.czw_radius"; + public static final String GUI_CZW_CUSTOM_RADIUS = "hyperfactions_admin.gui.czw_custom_radius"; + public static final String GUI_CZW_FLAGS = "hyperfactions_admin.gui.czw_flags"; + public static final String GUI_CZW_FLAGS_DEFAULTS_DESC = "hyperfactions_admin.gui.czw_flags_defaults_desc"; + public static final String GUI_CZW_FLAGS_DEFAULTS = "hyperfactions_admin.gui.czw_flags_defaults"; + public static final String GUI_CZW_FLAGS_CUSTOMIZE_DESC = "hyperfactions_admin.gui.czw_flags_customize_desc"; + public static final String GUI_CZW_FLAGS_CUSTOMIZE = "hyperfactions_admin.gui.czw_flags_customize"; + private AdminGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/create_zone_wizard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/create_zone_wizard.ui index 8a334a82..cda68e4d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/create_zone_wizard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/create_zone_wizard.ui @@ -61,7 +61,7 @@ $C.@Container { Background: (Color: #1a2a3a); Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); - Label { + Label #ZoneTypeHeader { Text: "Zone Type"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 14, Bottom: 8); @@ -76,7 +76,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #SafeZoneDesc { Text: "Protected, no PvP"; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 16, Bottom: 4); @@ -95,7 +95,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #WarZoneDesc { Text: "Combat, PvP enabled"; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 16, Bottom: 4); @@ -119,13 +119,13 @@ $C.@Container { Background: (Color: #1a2a3a); Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); - Label { + Label #ZoneNameHeader { Text: "Zone Name"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 14, Bottom: 6); } - Label { + Label #ZoneNameDesc { Text: "Enter a unique name for the zone"; Style: (FontSize: 10, TextColor: #AAAAAA); Anchor: (Height: 16, Bottom: 6); @@ -151,7 +151,7 @@ $C.@Container { Background: (Color: #1a2a3a); Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); - Label { + Label #ClaimMethodHeader { Text: "Claiming Method"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 14, Bottom: 8); @@ -166,7 +166,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #MethodNoneDesc { Text: "Create empty zone"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -184,7 +184,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #MethodSingleDesc { Text: "Your current chunk"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -206,7 +206,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #MethodCircleDesc { Text: "Circular area"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -224,7 +224,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #MethodSquareDesc { Text: "Square area"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -242,7 +242,7 @@ $C.@Container { LayoutMode: Top; Anchor: (Height: 44); - Label { + Label #MethodMapDesc { Text: "Interactive chunk editor"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -273,7 +273,7 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 14, Bottom: 8); - Label { + Label #RadiusHeader { Text: "Radius"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); } @@ -325,7 +325,7 @@ $C.@Container { LayoutMode: Left; Anchor: (Height: 28); - Label { + Label #CustomRadiusLabel { Text: "Custom (1-50):"; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); Anchor: (Width: 85); @@ -349,7 +349,7 @@ $C.@Container { Background: (Color: #1a2a3a); Padding: (Left: 12, Right: 12, Top: 10, Bottom: 10); - Label { + Label #FlagsHeader { Text: "Flags"; Style: (FontSize: 11, TextColor: #00FFFF, RenderBold: true); Anchor: (Height: 14, Bottom: 8); @@ -363,7 +363,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #FlagsDefaultsDesc { Text: "Based on zone type"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); @@ -381,7 +381,7 @@ $C.@Container { LayoutMode: Top; FlexWeight: 1; - Label { + Label #FlagsCustomizeDesc { Text: "Open settings after"; Style: (FontSize: 9, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 14, Bottom: 2); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui index 7cf16129..b4927a13 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/zone_change_type_modal.ui @@ -74,7 +74,7 @@ $C.@PageOverlay { Anchor: (Height: 26, Bottom: 8); LayoutMode: Left; - Label { + Label #NewLabel { Text: "New:"; Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center); Anchor: (Width: 55); @@ -99,12 +99,12 @@ $C.@PageOverlay { Padding: (Left: 10, Right: 10, Top: 6, Bottom: 6); LayoutMode: Top; - Label { + Label #WarningLine1 { Text: "Different zone types have different default flag values."; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 12); } - Label { + Label #WarningLine2 { Text: "Choose how to handle existing flag settings:"; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 12); @@ -123,7 +123,7 @@ $C.@PageOverlay { LayoutMode: Top; FlexWeight: 1; - Label { + Label #KeepFlagsDesc { Text: "Keep custom overrides"; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 16, Bottom: 4); @@ -143,7 +143,7 @@ $C.@PageOverlay { LayoutMode: Top; FlexWeight: 1; - Label { + Label #ResetFlagsDesc { Text: "Use new type defaults"; Style: (FontSize: 10, TextColor: #AAAAAA, HorizontalAlignment: Center); Anchor: (Height: 16, Bottom: 4); diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index bf24a7bb..c2f94217 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -580,3 +580,59 @@ gui.ver_kyuubisoft = KyuubiSoft gui.ver_placeholder_api = PlaceholderAPI gui.ver_wiflow_papi = WiFlow PAPI gui.ver_treasury = Treasury + +# Unclaim all confirm modal labels +gui.unclaim_title = Unclaim All Territory +gui.unclaim_confirm_msg1 = Are you sure you want to unclaim all +gui.unclaim_confirm_msg2 = from +gui.unclaim_warning = This action cannot be undone! +gui.unclaim_all = Unclaim All + +# Zone rename modal labels +gui.zren_title = Rename Zone +gui.zren_current = Current: +gui.zren_new_name = New Name: + +# Zone change type modal labels +gui.ztype_title = Change Zone Type +gui.ztype_zone_label = Zone: +gui.ztype_current = Current: +gui.ztype_will_become = will become +gui.ztype_new = New: +gui.ztype_warning1 = Different zone types have different default flag values. +gui.ztype_warning2 = Choose how to handle existing flag settings: +gui.ztype_keep_desc = Keep custom overrides +gui.ztype_keep_flags = Keep Flags +gui.ztype_reset_desc = Use new type defaults +gui.ztype_reset_flags = Reset Flags + +# Create zone wizard labels +gui.czw_title = Create Zone +gui.czw_back = < Back +gui.czw_create = Create Zone +gui.czw_zone_type = Zone Type +gui.czw_safe_desc = Protected, no PvP +gui.czw_war_desc = Combat, PvP enabled +gui.czw_zone_name = Zone Name +gui.czw_name_desc = Enter a unique name for the zone +gui.czw_claim_method = Claiming Method +gui.czw_method_none_desc = Create empty zone +gui.czw_method_none = No claims +gui.czw_method_single_desc = Your current chunk +gui.czw_method_single = Single chunk +gui.czw_method_circle_desc = Circular area +gui.czw_method_circle = Circle radius +gui.czw_method_square_desc = Square area +gui.czw_method_square = Square radius +gui.czw_method_map_desc = Interactive chunk editor +gui.czw_method_map = Use claim map +gui.czw_radius = Radius +gui.czw_custom_radius = Custom (1-50): +gui.czw_flags = Flags +gui.czw_flags_defaults_desc = Based on zone type +gui.czw_flags_defaults = Use defaults +gui.czw_flags_customize_desc = Open settings after +gui.czw_flags_customize = Customize + +# Common button labels +gui.cancel = Cancel diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index b62770d9..fb4d82df 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -580,3 +580,59 @@ gui.ver_kyuubisoft = KyuubiSoft gui.ver_placeholder_api = PlaceholderAPI gui.ver_wiflow_papi = WiFlow PAPI gui.ver_treasury = Tesoreria + +# Etiquetas de modal de desreclamar todo +gui.unclaim_title = Desreclamar Todo el Territorio +gui.unclaim_confirm_msg1 = Estas seguro de que deseas desreclamar todos los +gui.unclaim_confirm_msg2 = de +gui.unclaim_warning = Esta accion no se puede deshacer! +gui.unclaim_all = Desreclamar Todo + +# Etiquetas de modal de renombrar zona +gui.zren_title = Renombrar Zona +gui.zren_current = Actual: +gui.zren_new_name = Nuevo Nombre: + +# Etiquetas de modal de cambiar tipo de zona +gui.ztype_title = Cambiar Tipo de Zona +gui.ztype_zone_label = Zona: +gui.ztype_current = Actual: +gui.ztype_will_become = se convertira en +gui.ztype_new = Nuevo: +gui.ztype_warning1 = Diferentes tipos de zona tienen diferentes valores de flags por defecto. +gui.ztype_warning2 = Elige como manejar los ajustes de flags existentes: +gui.ztype_keep_desc = Mantener anulaciones personalizadas +gui.ztype_keep_flags = Mantener Flags +gui.ztype_reset_desc = Usar valores por defecto del nuevo tipo +gui.ztype_reset_flags = Restablecer Flags + +# Etiquetas de asistente de creacion de zona +gui.czw_title = Crear Zona +gui.czw_back = < Volver +gui.czw_create = Crear Zona +gui.czw_zone_type = Tipo de Zona +gui.czw_safe_desc = Protegido, sin PvP +gui.czw_war_desc = Combate, PvP habilitado +gui.czw_zone_name = Nombre de Zona +gui.czw_name_desc = Ingresa un nombre unico para la zona +gui.czw_claim_method = Metodo de Reclamo +gui.czw_method_none_desc = Crear zona vacia +gui.czw_method_none = Sin reclamos +gui.czw_method_single_desc = Tu chunk actual +gui.czw_method_single = Chunk unico +gui.czw_method_circle_desc = Area circular +gui.czw_method_circle = Radio circular +gui.czw_method_square_desc = Area cuadrada +gui.czw_method_square = Radio cuadrado +gui.czw_method_map_desc = Editor de chunks interactivo +gui.czw_method_map = Usar mapa de reclamos +gui.czw_radius = Radio +gui.czw_custom_radius = Personalizado (1-50): +gui.czw_flags = Flags +gui.czw_flags_defaults_desc = Basado en tipo de zona +gui.czw_flags_defaults = Usar por defecto +gui.czw_flags_customize_desc = Abrir ajustes despues +gui.czw_flags_customize = Personalizar + +# Etiquetas comunes de botones +gui.cancel = Cancelar From 27346d8c8d670e00a49d357db10ec772f69be7ff Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 20:42:21 -0700 Subject: [PATCH 24/76] fix: admin GUI crash, help i18n resolution, and dropdown display names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix crash: #Title.Text selector on admin pages — add #PageTitle ID to all 29 admin .ui templates and update 28 Java files to use #PageTitle - Fix help content showing English for non-English players — thread PlayerRef through HelpTopic.title(), HelpEntry.text(), and HelpMainPage.buildTopicCards() so help resolves per-player locale - Fix category title using server default — use displayName(playerRef) - Fix language dropdown truncation — use compact display names (English (US) instead of English (United States)) and widen to 220px --- .../gui/admin/page/AdminActionsPage.java | 2 +- .../gui/admin/page/AdminActivityLogPage.java | 2 +- .../gui/admin/page/AdminBackupsPage.java | 2 +- .../gui/admin/page/AdminBulkEconomyPage.java | 2 +- .../gui/admin/page/AdminConfigPage.java | 2 +- .../gui/admin/page/AdminDashboardPage.java | 2 +- .../admin/page/AdminDisbandConfirmPage.java | 7 ++ .../admin/page/AdminEconomyAdjustPage.java | 2 +- .../gui/admin/page/AdminEconomyPage.java | 2 +- .../gui/admin/page/AdminFactionInfoPage.java | 2 +- .../admin/page/AdminFactionMembersPage.java | 2 +- .../admin/page/AdminFactionRelationsPage.java | 2 +- .../admin/page/AdminFactionSettingsPage.java | 59 ++++++++++++- .../gui/admin/page/AdminFactionsPage.java | 2 +- .../gui/admin/page/AdminHelpPage.java | 2 +- .../gui/admin/page/AdminMainPage.java | 2 +- .../gui/admin/page/AdminPlayerInfoPage.java | 2 +- .../gui/admin/page/AdminPlayersPage.java | 2 +- .../page/AdminUnclaimAllConfirmPage.java | 2 +- .../gui/admin/page/AdminUpdatesPage.java | 2 +- .../gui/admin/page/AdminVersionPage.java | 2 +- .../page/AdminZoneIntegrationFlagsPage.java | 2 +- .../gui/admin/page/AdminZoneMapPage.java | 2 +- .../gui/admin/page/AdminZonePage.java | 2 +- .../admin/page/AdminZonePropertiesPage.java | 2 +- .../gui/admin/page/AdminZoneSettingsPage.java | 2 +- .../gui/admin/page/CreateZoneWizardPage.java | 29 ++++++ .../admin/page/ZoneChangeTypeModalPage.java | 14 +++ .../gui/admin/page/ZoneRenameModalPage.java | 7 ++ .../com/hyperfactions/gui/help/HelpEntry.java | 12 ++- .../com/hyperfactions/gui/help/HelpTopic.java | 12 ++- .../gui/help/page/HelpMainPage.java | 6 +- .../gui/shared/page/PlayerSettingsPage.java | 13 +-- .../com/hyperfactions/util/MessageKeys.java | 39 ++++++++ .../HyperFactions/admin/admin_actions.ui | 2 +- .../HyperFactions/admin/admin_activity_log.ui | 2 +- .../HyperFactions/admin/admin_backups.ui | 2 +- .../HyperFactions/admin/admin_bulk_economy.ui | 2 +- .../HyperFactions/admin/admin_config.ui | 2 +- .../HyperFactions/admin/admin_dashboard.ui | 2 +- .../HyperFactions/admin/admin_economy.ui | 2 +- .../admin/admin_economy_adjust.ui | 2 +- .../HyperFactions/admin/admin_faction_info.ui | 2 +- .../admin/admin_faction_members.ui | 2 +- .../admin/admin_faction_relations.ui | 2 +- .../admin/admin_faction_settings.ui | 88 +++++++++---------- .../HyperFactions/admin/admin_factions.ui | 2 +- .../Custom/HyperFactions/admin/admin_help.ui | 2 +- .../Custom/HyperFactions/admin/admin_main.ui | 2 +- .../HyperFactions/admin/admin_player_info.ui | 2 +- .../HyperFactions/admin/admin_players.ui | 2 +- .../HyperFactions/admin/admin_updates.ui | 2 +- .../HyperFactions/admin/admin_version.ui | 2 +- .../admin/admin_zone_integration_flags.ui | 2 +- .../HyperFactions/admin/admin_zone_map.ui | 2 +- .../admin/admin_zone_map_terrain.ui | 2 +- .../admin/admin_zone_properties.ui | 2 +- .../admin/admin_zone_settings.ui | 2 +- .../Custom/HyperFactions/admin/admin_zones.ui | 2 +- .../HyperFactions/admin/create_zone_wizard.ui | 2 +- .../admin/unclaim_all_confirm.ui | 2 +- .../admin/zone_change_type_modal.ui | 2 +- .../HyperFactions/admin/zone_rename_modal.ui | 2 +- .../HyperFactions/shared/player_settings.ui | 2 +- .../Languages/en-US/hyperfactions_admin.lang | 39 ++++++++ .../Languages/es-ES/hyperfactions_admin.lang | 39 ++++++++ 66 files changed, 360 insertions(+), 110 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java index caec4d5e..bac0528e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java @@ -70,7 +70,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "actions", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIONS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIONS)); cmd.set("#CombatStatsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_COMBAT_STATS)); cmd.set("#CombatDescLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_COMBAT_DESC)); cmd.set("#EconomyLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_ECONOMY)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index dda724c0..c2284a90 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -99,7 +99,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "log", cmd, events); // Localize page title - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIVITY_LOG)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ACTIVITY_LOG)); // Localize filter labels cmd.set("#TypeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_LOG_TYPE)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java index 48fcc22b..f0f02a28 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminBackupsPage.java @@ -43,7 +43,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "backups", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BACKUPS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BACKUPS)); cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACKUP_HEADING)); cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACKUP_DESC1)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java index f6240104..851097a3 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminBulkEconomyPage.java @@ -65,7 +65,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "actions", cmd, events); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BULK_ECONOMY)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_BULK_ECONOMY)); cmd.set("#SectionHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_HEADER)); cmd.set("#FactionsInfoLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_FACTIONS_LABEL)); cmd.set("#TotalBalanceInfoLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BULK_TOTAL_LABEL)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java index 0a1c7179..76d45751 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminConfigPage.java @@ -43,7 +43,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "config", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_CONFIG)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_CONFIG)); cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CONFIG_HEADING)); cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CONFIG_DESC1)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java index 7ddb3f9d..e83721ca 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminDashboardPage.java @@ -71,7 +71,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "dashboard", cmd, events); // Localize page title and stat labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_DASHBOARD)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_DASHBOARD)); cmd.set("#ServerStatsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_SERVER_STATS)); cmd.set("#FactionsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_FACTIONS)); cmd.set("#TotalMembersLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_DASH_TOTAL_MEMBERS)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java index 4a7f2d3a..6c657f11 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminDisbandConfirmPage.java @@ -59,6 +59,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Reuse the shared disband confirmation template cmd.append(UIPaths.DISBAND_CONFIRM); + // Localize labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_TITLE)); + cmd.set("#ConfirmText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_PROMPT)); + cmd.set("#WarningText.Text", HFMessages.get(playerRef, MessageKeys.ConfirmGui.DISBAND_WARNING)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.CANCEL)); + cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.Common.DISBAND)); + // Set faction name in the modal cmd.set("#FactionName.Text", factionName); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java index ff907247..afe099b6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyAdjustPage.java @@ -70,7 +70,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "economy", cmd, events); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY_ADJUST)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY_ADJUST)); cmd.set("#SectionHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_HEADER)); cmd.set("#FactionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_FACTION_LABEL)); cmd.set("#CurrentBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECADJ_CURRENT_BALANCE)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java index 8acad8fe..32da0bbb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java @@ -81,7 +81,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "economy", cmd, events); // Localize page title - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ECONOMY)); // Localize stat card labels cmd.set("#TotalBalanceLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_TOTAL_BALANCE)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java index 83e7fe7e..8c39071e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java @@ -83,7 +83,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_INFO)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_INFO)); // Localize stat card labels cmd.set("#PowerCardLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_POWER)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java index a7d01afb..86384171 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java @@ -80,7 +80,7 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder eve AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_MEMBERS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_MEMBERS)); cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java index 39860604..ba8add17 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java @@ -60,7 +60,7 @@ public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder eve AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_RELATIONS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_RELATIONS)); cmd.set("#SubtitleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_SUBTITLE)); cmd.set("#SetNewRelationLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_SET_NEW)); cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java index 3f96b51e..b6dd8d19 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionSettingsPage.java @@ -67,10 +67,65 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_SETTINGS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTION_SETTINGS)); cmd.set("#EditingLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_EDITING)); cmd.set("#AdminOverrideLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_ADMIN_OVERRIDE)); - cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_BACK_TO_INFO)); + + // Left column section headers and row labels + cmd.set("#SectionGeneral.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_GENERAL)); + cmd.set("#NameLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_NAME_LABEL)); + cmd.set("#TagLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_TAG_LABEL)); + cmd.set("#DescLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_DESC_LABEL)); + String editText = HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_EDIT); + cmd.set("#NameEditBtn.Text", editText); + cmd.set("#TagEditBtn.Text", editText); + cmd.set("#DescEditBtn.Text", editText); + cmd.set("#SectionRecruitment.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_RECRUITMENT)); + cmd.set("#StatusLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_STATUS_LABEL)); + cmd.set("#SectionHome.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_HOME)); + cmd.set("#LocationLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_LOCATION_LABEL)); + cmd.set("#ClearHomeBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_CLEAR_HOME)); + cmd.set("#SectionDangerZone.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_DANGER_ZONE)); + cmd.set("#IrreversibleWarning.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_IRREVERSIBLE)); + cmd.set("#DisbandBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_DISBAND_FACTION)); + + // Middle column - territory permissions + cmd.set("#LockHint.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_LOCK_HINT)); + cmd.set("#SectionTerritoryPerms.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_TERRITORY_PERMS)); + cmd.set("#ColOutsider.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_COL_OUT)); + cmd.set("#ColAlly.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_COL_ALLY)); + cmd.set("#ColMember.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_COL_MEM)); + cmd.set("#ColOfficer.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_COL_OFF)); + cmd.set("#CatBuilding.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_CAT_BUILDING)); + cmd.set("#PermBreak.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_BREAK)); + cmd.set("#PermPlace.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_PLACE)); + cmd.set("#CatInteraction.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_CAT_INTERACTION)); + cmd.set("#CatInteractionSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_CAT_INTERACT_SUB)); + cmd.set("#PermAll.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_ALL)); + cmd.set("#PermDoor.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_DOOR)); + cmd.set("#PermChest.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_CHEST)); + cmd.set("#PermBench.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_BENCH)); + cmd.set("#PermProcessing.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_PROCESSING)); + cmd.set("#PermSeat.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_SEAT)); + cmd.set("#PermTransport.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_TRANSPORT)); + cmd.set("#CatOther.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_CAT_OTHER)); + cmd.set("#PermCrateUse.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_CRATE_USE)); + cmd.set("#PermNpcTame.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_NPC_TAME)); + cmd.set("#PermPveDamage.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_PVE_DAMAGE)); + + // Right column - appearance, mob spawning, faction settings + cmd.set("#SectionAppearance.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_APPEARANCE)); + cmd.set("#ColorLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_COLOR_LABEL)); + cmd.set("#SectionMobSpawning.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_MOB_SPAWNING)); + cmd.set("#SectionMobSpawningSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_MOB_SUB)); + cmd.set("#PermMobSpawning.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_MOB_SPAWNING)); + cmd.set("#PermHostile.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_HOSTILE)); + cmd.set("#PermPassive.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_PASSIVE)); + cmd.set("#PermNeutral.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_NEUTRAL)); + cmd.set("#SectionFactionSettings.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_FACTION_SETTINGS)); + cmd.set("#PermPvP.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_PVP)); + cmd.set("#PermOfficersEdit.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SET_PERM_OFFICERS_EDIT)); // Get the faction Faction faction = factionManager.getFaction(factionId); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java index 89a539cd..05815fd6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java @@ -92,7 +92,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title and common labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTIONS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_FACTIONS)); cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java index 3549b99c..e111e173 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java @@ -43,7 +43,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "help", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_HELP)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_HELP)); cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_HEADING)); cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_DESC1)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java index ee395cce..9612d2b6 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminMainPage.java @@ -67,7 +67,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Localize page title and buttons - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_MAIN)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_MAIN)); cmd.set("#ZonesBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONES_BTN)); cmd.set("#ReloadBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_RELOAD_BTN)); cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index 634912ca..bdd562ef 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -96,7 +96,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "factions", cmd, events); // Localize page title - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYER_INFO)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYER_INFO)); // Localize header labels cmd.set("#FirstJoinedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_FIRST_JOINED)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java index 93538650..8010e7fb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java @@ -116,7 +116,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "players", cmd, events); // Localize page title and common labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYERS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_PLAYERS)); cmd.set("#SearchLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SEARCH)); cmd.set("#SortLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SORT)); cmd.set("#PrevBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PREV)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java index 6c5d1fa6..f954d897 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminUnclaimAllConfirmPage.java @@ -64,7 +64,7 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.append(UIPaths.UNCLAIM_ALL_CONFIRM); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_TITLE)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_TITLE)); cmd.set("#ConfirmMsg1.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_CONFIRM_MSG1)); cmd.set("#ConfirmMsg2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_CONFIRM_MSG2)); cmd.set("#WarningLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UNCLAIM_WARNING)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java index 6b2dc6e2..2c2a68f1 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminUpdatesPage.java @@ -43,7 +43,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "updates", cmd, events); // Localize page title and labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_UPDATES)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_UPDATES)); cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UPDATES_HEADING)); cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_UPDATES_DESC1)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java index 1d8d74ad..c2074ea7 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java @@ -63,7 +63,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "version", cmd, events); // Localize page title - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_VERSION)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_VERSION)); // Localize version card labels cmd.set("#VersionLabelFactions.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_VER_HYPERFACTIONS)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java index 56f5a8d0..f1b97185 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java @@ -69,7 +69,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); cmd.set("#CatGravestones.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_CAT_GRAVESTONES)); cmd.set("#GravestonesDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_GRAVESTONES_DESC)); cmd.set("#CatWorldMap.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZINT_CAT_WORLD_MAP)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java index d7c5bfb5..21425b8c 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java @@ -143,7 +143,7 @@ public void build(Ref ref, UICommandBuilder cmd, } // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_MAP)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_MAP)); cmd.set("#ActionHint.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_ACTION_HINT)); cmd.set("#ConfirmBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_DONE)); cmd.set("#LegendZoneSafe.Text", " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MAP_LEGEND_ZONE_SAFE)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java index 094de186..b5aa0a57 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java @@ -93,7 +93,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); // Localize page title and common labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONES)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONES)); cmd.set("#TabAll.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ALL)); cmd.set("#TabSafe.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SAFE)); cmd.set("#TabWar.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_WAR)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java index e79c40b6..20581392 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePropertiesPage.java @@ -75,7 +75,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_PROPERTIES)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_PROPERTIES)); cmd.set("#GeneralHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_GENERAL)); cmd.set("#ZoneNameLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_ZONE_NAME)); cmd.set("#ZoneTypeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZPROP_ZONE_TYPE)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java index a59a3fdd..d86e601c 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java @@ -100,7 +100,7 @@ public void build(Ref ref, UICommandBuilder cmd, AdminNavBarHelper.setupBar(playerRef, "zones", cmd, events); // Localize labels - cmd.set("#Title.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_ZONE_SETTINGS)); cmd.set("#CatCombat.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_COMBAT)); cmd.set("#CatDamage.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_DAMAGE)); cmd.set("#CatDeath.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CAT_DEATH)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java index 054797ba..314910ad 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java @@ -133,6 +133,35 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the template cmd.append(UIPaths.CREATE_ZONE_WIZARD); + // Localize labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_TITLE)); + cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_BACK)); + cmd.set("#CreateBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_CREATE)); + cmd.set("#ZoneTypeHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_ZONE_TYPE)); + cmd.set("#SafeZoneDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_SAFE_DESC)); + cmd.set("#WarZoneDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_WAR_DESC)); + cmd.set("#ZoneNameHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_ZONE_NAME)); + cmd.set("#ZoneNameDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_NAME_DESC)); + cmd.set("#ClaimMethodHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_CLAIM_METHOD)); + cmd.set("#MethodNoneDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_NONE_DESC)); + cmd.set("#MethodNone.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_NONE)); + cmd.set("#MethodSingleDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_SINGLE_DESC)); + cmd.set("#MethodSingle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_SINGLE)); + cmd.set("#MethodCircleDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_CIRCLE_DESC)); + cmd.set("#MethodCircle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_CIRCLE)); + cmd.set("#MethodSquareDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_SQUARE_DESC)); + cmd.set("#MethodSquare.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_SQUARE)); + cmd.set("#MethodMapDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_MAP_DESC)); + cmd.set("#MethodMap.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_METHOD_MAP)); + cmd.set("#RadiusHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_RADIUS)); + cmd.set("#CustomRadiusLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_CUSTOM_RADIUS)); + cmd.set("#ApplyCustomRadius.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_APPLY)); + cmd.set("#FlagsHeader.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_FLAGS)); + cmd.set("#FlagsDefaultsDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_FLAGS_DEFAULTS_DESC)); + cmd.set("#FlagsDefaults.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_FLAGS_DEFAULTS)); + cmd.set("#FlagsCustomizeDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_FLAGS_CUSTOMIZE_DESC)); + cmd.set("#FlagsCustomize.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CZW_FLAGS_CUSTOMIZE)); + // Restore preserved input value if (!preservedName.isEmpty()) { cmd.set("#NameInput.Value", preservedName); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java index 91e4fe20..b021ab8f 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java @@ -84,6 +84,20 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modal template cmd.append(UIPaths.ZONE_CHANGE_TYPE_MODAL); + // Localize labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_TITLE)); + cmd.set("#ZoneLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_ZONE_LABEL)); + cmd.set("#CurrentLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_CURRENT)); + cmd.set("#WillBecomeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_WILL_BECOME)); + cmd.set("#NewLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_NEW)); + cmd.set("#WarningLine1.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_WARNING1)); + cmd.set("#WarningLine2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_WARNING2)); + cmd.set("#KeepFlagsDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_KEEP_DESC)); + cmd.set("#KeepFlagsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_KEEP_FLAGS)); + cmd.set("#ResetFlagsDesc.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_RESET_DESC)); + cmd.set("#ResetFlagsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZTYPE_RESET_FLAGS)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CANCEL)); + // Zone name cmd.set("#ZoneName.Text", zone.name()); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/ZoneRenameModalPage.java b/src/main/java/com/hyperfactions/gui/admin/page/ZoneRenameModalPage.java index 113112f0..5e77a7ed 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/ZoneRenameModalPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/ZoneRenameModalPage.java @@ -73,6 +73,13 @@ public void build(Ref ref, UICommandBuilder cmd, // Load the modal template cmd.append(UIPaths.ZONE_RENAME_MODAL); + // Localize labels + cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZREN_TITLE)); + cmd.set("#CurrentLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZREN_CURRENT)); + cmd.set("#NewNameLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZREN_NEW_NAME)); + cmd.set("#CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_CANCEL)); + cmd.set("#SaveBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_SAVE)); + // Show current name cmd.set("#CurrentName.Text", zone.name()); diff --git a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java index 86a215fc..0df48b59 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java @@ -1,6 +1,8 @@ package com.hyperfactions.gui.help; +import com.hypixel.hytale.server.core.universe.PlayerRef; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * A typed content entry within a help topic. @@ -29,7 +31,7 @@ public enum EntryType { } /** - * Gets the resolved display text for this entry. + * Gets the resolved display text for this entry (server default language). * * @return The localized text, or empty string for spacers */ @@ -38,6 +40,14 @@ public String text() { return type == EntryType.SPACER ? "" : HelpMessages.get(messageKey); } + /** + * Gets the resolved display text for a specific player's language. + */ + @NotNull + public String text(@Nullable PlayerRef playerRef) { + return type == EntryType.SPACER ? "" : HelpMessages.get(playerRef, messageKey); + } + /** Creates a TEXT entry. */ public static HelpEntry text(@NotNull String messageKey) { return new HelpEntry(EntryType.TEXT, messageKey); diff --git a/src/main/java/com/hyperfactions/gui/help/HelpTopic.java b/src/main/java/com/hyperfactions/gui/help/HelpTopic.java index de257a8b..7227bafb 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpTopic.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpTopic.java @@ -1,7 +1,9 @@ package com.hyperfactions.gui.help; +import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.List; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Represents an individual help topic within a category. @@ -20,13 +22,21 @@ public record HelpTopic( @NotNull HelpCategory category ) { /** - * Gets the resolved display title. + * Gets the resolved display title (server default language). */ @NotNull public String title() { return HelpMessages.get(titleKey); } + /** + * Gets the resolved display title for a specific player's language. + */ + @NotNull + public String title(@Nullable PlayerRef playerRef) { + return HelpMessages.get(playerRef, titleKey); + } + /** * Creates a topic with entries but no associated commands. */ diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index 56092ca4..b6deddd3 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -108,7 +108,7 @@ public void build(Ref ref, UICommandBuilder cmd, setupCategoryButtons(cmd, events); // Set the category title header text and color - cmd.set("#CategoryTitle.Text", selectedCategory.displayName().toUpperCase()); + cmd.set("#CategoryTitle.Text", selectedCategory.displayName(playerRef).toUpperCase()); cmd.set("#CategoryTitle.Style.TextColor", selectedCategory.color()); // Build topic cards for selected category @@ -153,7 +153,7 @@ private void buildTopicCards(UICommandBuilder cmd) { String cardPrefix = "#ContentList[" + cardIndex + "]"; // Set card title - cmd.set(cardPrefix + " #Title.Text", topic.title()); + cmd.set(cardPrefix + " #Title.Text", topic.title(playerRef)); // Append lines into card's #Lines container int lineIndex = 0; @@ -163,7 +163,7 @@ private void buildTopicCards(UICommandBuilder cmd) { cmd.append(linesContainer, template); if (entry.type() != HelpEntry.EntryType.SPACER) { - String text = entry.text(); + String text = entry.text(playerRef); // Prefix tips with >> for visual distinction if (entry.type() == HelpEntry.EntryType.TIP) { text = ">> " + text; diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index 835be09f..e54254a8 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -45,17 +45,18 @@ public class PlayerSettingsPage extends InteractiveCustomUIPage Date: Mon, 9 Mar 2026 20:48:51 -0700 Subject: [PATCH 25/76] fix: persist player preferences to JSON storage The custom serializePlayerData/deserializePlayerData methods in JsonPlayerStorage did not include the i18n preference fields added to PlayerData. Settings were saved in memory but lost on restart. Also includes compact locale display names and help i18n threading from earlier fixes that were committed separately. --- .../storage/json/JsonPlayerStorage.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/com/hyperfactions/storage/json/JsonPlayerStorage.java b/src/main/java/com/hyperfactions/storage/json/JsonPlayerStorage.java index 74c585ab..846fd65a 100644 --- a/src/main/java/com/hyperfactions/storage/json/JsonPlayerStorage.java +++ b/src/main/java/com/hyperfactions/storage/json/JsonPlayerStorage.java @@ -323,6 +323,20 @@ private JsonObject serializePlayerData(PlayerData data) { obj.addProperty("adminBypassEnabled", true); } + // Player preferences (i18n + notifications) + if (data.getLanguagePreference() != null) { + obj.addProperty("languagePreference", data.getLanguagePreference()); + } + if (!data.isTerritoryAlertsEnabled()) { + obj.addProperty("territoryAlertsEnabled", false); + } + if (!data.isDeathAnnouncementsEnabled()) { + obj.addProperty("deathAnnouncementsEnabled", false); + } + if (!data.isPowerNotificationsEnabled()) { + obj.addProperty("powerNotificationsEnabled", false); + } + // Membership history if (!data.getMembershipHistory().isEmpty()) { JsonArray historyArr = new JsonArray(); @@ -385,6 +399,20 @@ private PlayerData deserializePlayerData(JsonObject obj) { data.setAdminBypassEnabled(obj.get("adminBypassEnabled").getAsBoolean()); } + // Player preferences (i18n + notifications) + if (obj.has("languagePreference") && !obj.get("languagePreference").isJsonNull()) { + data.setLanguagePreference(obj.get("languagePreference").getAsString()); + } + if (obj.has("territoryAlertsEnabled")) { + data.setTerritoryAlertsEnabled(obj.get("territoryAlertsEnabled").getAsBoolean()); + } + if (obj.has("deathAnnouncementsEnabled")) { + data.setDeathAnnouncementsEnabled(obj.get("deathAnnouncementsEnabled").getAsBoolean()); + } + if (obj.has("powerNotificationsEnabled")) { + data.setPowerNotificationsEnabled(obj.get("powerNotificationsEnabled").getAsBoolean()); + } + // Membership history if (obj.has("membershipHistory") && obj.get("membershipHistory").isJsonArray()) { JsonArray historyArr = obj.getAsJsonArray("membershipHistory"); From c14c7c020adfb3534bdad470b36441eef9c995ae Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 20:51:09 -0700 Subject: [PATCH 26/76] fix: disable Power Notifications toggle (not yet wired up) The checkbox is shown but disabled since no power change notifications are currently sent to players. --- .../gui/shared/page/PlayerSettingsPage.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index e54254a8..cc50794f 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -192,13 +192,14 @@ public void build(Ref ref, UICommandBuilder cmd, MessageKeys.PlayerSettings.DEATH_ANNOUNCEMENTS_DESC, "#DeathAnnounceDesc", deathAnnouncements, "ToggleDeathAnnouncements"); - // Power Notifications + // TODO: Wire up power change notifications in PowerManager, then enable this toggle + // Power Notifications (not yet wired up — disable toggle) cmd.set("#PowerNotifLabel.Text", HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS)); - buildNotificationToggle(cmd, events, "#PowerNotifCB", - MessageKeys.PlayerSettings.POWER_NOTIFICATIONS, - MessageKeys.PlayerSettings.POWER_NOTIFICATIONS_DESC, - "#PowerNotifDesc", powerNotifications, "TogglePowerNotifications"); + cmd.set("#PowerNotifDesc.Text", + HFMessages.get(playerRef, MessageKeys.PlayerSettings.POWER_NOTIFICATIONS_DESC)); + cmd.set("#PowerNotifCB #CheckBox.Value", powerNotifications); + cmd.set("#PowerNotifCB #CheckBox.Disabled", true); } private void buildNotificationToggle(UICommandBuilder cmd, UIEventBuilder events, From 3bcafdf0afe0c7e019356363b8a71f92129f042c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:44:04 -0700 Subject: [PATCH 27/76] refactor: relocate help markdown to Server/Languages and remove stale config.json Move help source files from src/main/help/{locale}/ to src/main/resources/Server/Languages/{locale}/help/ so the build-time HelpLangGenerator reads from the same directory structure as the runtime language loader. Update translation scripts and build.gradle to match the new path. Remove unused config.json (replaced by per-feature config files in config/). --- TRANSLATION_GUIDE.md | 4 +- build.gradle | 4 +- scripts/new-translation.bat | 8 +-- scripts/new-translation.sh | 8 +-- .../Languages/en-US/help}/combat/death.md | 0 .../en-US/help}/combat/protection.md | 0 .../Languages/en-US/help}/combat/tagging.md | 0 .../Languages/en-US/help}/combat/zones.md | 0 .../en-US/help}/diplomacy/alliances.md | 0 .../en-US/help}/diplomacy/enemies.md | 0 .../en-US/help}/diplomacy/relations.md | 0 .../Languages/en-US/help}/economy/commands.md | 0 .../Languages/en-US/help}/economy/funds.md | 0 .../Languages/en-US/help}/economy/treasury.md | 0 .../en-US/help}/power_land/claiming.md | 0 .../help}/power_land/losing_territory.md | 0 .../en-US/help}/power_land/territory_map.md | 0 .../help}/power_land/understanding_power.md | 0 .../en-US/help}/quick_ref/all_commands.md | 0 .../en-US/help}/welcome/getting_started.md | 0 .../en-US/help}/welcome/quick_tips.md | 0 .../en-US/help}/welcome/what_are_factions.md | 0 .../en-US/help}/your_faction/creating.md | 0 .../en-US/help}/your_faction/joining.md | 0 .../en-US/help}/your_faction/managing.md | 0 .../en-US/help}/your_faction/roles.md | 0 .../Languages/es-ES/help}/combat/death.md | 0 .../es-ES/help}/combat/protection.md | 0 .../Languages/es-ES/help}/combat/tagging.md | 0 .../Languages/es-ES/help}/combat/zones.md | 0 .../es-ES/help}/diplomacy/alliances.md | 0 .../es-ES/help}/diplomacy/enemies.md | 0 .../es-ES/help}/diplomacy/relations.md | 0 .../Languages/es-ES/help}/economy/commands.md | 0 .../Languages/es-ES/help}/economy/funds.md | 0 .../Languages/es-ES/help}/economy/treasury.md | 0 .../es-ES/help}/power_land/claiming.md | 0 .../help}/power_land/losing_territory.md | 0 .../es-ES/help}/power_land/territory_map.md | 0 .../help}/power_land/understanding_power.md | 0 .../es-ES/help}/quick_ref/all_commands.md | 0 .../es-ES/help}/welcome/getting_started.md | 0 .../es-ES/help}/welcome/quick_tips.md | 0 .../es-ES/help}/welcome/what_are_factions.md | 0 .../es-ES/help}/your_faction/creating.md | 0 .../es-ES/help}/your_faction/joining.md | 0 .../es-ES/help}/your_faction/managing.md | 0 .../es-ES/help}/your_faction/roles.md | 0 src/main/resources/config.json | 53 ------------------- 49 files changed, 12 insertions(+), 65 deletions(-) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/combat/death.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/combat/protection.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/combat/tagging.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/combat/zones.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/diplomacy/alliances.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/diplomacy/enemies.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/diplomacy/relations.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/economy/commands.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/economy/funds.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/economy/treasury.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/power_land/claiming.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/power_land/losing_territory.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/power_land/territory_map.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/power_land/understanding_power.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/quick_ref/all_commands.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/welcome/getting_started.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/welcome/quick_tips.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/welcome/what_are_factions.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/your_faction/creating.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/your_faction/joining.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/your_faction/managing.md (100%) rename src/main/{help/en-US => resources/Server/Languages/en-US/help}/your_faction/roles.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/combat/death.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/combat/protection.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/combat/tagging.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/combat/zones.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/diplomacy/alliances.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/diplomacy/enemies.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/diplomacy/relations.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/economy/commands.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/economy/funds.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/economy/treasury.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/power_land/claiming.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/power_land/losing_territory.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/power_land/territory_map.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/power_land/understanding_power.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/quick_ref/all_commands.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/welcome/getting_started.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/welcome/quick_tips.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/welcome/what_are_factions.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/your_faction/creating.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/your_faction/joining.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/your_faction/managing.md (100%) rename src/main/{help/es-ES => resources/Server/Languages/es-ES/help}/your_faction/roles.md (100%) delete mode 100644 src/main/resources/config.json diff --git a/TRANSLATION_GUIDE.md b/TRANSLATION_GUIDE.md index 08192681..df727691 100644 --- a/TRANSLATION_GUIDE.md +++ b/TRANSLATION_GUIDE.md @@ -11,7 +11,7 @@ This guide explains how to contribute translations for HyperFactions. ``` 2. Edit the `.lang` files in `src/main/resources/Server/Languages//` -3. Edit the help markdown files in `src/main/help//` +3. Edit the help markdown files in `src/main/resources/Server/Languages//help/` 4. Build to verify: `./gradlew :HyperFactions:shadowJar` 5. Submit a pull request @@ -59,7 +59,7 @@ key.with.placeholder = Hello {0}, you have {1} power ### Help Markdown Files -Located at `src/main/help///.md`. +Located at `src/main/resources/Server/Languages//help//.md`. Each file has YAML frontmatter and markdown content: diff --git a/build.gradle b/build.gradle index e82c06e2..d2508d54 100644 --- a/build.gradle +++ b/build.gradle @@ -136,10 +136,10 @@ tasks.register('generateHelpLang', JavaExec) { classpath = sourceSets.main.compileClasspath + files(sourceSets.main.java.classesDirectory) mainClass = 'com.hyperfactions.build.HelpLangGenerator' args = [ - file('src/main/help').absolutePath, + file('src/main/resources/Server/Languages').absolutePath, layout.buildDirectory.dir('generated/resources').get().asFile.absolutePath ] - inputs.dir(file('src/main/help')) + inputs.dir(file('src/main/resources/Server/Languages')) outputs.dir(layout.buildDirectory.dir('generated/resources')) } diff --git a/scripts/new-translation.bat b/scripts/new-translation.bat index 15fe2462..e1d31dc0 100644 --- a/scripts/new-translation.bat +++ b/scripts/new-translation.bat @@ -22,8 +22,8 @@ popd set "LANG_SRC=%PROJECT_ROOT%\src\main\resources\Server\Languages\en-US" set "LANG_DST=%PROJECT_ROOT%\src\main\resources\Server\Languages\%LOCALE%" -set "HELP_SRC=%PROJECT_ROOT%\src\main\help\en-US" -set "HELP_DST=%PROJECT_ROOT%\src\main\help\%LOCALE%" +set "HELP_SRC=%PROJECT_ROOT%\src\main\resources\Server\Languages\en-US\help" +set "HELP_DST=%PROJECT_ROOT%\src\main\resources\Server\Languages\%LOCALE%\help" REM --- Validate source exists --- if not exist "%LANG_SRC%\" ( @@ -66,10 +66,10 @@ echo. echo === Scaffold Summary === echo Locale: %LOCALE% echo Lang files: %LANG_COUNT% copied to src\main\resources\Server\Languages\%LOCALE%\ -echo Help files: %HELP_COUNT% copied to src\main\help\%LOCALE%\ +echo Help files: %HELP_COUNT% copied to src\main\resources\Server\Languages\%LOCALE%\help\ echo. echo Next steps: echo 1. Add a header comment to each .lang file indicating the language and status echo 2. Translate the values (keep keys and {0} placeholders unchanged) -echo 3. Translate the help markdown files +echo 3. Translate the help markdown files in Server\Languages\%LOCALE%\help\ echo 4. Test in-game with /f settings to switch language diff --git a/scripts/new-translation.sh b/scripts/new-translation.sh index f6a29e0a..4674d972 100755 --- a/scripts/new-translation.sh +++ b/scripts/new-translation.sh @@ -21,8 +21,8 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" LANG_SRC="$PROJECT_ROOT/src/main/resources/Server/Languages/en-US" LANG_DST="$PROJECT_ROOT/src/main/resources/Server/Languages/$LOCALE" -HELP_SRC="$PROJECT_ROOT/src/main/help/en-US" -HELP_DST="$PROJECT_ROOT/src/main/help/$LOCALE" +HELP_SRC="$PROJECT_ROOT/src/main/resources/Server/Languages/en-US/help" +HELP_DST="$PROJECT_ROOT/src/main/resources/Server/Languages/$LOCALE/help" # --- Validate inputs --- if [[ ! "$LOCALE" =~ ^[a-z]{2}-[A-Z]{2}$ ]]; then @@ -71,10 +71,10 @@ echo "" echo "=== Scaffold Summary ===" echo "Locale: $LOCALE" echo "Lang files: $LANG_COUNT copied to src/main/resources/Server/Languages/$LOCALE/" -echo "Help files: $HELP_COUNT copied to src/main/help/$LOCALE/" +echo "Help files: $HELP_COUNT copied to src/main/resources/Server/Languages/$LOCALE/help/" echo "" echo "Next steps:" echo " 1. Add a header comment to each .lang file indicating the language and status" echo " 2. Translate the values (keep keys and {0} placeholders unchanged)" -echo " 3. Translate the help markdown files" +echo " 3. Translate the help markdown files in Server/Languages/$LOCALE/help/" echo " 4. Test in-game with /f settings to switch language" diff --git a/src/main/help/en-US/combat/death.md b/src/main/resources/Server/Languages/en-US/help/combat/death.md similarity index 100% rename from src/main/help/en-US/combat/death.md rename to src/main/resources/Server/Languages/en-US/help/combat/death.md diff --git a/src/main/help/en-US/combat/protection.md b/src/main/resources/Server/Languages/en-US/help/combat/protection.md similarity index 100% rename from src/main/help/en-US/combat/protection.md rename to src/main/resources/Server/Languages/en-US/help/combat/protection.md diff --git a/src/main/help/en-US/combat/tagging.md b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md similarity index 100% rename from src/main/help/en-US/combat/tagging.md rename to src/main/resources/Server/Languages/en-US/help/combat/tagging.md diff --git a/src/main/help/en-US/combat/zones.md b/src/main/resources/Server/Languages/en-US/help/combat/zones.md similarity index 100% rename from src/main/help/en-US/combat/zones.md rename to src/main/resources/Server/Languages/en-US/help/combat/zones.md diff --git a/src/main/help/en-US/diplomacy/alliances.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md similarity index 100% rename from src/main/help/en-US/diplomacy/alliances.md rename to src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md diff --git a/src/main/help/en-US/diplomacy/enemies.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md similarity index 100% rename from src/main/help/en-US/diplomacy/enemies.md rename to src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md diff --git a/src/main/help/en-US/diplomacy/relations.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md similarity index 100% rename from src/main/help/en-US/diplomacy/relations.md rename to src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md diff --git a/src/main/help/en-US/economy/commands.md b/src/main/resources/Server/Languages/en-US/help/economy/commands.md similarity index 100% rename from src/main/help/en-US/economy/commands.md rename to src/main/resources/Server/Languages/en-US/help/economy/commands.md diff --git a/src/main/help/en-US/economy/funds.md b/src/main/resources/Server/Languages/en-US/help/economy/funds.md similarity index 100% rename from src/main/help/en-US/economy/funds.md rename to src/main/resources/Server/Languages/en-US/help/economy/funds.md diff --git a/src/main/help/en-US/economy/treasury.md b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md similarity index 100% rename from src/main/help/en-US/economy/treasury.md rename to src/main/resources/Server/Languages/en-US/help/economy/treasury.md diff --git a/src/main/help/en-US/power_land/claiming.md b/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md similarity index 100% rename from src/main/help/en-US/power_land/claiming.md rename to src/main/resources/Server/Languages/en-US/help/power_land/claiming.md diff --git a/src/main/help/en-US/power_land/losing_territory.md b/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md similarity index 100% rename from src/main/help/en-US/power_land/losing_territory.md rename to src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md diff --git a/src/main/help/en-US/power_land/territory_map.md b/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md similarity index 100% rename from src/main/help/en-US/power_land/territory_map.md rename to src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md diff --git a/src/main/help/en-US/power_land/understanding_power.md b/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md similarity index 100% rename from src/main/help/en-US/power_land/understanding_power.md rename to src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md diff --git a/src/main/help/en-US/quick_ref/all_commands.md b/src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md similarity index 100% rename from src/main/help/en-US/quick_ref/all_commands.md rename to src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md diff --git a/src/main/help/en-US/welcome/getting_started.md b/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md similarity index 100% rename from src/main/help/en-US/welcome/getting_started.md rename to src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md diff --git a/src/main/help/en-US/welcome/quick_tips.md b/src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md similarity index 100% rename from src/main/help/en-US/welcome/quick_tips.md rename to src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md diff --git a/src/main/help/en-US/welcome/what_are_factions.md b/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md similarity index 100% rename from src/main/help/en-US/welcome/what_are_factions.md rename to src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md diff --git a/src/main/help/en-US/your_faction/creating.md b/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md similarity index 100% rename from src/main/help/en-US/your_faction/creating.md rename to src/main/resources/Server/Languages/en-US/help/your_faction/creating.md diff --git a/src/main/help/en-US/your_faction/joining.md b/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md similarity index 100% rename from src/main/help/en-US/your_faction/joining.md rename to src/main/resources/Server/Languages/en-US/help/your_faction/joining.md diff --git a/src/main/help/en-US/your_faction/managing.md b/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md similarity index 100% rename from src/main/help/en-US/your_faction/managing.md rename to src/main/resources/Server/Languages/en-US/help/your_faction/managing.md diff --git a/src/main/help/en-US/your_faction/roles.md b/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md similarity index 100% rename from src/main/help/en-US/your_faction/roles.md rename to src/main/resources/Server/Languages/en-US/help/your_faction/roles.md diff --git a/src/main/help/es-ES/combat/death.md b/src/main/resources/Server/Languages/es-ES/help/combat/death.md similarity index 100% rename from src/main/help/es-ES/combat/death.md rename to src/main/resources/Server/Languages/es-ES/help/combat/death.md diff --git a/src/main/help/es-ES/combat/protection.md b/src/main/resources/Server/Languages/es-ES/help/combat/protection.md similarity index 100% rename from src/main/help/es-ES/combat/protection.md rename to src/main/resources/Server/Languages/es-ES/help/combat/protection.md diff --git a/src/main/help/es-ES/combat/tagging.md b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md similarity index 100% rename from src/main/help/es-ES/combat/tagging.md rename to src/main/resources/Server/Languages/es-ES/help/combat/tagging.md diff --git a/src/main/help/es-ES/combat/zones.md b/src/main/resources/Server/Languages/es-ES/help/combat/zones.md similarity index 100% rename from src/main/help/es-ES/combat/zones.md rename to src/main/resources/Server/Languages/es-ES/help/combat/zones.md diff --git a/src/main/help/es-ES/diplomacy/alliances.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md similarity index 100% rename from src/main/help/es-ES/diplomacy/alliances.md rename to src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md diff --git a/src/main/help/es-ES/diplomacy/enemies.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md similarity index 100% rename from src/main/help/es-ES/diplomacy/enemies.md rename to src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md diff --git a/src/main/help/es-ES/diplomacy/relations.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md similarity index 100% rename from src/main/help/es-ES/diplomacy/relations.md rename to src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md diff --git a/src/main/help/es-ES/economy/commands.md b/src/main/resources/Server/Languages/es-ES/help/economy/commands.md similarity index 100% rename from src/main/help/es-ES/economy/commands.md rename to src/main/resources/Server/Languages/es-ES/help/economy/commands.md diff --git a/src/main/help/es-ES/economy/funds.md b/src/main/resources/Server/Languages/es-ES/help/economy/funds.md similarity index 100% rename from src/main/help/es-ES/economy/funds.md rename to src/main/resources/Server/Languages/es-ES/help/economy/funds.md diff --git a/src/main/help/es-ES/economy/treasury.md b/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md similarity index 100% rename from src/main/help/es-ES/economy/treasury.md rename to src/main/resources/Server/Languages/es-ES/help/economy/treasury.md diff --git a/src/main/help/es-ES/power_land/claiming.md b/src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md similarity index 100% rename from src/main/help/es-ES/power_land/claiming.md rename to src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md diff --git a/src/main/help/es-ES/power_land/losing_territory.md b/src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md similarity index 100% rename from src/main/help/es-ES/power_land/losing_territory.md rename to src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md diff --git a/src/main/help/es-ES/power_land/territory_map.md b/src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md similarity index 100% rename from src/main/help/es-ES/power_land/territory_map.md rename to src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md diff --git a/src/main/help/es-ES/power_land/understanding_power.md b/src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md similarity index 100% rename from src/main/help/es-ES/power_land/understanding_power.md rename to src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md diff --git a/src/main/help/es-ES/quick_ref/all_commands.md b/src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md similarity index 100% rename from src/main/help/es-ES/quick_ref/all_commands.md rename to src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md diff --git a/src/main/help/es-ES/welcome/getting_started.md b/src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md similarity index 100% rename from src/main/help/es-ES/welcome/getting_started.md rename to src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md diff --git a/src/main/help/es-ES/welcome/quick_tips.md b/src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md similarity index 100% rename from src/main/help/es-ES/welcome/quick_tips.md rename to src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md diff --git a/src/main/help/es-ES/welcome/what_are_factions.md b/src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md similarity index 100% rename from src/main/help/es-ES/welcome/what_are_factions.md rename to src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md diff --git a/src/main/help/es-ES/your_faction/creating.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md similarity index 100% rename from src/main/help/es-ES/your_faction/creating.md rename to src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md diff --git a/src/main/help/es-ES/your_faction/joining.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md similarity index 100% rename from src/main/help/es-ES/your_faction/joining.md rename to src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md diff --git a/src/main/help/es-ES/your_faction/managing.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md similarity index 100% rename from src/main/help/es-ES/your_faction/managing.md rename to src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md diff --git a/src/main/help/es-ES/your_faction/roles.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md similarity index 100% rename from src/main/help/es-ES/your_faction/roles.md rename to src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md diff --git a/src/main/resources/config.json b/src/main/resources/config.json deleted file mode 100644 index 7d86bcad..00000000 --- a/src/main/resources/config.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "faction": { - "maxMembers": 50, - "maxNameLength": 24, - "minNameLength": 3, - "allowColors": true - }, - "power": { - "maxPlayerPower": 20, - "startingPower": 10, - "powerPerClaim": 2, - "deathPenalty": 1, - "killRewardRequiresFaction": true, - "powerLossOnMobDeath": true, - "powerLossOnEnvironmentalDeath": true, - "regenPerMinute": 0.1, - "regenWhenOffline": false - }, - "claims": { - "maxClaims": 100, - "onlyAdjacent": false, - "decayEnabled": true, - "decayDaysInactive": 30, - "worldWhitelist": [], - "worldBlacklist": [] - }, - "combat": { - "tagDurationSeconds": 15, - "allyDamage": false, - "factionDamage": false, - "taggedLogoutPenalty": true, - "logoutPowerLoss": 1.0 - }, - "teleport": { - "warmupSeconds": 5, - "cooldownSeconds": 300, - "cancelOnMove": true, - "cancelOnDamage": true - }, - "updates": { - "enabled": true, - "url": "https://api.github.com/repos/HyperSystems-Development/HyperFactions/releases/latest", - "hyperProtect": { - "autoDownload": false, - "autoUpdate": true, - "url": "https://api.github.com/repos/HyperSystems-Development/HyperProtect-Mixin/releases/latest" - } - }, - "messages": { - "prefix": "\u00A7b[HyperFactions]\u00A7r ", - "primaryColor": "#00FFFF" - } -} From f6b5bc52292fae5ea5c373fb063ba779e7b89926 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:44:24 -0700 Subject: [PATCH 28/76] feat: restructure admin test commands and extend help markdown syntax Restructure /f admin testgui and sentrytest under /f admin test via new AdminTestHandler, adding /f admin test md for a future markdown visual test page. Extend the help system with 9 new markdown entry types: bold, italic, list (bullet + numbered), separator, callout boxes (with colored accent bars), inline hex colors ([#RRGGBB]), named color shortcuts (!warning, !success, !note, !muted), and typed callouts (>[!WARNING], >[!INFO], >[!NOTE], >[!SUCCESS], >[!TIP]). HelpEntry gains a color field for dynamic color overrides. The build-time HelpLangGenerator parses all new syntax and emits color metadata in help-manifest.json. HelpRegistry and HelpMainPage handle the new types at runtime, applying colors to text and callout accent bars. Five new .ui templates support the visual rendering. TIP entries are unified into CALLOUT (backward-compatible: old TIP manifests render as green callouts). --- .../build/HelpLangGenerator.java | 211 +++++++++++++++--- .../command/admin/AdminSubCommand.java | 34 +-- .../admin/handler/AdminTestHandler.java | 114 ++++++++++ .../java/com/hyperfactions/gui/UIPaths.java | 12 + .../com/hyperfactions/gui/help/HelpEntry.java | 68 ++++-- .../hyperfactions/gui/help/HelpRegistry.java | 10 +- .../gui/help/page/HelpMainPage.java | 42 +++- .../HyperFactions/help/help_line_bold.ui | 11 + .../HyperFactions/help/help_line_callout.ui | 18 ++ .../HyperFactions/help/help_line_italic.ui | 11 + .../HyperFactions/help/help_line_list.ui | 12 + .../HyperFactions/help/help_separator.ui | 10 + .../HyperFactions/test/markdown_test.ui | 32 +++ 13 files changed, 507 insertions(+), 78 deletions(-) create mode 100644 src/main/java/com/hyperfactions/command/admin/handler/AdminTestHandler.java create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_separator.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java index ab8d2b99..1a5bd136 100644 --- a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -6,19 +6,45 @@ import java.io.IOException; import java.nio.file.*; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Stream; /** * Build-time tool that converts help markdown files into .lang translation files * and a help-manifest.json for the HyperFactions help system. * - *

Usage: {@code java HelpLangGenerator } + *

Usage: {@code java HelpLangGenerator } * - *

Reads {@code src/main/help/{locale}/{category}/{topic}.md} and produces: + *

Reads {@code Server/Languages/{locale}/help/{category}/{topic}.md} and produces: *

    *
  • {@code {outputDir}/Server/Languages/{locale}/hyperfactions_help.lang}
  • *
  • {@code {outputDir}/help-manifest.json} (generated from en-US only)
  • *
+ * + *

Supported Markdown Syntax

+ *
+ * Plain text              → TEXT
+ * ## Heading              → HEADING
+ * `command`               → COMMAND
+ * **bold text**           → BOLD
+ * *italic text*           → ITALIC
+ * - list item             → LIST
+ * 1. numbered item        → LIST
+ * ---                     → SEPARATOR
+ * [#RRGGBB] text          → TEXT + color
+ * !warning text           → TEXT + #FF5555
+ * !success text           → TEXT + #55FF55
+ * !note text              → TEXT + #55AAFF
+ * !muted text             → TEXT + #888888
+ * > tip text              → CALLOUT + #55FF55
+ * >[!TIP] text            → CALLOUT + #55FF55
+ * >[!WARNING] text        → CALLOUT + #FF5555
+ * >[!INFO] text           → CALLOUT + #55AAFF
+ * >[!NOTE] text           → CALLOUT + #FFAA55
+ * >[!SUCCESS] text        → CALLOUT + #55FF55
+ * blank line              → SPACER
+ * 
*/ public class HelpLangGenerator { @@ -27,10 +53,43 @@ public class HelpLangGenerator { "welcome", "your_faction", "power_land", "diplomacy", "combat", "economy", "quick_ref" ); + /** Pattern for inline hex color: [#RRGGBB] text */ + private static final Pattern HEX_COLOR_PATTERN = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); + + /** Pattern for callout with type: >[!TYPE] text */ + private static final Pattern CALLOUT_TYPE_PATTERN = Pattern.compile("^>\\[!([A-Z]+)]\\s*(.+)$"); + + /** Pattern for numbered list: 1. text, 2. text, etc. */ + private static final Pattern NUMBERED_LIST_PATTERN = Pattern.compile("^\\d+\\.\\s+(.+)$"); + + /** Pattern for horizontal rule: 3+ dashes on a line */ + private static final Pattern HR_PATTERN = Pattern.compile("^-{3,}$"); + + /** Named color shortcuts */ + private static final Map NAMED_COLORS = Map.of( + "warning", "#FF5555", + "success", "#55FF55", + "note", "#55AAFF", + "muted", "#888888" + ); + + /** Callout type colors */ + private static final Map CALLOUT_COLORS = Map.of( + "TIP", "#55FF55", + "WARNING", "#FF5555", + "INFO", "#55AAFF", + "NOTE", "#FFAA55", + "SUCCESS", "#55FF55" + ); + // ── Data structures ────────────────────────────────────────────────── /** A single parsed entry from a markdown topic file. */ - record Entry(String type, String key) {} + record Entry(String type, String key, String color) { + Entry(String type, String key) { + this(type, key, null); + } + } /** A fully parsed topic ready for manifest / lang output. */ record Topic( @@ -48,30 +107,33 @@ record Topic( public static void main(String[] args) { if (args.length < 2) { - System.err.println("Usage: HelpLangGenerator "); + System.err.println("Usage: HelpLangGenerator "); System.exit(1); } - Path helpDir = Paths.get(args[0]); + Path langDir = Paths.get(args[0]); Path outputDir = Paths.get(args[1]); - if (!Files.isDirectory(helpDir)) { - System.err.println("Help directory not found: " + helpDir); + if (!Files.isDirectory(langDir)) { + System.err.println("Languages directory not found: " + langDir); System.exit(1); } try { - List locales = listSortedDirectories(helpDir); + // Find locales that have a help/ subdirectory + List locales = listSortedDirectories(langDir).stream() + .filter(d -> Files.isDirectory(langDir.resolve(d).resolve("help"))) + .toList(); if (locales.isEmpty()) { - System.err.println("No locale directories found under " + helpDir); + System.err.println("No locale directories with help/ found under " + langDir); System.exit(1); } - System.out.println("Found locales: " + locales); + System.out.println("Found locales with help content: " + locales); for (String locale : locales) { - Path localeDir = helpDir.resolve(locale); - List topics = parseLocale(localeDir); + Path helpDir = langDir.resolve(locale).resolve("help"); + List topics = parseLocale(helpDir); writeLangFile(outputDir, locale, topics); if ("en-US".equals(locale)) { @@ -124,12 +186,15 @@ private static Topic parseTopic(String category, Path mdFile) throws IOException String id = null; List commands = new ArrayList<>(); int contentStart = 0; + boolean inFrontmatter = false; if (!lines.isEmpty() && "---".equals(lines.get(0).trim())) { + inFrontmatter = true; for (int i = 1; i < lines.size(); i++) { String line = lines.get(i).trim(); if ("---".equals(line)) { contentStart = i + 1; + inFrontmatter = false; break; } if (line.startsWith("id:")) { @@ -187,37 +252,130 @@ private static Topic parseTopic(String category, Path mdFile) throws IOException foundFirstContent = true; - if (trimmed.startsWith("## ")) { - // H2 → HEADING + // ── Order matters: check specific patterns before plain text ── + + // 1. Horizontal rule: --- (3+ dashes, not in frontmatter context) + if (HR_PATTERN.matcher(trimmed).matches()) { + entries.add(new Entry("SEPARATOR", null)); + entryTexts.add(null); + continue; + } + + // 2. Callout with explicit type: >[!WARNING] text, >[!TIP] text, etc. + Matcher calloutMatcher = CALLOUT_TYPE_PATTERN.matcher(trimmed); + if (calloutMatcher.matches()) { + String calloutType = calloutMatcher.group(1); + String text = calloutMatcher.group(2).trim(); + String color = CALLOUT_COLORS.getOrDefault(calloutType, "#55FF55"); lineCounter++; String key = keyPrefix + ".line." + lineCounter; - String text = trimmed.substring(3).trim(); - entries.add(new Entry("HEADING", key)); + entries.add(new Entry("CALLOUT", key, color)); entryTexts.add(text); continue; } - if (trimmed.startsWith("`") && trimmed.endsWith("`") && trimmed.length() > 2) { - // Command line (backtick-wrapped) + // 3. Simple blockquote → CALLOUT (tip shorthand, green) + if (trimmed.startsWith("> ")) { + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(2).trim(); + entries.add(new Entry("CALLOUT", key, "#55FF55")); + entryTexts.add(text); + continue; + } + + // 4. Inline hex color: [#RRGGBB] text + Matcher hexMatcher = HEX_COLOR_PATTERN.matcher(trimmed); + if (hexMatcher.matches()) { + String color = "#" + hexMatcher.group(1); + String text = hexMatcher.group(2).trim(); + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + entries.add(new Entry("TEXT", key, color)); + entryTexts.add(text); + continue; + } + + // 5. Named color shortcuts: !warning, !success, !note, !muted + if (trimmed.startsWith("!")) { + String rest = trimmed.substring(1); + int spaceIdx = rest.indexOf(' '); + if (spaceIdx > 0) { + String colorName = rest.substring(0, spaceIdx).toLowerCase(); + String color = NAMED_COLORS.get(colorName); + if (color != null) { + String text = rest.substring(spaceIdx + 1).trim(); + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + entries.add(new Entry("TEXT", key, color)); + entryTexts.add(text); + continue; + } + } + } + + // 6. Bold: **text** (whole line wrapped) + if (trimmed.startsWith("**") && trimmed.endsWith("**") && trimmed.length() > 4) { + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(2, trimmed.length() - 2); + entries.add(new Entry("BOLD", key)); + entryTexts.add(text); + continue; + } + + // 7. Italic: *text* (whole line wrapped, but not bold **) + if (trimmed.startsWith("*") && trimmed.endsWith("*") && !trimmed.startsWith("**") && trimmed.length() > 2) { lineCounter++; String key = keyPrefix + ".line." + lineCounter; String text = trimmed.substring(1, trimmed.length() - 1); - entries.add(new Entry("COMMAND", key)); + entries.add(new Entry("ITALIC", key)); entryTexts.add(text); continue; } - if (trimmed.startsWith("> ")) { - // Blockquote → TIP + // 8. Bullet list: - text + if (trimmed.startsWith("- ")) { lineCounter++; String key = keyPrefix + ".line." + lineCounter; String text = trimmed.substring(2).trim(); - entries.add(new Entry("TIP", key)); + entries.add(new Entry("LIST", key)); entryTexts.add(text); continue; } - // Plain text → TEXT + // 9. Numbered list: 1. text, 2. text, etc. + Matcher numberedMatcher = NUMBERED_LIST_PATTERN.matcher(trimmed); + if (numberedMatcher.matches()) { + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + // Preserve the number prefix as part of the text + entries.add(new Entry("LIST", key)); + entryTexts.add(trimmed); + continue; + } + + // 10. H2 → HEADING + if (trimmed.startsWith("## ")) { + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(3).trim(); + entries.add(new Entry("HEADING", key)); + entryTexts.add(text); + continue; + } + + // 11. Command line (backtick-wrapped) + if (trimmed.startsWith("`") && trimmed.endsWith("`") && trimmed.length() > 2) { + lineCounter++; + String key = keyPrefix + ".line." + lineCounter; + String text = trimmed.substring(1, trimmed.length() - 1); + entries.add(new Entry("COMMAND", key)); + entryTexts.add(text); + continue; + } + + // 12. Plain text → TEXT lineCounter++; String key = keyPrefix + ".line." + lineCounter; entries.add(new Entry("TEXT", key)); @@ -243,8 +401,8 @@ private static void writeLangFile(Path outputDir, String locale, List top sb.append("# AUTO-GENERATED by HelpLangGenerator — do not edit manually\n\n"); for (Topic topic : topics) { - sb.append("# AUTO-GENERATED from src/main/help/") - .append(locale).append("/") + sb.append("# AUTO-GENERATED from Server/Languages/") + .append(locale).append("/help/") .append(topic.category()).append("/") .append(topic.topic()).append(".md\n"); @@ -287,6 +445,9 @@ private static void writeManifest(Path outputDir, List topics) throws IOE if (entry.key() != null) { entryMap.put("key", "hyperfactions_help." + entry.key()); } + if (entry.color() != null) { + entryMap.put("color", entry.color()); + } entryList.add(entryMap); } topicMap.put("entries", entryList); diff --git a/src/main/java/com/hyperfactions/command/admin/AdminSubCommand.java b/src/main/java/com/hyperfactions/command/admin/AdminSubCommand.java index 42517592..050f4c20 100644 --- a/src/main/java/com/hyperfactions/command/admin/AdminSubCommand.java +++ b/src/main/java/com/hyperfactions/command/admin/AdminSubCommand.java @@ -11,6 +11,7 @@ import com.hyperfactions.command.admin.handler.AdminIntegrationHandler; import com.hyperfactions.command.admin.handler.AdminMapDecayHandler; import com.hyperfactions.command.admin.handler.AdminPowerHandler; +import com.hyperfactions.command.admin.handler.AdminTestHandler; import com.hyperfactions.command.admin.handler.AdminUpdateHandler; import com.hyperfactions.command.admin.handler.AdminWorldHandler; import com.hyperfactions.command.admin.handler.AdminZoneHandler; @@ -73,6 +74,8 @@ public class AdminSubCommand extends AbstractAsyncCommand { private final AdminMapDecayHandler mapDecayHandler; + private final AdminTestHandler testHandler; + private final AdminWorldHandler worldHandler; /** Creates a new AdminSubCommand. */ @@ -92,6 +95,7 @@ public AdminSubCommand(@NotNull HyperFactions hyperFactions, @NotNull HyperFacti this.powerHandler = new AdminPowerHandler(hyperFactions, plugin); this.economyHandler = new AdminEconomyHandler(hyperFactions); this.mapDecayHandler = new AdminMapDecayHandler(hyperFactions); + this.testHandler = new AdminTestHandler(hyperFactions); this.worldHandler = new AdminWorldHandler(hyperFactions); } @@ -268,15 +272,7 @@ private void dispatchCommand(@NotNull CommandContext ctx, @Nullable Store { - if (!requirePlayer(ctx, isPlayer)) { - break; - } - Player playerEntity = store.getComponent(ref, Player.getComponentType()); - if (playerEntity != null) { - hyperFactions.getGuiManager().openButtonTestPage(playerEntity, ref, store, player); - } - } + case "test" -> testHandler.handleTest(ctx, store, ref, player, subArgs, isPlayer); case "safezone" -> { if (requirePlayer(ctx, isPlayer)) zoneHandler.handleSafezone(ctx, player, currentWorld, chunkX, chunkZ, args); } case "warzone" -> { if (requirePlayer(ctx, isPlayer)) zoneHandler.handleWarzone(ctx, player, currentWorld, chunkX, chunkZ, args); } case "removezone" -> { if (requirePlayer(ctx, isPlayer)) zoneHandler.handleRemovezone(ctx, currentWorld, chunkX, chunkZ); } @@ -287,7 +283,6 @@ private void dispatchCommand(@NotNull CommandContext ctx, @Nullable Store worldHandler.handleAdminWorld(ctx, player, subArgs); case "version" -> handleVersion(ctx, store, ref, player, isPlayer); case "sentry" -> handleSentry(ctx, subArgs); - case "sentrytest" -> handleSentryTest(ctx); case "log", "logs", "activitylog" -> { if (!requirePlayer(ctx, isPlayer)) { break; @@ -383,7 +378,9 @@ private void showAdminHelp(CommandContext ctx) { commands.add(new CommandHelp("/f admin sentry", "View Sentry status")); commands.add(new CommandHelp("/f admin sentry disable", "Opt out of Sentry error reporting")); commands.add(new CommandHelp("/f admin sentry enable", "Opt in to Sentry error reporting")); - commands.add(new CommandHelp("/f admin sentrytest", "Send a test error to Sentry")); + commands.add(new CommandHelp("/f admin test gui", "Open UI element test page")); + commands.add(new CommandHelp("/f admin test sentry", "Send a test error to Sentry")); + commands.add(new CommandHelp("/f admin test md", "Open markdown rendering test page")); ctx.sendMessage(HelpFormatter.buildHelp("Admin Commands", "Server administration", commands, null)); } @@ -457,21 +454,6 @@ private void handleSentry(CommandContext ctx, String[] args) { } } - // === Sentry Test === - private void handleSentryTest(CommandContext ctx) { - if (!SentryIntegration.isInitialized()) { - ctx.sendMessage(prefix().insert(msg("Sentry is not initialized. Check config/debug.json", COLOR_RED))); - return; - } - - boolean sent = SentryIntegration.sendTestEvent(); - if (sent) { - ctx.sendMessage(prefix().insert(msg("Test error sent to Sentry. Check your Sentry dashboard.", COLOR_GREEN))); - } else { - ctx.sendMessage(prefix().insert(msg("Failed to send test event.", COLOR_RED))); - } - } - // === Reload === private void handleReload(CommandContext ctx, PlayerRef player) { if (!hasPermission(player, Permissions.ADMIN)) { diff --git a/src/main/java/com/hyperfactions/command/admin/handler/AdminTestHandler.java b/src/main/java/com/hyperfactions/command/admin/handler/AdminTestHandler.java new file mode 100644 index 00000000..18462b93 --- /dev/null +++ b/src/main/java/com/hyperfactions/command/admin/handler/AdminTestHandler.java @@ -0,0 +1,114 @@ +package com.hyperfactions.command.admin.handler; + +import com.hyperfactions.HyperFactions; +import com.hyperfactions.command.util.CommandUtil; +import com.hyperfactions.integration.SentryIntegration; +import com.hyperfactions.util.CommandHelp; +import com.hyperfactions.util.HelpFormatter; +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.server.core.Message; +import com.hypixel.hytale.server.core.command.system.CommandContext; +import com.hypixel.hytale.server.core.entity.entities.Player; +import com.hypixel.hytale.server.core.universe.PlayerRef; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import java.util.ArrayList; +import java.util.List; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Handles /f admin test subcommands: gui, sentry, md. + */ +public class AdminTestHandler { + + private final HyperFactions hyperFactions; + + private static final String COLOR_CYAN = CommandUtil.COLOR_CYAN; + + private static final String COLOR_GREEN = CommandUtil.COLOR_GREEN; + + private static final String COLOR_RED = CommandUtil.COLOR_RED; + + private static final String COLOR_YELLOW = CommandUtil.COLOR_YELLOW; + + private static final String COLOR_GRAY = CommandUtil.COLOR_GRAY; + + private static Message prefix() { + return CommandUtil.prefix(); + } + + private static Message msg(String text, String color) { + return CommandUtil.msg(text, color); + } + + /** Creates a new AdminTestHandler. */ + public AdminTestHandler(@NotNull HyperFactions hyperFactions) { + this.hyperFactions = hyperFactions; + } + + /** + * Dispatches /f admin test subcommands. + */ + public void handleTest(@NotNull CommandContext ctx, @Nullable Store store, + @Nullable Ref ref, @Nullable PlayerRef player, + @NotNull String[] subArgs, boolean isPlayer) { + if (subArgs.length == 0) { + showTestHelp(ctx); + return; + } + + switch (subArgs[0].toLowerCase()) { + case "gui" -> handleTestGui(ctx, store, ref, player, isPlayer); + case "sentry" -> handleSentryTest(ctx); + case "md", "markdown" -> handleMarkdownTest(ctx, store, ref, player, isPlayer); + default -> showTestHelp(ctx); + } + } + + private void handleTestGui(CommandContext ctx, Store store, + Ref ref, PlayerRef player, boolean isPlayer) { + if (!isPlayer) { + ctx.sendMessage(prefix().insert(msg("This command can only be used by a player.", COLOR_RED))); + return; + } + Player playerEntity = store.getComponent(ref, Player.getComponentType()); + if (playerEntity != null) { + hyperFactions.getGuiManager().openButtonTestPage(playerEntity, ref, store, player); + } + } + + private void handleSentryTest(CommandContext ctx) { + if (!SentryIntegration.isInitialized()) { + ctx.sendMessage(prefix().insert(msg("Sentry is not initialized. Check config/debug.json", COLOR_RED))); + return; + } + + boolean sent = SentryIntegration.sendTestEvent(); + if (sent) { + ctx.sendMessage(prefix().insert(msg("Test error sent to Sentry. Check your Sentry dashboard.", COLOR_GREEN))); + } else { + ctx.sendMessage(prefix().insert(msg("Failed to send test event.", COLOR_RED))); + } + } + + private void handleMarkdownTest(CommandContext ctx, Store store, + Ref ref, PlayerRef player, boolean isPlayer) { + if (!isPlayer) { + ctx.sendMessage(prefix().insert(msg("This command can only be used by a player.", COLOR_RED))); + return; + } + Player playerEntity = store.getComponent(ref, Player.getComponentType()); + if (playerEntity != null) { + hyperFactions.getGuiManager().openMarkdownTestPage(playerEntity, ref, store, player); + } + } + + private void showTestHelp(CommandContext ctx) { + List commands = new ArrayList<>(); + commands.add(new CommandHelp("/f admin test gui", "Open UI element test page")); + commands.add(new CommandHelp("/f admin test sentry", "Send test error to Sentry")); + commands.add(new CommandHelp("/f admin test md", "Open markdown rendering test page")); + ctx.sendMessage(HelpFormatter.buildHelp("Test Commands", "Development testing tools", commands, null)); + } +} diff --git a/src/main/java/com/hyperfactions/gui/UIPaths.java b/src/main/java/com/hyperfactions/gui/UIPaths.java index f55799dd..81feb523 100644 --- a/src/main/java/com/hyperfactions/gui/UIPaths.java +++ b/src/main/java/com/hyperfactions/gui/UIPaths.java @@ -174,6 +174,16 @@ private UIPaths() {} public static final String HELP_SPACER = BASE + "help/help_spacer.ui"; + public static final String HELP_LINE_BOLD = BASE + "help/help_line_bold.ui"; + + public static final String HELP_LINE_ITALIC = BASE + "help/help_line_italic.ui"; + + public static final String HELP_LINE_LIST = BASE + "help/help_line_list.ui"; + + public static final String HELP_SEPARATOR = BASE + "help/help_separator.ui"; + + public static final String HELP_LINE_CALLOUT = BASE + "help/help_line_callout.ui"; + // ── Admin pages ───────────────────────────────────────────────────────── public static final String ADMIN_MAIN = BASE + "admin/admin_main.ui"; @@ -255,4 +265,6 @@ private UIPaths() {} // ── Test ──────────────────────────────────────────────────────────────── public static final String BUTTON_TEST = BASE + "test/button_test.ui"; + + public static final String MARKDOWN_TEST = BASE + "test/markdown_test.ui"; } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java index 0df48b59..7ea6e53a 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java @@ -10,9 +10,10 @@ * doesn't rely on fragile string-prefix detection. * * @param type The visual type of this entry - * @param messageKey The HelpMessages key for this entry's text (ignored for SPACER) + * @param messageKey The HelpMessages key for this entry's text (ignored for SPACER/SEPARATOR) + * @param color Optional color override (hex string like "#FF5555"), null for default */ -public record HelpEntry(@NotNull EntryType type, @NotNull String messageKey) { +public record HelpEntry(@NotNull EntryType type, @NotNull String messageKey, @Nullable String color) { /** * Visual types for help content lines. @@ -22,22 +23,30 @@ public enum EntryType { TEXT, /** Command callout (#FFFF55, bold). */ COMMAND, - /** Green tip/advice text (#55FF55). */ - TIP, /** Bold sub-heading within a card (#00AAAA). */ HEADING, /** Visual separator (no text). */ - SPACER + SPACER, + /** Bold text (#CCCCCC, bold). */ + BOLD, + /** Italic text (#CCCCCC, italic). */ + ITALIC, + /** List item with indent (#CCCCCC). */ + LIST, + /** Horizontal rule separator (no text). */ + SEPARATOR, + /** Boxed callout with colored accent bar. */ + CALLOUT } /** * Gets the resolved display text for this entry (server default language). * - * @return The localized text, or empty string for spacers + * @return The localized text, or empty string for spacers/separators */ @NotNull public String text() { - return type == EntryType.SPACER ? "" : HelpMessages.get(messageKey); + return type == EntryType.SPACER || type == EntryType.SEPARATOR ? "" : HelpMessages.get(messageKey); } /** @@ -45,31 +54,56 @@ public String text() { */ @NotNull public String text(@Nullable PlayerRef playerRef) { - return type == EntryType.SPACER ? "" : HelpMessages.get(playerRef, messageKey); + return type == EntryType.SPACER || type == EntryType.SEPARATOR ? "" : HelpMessages.get(playerRef, messageKey); } /** Creates a TEXT entry. */ public static HelpEntry text(@NotNull String messageKey) { - return new HelpEntry(EntryType.TEXT, messageKey); + return new HelpEntry(EntryType.TEXT, messageKey, null); } /** Creates a COMMAND entry. */ public static HelpEntry command(@NotNull String messageKey) { - return new HelpEntry(EntryType.COMMAND, messageKey); - } - - /** Creates a TIP entry. */ - public static HelpEntry tip(@NotNull String messageKey) { - return new HelpEntry(EntryType.TIP, messageKey); + return new HelpEntry(EntryType.COMMAND, messageKey, null); } /** Creates a HEADING entry. */ public static HelpEntry heading(@NotNull String messageKey) { - return new HelpEntry(EntryType.HEADING, messageKey); + return new HelpEntry(EntryType.HEADING, messageKey, null); } /** Creates a SPACER entry. */ public static HelpEntry spacer() { - return new HelpEntry(EntryType.SPACER, ""); + return new HelpEntry(EntryType.SPACER, "", null); + } + + /** Creates a BOLD entry. */ + public static HelpEntry bold(@NotNull String messageKey) { + return new HelpEntry(EntryType.BOLD, messageKey, null); + } + + /** Creates an ITALIC entry. */ + public static HelpEntry italic(@NotNull String messageKey) { + return new HelpEntry(EntryType.ITALIC, messageKey, null); + } + + /** Creates a LIST entry. */ + public static HelpEntry list(@NotNull String messageKey) { + return new HelpEntry(EntryType.LIST, messageKey, null); + } + + /** Creates a SEPARATOR entry. */ + public static HelpEntry separator() { + return new HelpEntry(EntryType.SEPARATOR, "", null); + } + + /** Creates a CALLOUT entry with a color. */ + public static HelpEntry callout(@NotNull String messageKey, @Nullable String color) { + return new HelpEntry(EntryType.CALLOUT, messageKey, color); + } + + /** Creates a TEXT entry with a custom color. */ + public static HelpEntry colored(@NotNull String messageKey, @NotNull String color) { + return new HelpEntry(EntryType.TEXT, messageKey, color); } } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java index c9f7b425..e849c71b 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java @@ -138,13 +138,19 @@ private HelpTopic parseTopic(@NotNull JsonObject topicObj) { JsonObject entryObj = entryElement.getAsJsonObject(); String type = entryObj.get("type").getAsString(); String key = entryObj.has("key") ? entryObj.get("key").getAsString() : ""; + String color = entryObj.has("color") ? entryObj.get("color").getAsString() : null; HelpEntry entry = switch (type) { - case "TEXT" -> HelpEntry.text(key); + case "TEXT" -> color != null ? HelpEntry.colored(key, color) : HelpEntry.text(key); case "COMMAND" -> HelpEntry.command(key); - case "TIP" -> HelpEntry.tip(key); + case "TIP" -> HelpEntry.callout(key, "#55FF55"); // backward compat case "HEADING" -> HelpEntry.heading(key); case "SPACER" -> HelpEntry.spacer(); + case "BOLD" -> HelpEntry.bold(key); + case "ITALIC" -> HelpEntry.italic(key); + case "LIST" -> HelpEntry.list(key); + case "SEPARATOR" -> HelpEntry.separator(); + case "CALLOUT" -> HelpEntry.callout(key, color); default -> null; }; if (entry != null) { diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index b6deddd3..a36a806d 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -39,12 +39,20 @@ public class HelpMainPage extends InteractiveCustomUIPage { private static final String TPL_LINE_COMMAND = UIPaths.HELP_LINE_COMMAND; - private static final String TPL_LINE_TIP = UIPaths.HELP_LINE_TIP; - private static final String TPL_LINE_HEADING = UIPaths.HELP_LINE_HEADING; private static final String TPL_SPACER = UIPaths.HELP_SPACER; + private static final String TPL_LINE_BOLD = UIPaths.HELP_LINE_BOLD; + + private static final String TPL_LINE_ITALIC = UIPaths.HELP_LINE_ITALIC; + + private static final String TPL_LINE_LIST = UIPaths.HELP_LINE_LIST; + + private static final String TPL_SEPARATOR = UIPaths.HELP_SEPARATOR; + + private static final String TPL_LINE_CALLOUT = UIPaths.HELP_LINE_CALLOUT; + private final PlayerRef playerRef; private final GuiManager guiManager; @@ -162,13 +170,27 @@ private void buildTopicCards(UICommandBuilder cmd) { String template = getTemplateForType(entry.type()); cmd.append(linesContainer, template); - if (entry.type() != HelpEntry.EntryType.SPACER) { + String selector = linesContainer + "[" + lineIndex + "]"; + + if (entry.type() != HelpEntry.EntryType.SPACER && entry.type() != HelpEntry.EntryType.SEPARATOR) { String text = entry.text(playerRef); - // Prefix tips with >> for visual distinction - if (entry.type() == HelpEntry.EntryType.TIP) { - text = ">> " + text; + + // Add bullet prefix for unordered list items + if (entry.type() == HelpEntry.EntryType.LIST && !text.matches("^\\d+\\.\\s.*")) { + text = "\u2022 " + text; + } + + cmd.set(selector + " #Text.Text", text); + + // Apply color override if present + if (entry.color() != null) { + cmd.set(selector + " #Text.Style.TextColor", entry.color()); + + // For callouts, also color the accent bar + if (entry.type() == HelpEntry.EntryType.CALLOUT) { + cmd.set(selector + " #AccentBar.Background.Color", entry.color()); + } } - cmd.set(linesContainer + "[" + lineIndex + "] #Text.Text", text); } lineIndex++; } @@ -183,9 +205,13 @@ private String getTemplateForType(HelpEntry.EntryType type) { return switch (type) { case TEXT -> TPL_LINE_TEXT; case COMMAND -> TPL_LINE_COMMAND; - case TIP -> TPL_LINE_TIP; case HEADING -> TPL_LINE_HEADING; case SPACER -> TPL_SPACER; + case BOLD -> TPL_LINE_BOLD; + case ITALIC -> TPL_LINE_ITALIC; + case LIST -> TPL_LINE_LIST; + case SEPARATOR -> TPL_SEPARATOR; + case CALLOUT -> TPL_LINE_CALLOUT; }; } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui new file mode 100644 index 00000000..a797018d --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui @@ -0,0 +1,11 @@ +// Help content line - bold text (gray, bold) + +Group { + Anchor: (Height: 16); + + Label #Text { + Text: ""; + Style: (FontSize: 11, TextColor: #CCCCCC, RenderBold: true); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui new file mode 100644 index 00000000..68b07331 --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui @@ -0,0 +1,18 @@ +// Help content line - callout box with colored left accent bar + +Group { + Anchor: (Height: 22, Top: 2, Bottom: 2); + Padding: (Left: 12); + Background: (Color: #1a2a1a); + + Group #AccentBar { + Anchor: (Width: 3, Top: 0, Bottom: 0, Left: 0); + Background: (Color: #55FF55); + } + + Label #Text { + Text: ""; + Style: (FontSize: 11, TextColor: #55FF55); + Anchor: (Left: 10, Right: 4, Top: 0, Bottom: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui new file mode 100644 index 00000000..144846d0 --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui @@ -0,0 +1,11 @@ +// Help content line - italic text (gray, italic) + +Group { + Anchor: (Height: 16); + + Label #Text { + Text: ""; + Style: (FontSize: 11, TextColor: #CCCCCC, RenderItalics: true); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui new file mode 100644 index 00000000..81982732 --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui @@ -0,0 +1,12 @@ +// Help content line - list item with left indent + +Group { + Anchor: (Height: 16); + Padding: (Left: 12); + + Label #Text { + Text: ""; + Style: (FontSize: 11, TextColor: #CCCCCC); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_separator.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_separator.ui new file mode 100644 index 00000000..85f6ca9a --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_separator.ui @@ -0,0 +1,10 @@ +// Help separator - visible horizontal rule + +Group { + Anchor: (Height: 10); + + Group { + Anchor: (Height: 1, Left: 4, Right: 4, Top: 4); + Background: (Color: #2a3a4a); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui b/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui new file mode 100644 index 00000000..1796fe9c --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui @@ -0,0 +1,32 @@ +// Markdown rendering test page — /f admin test md +$C = "../../Common.ui"; + +Group { + Anchor: (Width: 700, Height: 650); + Background: (Color: #0d1117); + + // Title bar + Group { + Anchor: (Height: 40); + Background: (Color: #161b22); + + Label #PageTitle { + Text: "Markdown Test Page"; + Style: (FontSize: 14, TextColor: #00AAAA, RenderBold: true, HorizontalAlignment: Center, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } + } + + // Scrollable content area + Group { + Anchor: (Top: 44, Left: 12, Right: 12, Bottom: 12); + LayoutMode: TopScrolling; + ScrollbarStyle: $C.@DefaultScrollbarStyle; + + // Content entries appended here by Java + Group #ContentList { + LayoutMode: Top; + Anchor: (Left: 0, Right: 0); + } + } +} From b31839e9681398925ed64ae971a894fe55918585 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:46:06 -0700 Subject: [PATCH 29/76] feat: add markdown rendering test page (/f admin test md) Visual test page that renders every supported help markdown entry type using the real .ui templates. Shows syntax labels alongside rendered output for verification: text, heading, command, bold, italic, bullet/numbered lists, separators, hex colors, named color shortcuts, and all callout box types. Includes edge cases for text wrapping and mixed content flow. --- .../hyperfactions/gui/FactionPageOpener.java | 17 +- .../com/hyperfactions/gui/GuiManager.java | 8 +- .../gui/test/MarkdownTestPage.java | 311 ++++++++++++++++++ 3 files changed, 334 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java diff --git a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java index 0d06e1cb..03a6fe95 100644 --- a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java +++ b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java @@ -13,6 +13,7 @@ import com.hyperfactions.gui.newplayer.page.*; import com.hyperfactions.gui.shared.page.*; import com.hyperfactions.gui.test.ButtonTestPage; +import com.hyperfactions.gui.test.MarkdownTestPage; import com.hyperfactions.manager.*; import com.hyperfactions.storage.PlayerStorage; import com.hyperfactions.util.ErrorHandler; @@ -1012,7 +1013,6 @@ public void openPlayerInfo(Player player, Ref ref, /** * Opens the button style test page. - * Temporary — DELETE after testing is complete. */ public void openButtonTestPage(Player player, Ref ref, Store store, PlayerRef playerRef) { @@ -1026,4 +1026,19 @@ public void openButtonTestPage(Player player, Ref ref, } } + /** + * Opens the markdown rendering test page. + */ + public void openMarkdownTestPage(Player player, Ref ref, + Store store, PlayerRef playerRef) { + Logger.info("[GUI] Opening MarkdownTestPage for %s", playerRef.getUsername()); + try { + PageManager pageManager = player.getPageManager(); + MarkdownTestPage page = new MarkdownTestPage(playerRef); + pageManager.openCustomPage(ref, store, page); + } catch (Exception e) { + ErrorHandler.report("[GUI] Failed to open MarkdownTestPage", e); + } + } + } diff --git a/src/main/java/com/hyperfactions/gui/GuiManager.java b/src/main/java/com/hyperfactions/gui/GuiManager.java index df7a2703..af6ed713 100644 --- a/src/main/java/com/hyperfactions/gui/GuiManager.java +++ b/src/main/java/com/hyperfactions/gui/GuiManager.java @@ -1128,12 +1128,18 @@ public void openHelp(Player player, Ref ref, newPlayerPageOpener.openHelp(player, ref, store, playerRef, category); } - /** Opens the button test page page. */ + /** Opens the button test page. */ public void openButtonTestPage(Player player, Ref ref, Store store, PlayerRef playerRef) { factionPageOpener.openButtonTestPage(player, ref, store, playerRef); } + /** Opens the markdown rendering test page. */ + public void openMarkdownTestPage(Player player, Ref ref, + Store store, PlayerRef playerRef) { + factionPageOpener.openMarkdownTestPage(player, ref, store, playerRef); + } + /** * Closes the current page. * diff --git a/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java b/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java new file mode 100644 index 00000000..68442263 --- /dev/null +++ b/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java @@ -0,0 +1,311 @@ +package com.hyperfactions.gui.test; + +import com.hyperfactions.gui.UIPaths; +import com.hyperfactions.gui.help.HelpEntry; +import com.hyperfactions.gui.help.HelpEntry.EntryType; +import com.hyperfactions.gui.shared.data.PlaceholderData; +import com.hypixel.hytale.component.Ref; +import com.hypixel.hytale.component.Store; +import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; +import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; +import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; +import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; +import com.hypixel.hytale.server.core.universe.PlayerRef; +import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import java.util.ArrayList; +import java.util.List; + +/** + * Visual test page that renders every supported markdown entry type + * using the real help templates. Serves as both a verification tool + * and documentation for markdown authors. + * + *

Open via: /f admin test md + */ +public class MarkdownTestPage extends InteractiveCustomUIPage { + + // Template paths + private static final String TPL_LINE_TEXT = UIPaths.HELP_LINE_TEXT; + private static final String TPL_LINE_COMMAND = UIPaths.HELP_LINE_COMMAND; + private static final String TPL_LINE_HEADING = UIPaths.HELP_LINE_HEADING; + private static final String TPL_SPACER = UIPaths.HELP_SPACER; + private static final String TPL_LINE_BOLD = UIPaths.HELP_LINE_BOLD; + private static final String TPL_LINE_ITALIC = UIPaths.HELP_LINE_ITALIC; + private static final String TPL_LINE_LIST = UIPaths.HELP_LINE_LIST; + private static final String TPL_SEPARATOR = UIPaths.HELP_SEPARATOR; + private static final String TPL_LINE_CALLOUT = UIPaths.HELP_LINE_CALLOUT; + + /** Creates a new MarkdownTestPage. */ + public MarkdownTestPage(PlayerRef playerRef) { + super(playerRef, CustomPageLifetime.CanDismiss, PlaceholderData.CODEC); + } + + @Override + public void build(Ref ref, UICommandBuilder cmd, + UIEventBuilder events, Store store) { + cmd.append(UIPaths.MARKDOWN_TEST); + + List entries = buildTestEntries(); + int index = 0; + + for (TestEntry entry : entries) { + if (entry.isSyntaxLabel) { + // Syntax label — rendered as muted gray text + cmd.append("#ContentList", TPL_LINE_TEXT); + String selector = "#ContentList[" + index + "]"; + cmd.set(selector + " #Text.Text", entry.text); + cmd.set(selector + " #Text.Style.TextColor", "#666666"); + cmd.set(selector + " #Text.Style.FontSize", 10); + index++; + continue; + } + + // Real rendered entry using the appropriate template + String template = getTemplateForType(entry.type); + cmd.append("#ContentList", template); + String selector = "#ContentList[" + index + "]"; + + if (entry.type != EntryType.SPACER && entry.type != EntryType.SEPARATOR) { + String text = entry.text; + + // Add bullet prefix for unordered list items + if (entry.type == EntryType.LIST && !text.matches("^\\d+\\.\\s.*")) { + text = "\u2022 " + text; + } + + cmd.set(selector + " #Text.Text", text); + + // Apply color override + if (entry.color != null) { + cmd.set(selector + " #Text.Style.TextColor", entry.color); + + if (entry.type == EntryType.CALLOUT) { + cmd.set(selector + " #AccentBar.Background.Color", entry.color); + } + } + } + index++; + } + } + + @Override + public void handleDataEvent(Ref ref, Store store, + PlaceholderData data) { + sendUpdate(); + } + + private String getTemplateForType(EntryType type) { + return switch (type) { + case TEXT -> TPL_LINE_TEXT; + case COMMAND -> TPL_LINE_COMMAND; + case HEADING -> TPL_LINE_HEADING; + case SPACER -> TPL_SPACER; + case BOLD -> TPL_LINE_BOLD; + case ITALIC -> TPL_LINE_ITALIC; + case LIST -> TPL_LINE_LIST; + case SEPARATOR -> TPL_SEPARATOR; + case CALLOUT -> TPL_LINE_CALLOUT; + }; + } + + /** + * Builds the comprehensive list of test entries. + * Each section: gray syntax label, then the rendered result. + */ + private List buildTestEntries() { + List entries = new ArrayList<>(); + + // ── Section: Basic Entry Types ── + section(entries, "BASIC ENTRY TYPES"); + + syntax(entries, "Plain text"); + entry(entries, EntryType.TEXT, "This is a plain text line."); + + syntax(entries, "Plain text (second line)"); + entry(entries, EntryType.TEXT, "Another text line to verify stacking."); + + syntax(entries, "(blank line)"); + entry(entries, EntryType.SPACER, ""); + + syntax(entries, "## Sub-Heading"); + entry(entries, EntryType.HEADING, "Sub-Heading"); + + syntax(entries, "`/f create `"); + entry(entries, EntryType.COMMAND, "/f create "); + + syntax(entries, "`/f claim`"); + entry(entries, EntryType.COMMAND, "/f claim"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Text Formatting ── + section(entries, "TEXT FORMATTING"); + + syntax(entries, "**This text is bold**"); + entry(entries, EntryType.BOLD, "This text is bold"); + + syntax(entries, "*This text is italicized*"); + entry(entries, EntryType.ITALIC, "This text is italicized"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Lists ── + section(entries, "LISTS"); + + syntax(entries, "- First bullet item"); + entry(entries, EntryType.LIST, "First bullet item"); + + syntax(entries, "- Second bullet item"); + entry(entries, EntryType.LIST, "Second bullet item"); + + syntax(entries, "- Third bullet item"); + entry(entries, EntryType.LIST, "Third bullet item"); + + entry(entries, EntryType.SPACER, ""); + + syntax(entries, "1. First numbered item"); + entry(entries, EntryType.LIST, "1. First numbered item"); + + syntax(entries, "2. Second numbered item"); + entry(entries, EntryType.LIST, "2. Second numbered item"); + + syntax(entries, "3. Third numbered item"); + entry(entries, EntryType.LIST, "3. Third numbered item"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Separators ── + section(entries, "SEPARATORS"); + + syntax(entries, "---"); + entry(entries, EntryType.SEPARATOR, ""); + + syntax(entries, "Text after separator"); + entry(entries, EntryType.TEXT, "Content continues after the horizontal rule."); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Inline Hex Colors ── + section(entries, "INLINE HEX COLORS"); + + syntax(entries, "[#FF5555] Red text"); + colored(entries, "Red colored text", "#FF5555"); + + syntax(entries, "[#55AAFF] Blue text"); + colored(entries, "Blue colored text", "#55AAFF"); + + syntax(entries, "[#FFAA55] Orange text"); + colored(entries, "Orange colored text", "#FFAA55"); + + syntax(entries, "[#AA55FF] Purple text"); + colored(entries, "Purple colored text", "#AA55FF"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Named Color Shortcuts ── + section(entries, "NAMED COLOR SHORTCUTS"); + + syntax(entries, "!warning This is a warning"); + colored(entries, "This is a warning", "#FF5555"); + + syntax(entries, "!success This is a success message"); + colored(entries, "This is a success message", "#55FF55"); + + syntax(entries, "!note This is a note"); + colored(entries, "This is a note", "#55AAFF"); + + syntax(entries, "!muted This is muted/dimmed text"); + colored(entries, "This is muted/dimmed text", "#888888"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Callout Boxes ── + section(entries, "CALLOUT BOXES"); + + syntax(entries, "> This is a tip (shorthand)"); + callout(entries, "This is a tip", "#55FF55"); + + syntax(entries, ">[!TIP] This is an explicit tip"); + callout(entries, "This is an explicit tip", "#55FF55"); + + syntax(entries, ">[!WARNING] Don't log out while combat tagged!"); + callout(entries, "Don't log out while combat tagged!", "#FF5555"); + + syntax(entries, ">[!INFO] Allies can access your chests"); + callout(entries, "Allies can access your chests", "#55AAFF"); + + syntax(entries, ">[!NOTE] Officers can invite new members"); + callout(entries, "Officers can invite new members", "#FFAA55"); + + syntax(entries, ">[!SUCCESS] Territory claimed successfully"); + callout(entries, "Territory claimed successfully", "#55FF55"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Edge Cases ── + section(entries, "EDGE CASES"); + + syntax(entries, "Long text line (wrapping test)"); + entry(entries, EntryType.TEXT, + "This is a very long text line intended to test whether the help system properly handles text that extends beyond the visible width of the content container, requiring wrapping or truncation."); + + syntax(entries, "Long command (wrapping test)"); + entry(entries, EntryType.COMMAND, + "/f admin economy set --confirm --force --reason \"testing\""); + + syntax(entries, "Long list item (wrapping test)"); + entry(entries, EntryType.LIST, + "This is a long bullet point that tests how list items with significant amounts of text wrap within the indented list template."); + + syntax(entries, "Long callout (wrapping test)"); + callout(entries, "This is a very long callout box to verify that the text inside properly wraps within the callout container with its accent bar and padding.", "#55AAFF"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Mixed Content Flow ── + section(entries, "MIXED CONTENT FLOW"); + + entry(entries, EntryType.TEXT, "Create a faction to get started with territory control."); + entry(entries, EntryType.COMMAND, "/f create "); + entry(entries, EntryType.TEXT, "Then claim your first chunk of land:"); + callout(entries, "Stand in the chunk you want to claim before running the command.", "#55FF55"); + + entry(entries, EntryType.SPACER, ""); + entry(entries, EntryType.SPACER, ""); + + syntax(entries, "Double spacer above, then heading after separator:"); + entry(entries, EntryType.SEPARATOR, ""); + entry(entries, EntryType.HEADING, "New Section After Rule"); + entry(entries, EntryType.TEXT, "Content in the new section."); + + return entries; + } + + // ── Helper methods ── + + private void section(List entries, String title) { + entries.add(new TestEntry(EntryType.HEADING, title, null, false)); + entries.add(new TestEntry(EntryType.SEPARATOR, "", null, false)); + } + + private void syntax(List entries, String markdown) { + entries.add(new TestEntry(null, markdown, null, true)); + } + + private void entry(List entries, EntryType type, String text) { + entries.add(new TestEntry(type, text, null, false)); + } + + private void colored(List entries, String text, String color) { + entries.add(new TestEntry(EntryType.TEXT, text, color, false)); + } + + private void callout(List entries, String text, String color) { + entries.add(new TestEntry(EntryType.CALLOUT, text, color, false)); + } + + /** + * A test entry that can either be a syntax label or a real rendered entry. + */ + private record TestEntry(EntryType type, String text, String color, boolean isSyntaxLabel) {} +} From e58857a4e1fed94c654c8ca2efd5e545e1504588 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:48:18 -0700 Subject: [PATCH 30/76] docs: add help markdown style guide and move translation guide to docs/ Add docs/help-markdown.md covering the full help markdown syntax (bold, italic, lists, separators, colors, callouts) with examples. Move TRANSLATION_GUIDE.md to docs/translation-guide.md and update it with the new syntax types and clear guidance on what to translate vs. what to keep (color codes, callout type tags, named shortcuts stay in English across all locales). --- docs/help-markdown.md | 160 ++++++++++++++++++ .../translation-guide.md | 84 +++++---- 2 files changed, 212 insertions(+), 32 deletions(-) create mode 100644 docs/help-markdown.md rename TRANSLATION_GUIDE.md => docs/translation-guide.md (69%) diff --git a/docs/help-markdown.md b/docs/help-markdown.md new file mode 100644 index 00000000..f16da193 --- /dev/null +++ b/docs/help-markdown.md @@ -0,0 +1,160 @@ +# Help Markdown Style Guide + +Reference for content authors writing HyperFactions help topics. + +Help files are located at `src/main/resources/Server/Languages/{locale}/help/{category}/{topic}.md` and compiled into `.lang` files and `help-manifest.json` at build time by `HelpLangGenerator`. + +## Frontmatter + +Every topic file starts with YAML frontmatter: + +```markdown +--- +id: welcome_started +commands: gui, menu, create +--- +``` + +- `id` — Unique topic identifier (optional, defaults to `{category}_{filename}`) +- `commands` — Comma-separated list of command names that deep-link to this topic + +## Syntax Reference + +### Basic Entry Types + +| Syntax | Type | Default Color | Style | +|---|---|---|---| +| Plain text | TEXT | #CCCCCC | normal | +| `## Heading` | HEADING | #00AAAA | bold | +| `` `command` `` | COMMAND | #FFFF55 | bold | +| Blank line | SPACER | — | — | + +### Text Formatting + +| Syntax | Type | Style | +|---|---|---| +| `**bold text**` | BOLD | #CCCCCC, bold | +| `*italic text*` | ITALIC | #CCCCCC, italic | + +Bold and italic are **whole-line only**. You cannot mix bold/italic within a line (`some **bold** here` does NOT work — the entire line must be wrapped). + +### Lists + +| Syntax | Rendering | +|---|---| +| `- item text` | Bullet list item (indented, with bullet prefix) | +| `1. item text` | Numbered list item (indented, number preserved in text) | + +List items are indented 12px from normal text. Bullet items get a `•` prefix automatically. Numbered items keep the `1.` prefix as written. + +### Separators + +```markdown +--- +``` + +Three or more dashes on a line (outside frontmatter) render as a visible horizontal rule — a thin line at `#2a3a4a`. + +### Inline Colors + +#### Hex Colors + +```markdown +[#FF5555] This text appears in red +[#55AAFF] This text appears in blue +``` + +Any `[#RRGGBB]` prefix sets the text color. Uses the TEXT template. + +#### Named Shortcuts + +| Syntax | Color | Use Case | +|---|---|---| +| `!warning text` | #FF5555 (red) | Warnings, errors | +| `!success text` | #55FF55 (green) | Success messages | +| `!note text` | #55AAFF (blue) | Informational notes | +| `!muted text` | #888888 (gray) | De-emphasized text | + +Named shortcuts are syntactic sugar for `[#hex]` colors. Uses the TEXT template. + +### Callout Boxes + +Callouts render as boxed text with a colored left accent bar and tinted background. + +#### Simple Callout (Tip) + +```markdown +> This renders as a green tip callout +``` + +`>` (blockquote) is shorthand for `>[!TIP]`. + +#### Typed Callouts + +| Syntax | Color | Use Case | +|---|---|---| +| `>[!TIP] text` | #55FF55 (green) | Tips and advice | +| `>[!WARNING] text` | #FF5555 (red) | Dangers, cautions | +| `>[!INFO] text` | #55AAFF (blue) | Supplementary info | +| `>[!NOTE] text` | #FFAA55 (orange) | Important notes | +| `>[!SUCCESS] text` | #55FF55 (green) | Confirmation messages | + +The type tag (`[!WARNING]`, etc.) controls the accent bar and text color. + +## Example Topic + +```markdown +--- +id: power_claiming +commands: claim, unclaim, autoclaim +--- +# Claiming Territory + +## How Claims Work + +Each chunk you claim costs 1 power. Your faction can claim +as many chunks as it has power. + +`/f claim` +`/f unclaim` + +- Stand in the chunk you want to claim +- Your faction must have enough power +- You cannot claim next to enemy territory + +## Auto-Claim Mode + +**Auto-claim claims every chunk you walk into.** + +`/f autoclaim` + +> Toggle auto-claim off when you're done! + +>[!WARNING] Don't wander into enemy territory with auto-claim on! + +--- + +## Losing Claims + +!warning Territory can be overclaimed if your power drops below your claim count. + +*Keep your power above your claim count to stay safe.* +``` + +## Formatting Limitations + +1. **Whole-line only** — Bold, italic, commands, callouts, and colors apply to entire lines. No inline mixing (e.g., `some **bold** here` won't work). +2. **No underline** — Hytale Labels have no underline property. +3. **No nested formatting** — Cannot combine bold + color on the same line through markdown syntax. Colors override the template default; bold/italic are separate templates. +4. **Single-level lists** — No nested/indented sub-lists. + +## Line Length + +The help content area is approximately 450px wide. Text that exceeds this width wraps naturally. For readability: +- Keep text lines under ~70 characters +- Long commands may wrap — test visually +- Callout boxes have slightly less width (padding + accent bar) + +## Testing + +Use `/f admin test md` in-game to open the markdown rendering test page, which shows every supported entry type rendered with the real templates. diff --git a/TRANSLATION_GUIDE.md b/docs/translation-guide.md similarity index 69% rename from TRANSLATION_GUIDE.md rename to docs/translation-guide.md index df727691..877b33be 100644 --- a/TRANSLATION_GUIDE.md +++ b/docs/translation-guide.md @@ -61,42 +61,62 @@ key.with.placeholder = Hello {0}, you have {1} power Located at `src/main/resources/Server/Languages//help//.md`. -Each file has YAML frontmatter and markdown content: +Each file has YAML frontmatter and markdown content. See [docs/help-markdown.md](help-markdown.md) for the full syntax reference. + +## What to Translate vs. What to Keep + +### Markdown Syntax → Entry Type Mapping + +| Markdown Syntax | Entry Type | Translate? | +|---|---|---| +| `# Heading` | Topic title | Yes | +| `## Subheading` | HEADING | Yes | +| Plain text line | TEXT | Yes | +| Blank line | SPACER | Keep as-is | +| `` `command text` `` | COMMAND | **No** — command syntax stays in English | +| `**bold text**` | BOLD | Yes | +| `*italic text*` | ITALIC | Yes | +| `- list item` | LIST | Yes | +| `1. numbered item` | LIST | Yes (translate text, keep number) | +| `---` | SEPARATOR | Keep as-is | +| `> tip text` | CALLOUT | Yes | +| `>[!TYPE] text` | CALLOUT | Yes (translate text only) | +| `[#RRGGBB] text` | TEXT (colored) | Yes (translate text only) | +| `!warning text` | TEXT (colored) | Yes (translate text only) | + +### Do NOT Translate + +These are syntax markers or identifiers — keep them exactly as written: + +- **Frontmatter**: `id:` and `commands:` values +- **Command syntax**: `/f create `, `/f claim`, etc. +- **Color codes**: `[#FF5555]`, `[#55AAFF]`, etc. +- **Named color keywords**: `!warning`, `!success`, `!note`, `!muted` +- **Callout type tags**: `>[!WARNING]`, `>[!TIP]`, `>[!INFO]`, `>[!NOTE]`, `>[!SUCCESS]` +- **Separator syntax**: `---` + +### Do Translate + +- Topic titles (`# Getting Started`) +- Heading text after `## ` +- Plain text lines +- Text content in bold (`**text here**`) and italic (`*text here*`) +- List item text (after `- ` or `1. `) +- Callout text (after `> ` or `>[!TYPE] `) +- Colored text (after `[#RRGGBB] ` or `!warning `) + +**Example:** ```markdown ---- -id: welcome_started -commands: gui, menu ---- -# Getting Started - -Ready to dive in? Here's how: - -`/f` -Opens the faction menu. - -> Tip: Once in, explore territory and start claiming! +# Getting Started ← Translate: "Primeros Pasos" +## How Claims Work ← Translate: "Como Funcionan los Reclamos" +`/f claim` ← Do NOT translate +- Stand in the chunk ← Translate: "- Parate en el chunk" +>[!WARNING] Don't wander off! ← Translate: ">[!WARNING] No te alejes!" +!note Power regenerates ← Translate: "!note El poder se regenera" +[#FF5555] Important info ← Translate: "[#FF5555] Informacion importante" ``` -**Rules:** -- **YAML frontmatter** (`---` block): Do NOT translate `id` or `commands` — these are identifiers -- **`# Title`**: Translate the heading text -- **Plain text**: Translate normally -- **`` `command` ``** (backtick lines): Do NOT translate command syntax (e.g., `/f create `) -- **`> Tip text`** (blockquotes): Translate the tip content -- **Blank lines**: Keep as-is (they create spacing in the help viewer) - -### Markdown → Entry Type Mapping - -| Markdown Syntax | Help Entry Type | Translate? | -|----------------------------|-----------------|------------| -| `# Heading` | Topic title | Yes | -| `## Subheading` | HEADING entry | Yes | -| Plain text line | TEXT entry | Yes | -| Blank line | SPACER entry | Keep as-is | -| `` `command text` `` | COMMAND entry | No | -| `> Tip text` | TIP entry | Yes | - ## Translation Tips ### Character Limits From 4e8f0d00a32d52af751643c5d2e0227cd4f30298 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:50:21 -0700 Subject: [PATCH 31/76] feat: add new UI Gallery elements to button test page Add elements discovered from 2026.02.17 UI Gallery to the element test page: TabNavigation with HeaderTabsStyle, MultilineTextField, tooltip demo (TooltipText + DefaultTextTooltipStyle), ContentSeparator and PanelSeparatorFancy, ProgressBar template, HeaderSearch, Panel and SimpleContainer variants. Update command reference to /f admin test gui. --- .../Custom/HyperFactions/test/button_test.ui | 108 +++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui b/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui index 4f2cd1d2..c3499cb6 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui @@ -1,5 +1,5 @@ // Element & Style Test Page — Permanent debug/research page -// Open via: /f admin testgui +// Open via: /f admin test gui $C = "../../Common.ui"; $S = "../shared/styles.ui"; @@ -249,7 +249,38 @@ $C.@PageOverlay { ColorPicker #TestColorPicker { DisplayTextField: true; Style: $C.@DefaultColorPickerStyle; - Anchor: (Height: 180, Bottom: 4); + Anchor: (Height: 180, Bottom: 8); + } + + Label { + Text: "TAB NAVIGATION"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + TabNavigation #TestTabNav { + Style: $C.@HeaderTabsStyle; + Anchor: (Height: 34, Bottom: 8); + } + + Label { + Text: "HEADER SEARCH"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + $C.@HeaderSearch #TestHeaderSearch { + Anchor: (Height: 36, Bottom: 8); + } + + Label { + Text: "PROGRESS BAR TEMPLATE"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + $C.@ProgressBar #TestProgressBarTpl { + Anchor: (Height: 16, Bottom: 8); } } @@ -368,6 +399,79 @@ $C.@PageOverlay { } } + Label { + Text: "TOOLTIP DEMO"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + TextButton #TestTooltipBtn { + Text: "HOVER FOR TOOLTIP"; + Anchor: (Height: 36, Bottom: 8); + Style: $C.@DefaultTextButtonStyle; + TooltipText: "This is a tooltip! Tooltips can show contextual information."; + TextTooltipStyle: $C.@DefaultTextTooltipStyle; + } + + Label { + Text: "CONTENT SEPARATOR"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + $C.@ContentSeparator { + Anchor: (Bottom: 4); + } + + $C.@PanelSeparatorFancy { + Anchor: (Bottom: 8); + } + + Label { + Text: "MULTILINE TEXT FIELD"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + $C.@MultilineTextField #TestMultilineField { + Anchor: (Height: 80, Bottom: 8); + } + + Label { + Text: "PANEL / SIMPLE CONTAINER"; + Style: (FontSize: 11, TextColor: #888888, RenderBold: true); + Anchor: (Height: 20, Bottom: 4); + } + + $C.@SimpleContainer #TestSimpleContainer { + Anchor: (Height: 60, Bottom: 4); + #Content { + LayoutMode: Top; + Label { + Text: "Inside SimpleContainer"; + Style: (FontSize: 11, TextColor: #aaaaaa); + Anchor: (Height: 18); + } + } + } + + $C.@Panel #TestPanel { + Anchor: (Height: 80, Bottom: 8); + #Title { + $C.@PanelTitle { + @Text = "Panel Title"; + } + } + #Content { + LayoutMode: Top; + Label { + Text: "Content inside Panel template"; + Style: (FontSize: 11, TextColor: #aaaaaa); + Anchor: (Height: 18); + } + } + } + Label { Text: "JAVA-APPENDED (Value.ref)"; Style: (FontSize: 11, TextColor: #888888, RenderBold: true); From 5d878ae789268c39d3de4858476a43d5c613cab1 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:51:44 -0700 Subject: [PATCH 32/76] fix: pin markdown test page title bar to top of container --- .../Common/UI/Custom/HyperFactions/test/markdown_test.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui b/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui index 1796fe9c..3d841044 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/test/markdown_test.ui @@ -7,7 +7,7 @@ Group { // Title bar Group { - Anchor: (Height: 40); + Anchor: (Height: 40, Top: 0, Left: 0, Right: 0); Background: (Color: #161b22); Label #PageTitle { From e3b26aab414888cfbb9ebd603f126d128fcd8963 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 21:53:54 -0700 Subject: [PATCH 33/76] fix: remove invalid #Title/#Content slots from Panel and SimpleContainer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These templates are flat containers — content goes directly inside with no insertion point wrappers. Only @Container/@DecoratedContainer have #Title/#Content slots. --- .../Custom/HyperFactions/test/button_test.ui | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui b/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui index c3499cb6..f57097ae 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/test/button_test.ui @@ -445,30 +445,26 @@ $C.@PageOverlay { $C.@SimpleContainer #TestSimpleContainer { Anchor: (Height: 60, Bottom: 4); - #Content { - LayoutMode: Top; - Label { - Text: "Inside SimpleContainer"; - Style: (FontSize: 11, TextColor: #aaaaaa); - Anchor: (Height: 18); - } + Padding: (Full: 10); + LayoutMode: Top; + Label { + Text: "Inside SimpleContainer"; + Style: (FontSize: 11, TextColor: #aaaaaa); + Anchor: (Height: 18); } } $C.@Panel #TestPanel { Anchor: (Height: 80, Bottom: 8); - #Title { - $C.@PanelTitle { - @Text = "Panel Title"; - } + Padding: (Full: 10); + LayoutMode: Top; + $C.@PanelTitle { + @Text = "Panel Title"; } - #Content { - LayoutMode: Top; - Label { - Text: "Content inside Panel template"; - Style: (FontSize: 11, TextColor: #aaaaaa); - Anchor: (Height: 18); - } + Label { + Text: "Content inside Panel template"; + Style: (FontSize: 11, TextColor: #aaaaaa); + Anchor: (Height: 18); } } From 0d8c8e71d1df2faa29a3d3411c3776b958ff4ab3 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 22:01:48 -0700 Subject: [PATCH 34/76] fix: enable text wrapping and vertical centering in help templates Replace fixed Height with auto-sizing (remove Anchor Height, use Padding for spacing). Add Wrap: true to all Label styles so long text wraps instead of truncating with ellipsis. Add VerticalAlignment: Center for proper vertical text positioning. Applies to all 8 help line templates: text, command, heading, bold, italic, list, tip, and callout. --- .../UI/Custom/HyperFactions/help/help_line_bold.ui | 8 ++++---- .../UI/Custom/HyperFactions/help/help_line_callout.ui | 9 ++++----- .../UI/Custom/HyperFactions/help/help_line_command.ui | 9 ++++----- .../UI/Custom/HyperFactions/help/help_line_heading.ui | 6 +++--- .../UI/Custom/HyperFactions/help/help_line_italic.ui | 8 ++++---- .../UI/Custom/HyperFactions/help/help_line_list.ui | 9 ++++----- .../UI/Custom/HyperFactions/help/help_line_text.ui | 8 ++++---- .../Common/UI/Custom/HyperFactions/help/help_line_tip.ui | 8 ++++---- 8 files changed, 31 insertions(+), 34 deletions(-) diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui index a797018d..3d36f0f3 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_bold.ui @@ -1,11 +1,11 @@ -// Help content line - bold text (gray, bold) +// Help content line - bold text (gray, bold, wrapping) Group { - Anchor: (Height: 16); + Padding: (Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #CCCCCC, RenderBold: true); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #CCCCCC, RenderBold: true, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui index 68b07331..e55387fa 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_callout.ui @@ -1,8 +1,7 @@ -// Help content line - callout box with colored left accent bar +// Help content line - callout box with colored left accent bar (wrapping) Group { - Anchor: (Height: 22, Top: 2, Bottom: 2); - Padding: (Left: 12); + Padding: (Left: 12, Top: 3, Bottom: 3); Background: (Color: #1a2a1a); Group #AccentBar { @@ -12,7 +11,7 @@ Group { Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #55FF55); - Anchor: (Left: 10, Right: 4, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #55FF55, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 10, Right: 4); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_command.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_command.ui index 7d3734d5..ba654b4c 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_command.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_command.ui @@ -1,12 +1,11 @@ -// Help content line - command callout (yellow bold, slight indent) +// Help content line - command callout (yellow bold, slight indent, wrapping) Group { - Anchor: (Height: 16); - Padding: (Left: 8); + Padding: (Left: 8, Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #FFFF55, RenderBold: true); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #FFFF55, RenderBold: true, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_heading.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_heading.ui index 820b020e..a7014f50 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_heading.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_heading.ui @@ -1,11 +1,11 @@ // Help content line - sub-heading (teal bold, top margin) Group { - Anchor: (Height: 20, Top: 4); + Padding: (Top: 4, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #00AAAA, RenderBold: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui index 144846d0..ce345851 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_italic.ui @@ -1,11 +1,11 @@ -// Help content line - italic text (gray, italic) +// Help content line - italic text (gray, italic, wrapping) Group { - Anchor: (Height: 16); + Padding: (Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #CCCCCC, RenderItalics: true); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #CCCCCC, RenderItalics: true, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui index 81982732..4ae34e43 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_list.ui @@ -1,12 +1,11 @@ -// Help content line - list item with left indent +// Help content line - list item with left indent (wrapping) Group { - Anchor: (Height: 16); - Padding: (Left: 12); + Padding: (Left: 12, Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #CCCCCC); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #CCCCCC, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_text.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_text.ui index 8b91353b..2734b68b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_text.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_text.ui @@ -1,11 +1,11 @@ -// Help content line - body text (gray) +// Help content line - body text (gray, wrapping) Group { - Anchor: (Height: 16); + Padding: (Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #CCCCCC); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #CCCCCC, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_tip.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_tip.ui index 6cb40070..3c5a011b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_tip.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_line_tip.ui @@ -1,11 +1,11 @@ -// Help content line - tip callout (green) +// Help content line - tip callout (green, wrapping) Group { - Anchor: (Height: 16); + Padding: (Top: 1, Bottom: 1); Label #Text { Text: ""; - Style: (FontSize: 11, TextColor: #55FF55); - Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 11, TextColor: #55FF55, Wrap: true, VerticalAlignment: Center); + Anchor: (Left: 0, Right: 0); } } From 43188f5f709b0c1ac090be1d407ff7cfd57c2bdc Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 22:21:13 -0700 Subject: [PATCH 35/76] feat: add table support to help markdown system Tables use standard markdown pipe syntax (| col | col |) with separator rows for headers. Supports per-cell inline formatting (**bold**, *italic*, `command`, [#hex] colors) and row-level color overrides. Includes 4 new .ui templates, parser/registry/ renderer updates, and visual test entries. --- docs/help-markdown.md | 28 ++++ docs/translation-guide.md | 6 + .../build/HelpLangGenerator.java | 67 ++++++++- .../java/com/hyperfactions/gui/UIPaths.java | 8 ++ .../com/hyperfactions/gui/help/HelpEntry.java | 38 ++++- .../hyperfactions/gui/help/HelpRegistry.java | 15 ++ .../gui/help/page/HelpMainPage.java | 87 ++++++++++++ .../gui/test/MarkdownTestPage.java | 132 ++++++++++++++++++ .../HyperFactions/help/help_table_cell.ui | 10 ++ .../HyperFactions/help/help_table_header.ui | 11 ++ .../help/help_table_header_cell.ui | 10 ++ .../HyperFactions/help/help_table_row.ui | 10 ++ 12 files changed, 412 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui create mode 100644 src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui diff --git a/docs/help-markdown.md b/docs/help-markdown.md index f16da193..b9cb177c 100644 --- a/docs/help-markdown.md +++ b/docs/help-markdown.md @@ -101,6 +101,26 @@ Callouts render as boxed text with a colored left accent bar and tinted backgrou The type tag (`[!WARNING]`, etc.) controls the accent bar and text color. +### Tables + +Tables use standard markdown pipe syntax: + +```markdown +| Level | Members | Daily Upkeep | +|-------|---------|--------------| +| 1 | 1-5 | 0 | +| 2 | 6-10 | 5 | +| 3 | 11-20 | 15 | +``` + +- The first row is the **header** (bold, teal `#00AAAA`) — it must be followed by a separator row (`|---|---|---|`) +- The separator row is consumed by the parser and not rendered +- Subsequent `|` rows are **data rows** (normal text, `#CCCCCC`) +- Columns are laid out horizontally using `LayoutMode: Left` +- Each cell is individually localized (e.g., `line.5.col.0`, `line.5.col.1`) + +Tables are ideal for reference data like upkeep scales, permission lists, or config examples. + ## Example Topic ```markdown @@ -134,6 +154,14 @@ as many chunks as it has power. --- +## Power Costs + +| Chunks | Power Cost | +|--------|------------| +| 1-10 | 1 per chunk | +| 11-25 | 2 per chunk | +| 26+ | 3 per chunk | + ## Losing Claims !warning Territory can be overclaimed if your power drops below your claim count. diff --git a/docs/translation-guide.md b/docs/translation-guide.md index 877b33be..9697ae96 100644 --- a/docs/translation-guide.md +++ b/docs/translation-guide.md @@ -83,6 +83,9 @@ Each file has YAML frontmatter and markdown content. See [docs/help-markdown.md] | `>[!TYPE] text` | CALLOUT | Yes (translate text only) | | `[#RRGGBB] text` | TEXT (colored) | Yes (translate text only) | | `!warning text` | TEXT (colored) | Yes (translate text only) | +| `\| col \| col \|` header row | TABLE_HEADER | Yes (translate column labels) | +| `\| val \| val \|` data row | TABLE_ROW | Yes (translate cell values) | +| `\|---\|---\|` separator | — (consumed) | Keep as-is | ### Do NOT Translate @@ -94,6 +97,8 @@ These are syntax markers or identifiers — keep them exactly as written: - **Named color keywords**: `!warning`, `!success`, `!note`, `!muted` - **Callout type tags**: `>[!WARNING]`, `>[!TIP]`, `>[!INFO]`, `>[!NOTE]`, `>[!SUCCESS]` - **Separator syntax**: `---` +- **Table separators**: `|---|---|---|` (the row between header and data) +- **Table pipe syntax**: `|` characters (keep the pipe structure intact) ### Do Translate @@ -104,6 +109,7 @@ These are syntax markers or identifiers — keep them exactly as written: - List item text (after `- ` or `1. `) - Callout text (after `> ` or `>[!TYPE] `) - Colored text (after `[#RRGGBB] ` or `!warning `) +- Table header labels and data cell values (between `|` pipes) **Example:** diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java index 1a5bd136..300c6c96 100644 --- a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -43,6 +43,8 @@ * >[!INFO] text → CALLOUT + #55AAFF * >[!NOTE] text → CALLOUT + #FFAA55 * >[!SUCCESS] text → CALLOUT + #55FF55 + * | col | col | → TABLE_HEADER (if followed by separator) + * | val | val | → TABLE_ROW * blank line → SPACER *

*/ @@ -65,6 +67,9 @@ public class HelpLangGenerator { /** Pattern for horizontal rule: 3+ dashes on a line */ private static final Pattern HR_PATTERN = Pattern.compile("^-{3,}$"); + /** Pattern for table separator row: |---|---|---| (with optional colons for alignment) */ + private static final Pattern TABLE_SEPARATOR_PATTERN = Pattern.compile("^\\|[-:| ]+\\|$"); + /** Named color shortcuts */ private static final Map NAMED_COLORS = Map.of( "warning", "#FF5555", @@ -84,10 +89,17 @@ public class HelpLangGenerator { // ── Data structures ────────────────────────────────────────────────── + /** A column within a table entry. */ + record ColumnEntry(String key, String text) {} + /** A single parsed entry from a markdown topic file. */ - record Entry(String type, String key, String color) { + record Entry(String type, String key, String color, List columns) { Entry(String type, String key) { - this(type, key, null); + this(type, key, null, null); + } + + Entry(String type, String key, String color) { + this(type, key, color, null); } } @@ -355,6 +367,38 @@ private static Topic parseTopic(String category, Path mdFile) throws IOException continue; } + // 9.5. Table row: | col1 | col2 | col3 | + if (trimmed.startsWith("|") && trimmed.endsWith("|") && trimmed.length() > 2) { + // Parse cells + String inner = trimmed.substring(1, trimmed.length() - 1); + String[] rawCells = inner.split("\\|"); + List cellTexts = new ArrayList<>(); + for (String cell : rawCells) { + cellTexts.add(cell.trim()); + } + + // Check if next line is a table separator (indicates this is a header row) + boolean isHeader = false; + if (i + 1 < lines.size()) { + String nextLine = lines.get(i + 1).trim(); + if (TABLE_SEPARATOR_PATTERN.matcher(nextLine).matches()) { + isHeader = true; + i++; // skip separator line + } + } + + lineCounter++; + String type = isHeader ? "TABLE_HEADER" : "TABLE_ROW"; + List columns = new ArrayList<>(); + for (int col = 0; col < cellTexts.size(); col++) { + String colKey = keyPrefix + ".line." + lineCounter + ".col." + col; + columns.add(new ColumnEntry(colKey, cellTexts.get(col))); + } + entries.add(new Entry(type, null, null, columns)); + entryTexts.add(null); + continue; + } + // 10. H2 → HEADING if (trimmed.startsWith("## ")) { lineCounter++; @@ -411,7 +455,12 @@ private static void writeLangFile(Path outputDir, String locale, List top for (int i = 0; i < topic.entries().size(); i++) { Entry entry = topic.entries().get(i); - if (entry.key() != null) { + if (entry.columns() != null) { + // Table entry — write each column as a separate lang key + for (ColumnEntry col : entry.columns()) { + sb.append(col.key()).append(" = ").append(col.text()).append("\n"); + } + } else if (entry.key() != null) { String text = topic.entryTexts().get(i); sb.append(entry.key()).append(" = ").append(text).append("\n"); } @@ -437,12 +486,18 @@ private static void writeManifest(Path outputDir, List topics) throws IOE topicMap.put("titleKey", "hyperfactions_help." + topic.titleKey()); topicMap.put("commands", topic.commands()); - List> entryList = new ArrayList<>(); + List> entryList = new ArrayList<>(); for (int i = 0; i < topic.entries().size(); i++) { Entry entry = topic.entries().get(i); - Map entryMap = new LinkedHashMap<>(); + Map entryMap = new LinkedHashMap<>(); entryMap.put("type", entry.type()); - if (entry.key() != null) { + if (entry.columns() != null) { + // Table entry — store column keys as JSON array + List colKeys = entry.columns().stream() + .map(c -> "hyperfactions_help." + c.key()) + .toList(); + entryMap.put("columns", colKeys); + } else if (entry.key() != null) { entryMap.put("key", "hyperfactions_help." + entry.key()); } if (entry.color() != null) { diff --git a/src/main/java/com/hyperfactions/gui/UIPaths.java b/src/main/java/com/hyperfactions/gui/UIPaths.java index 81feb523..9457da63 100644 --- a/src/main/java/com/hyperfactions/gui/UIPaths.java +++ b/src/main/java/com/hyperfactions/gui/UIPaths.java @@ -184,6 +184,14 @@ private UIPaths() {} public static final String HELP_LINE_CALLOUT = BASE + "help/help_line_callout.ui"; + public static final String HELP_TABLE_HEADER = BASE + "help/help_table_header.ui"; + + public static final String HELP_TABLE_ROW = BASE + "help/help_table_row.ui"; + + public static final String HELP_TABLE_CELL = BASE + "help/help_table_cell.ui"; + + public static final String HELP_TABLE_HEADER_CELL = BASE + "help/help_table_header_cell.ui"; + // ── Admin pages ───────────────────────────────────────────────────────── public static final String ADMIN_MAIN = BASE + "admin/admin_main.ui"; diff --git a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java index 7ea6e53a..2af582a9 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpEntry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpEntry.java @@ -36,17 +36,24 @@ public enum EntryType { /** Horizontal rule separator (no text). */ SEPARATOR, /** Boxed callout with colored accent bar. */ - CALLOUT + CALLOUT, + /** Table header row (bold column labels). Column keys pipe-separated in messageKey. */ + TABLE_HEADER, + /** Table data row. Column keys pipe-separated in messageKey. */ + TABLE_ROW } /** * Gets the resolved display text for this entry (server default language). * - * @return The localized text, or empty string for spacers/separators + * @return The localized text, or empty string for spacers/separators/tables */ @NotNull public String text() { - return type == EntryType.SPACER || type == EntryType.SEPARATOR ? "" : HelpMessages.get(messageKey); + return switch (type) { + case SPACER, SEPARATOR, TABLE_HEADER, TABLE_ROW -> ""; + default -> HelpMessages.get(messageKey); + }; } /** @@ -54,7 +61,20 @@ public String text() { */ @NotNull public String text(@Nullable PlayerRef playerRef) { - return type == EntryType.SPACER || type == EntryType.SEPARATOR ? "" : HelpMessages.get(playerRef, messageKey); + return switch (type) { + case SPACER, SEPARATOR, TABLE_HEADER, TABLE_ROW -> ""; + default -> HelpMessages.get(playerRef, messageKey); + }; + } + + /** + * Gets the individual column keys for table entries. + * For non-table entries, returns an empty array. + */ + @NotNull + public String[] columnKeys() { + return type == EntryType.TABLE_HEADER || type == EntryType.TABLE_ROW + ? messageKey.split("\\|") : new String[0]; } /** Creates a TEXT entry. */ @@ -106,4 +126,14 @@ public static HelpEntry callout(@NotNull String messageKey, @Nullable String col public static HelpEntry colored(@NotNull String messageKey, @NotNull String color) { return new HelpEntry(EntryType.TEXT, messageKey, color); } + + /** Creates a TABLE_HEADER entry with pipe-separated column keys. */ + public static HelpEntry tableHeader(@NotNull String columnKeys) { + return new HelpEntry(EntryType.TABLE_HEADER, columnKeys, null); + } + + /** Creates a TABLE_ROW entry with pipe-separated column keys. */ + public static HelpEntry tableRow(@NotNull String columnKeys) { + return new HelpEntry(EntryType.TABLE_ROW, columnKeys, null); + } } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java index e849c71b..d8697468 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpRegistry.java @@ -9,6 +9,7 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.StringJoiner; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -151,6 +152,20 @@ private HelpTopic parseTopic(@NotNull JsonObject topicObj) { case "LIST" -> HelpEntry.list(key); case "SEPARATOR" -> HelpEntry.separator(); case "CALLOUT" -> HelpEntry.callout(key, color); + case "TABLE_HEADER", "TABLE_ROW" -> { + // Table entries store column keys as a JSON array + JsonArray cols = entryObj.has("columns") ? entryObj.getAsJsonArray("columns") : null; + if (cols != null && !cols.isEmpty()) { + StringJoiner joiner = new StringJoiner("|"); + for (JsonElement col : cols) { + joiner.add(col.getAsString()); + } + yield "TABLE_HEADER".equals(type) + ? HelpEntry.tableHeader(joiner.toString()) + : HelpEntry.tableRow(joiner.toString()); + } + yield null; + } default -> null; }; if (entry != null) { diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index a36a806d..bba3bee5 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -22,7 +22,10 @@ import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * Main Help page with colored sidebar navigation and card-based content area. @@ -53,6 +56,14 @@ public class HelpMainPage extends InteractiveCustomUIPage { private static final String TPL_LINE_CALLOUT = UIPaths.HELP_LINE_CALLOUT; + private static final String TPL_TABLE_HEADER = UIPaths.HELP_TABLE_HEADER; + + private static final String TPL_TABLE_ROW = UIPaths.HELP_TABLE_ROW; + + private static final String TPL_TABLE_HEADER_CELL = UIPaths.HELP_TABLE_HEADER_CELL; + + private static final String TPL_TABLE_CELL = UIPaths.HELP_TABLE_CELL; + private final PlayerRef playerRef; private final GuiManager guiManager; @@ -167,6 +178,29 @@ private void buildTopicCards(UICommandBuilder cmd) { int lineIndex = 0; for (HelpEntry entry : topic.entries()) { String linesContainer = cardPrefix + " #Lines"; + + // Table entries need special rendering + if (entry.type() == HelpEntry.EntryType.TABLE_HEADER || entry.type() == HelpEntry.EntryType.TABLE_ROW) { + boolean isHeader = entry.type() == HelpEntry.EntryType.TABLE_HEADER; + String rowTemplate = isHeader ? TPL_TABLE_HEADER : TPL_TABLE_ROW; + String cellTemplate = isHeader ? TPL_TABLE_HEADER_CELL : TPL_TABLE_CELL; + + cmd.append(linesContainer, rowTemplate); + String rowSelector = linesContainer + "[" + lineIndex + "]"; + String colsContainer = rowSelector + " #Cols"; + + String[] columnKeys = entry.columnKeys(); + for (int col = 0; col < columnKeys.length; col++) { + cmd.append(colsContainer, cellTemplate); + String cellSelector = colsContainer + "[" + col + "]"; + String cellText = HelpMessages.get(playerRef, columnKeys[col]); + applyCellFormatting(cmd, cellSelector, cellText, entry.color()); + } + + lineIndex++; + continue; + } + String template = getTemplateForType(entry.type()); cmd.append(linesContainer, template); @@ -201,6 +235,57 @@ private void buildTopicCards(UICommandBuilder cmd) { /** * Returns the appropriate template path for an entry type. */ + private static final Pattern CELL_HEX_COLOR = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); + + /** + * Applies inline formatting to a table cell. + * Supports: **bold**, *italic*, `command`, [#RRGGBB] color prefix. + */ + private void applyCellFormatting(UICommandBuilder cmd, String cellSelector, + String text, @Nullable String rowColor) { + String displayText = text; + String cellColor = rowColor; + boolean bold = false; + boolean italic = false; + + // Check for inline hex color: [#RRGGBB] text + Matcher hexMatcher = CELL_HEX_COLOR.matcher(displayText); + if (hexMatcher.matches()) { + cellColor = "#" + hexMatcher.group(1); + displayText = hexMatcher.group(2); + } + + // Check for bold: **text** + if (displayText.startsWith("**") && displayText.endsWith("**") && displayText.length() > 4) { + displayText = displayText.substring(2, displayText.length() - 2); + bold = true; + } + // Check for command: `text` + else if (displayText.startsWith("`") && displayText.endsWith("`") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + bold = true; + if (cellColor == null) { + cellColor = "#FFFF55"; + } + } + // Check for italic: *text* + else if (displayText.startsWith("*") && displayText.endsWith("*") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + italic = true; + } + + cmd.set(cellSelector + " #CellText.Text", displayText); + if (bold) { + cmd.set(cellSelector + " #CellText.Style.RenderBold", true); + } + if (italic) { + cmd.set(cellSelector + " #CellText.Style.RenderItalics", true); + } + if (cellColor != null) { + cmd.set(cellSelector + " #CellText.Style.TextColor", cellColor); + } + } + private String getTemplateForType(HelpEntry.EntryType type) { return switch (type) { case TEXT -> TPL_LINE_TEXT; @@ -212,6 +297,8 @@ private String getTemplateForType(HelpEntry.EntryType type) { case LIST -> TPL_LINE_LIST; case SEPARATOR -> TPL_SEPARATOR; case CALLOUT -> TPL_LINE_CALLOUT; + case TABLE_HEADER -> TPL_TABLE_HEADER; + case TABLE_ROW -> TPL_TABLE_ROW; }; } diff --git a/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java b/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java index 68442263..aa4d1416 100644 --- a/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java +++ b/src/main/java/com/hyperfactions/gui/test/MarkdownTestPage.java @@ -14,6 +14,8 @@ import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Visual test page that renders every supported markdown entry type @@ -34,6 +36,10 @@ public class MarkdownTestPage extends InteractiveCustomUIPage { private static final String TPL_LINE_LIST = UIPaths.HELP_LINE_LIST; private static final String TPL_SEPARATOR = UIPaths.HELP_SEPARATOR; private static final String TPL_LINE_CALLOUT = UIPaths.HELP_LINE_CALLOUT; + private static final String TPL_TABLE_HEADER = UIPaths.HELP_TABLE_HEADER; + private static final String TPL_TABLE_ROW = UIPaths.HELP_TABLE_ROW; + private static final String TPL_TABLE_HEADER_CELL = UIPaths.HELP_TABLE_HEADER_CELL; + private static final String TPL_TABLE_CELL = UIPaths.HELP_TABLE_CELL; /** Creates a new MarkdownTestPage. */ public MarkdownTestPage(PlayerRef playerRef) { @@ -60,6 +66,28 @@ public void build(Ref ref, UICommandBuilder cmd, continue; } + // Table entries need special rendering + if (entry.type == EntryType.TABLE_HEADER || entry.type == EntryType.TABLE_ROW) { + boolean isHeader = entry.type == EntryType.TABLE_HEADER; + String rowTemplate = isHeader ? TPL_TABLE_HEADER : TPL_TABLE_ROW; + String cellTemplate = isHeader ? TPL_TABLE_HEADER_CELL : TPL_TABLE_CELL; + + cmd.append("#ContentList", rowTemplate); + String rowSelector = "#ContentList[" + index + "]"; + String colsContainer = rowSelector + " #Cols"; + + // Table text stores pipe-separated column values + String[] columns = entry.text.split("\\|"); + for (int col = 0; col < columns.length; col++) { + cmd.append(colsContainer, cellTemplate); + String cellSelector = colsContainer + "[" + col + "]"; + applyCellFormatting(cmd, cellSelector, columns[col].trim(), entry.color); + } + + index++; + continue; + } + // Real rendered entry using the appropriate template String template = getTemplateForType(entry.type); cmd.append("#ContentList", template); @@ -105,6 +133,8 @@ private String getTemplateForType(EntryType type) { case LIST -> TPL_LINE_LIST; case SEPARATOR -> TPL_SEPARATOR; case CALLOUT -> TPL_LINE_CALLOUT; + case TABLE_HEADER -> TPL_TABLE_HEADER; + case TABLE_ROW -> TPL_TABLE_ROW; }; } @@ -242,6 +272,54 @@ private List buildTestEntries() { entry(entries, EntryType.SPACER, ""); + // ── Section: Tables ── + section(entries, "TABLES"); + + syntax(entries, "| Level | Members | Daily Upkeep |"); + syntax(entries, "|-------|---------|--------------|"); + syntax(entries, "| 1 | 1-5 | 0 |"); + syntax(entries, "| 2 | 6-10 | 5 |"); + syntax(entries, "| 3 | 11-20 | 15 |"); + + // Render the actual table + table(entries, true, "Level", "Members", "Daily Upkeep"); + table(entries, false, "1", "1-5", "0"); + table(entries, false, "2", "6-10", "5"); + table(entries, false, "3", "11-20", "15"); + + entry(entries, EntryType.SPACER, ""); + + syntax(entries, "Two-column table:"); + table(entries, true, "Command", "Description"); + table(entries, false, "/f create ", "Create a new faction"); + table(entries, false, "/f claim", "Claim the chunk you're in"); + table(entries, false, "/f invite ", "Invite a player to your faction"); + table(entries, false, "/f home", "Teleport to faction home"); + + entry(entries, EntryType.SPACER, ""); + + // ── Section: Formatted Tables ── + section(entries, "FORMATTED TABLE CELLS"); + + syntax(entries, "Cells with inline formatting:"); + table(entries, true, "Syntax", "Result", "Description"); + table(entries, false, "**bold cell**", "Normal", "Bold via ** markers"); + table(entries, false, "*italic cell*", "Normal", "Italic via * markers"); + table(entries, false, "`command`", "Normal", "Command style (yellow bold)"); + table(entries, false, "[#FF5555] red text", "Normal", "Hex color prefix"); + table(entries, false, "[#55FF55] green text", "[#55AAFF] blue text", "Per-cell colors"); + + entry(entries, EntryType.SPACER, ""); + + syntax(entries, "Row-level color override (all cells colored):"); + table(entries, true, "Status", "Zone", "Note"); + table(entries, false, "Active", "Spawn", "Normal row"); + tableColored(entries, "#FF5555", "Danger", "Warzone", "Red row"); + tableColored(entries, "#55FF55", "Safe", "Safezone", "Green row"); + tableColored(entries, "#55AAFF", "Info", "Claimed", "Blue row"); + + entry(entries, EntryType.SPACER, ""); + // ── Section: Edge Cases ── section(entries, "EDGE CASES"); @@ -304,6 +382,60 @@ private void callout(List entries, String text, String color) { entries.add(new TestEntry(EntryType.CALLOUT, text, color, false)); } + private void table(List entries, boolean header, String... columns) { + EntryType type = header ? EntryType.TABLE_HEADER : EntryType.TABLE_ROW; + entries.add(new TestEntry(type, String.join("|", columns), null, false)); + } + + private void tableColored(List entries, String color, String... columns) { + entries.add(new TestEntry(EntryType.TABLE_ROW, String.join("|", columns), color, false)); + } + + private static final Pattern CELL_HEX_COLOR = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); + + /** + * Applies inline formatting to a table cell. + * Supports: **bold**, *italic*, `command`, [#RRGGBB] color prefix. + */ + private void applyCellFormatting(UICommandBuilder cmd, String cellSelector, + String text, String rowColor) { + String displayText = text; + String cellColor = rowColor; + boolean bold = false; + boolean italic = false; + + Matcher hexMatcher = CELL_HEX_COLOR.matcher(displayText); + if (hexMatcher.matches()) { + cellColor = "#" + hexMatcher.group(1); + displayText = hexMatcher.group(2); + } + + if (displayText.startsWith("**") && displayText.endsWith("**") && displayText.length() > 4) { + displayText = displayText.substring(2, displayText.length() - 2); + bold = true; + } else if (displayText.startsWith("`") && displayText.endsWith("`") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + bold = true; + if (cellColor == null) { + cellColor = "#FFFF55"; + } + } else if (displayText.startsWith("*") && displayText.endsWith("*") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + italic = true; + } + + cmd.set(cellSelector + " #CellText.Text", displayText); + if (bold) { + cmd.set(cellSelector + " #CellText.Style.RenderBold", true); + } + if (italic) { + cmd.set(cellSelector + " #CellText.Style.RenderItalics", true); + } + if (cellColor != null) { + cmd.set(cellSelector + " #CellText.Style.TextColor", cellColor); + } + } + /** * A test entry that can either be a syntax label or a real rendered entry. */ diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui new file mode 100644 index 00000000..90e29d0e --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui @@ -0,0 +1,10 @@ +// Help table cell - single column value + +Group { + Label #CellText { + Text: ""; + Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true); + Padding: (Left: 4, Right: 4); + Anchor: (Left: 0, Right: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui new file mode 100644 index 00000000..4f205373 --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui @@ -0,0 +1,11 @@ +// Help table header row - bold column labels on dark background + +Group { + Padding: (Top: 1, Bottom: 1); + Background: (Color: #1a2a3a); + + Group #Cols { + LayoutMode: Left; + Anchor: (Left: 0, Right: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui new file mode 100644 index 00000000..64fb9c02 --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui @@ -0,0 +1,10 @@ +// Help table header cell - bold column label + +Group { + Label #CellText { + Text: ""; + Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, Wrap: true); + Padding: (Left: 4, Right: 4); + Anchor: (Left: 0, Right: 0); + } +} diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui new file mode 100644 index 00000000..8480e23a --- /dev/null +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui @@ -0,0 +1,10 @@ +// Help table data row - normal column values + +Group { + Padding: (Top: 1, Bottom: 1); + + Group #Cols { + LayoutMode: Left; + Anchor: (Left: 0, Right: 0); + } +} From f818927eb032de1663a9ed444f785b319886d09b Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Mon, 9 Mar 2026 22:30:58 -0700 Subject: [PATCH 36/76] fix: improve table visual styling with GitHub-style grid borders Redesign table templates with proper grid lines: left border on each cell for column separators, top/bottom borders on rows, header row background, 200px cell width with generous padding. Add per-cell inline formatting support (bold, italic, command, hex colors). --- .../HyperFactions/help/help_table_cell.ui | 16 +++++++++++---- .../HyperFactions/help/help_table_header.ui | 20 +++++++++++++++---- .../help/help_table_header_cell.ui | 16 +++++++++++---- .../HyperFactions/help/help_table_row.ui | 12 ++++++++--- 4 files changed, 49 insertions(+), 15 deletions(-) diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui index 90e29d0e..2528283d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui @@ -1,10 +1,18 @@ -// Help table cell - single column value +// Help table cell - column value with left border separator Group { + Anchor: (Width: 200); + + // Left border (acts as column separator + table left border on first cell) + Group { + Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); + Background: (Color: #2a3a4a); + } + Label #CellText { Text: ""; - Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true); - Padding: (Left: 4, Right: 4); - Anchor: (Left: 0, Right: 0); + Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true, VerticalAlignment: Center); + Padding: (Left: 10, Right: 8); + Anchor: (Left: 1, Right: 0, Top: 0, Bottom: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui index 4f205373..a13a2380 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui @@ -1,11 +1,23 @@ -// Help table header row - bold column labels on dark background +// Help table header row - GitHub-style with top/bottom border and background Group { - Padding: (Top: 1, Bottom: 1); - Background: (Color: #1a2a3a); + Padding: (Top: 4, Bottom: 4); + Background: (Color: #161b26); + + // Top border + Group { + Anchor: (Height: 1, Top: 0, Left: 0, Right: 0); + Background: (Color: #2a3a4a); + } + + // Bottom border + Group { + Anchor: (Height: 1, Bottom: 0, Left: 0, Right: 0); + Background: (Color: #2a3a4a); + } Group #Cols { LayoutMode: Left; - Anchor: (Left: 0, Right: 0); + Anchor: (Left: 0, Top: 1, Bottom: 1); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui index 64fb9c02..302ba49e 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui @@ -1,10 +1,18 @@ -// Help table header cell - bold column label +// Help table header cell - bold label with left border separator Group { + Anchor: (Width: 200); + + // Left border (acts as column separator + table left border on first cell) + Group { + Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); + Background: (Color: #2a3a4a); + } + Label #CellText { Text: ""; - Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, Wrap: true); - Padding: (Left: 4, Right: 4); - Anchor: (Left: 0, Right: 0); + Style: (FontSize: 10, TextColor: #CCCCCC, RenderBold: true, Wrap: true, VerticalAlignment: Center); + Padding: (Left: 10, Right: 8); + Anchor: (Left: 1, Right: 0, Top: 0, Bottom: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui index 8480e23a..2608050b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui @@ -1,10 +1,16 @@ -// Help table data row - normal column values +// Help table data row - GitHub-style with bottom border Group { - Padding: (Top: 1, Bottom: 1); + Padding: (Top: 4, Bottom: 4); + + // Bottom border + Group { + Anchor: (Height: 1, Bottom: 0, Left: 0, Right: 0); + Background: (Color: #2a3a4a); + } Group #Cols { LayoutMode: Left; - Anchor: (Left: 0, Right: 0); + Anchor: (Left: 0, Top: 0, Bottom: 1); } } From c106a591db3f156d4e293281a37e170cdf1fd9f5 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:53:56 -0700 Subject: [PATCH 37/76] feat: add admin help infrastructure with category filtering Add 8 admin help categories (ADMIN_OVERVIEW through ADMIN_REFERENCE) to HelpCategory enum with isAdmin() filter. Rewrite AdminHelpPage from placeholder to full sidebar+content rendering. Filter admin categories from player HelpMainPage. Add admin directory scanning to HelpLangGenerator build pipeline. --- .../build/HelpLangGenerator.java | 30 ++- .../gui/admin/data/AdminHelpData.java | 10 +- .../gui/admin/page/AdminHelpPage.java | 203 +++++++++++++++-- .../hyperfactions/gui/help/HelpCategory.java | 19 +- .../gui/help/page/HelpMainPage.java | 12 +- .../com/hyperfactions/util/MessageKeys.java | 9 + .../Custom/HyperFactions/admin/admin_help.ui | 213 +++++++++++++++--- .../Languages/en-US/hyperfactions_gui.lang | 10 + .../Languages/es-ES/hyperfactions_gui.lang | 10 + 9 files changed, 463 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java index 300c6c96..213648a0 100644 --- a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -50,11 +50,17 @@ */ public class HelpLangGenerator { - /** Fixed category processing order. */ + /** Fixed category processing order (player help). */ private static final List CATEGORY_ORDER = List.of( "welcome", "your_faction", "power_land", "diplomacy", "combat", "economy", "quick_ref" ); + /** Fixed category processing order (admin help). */ + private static final List ADMIN_CATEGORY_ORDER = List.of( + "admin_overview", "admin_factions", "admin_zones", "admin_power", + "admin_economy", "admin_config", "admin_maintenance", "admin_reference" + ); + /** Pattern for inline hex color: [#RRGGBB] text */ private static final Pattern HEX_COLOR_PATTERN = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); @@ -166,7 +172,7 @@ public static void main(String[] args) { private static List parseLocale(Path localeDir) throws IOException { List topics = new ArrayList<>(); - // Process categories in defined order, skip any that don't exist + // Process player categories in defined order for (String category : CATEGORY_ORDER) { Path categoryDir = localeDir.resolve(category); if (!Files.isDirectory(categoryDir)) { @@ -183,6 +189,26 @@ private static List parseLocale(Path localeDir) throws IOException { } } + // Process admin categories from help/admin/ subdirectory + Path adminDir = localeDir.resolve("admin"); + if (Files.isDirectory(adminDir)) { + for (String category : ADMIN_CATEGORY_ORDER) { + Path categoryDir = adminDir.resolve(category); + if (!Files.isDirectory(categoryDir)) { + continue; + } + + List mdFiles = listMarkdownFiles(categoryDir); + for (Path mdFile : mdFiles) { + Topic topic = parseTopic(category, mdFile); + if (topic != null) { + topics.add(topic); + System.out.println(" Parsed: admin/" + category + "/" + mdFile.getFileName()); + } + } + } + } + return topics; } diff --git a/src/main/java/com/hyperfactions/gui/admin/data/AdminHelpData.java b/src/main/java/com/hyperfactions/gui/admin/data/AdminHelpData.java index ae29fd7b..caa4cb18 100644 --- a/src/main/java/com/hyperfactions/gui/admin/data/AdminHelpData.java +++ b/src/main/java/com/hyperfactions/gui/admin/data/AdminHelpData.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable; /** - * Event data for the Admin Help page (placeholder). + * Event data for the Admin Help page. */ public class AdminHelpData implements AdminNavAwareData { @@ -16,6 +16,9 @@ public class AdminHelpData implements AdminNavAwareData { /** Admin nav bar target (for navigation). */ public String adminNavBar; + /** Selected category ID (for category switching). */ + public String category; + /** Codec for serialization/deserialization. */ public static final BuilderCodec CODEC = BuilderCodec .builder(AdminHelpData.class, AdminHelpData::new) @@ -29,6 +32,11 @@ public class AdminHelpData implements AdminNavAwareData { (data, value) -> data.adminNavBar = value, data -> data.adminNavBar ) + .addField( + new KeyedCodec<>("Category", Codec.STRING), + (data, value) -> data.category = value, + data -> data.category + ) .build(); /** Creates a new AdminHelpData. */ diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java index e111e173..7bfb80d7 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java @@ -4,53 +4,213 @@ import com.hyperfactions.gui.UIPaths; import com.hyperfactions.gui.admin.AdminNavBarHelper; import com.hyperfactions.gui.admin.data.AdminHelpData; +import com.hyperfactions.gui.help.*; import com.hyperfactions.util.HFMessages; import com.hyperfactions.util.MessageKeys; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime; +import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage; +import com.hypixel.hytale.server.core.ui.builder.EventData; import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder; import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** - * Admin Help page - placeholder for admin help/documentation. + * Admin Help page with sidebar navigation and card-based content area. + * Mirrors the player help layout but shows only admin categories. */ public class AdminHelpPage extends InteractiveCustomUIPage { + private static final Pattern CELL_HEX_COLOR = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); + private final PlayerRef playerRef; private final GuiManager guiManager; - /** Creates a new AdminHelpPage. */ + private final HelpCategory selectedCategory; + + /** Creates a new AdminHelpPage with default category. */ public AdminHelpPage(PlayerRef playerRef, GuiManager guiManager) { + this(playerRef, guiManager, HelpCategory.ADMIN_OVERVIEW); + } + + /** Creates a new AdminHelpPage with a specific category. */ + public AdminHelpPage(PlayerRef playerRef, GuiManager guiManager, + @NotNull HelpCategory initialCategory) { super(playerRef, CustomPageLifetime.CanDismiss, AdminHelpData.CODEC); this.playerRef = playerRef; this.guiManager = guiManager; + this.selectedCategory = initialCategory.isAdmin() ? initialCategory : HelpCategory.ADMIN_OVERVIEW; } - /** Builds . */ @Override public void build(Ref ref, UICommandBuilder cmd, UIEventBuilder events, Store store) { - // Load the placeholder template first (nav bar elements must exist before setupBar) cmd.append(UIPaths.ADMIN_HELP); - // Setup admin nav bar (must be after template load) + // Setup admin nav bar AdminNavBarHelper.setupBar(playerRef, "help", cmd, events); - // Localize page title and labels + // Page title cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_TITLE_HELP)); - cmd.set("#ComingSoon.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_HEADING)); - cmd.set("#ComingSoonSub.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_COMING_SOON)); - cmd.set("#Description.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_DESC1)); - cmd.set("#Description2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_HELP_DESC2)); + + // Set localized sidebar button labels (admin categories only) + int catIdx = 0; + for (HelpCategory category : HelpCategory.values()) { + if (!category.isAdmin()) continue; + cmd.set("#Cat" + catIdx + ".Text", " " + category.displayName(playerRef)); + catIdx++; + } + + // Setup category buttons + setupCategoryButtons(cmd, events); + + // Set the category title header text and color + cmd.set("#CategoryTitle.Text", selectedCategory.displayName(playerRef).toUpperCase()); + cmd.set("#CategoryTitle.Style.TextColor", selectedCategory.color()); + + // Build topic cards + buildTopicCards(cmd); + } + + private void setupCategoryButtons(UICommandBuilder cmd, UIEventBuilder events) { + int idx = 0; + for (HelpCategory category : HelpCategory.values()) { + if (!category.isAdmin()) continue; + String buttonId = "#Cat" + idx; + boolean isSelected = category == selectedCategory; + + if (isSelected) { + cmd.set(buttonId + ".Disabled", true); + } else { + events.addEventBinding( + CustomUIEventBindingType.Activating, + buttonId, + EventData.of("Button", "SelectCategory") + .append("Category", category.id()) + ); + } + idx++; + } + } + + private void buildTopicCards(UICommandBuilder cmd) { + List topics = HelpRegistry.getInstance().getTopics(selectedCategory); + int cardIndex = 0; + + for (HelpTopic topic : topics) { + cmd.append("#ContentList", UIPaths.HELP_TOPIC_CARD); + String cardPrefix = "#ContentList[" + cardIndex + "]"; + + cmd.set(cardPrefix + " #Title.Text", topic.title(playerRef)); + + int lineIndex = 0; + for (HelpEntry entry : topic.entries()) { + String linesContainer = cardPrefix + " #Lines"; + + if (entry.type() == HelpEntry.EntryType.TABLE_HEADER || entry.type() == HelpEntry.EntryType.TABLE_ROW) { + boolean isHeader = entry.type() == HelpEntry.EntryType.TABLE_HEADER; + String rowTemplate = isHeader ? UIPaths.HELP_TABLE_HEADER : UIPaths.HELP_TABLE_ROW; + String cellTemplate = isHeader ? UIPaths.HELP_TABLE_HEADER_CELL : UIPaths.HELP_TABLE_CELL; + + cmd.append(linesContainer, rowTemplate); + String rowSelector = linesContainer + "[" + lineIndex + "]"; + String colsContainer = rowSelector + " #Cols"; + + String[] columnKeys = entry.columnKeys(); + for (int col = 0; col < columnKeys.length; col++) { + cmd.append(colsContainer, cellTemplate); + String cellSelector = colsContainer + "[" + col + "]"; + String cellText = HelpMessages.get(playerRef, columnKeys[col]); + applyCellFormatting(cmd, cellSelector, cellText, entry.color()); + } + + lineIndex++; + continue; + } + + String template = getTemplateForType(entry.type()); + cmd.append(linesContainer, template); + String selector = linesContainer + "[" + lineIndex + "]"; + + if (entry.type() != HelpEntry.EntryType.SPACER && entry.type() != HelpEntry.EntryType.SEPARATOR) { + String text = entry.text(playerRef); + + if (entry.type() == HelpEntry.EntryType.LIST && !text.matches("^\\d+\\.\\s.*")) { + text = "\u2022 " + text; + } + + cmd.set(selector + " #Text.Text", text); + + if (entry.color() != null) { + cmd.set(selector + " #Text.Style.TextColor", entry.color()); + if (entry.type() == HelpEntry.EntryType.CALLOUT) { + cmd.set(selector + " #AccentBar.Background.Color", entry.color()); + } + } + } + lineIndex++; + } + cardIndex++; + } + } + + private void applyCellFormatting(UICommandBuilder cmd, String cellSelector, + String text, @Nullable String rowColor) { + String displayText = text; + String cellColor = rowColor; + boolean bold = false; + boolean italic = false; + + Matcher hexMatcher = CELL_HEX_COLOR.matcher(displayText); + if (hexMatcher.matches()) { + cellColor = "#" + hexMatcher.group(1); + displayText = hexMatcher.group(2); + } + + if (displayText.startsWith("**") && displayText.endsWith("**") && displayText.length() > 4) { + displayText = displayText.substring(2, displayText.length() - 2); + bold = true; + } else if (displayText.startsWith("`") && displayText.endsWith("`") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + bold = true; + if (cellColor == null) cellColor = "#FFFF55"; + } else if (displayText.startsWith("*") && displayText.endsWith("*") && displayText.length() > 2) { + displayText = displayText.substring(1, displayText.length() - 1); + italic = true; + } + + cmd.set(cellSelector + " #CellText.Text", displayText); + if (bold) cmd.set(cellSelector + " #CellText.Style.RenderBold", true); + if (italic) cmd.set(cellSelector + " #CellText.Style.RenderItalics", true); + if (cellColor != null) cmd.set(cellSelector + " #CellText.Style.TextColor", cellColor); + } + + private String getTemplateForType(HelpEntry.EntryType type) { + return switch (type) { + case TEXT -> UIPaths.HELP_LINE_TEXT; + case COMMAND -> UIPaths.HELP_LINE_COMMAND; + case HEADING -> UIPaths.HELP_LINE_HEADING; + case SPACER -> UIPaths.HELP_SPACER; + case BOLD -> UIPaths.HELP_LINE_BOLD; + case ITALIC -> UIPaths.HELP_LINE_ITALIC; + case LIST -> UIPaths.HELP_LINE_LIST; + case SEPARATOR -> UIPaths.HELP_SEPARATOR; + case CALLOUT -> UIPaths.HELP_LINE_CALLOUT; + case TABLE_HEADER -> UIPaths.HELP_TABLE_HEADER; + case TABLE_ROW -> UIPaths.HELP_TABLE_ROW; + }; } - /** Handles data event. */ @Override public void handleDataEvent(Ref ref, Store store, AdminHelpData data) { @@ -60,6 +220,7 @@ public void handleDataEvent(Ref ref, Store store, PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType()); if (player == null || playerRef == null) { + sendUpdate(); return; } @@ -68,12 +229,20 @@ public void handleDataEvent(Ref ref, Store store, return; } - // Handle other button events (placeholder for future implementation) - if (data.button != null) { - switch (data.button) { - case "Back" -> guiManager.closePage(player, ref, store); - default -> throw new IllegalStateException("Unexpected value"); - } + // Handle category selection + if ("SelectCategory".equals(data.button) && data.category != null) { + HelpCategory newCategory = HelpCategory.fromId(data.category); + AdminHelpPage newPage = new AdminHelpPage(playerRef, guiManager, newCategory); + player.getPageManager().openCustomPage(ref, store, newPage); + return; } + + // Handle back button + if (data.button != null && "Back".equals(data.button)) { + guiManager.closePage(player, ref, store); + return; + } + + sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java index 03561abc..db24bf27 100644 --- a/src/main/java/com/hyperfactions/gui/help/HelpCategory.java +++ b/src/main/java/com/hyperfactions/gui/help/HelpCategory.java @@ -15,7 +15,17 @@ public enum HelpCategory { DIPLOMACY("diplomacy", "hyperfactions_gui.help.category.diplomacy", "#55AAFF", 3), COMBAT("combat", "hyperfactions_gui.help.category.combat", "#FF5555", 4), ECONOMY("economy", "hyperfactions_gui.help.category.economy", "#FFAA00", 5), - QUICK_REFERENCE("quick_ref", "hyperfactions_gui.help.category.quick_ref", "#888888", 6); + QUICK_REFERENCE("quick_ref", "hyperfactions_gui.help.category.quick_ref", "#888888", 6), + + // Admin categories (order 100+, filtered from player help) + ADMIN_OVERVIEW("admin_overview", "hyperfactions_gui.help.category.admin_overview", "#00FFFF", 100), + ADMIN_FACTIONS("admin_factions", "hyperfactions_gui.help.category.admin_factions", "#44CC44", 101), + ADMIN_ZONES("admin_zones", "hyperfactions_gui.help.category.admin_zones", "#FFAA00", 102), + ADMIN_POWER("admin_power", "hyperfactions_gui.help.category.admin_power", "#FFD700", 103), + ADMIN_ECONOMY("admin_economy", "hyperfactions_gui.help.category.admin_economy", "#55FF55", 104), + ADMIN_CONFIG("admin_config", "hyperfactions_gui.help.category.admin_config", "#55AAFF", 105), + ADMIN_MAINTENANCE("admin_maintenance", "hyperfactions_gui.help.category.admin_maintenance", "#FF5555", 106), + ADMIN_REFERENCE("admin_reference", "hyperfactions_gui.help.category.admin_reference", "#888888", 107); private final String id; @@ -72,6 +82,13 @@ public int order() { return order; } + /** + * Returns true if this is an admin-only category (order >= 100). + */ + public boolean isAdmin() { + return order >= 100; + } + /** * Finds a category by its ID. * diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index bba3bee5..5580e9e8 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -117,10 +117,12 @@ public void build(Ref ref, UICommandBuilder cmd, // Page title cmd.set("#PageTitle.Text", HFMessages.get(playerRef, MessageKeys.HelpGui.HELP_CENTER_TITLE)); - // Set localized sidebar button labels + // Set localized sidebar button labels (player categories only) + int catIdx = 0; for (HelpCategory category : HelpCategory.values()) { - int idx = category.ordinal(); - cmd.set("#Cat" + idx + ".Text", " " + category.displayName(playerRef)); + if (category.isAdmin()) continue; + cmd.set("#Cat" + catIdx + ".Text", " " + category.displayName(playerRef)); + catIdx++; } // Setup category buttons (disable selected, bind events to others) @@ -139,8 +141,9 @@ public void build(Ref ref, UICommandBuilder cmd, * and binding click events to the others. */ private void setupCategoryButtons(UICommandBuilder cmd, UIEventBuilder events) { + int idx = 0; for (HelpCategory category : HelpCategory.values()) { - int idx = category.ordinal(); + if (category.isAdmin()) continue; String buttonId = "#Cat" + idx; boolean isSelected = category == selectedCategory; @@ -156,6 +159,7 @@ private void setupCategoryButtons(UICommandBuilder cmd, UIEventBuilder events) { .append("Category", category.id()) ); } + idx++; } } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 66433f87..4a4a316d 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -956,6 +956,15 @@ public static final class HelpGui { public static final String COMBAT = "hyperfactions_gui.help.category.combat"; public static final String ECONOMY = "hyperfactions_gui.help.category.economy"; public static final String QUICK_REF = "hyperfactions_gui.help.category.quick_ref"; + // Admin help categories + public static final String ADMIN_OVERVIEW = "hyperfactions_gui.help.category.admin_overview"; + public static final String ADMIN_FACTIONS = "hyperfactions_gui.help.category.admin_factions"; + public static final String ADMIN_ZONES = "hyperfactions_gui.help.category.admin_zones"; + public static final String ADMIN_POWER = "hyperfactions_gui.help.category.admin_power"; + public static final String ADMIN_ECONOMY = "hyperfactions_gui.help.category.admin_economy"; + public static final String ADMIN_CONFIG = "hyperfactions_gui.help.category.admin_config"; + public static final String ADMIN_MAINTENANCE = "hyperfactions_gui.help.category.admin_maintenance"; + public static final String ADMIN_REFERENCE = "hyperfactions_gui.help.category.admin_reference"; // Help Center page title public static final String HELP_CENTER_TITLE = "hyperfactions_gui.help.center_title"; // New player help page diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui index 4a3cff24..4d777e61 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui @@ -1,57 +1,214 @@ +// Admin Help - Sidebar layout with 8 admin categories +// Mirrors help_main.ui but for admin documentation $C = "../../Common.ui"; $S = "../shared/styles.ui"; $Nav = "admin_nav_bar.ui"; +// === Sidebar button styles per admin category === + +@SidebarLabel = LabelStyle( + FontSize: 11, + TextColor: #bfcdd5, + RenderBold: true +); + +// Admin Overview (#00FFFF) +@SidebarLabelCyan = LabelStyle(FontSize: 11, TextColor: #00FFFF, RenderBold: true); +@CatStyleCyan = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelCyan), + Sounds: $C.@ButtonSounds +); + +// Admin Factions (#44CC44) +@SidebarLabelGreen = LabelStyle(FontSize: 11, TextColor: #44CC44, RenderBold: true); +@CatStyleGreen = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelGreen), + Sounds: $C.@ButtonSounds +); + +// Admin Zones (#FFAA00) +@SidebarLabelOrange = LabelStyle(FontSize: 11, TextColor: #FFAA00, RenderBold: true); +@CatStyleOrange = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelOrange), + Sounds: $C.@ButtonSounds +); + +// Admin Power (#FFD700) +@SidebarLabelGold = LabelStyle(FontSize: 11, TextColor: #FFD700, RenderBold: true); +@CatStyleGold = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelGold), + Sounds: $C.@ButtonSounds +); + +// Admin Economy (#55FF55) +@SidebarLabelBrightGreen = LabelStyle(FontSize: 11, TextColor: #55FF55, RenderBold: true); +@CatStyleBrightGreen = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelBrightGreen), + Sounds: $C.@ButtonSounds +); + +// Admin Config (#55AAFF) +@SidebarLabelBlue = LabelStyle(FontSize: 11, TextColor: #55AAFF, RenderBold: true); +@CatStyleBlue = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelBlue), + Sounds: $C.@ButtonSounds +); + +// Admin Maintenance (#FF5555) +@SidebarLabelRed = LabelStyle(FontSize: 11, TextColor: #FF5555, RenderBold: true); +@CatStyleRed = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelRed), + Sounds: $C.@ButtonSounds +); + +// Admin Reference (#888888) +@SidebarLabelGray = LabelStyle(FontSize: 11, TextColor: #888888, RenderBold: true); +@CatStyleGray = TextButtonStyle( + Default: (Background: $C.@DefaultSquareButtonDefaultBackground, LabelStyle: @SidebarLabel), + Hovered: (Background: $C.@DefaultSquareButtonHoveredBackground, LabelStyle: @SidebarLabel), + Pressed: (Background: $C.@DefaultSquareButtonPressedBackground, LabelStyle: @SidebarLabel), + Disabled: (Background: $C.@DefaultSquareButtonDisabledBackground, LabelStyle: @SidebarLabelGray), + Sounds: $C.@ButtonSounds +); + $C.@PageOverlay { $Nav.@HyperFactionsAdminNavBar #HyperFactionsAdminNavBar {} - $C.@Container { - Anchor: (Width: 600, Height: 470); + $C.@DecoratedContainer { + Anchor: (Width: 750, Height: 650); #Title { - $C.@Title #PageTitle { - @Text = "Admin Help"; + Group { + $C.@Title #PageTitle { + @Text = "Admin Help"; + } } } #Content { - LayoutMode: Top; - Padding: (Left: 15, Right: 15, Top: 10, Bottom: 10); + LayoutMode: Left; + Padding: (Left: 10, Right: 10, Top: 10, Bottom: 10); - Group #PlaceholderContent { - FlexWeight: 1; + // Left column - Admin category sidebar (180px) + Group #CategoryMenu { + Anchor: (Width: 180); LayoutMode: Top; + Padding: (Left: 0, Right: 8, Top: 0, Bottom: 0); + + // Category 0: Admin Overview (cyan) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #00FFFF); } + TextButton #Cat0 { Text: " Overview"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleCyan; } + } - Label { - Anchor: (Height: 100); + // Category 1: Admin Factions (green) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #44CC44); } + TextButton #Cat1 { Text: " Factions"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleGreen; } } - Label #ComingSoon { - Text: "Admin Documentation"; - Style: (FontSize: 24, TextColor: #00FFFF, HorizontalAlignment: Center, VerticalAlignment: Center, RenderBold: true); - Anchor: (Height: 40); + // Category 2: Admin Zones (orange) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #FFAA00); } + TextButton #Cat2 { Text: " Zones"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleOrange; } } - Label #ComingSoonSub { - Text: "Coming Soon"; - Style: (FontSize: 16, TextColor: #888888, HorizontalAlignment: Center, VerticalAlignment: Center); - Anchor: (Height: 30); + // Category 3: Admin Power (gold) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #FFD700); } + TextButton #Cat3 { Text: " Power"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleGold; } } - Label { - Anchor: (Height: 20); + // Category 4: Admin Economy (bright green) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #55FF55); } + TextButton #Cat4 { Text: " Economy"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleBrightGreen; } + } + + // Category 5: Admin Config (blue) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #55AAFF); } + TextButton #Cat5 { Text: " Config"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleBlue; } + } + + // Category 6: Admin Maintenance (red) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #FF5555); } + TextButton #Cat6 { Text: " Maintenance"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleRed; } + } + + // Category 7: Admin Reference (gray) + Group { + Anchor: (Height: 34, Bottom: 2); + LayoutMode: Left; + Group { Anchor: (Width: 3); Background: (Color: #888888); } + TextButton #Cat7 { Text: " Reference"; FlexWeight: 1; Anchor: (Height: 34); Style: @CatStyleGray; } + } + } + + // Divider line + Group { + Anchor: (Width: 1); + Background: (Color: #2a3a4a); + } + + // Right column - Scrollable content area + Group #ContentArea { + FlexWeight: 1; + LayoutMode: TopScrolling; + ScrollbarStyle: $C.@DefaultScrollbarStyle; + Padding: (Left: 15, Right: 10, Top: 0, Bottom: 10); + + // Category title header + Label #CategoryTitle { + Text: ""; + Style: (FontSize: 14, TextColor: #00FFFF, RenderBold: true); + Anchor: (Height: 28, Left: 0, Right: 0); } - Label #Description { - Text: "Admin commands, permissions, and configuration guide."; - Style: (FontSize: 12, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); - Anchor: (Height: 25); + // Spacer after title + Group { + Anchor: (Height: 6); } - Label #Description2 { - Text: "Use /f help admin for command documentation."; - Style: (FontSize: 12, TextColor: #666666, HorizontalAlignment: Center, VerticalAlignment: Center); - Anchor: (Height: 25); + // Dynamic content container for topic cards + Group #ContentList { + LayoutMode: Top; } } } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 66a595c6..2e38f503 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -27,6 +27,16 @@ help.category.combat = Combat & Safety help.category.economy = Economy help.category.quick_ref = Quick Reference +# ========== Admin Help Category Names ========== +help.category.admin_overview = Overview +help.category.admin_factions = Factions +help.category.admin_zones = Zones +help.category.admin_power = Power +help.category.admin_economy = Economy +help.category.admin_config = Configuration +help.category.admin_maintenance = Maintenance +help.category.admin_reference = Reference + # ========== Main Menu ========== main_menu.title = HyperFactions main_menu.section_my_faction = My Faction diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index 86283a10..475d5229 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -27,6 +27,16 @@ help.category.combat = Combate y Seguridad help.category.economy = Economia help.category.quick_ref = Referencia Rapida +# ========== Nombres de Categorias de Ayuda Admin ========== +help.category.admin_overview = General +help.category.admin_factions = Facciones +help.category.admin_zones = Zonas +help.category.admin_power = Poder +help.category.admin_economy = Economia +help.category.admin_config = Configuracion +help.category.admin_maintenance = Mantenimiento +help.category.admin_reference = Referencia + # ========== Menu Principal ========== main_menu.title = HyperFactions main_menu.section_my_faction = Mi Faccion From 65d5e1d31712013f75171f2fef35d1a485a6b79c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:54:11 -0700 Subject: [PATCH 38/76] feat: rewrite player help categories 1-4 (en-US) with enhanced formatting Comprehensive rewrite of welcome, your_faction, power_land, and diplomacy help using tables, callouts, bold formatting, and accurate default config values. 14 topics expanded with detailed mechanics. --- .../en-US/help/diplomacy/alliances.md | 41 +++++++++++++++-- .../Languages/en-US/help/diplomacy/enemies.md | 42 ++++++++++++++--- .../en-US/help/diplomacy/relations.md | 34 +++++++++++--- .../en-US/help/power_land/claiming.md | 42 +++++++++++++++-- .../en-US/help/power_land/losing_territory.md | 44 ++++++++++++++++-- .../en-US/help/power_land/territory_map.md | 39 ++++++++++++++-- .../help/power_land/understanding_power.md | 39 ++++++++++++++-- .../en-US/help/welcome/getting_started.md | 36 ++++++++++++--- .../en-US/help/welcome/quick_tips.md | 46 +++++++++++++++---- .../en-US/help/welcome/what_are_factions.md | 37 ++++++++++++--- .../en-US/help/your_faction/creating.md | 33 +++++++++++-- .../en-US/help/your_faction/joining.md | 35 ++++++++++---- .../en-US/help/your_faction/managing.md | 42 +++++++++++++---- .../en-US/help/your_faction/roles.md | 46 +++++++++++++++---- 14 files changed, 464 insertions(+), 92 deletions(-) diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md index b0694d30..57a13187 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md @@ -4,11 +4,42 @@ commands: ally --- # Forming Alliances -Alliances protect both factions from friendly -fire and territorial disputes. +Alliances are **mutual agreements** between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance `/f ally ` -Sends an alliance request. Both sides must agree. -Benefits: no friendly fire, shared map visibility. -> There may be a limit on alliance count. +Sends an alliance request to the target faction. The alliance only takes effect once **both sides agree**. An Officer or Leader from the other faction must also run `/f ally ` to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| **No friendly fire** | Allied players cannot damage each other (when allyDamage is disabled) | +| **Shared map visibility** | Allied territory shows in [#5555FF] blue on the territory map | +| **Territory interaction** | Allies can use doors, seats, and transport in your territory by default | +| **Ally chat** | Use `/f c` to cycle to ally chat mode for cross-faction communication | +| **Overclaim protection** | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to **10 alliances** at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md index 180bc869..74c9ca45 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md @@ -4,14 +4,44 @@ commands: enemy, neutral --- # Enemy Factions -Declaring an enemy enables PvP and territorial -aggression against them. One-way action. +Declaring an enemy is a **one-way action** that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy `/f enemy ` -Declares enemy immediately. No agreement needed. -PvP enabled in each other's territory. Overclaim -possible if they become weakened. +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral `/f neutral ` -Resets relation to neutral, ending enemy status. + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| **PvP in territory** | Full PvP is enabled in both factions' territory | +| **Overclaiming** | You can `/f overclaim` their chunks if they are in a power deficit | +| **Map marking** | Enemy territory shows in [#FF5555] red on the territory map | +| **No protection** | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are **one-way** -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with `/f info `. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is **no limit** to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use `/f neutral ` to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md index 208db5e7..9ec717c5 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md @@ -4,15 +4,35 @@ commands: relations --- # Faction Relations -Every faction pair has a diplomatic relation: +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: **Ally**, **Enemy**, and **Neutral**. -Ally — No friendly fire, protected from each -other's claims. Requires mutual agreement. +--- + +## Relation Comparison -Enemy — PvP enabled in each other's territory. -Overclaiming possible if target is weakened. +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| **PvP in territory** | Disabled | Standard rules | Enabled | +| **Territory protection** | Mutual protection | Standard protection | Can overclaim if weakened | +| **Friendly fire** | Disabled | N/A | Enabled everywhere | +| **Map color** | [#5555FF] Blue | [#AAAAAA] Gray | [#FF5555] Red | +| **How to set** | Mutual agreement | Default state | One-way declaration | +| **Chat access** | Ally chat channel | None | None | -Neutral — Default state. Standard rules apply. +--- + +## Viewing Relations `/f relations` -View all alliances, enemies, and pending requests. + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- **Neutral** is the default state between all factions. Standard server rules apply. +- **Alliance** requires both factions to agree. Either side can break it unilaterally. +- **Enemy** is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use `/f relations` regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md b/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md index f308f9e2..83212207 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md @@ -4,13 +4,45 @@ commands: claim, unclaim --- # Claiming Territory -Claiming a chunk protects it. Only members can -build, break, or access containers inside. +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim `/f claim` -Claims the chunk you're standing in. (Officer+) + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires **Officer** rank or higher. + +## How to Unclaim `/f unclaim` -Releases a claim back to wilderness. (Officer+) -> Each claim costs one power. Don't over-expand! +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| **Power cost per claim** | 2.0 power | +| **Maximum claims** | 100 per faction | +| **Adjacent only** | No (you can claim anywhere) | + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- **Outsiders** cannot break, place, or interact with blocks +- **Allies** can use doors, seats, and transport but cannot break or place blocks +- **Members and Officers** have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open `/f map` and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md index 6c6ab858..36b7a915 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md @@ -4,11 +4,45 @@ commands: overclaim --- # Losing Territory -If total power drops below claim count, you're -raidable. Enemies can overclaim your chunks. +When a faction's total power drops below the cost of its claims, it becomes **raidable**. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works `/f overclaim` -Takes a chunk from a weakened faction. (Officer+) -Stay safe: stay active, avoid deaths, don't -over-expand beyond what your power supports. +An Officer or Leader from an **enemy** faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs **2.0 power** to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| **Total power** | **50** | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | **60** | +| **Deficit** | **10 power short** | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to **5 chunks** (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- **Do not over-expand** -- always keep total power above your claim cost with a buffer +- **Stay active** -- power only regenerates while online (+0.1/min) +- **Avoid unnecessary deaths** -- each death costs 1.0 power +- **Recruit more members** -- more players means more total power +- **Unclaim unused chunks** -- free up power with `/f unclaim` + +>[!TIP] Check your power status regularly with `/f power`. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md b/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md index aa31f43d..3b1e3293 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md @@ -4,10 +4,41 @@ commands: map --- # The Territory Map -A bird's-eye view of claimed chunks near you. +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map `/f map` -Opens the territory map. Click chunks to claim. -Your faction shows in your color. Allies in blue, -enemies in red, neutrals in gray, wilderness dark. +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] **Your faction's color** | Territory claimed by your faction | +| [#5555FF] **Blue** | Allied faction territory | +| [#FF5555] **Red** | Enemy faction territory | +| [#AAAAAA] **Gray** | Neutral faction territory | +| [#333333] **Dark** | Wilderness (unclaimed land) | +| [#FFAA00] **Gold** | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- **Click an unclaimed chunk** to claim it (requires Officer+ rank and sufficient power) +- **Click a claimed chunk** to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md index d18b9bcb..f46586dc 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md @@ -4,11 +4,40 @@ commands: power --- # Understanding Power -Power lets your faction hold territory. Every -player has personal power that adds to the total. +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| **Maximum power per player** | 20 | +| **Starting power** | 10 | +| **Death penalty** | -1.0 per death | +| **Kill reward** | 0.0 | +| **Regen rate** | +0.1 per minute (while online) | +| **Power cost per claim** | 2.0 | +| **Logout while tagged** | -1.0 additional | + +## How It Works + +Your faction's **total power** is the sum of every member's personal power. Your **required power** is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power `/f power` -Check your power and your faction's total. -Power regenerates online, decreases on death. -> If claims exceed power, you're vulnerable! +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls **below** the required amount for your claims, your faction becomes vulnerable. Enemies can use `/f overclaim` to steal your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md b/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md index 8c50830c..a63c39a6 100644 --- a/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md @@ -4,13 +4,35 @@ commands: gui, menu --- # Getting Started -Ready to dive in? Here's how: +Welcome to HyperFactions! Here is how to get up and running in just a few steps. -`/f` -Opens the faction menu. Browse factions, create -your own, or check invitations. +--- + +## Step 1: Open the Faction Menu + +Type `/f` to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| **Browse open factions** | Click *Browse* in the menu and hit *Join* on any open faction. | +| **Accept an invitation** | Check the *Invites* tab. If someone invited you, click *Accept*. | +| **Create your own** | Click *Create Faction*, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the **Faction Dashboard** with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands -If invited, check the Invites tab and accept. -Otherwise, browse open factions or start fresh. +- `/f` -- Opens the faction GUI +- `/f home` -- Teleport to your faction's home base +- `/f c` -- Cycle chat mode between Normal, Faction, and Ally +- `/f map` -- View the territory map around you -> Once in, explore territory and start claiming! +>[!TIP] You can also type `/f help` in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md index bc664023..dcd1df1a 100644 --- a/src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/en-US/help/welcome/quick_tips.md @@ -3,16 +3,42 @@ id: welcome_tips --- # Quick Tips -## Claiming Land -`/f claim` -Protects the chunk you're standing in. +Handy advice organized by category to help you thrive. -## Faction Home -`/f home` -Teleports to your faction home. Set with /f sethome. +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster -## Faction Chat -`/f c` -Cycles chat mode: Normal > Faction > Ally. +## General -> Dying costs power, weakening your territory hold! +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md index 17f7d901..f1641b50 100644 --- a/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md @@ -3,12 +3,35 @@ id: welcome_what --- # What Are Factions? -Factions are player teams that claim territory, -build bases, and grow stronger together. +Factions are **player-run teams** that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. -As a member you get protected land, a faction -home, private chat, and diplomatic relations. +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. -Strength is measured by power. Active members -generate power; dying costs it. If power drops -below your claim count, enemies can steal land. +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| **Power** | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| **Claims** | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| **Relations** | Factions can form **alliances** for mutual protection or declare **enemies** to enable PvP and territorial aggression. | +| **Roles** | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with **10 power** and regenerates up to **20** while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can **overclaim** your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md b/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md index d06b9f12..716341dc 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md @@ -4,10 +4,35 @@ commands: create --- # Creating a Faction -Starting a faction makes you the Leader with -full control over settings, members, and land. +Starting your own faction makes you the **Leader** with full control over settings, members, and territory. + +--- + +## How to Create `/f create ` -Creates a faction and opens your dashboard. -> Invite friends, claim land, and start building! +This creates your faction and immediately opens the **Faction Dashboard** where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| **Length** | Between **3** and **24** characters | +| **Characters** | Letters, numbers, and spaces only (alphanumeric) | +| **Uniqueness** | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the **Leader** (highest rank) +- Your faction starts with **0 claims** and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends with `/f invite `, find a base location, and claim it with `/f claim`. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md b/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md index 6f7282e5..5bd2f83e 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md @@ -4,14 +4,33 @@ commands: accept, join, request --- # Joining a Faction -Three ways to join an existing faction: +There are three ways to join an existing faction, depending on how the faction is configured. -## Browse Open Factions -Open /f and click Browse. Click Join on any open faction. +--- + +## Methods Compared + +| Method | How It Works | Requires | +|--------|-------------|----------| +| **Browse and Join** | Open `/f`, click *Browse*, and hit *Join* on an open faction | Faction must be set to **open** | +| **Accept Invite** | A faction Officer or Leader sends you an invite; accept it from the *Invites* tab in `/f` | An active invitation | +| **Request to Join** | Send a join request to a closed faction with `/f request ` | An Officer or Leader to approve | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders using `/f invite ` +- Invitations expire after **5 minutes** -- accept promptly +- View your pending invites in the *Invites* tab of the faction menu (`/f`) +- Accept with the GUI or `/f accept ` + +## Join Requests + +- Use `/f request ` to request membership in a closed faction +- Requests expire after **24 hours** if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard -## Accept an Invitation -Check the Invites tab and click Accept. +>[!TIP] Not sure which faction to join? Use the Browse tab in `/f` to see faction descriptions, member counts, and whether they are open or invite-only. -## Request to Join -`/f request ` -Send a request to an invite-only faction. +>[!NOTE] Each faction can hold up to **50 members** by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md b/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md index 53560468..3219cffb 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md @@ -4,19 +4,41 @@ commands: invite, kick, promote, demote, transfer --- # Managing Members -Officers and Leaders manage the roster: +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. -`/f invite ` -Sends an invitation. (Officer+) +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick **Members**. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after **5 minutes** if not accepted +- The invited player sees it in their Invites tab when they open `/f` +- There is no limit to how many invitations you can send at once +- Your faction can hold up to **50 members** total -`/f kick ` -Removes a member. Officers kick Members; Leaders all. +## Promotions and Demotions -`/f promote ` -Promotes a Member to Officer. (Leader only) +- Only the **Leader** can promote or demote +- `/f promote ` raises a Member to Officer +- `/f demote ` lowers an Officer back to Member -`/f demote ` -Demotes an Officer to Member. (Leader only) +## Transferring Leadership + +>[!WARNING] Transferring leadership is **irreversible**. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. `/f transfer ` -> Transfers leadership. You become Officer. Cannot undo! + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md b/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md index 0dcc2349..049076de 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md @@ -1,16 +1,44 @@ --- id: faction_roles --- -# Roles & Ranks +# Roles and Ranks -Three ranks with different capabilities: +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. -## Leader (1 per faction) -Full control: disband, transfer ownership, -promote/demote, plus all Officer permissions. +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Y | Y | Y | +| Use faction home | Y | Y | Y | +| Faction and ally chat | Y | Y | Y | +| Invite players | Y | Y | N | +| Kick members | Y | Y (Members only) | N | +| Claim / unclaim land | Y | Y | N | +| Overclaim enemy territory | Y | Y | N | +| Set faction home | Y | Y | N | +| Delete faction home | Y | Y | N | +| Manage relations (ally/enemy) | Y | Y | N | +| View faction logs | Y | Y | N | +| Promote to Officer | Y | N | N | +| Demote from Officer | Y | N | N | +| Rename faction | Y | N | N | +| Set description / tag / color | Y | N | N | +| Open / close faction | Y | N | N | +| Access faction settings | Y | N | N | +| Transfer leadership | Y | N | N | +| Disband faction | Y | N | N | + +>[!NOTE] Officers can kick **Members** but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details -## Officer -Invite/kick, claim/unclaim, set home, relations. +- **Leader** -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- **Officer** -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- **Member** -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. -## Member -Use faction home, chat, build in territory. +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. From 82fe5f8d81fb565355211f8dabd6530254e7b1c5 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:54:28 -0700 Subject: [PATCH 39/76] feat: rewrite player help categories 5-7 (en-US), add spawn protection/upkeep/permissions topics Rewrite combat, economy, and quick_ref help with enhanced formatting. Add 3 new topics: spawn_protection (combat mechanics), upkeep (territory maintenance costs), and permissions (key permission nodes reference). --- .../Languages/en-US/help/combat/death.md | 43 +++++- .../Languages/en-US/help/combat/protection.md | 30 +++- .../en-US/help/combat/spawn_protection.md | 30 ++++ .../Languages/en-US/help/combat/tagging.md | 29 +++- .../Languages/en-US/help/combat/zones.md | 28 +++- .../Languages/en-US/help/economy/commands.md | 30 ++-- .../Languages/en-US/help/economy/funds.md | 38 ++++- .../Languages/en-US/help/economy/treasury.md | 25 +++- .../Languages/en-US/help/economy/upkeep.md | 42 ++++++ .../en-US/help/quick_ref/all_commands.md | 130 ++++++++++-------- .../en-US/help/quick_ref/permissions.md | 70 ++++++++++ 11 files changed, 396 insertions(+), 99 deletions(-) create mode 100644 src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/en-US/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md diff --git a/src/main/resources/Server/Languages/en-US/help/combat/death.md b/src/main/resources/Server/Languages/en-US/help/combat/death.md index a123776f..306b8dda 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/death.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/death.md @@ -2,14 +2,43 @@ id: combat_death commands: home, sethome, stuck --- -# Death & Recovery +# Death and Recovery -Death has real consequences: +Death carries real consequences in factions. Every +death costs you personal power, weakening your +faction's ability to hold territory. -You lose personal power, lowering faction total. -If claims exceed power, enemies can overclaim. +## Power Loss -Power regenerates while online. Multiple deaths -can leave your faction dangerously vulnerable. +Each death costs **-1.0 power** from your personal +total. This lowers the faction's combined power. -> Pick your battles carefully! +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. +Recovering 1.0 lost power takes about 10 minutes. +Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, +fall damage, drowning, and any other cause. +There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/protection.md b/src/main/resources/Server/Languages/en-US/help/combat/protection.md index 5f5ce945..b80ed995 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/protection.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/protection.md @@ -3,15 +3,35 @@ id: combat_protection --- # Territory Protection -Claimed territory has several protections: +Claimed territory provides several layers of defense +for your faction's builds and resources. ## Block Protection -Only members can place or break blocks. + +Only faction members can place or break blocks in +your territory. Enemies and neutrals are blocked +from modifying anything. ## Container Protection -Chests, barrels, etc. are secured to members. + +Chests, barrels, and other containers are secured. +Only your faction members can open or interact with +storage in claimed chunks. ## Entry Alerts -You're notified when non-members enter claims. -> Territory protects blocks, not players! +When a non-member enters your claimed territory, +online faction members receive a notification with +the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory +by default. Ally damage is also disabled, so allied +players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md new file mode 100644 index 00000000..0281243a --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md @@ -0,0 +1,30 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary +protection to prevent spawn camping. + +## How It Works + +- Protection lasts **5 seconds** after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- **Attack** another player or entity +- **Move** from your spawn position + +This prevents abuse. You cannot attack others while +invulnerable. Once you take any action, protection +drops and normal combat rules apply. + +--- + +>[!NOTE] Spawn protection duration and break conditions are configurable by the server. Your server may use different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md index 664c6b72..a886430d 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md @@ -3,10 +3,29 @@ id: combat_tagging --- # Combat Tagging -Attacking or being attacked combat tags you. -A timer shows the remaining tag duration. +When you attack or are attacked by another player, +you become **combat tagged** for 15 seconds. -While tagged: no /f home, /f stuck, or teleports. -The tag resets with each new combat action. +## While Tagged -> Logging out while tagged is risky. Stay and fight! +- No `/f home` or `/f stuck` teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies +can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you +enter combat. Every new hit resets it to 15 seconds. +Once it reaches zero, all restrictions are lifted. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/zones.md b/src/main/resources/Server/Languages/en-US/help/combat/zones.md index f11cb46b..33dab4b9 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/zones.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/zones.md @@ -3,12 +3,32 @@ id: combat_zones --- # Special Zones -Admins can create zones with special rules: +Admins can designate areas with special rules that +override normal faction territory protection. ## SafeZone -No PvP, no block breaking. For spawn/trading. + +No PvP damage, no block breaking by non-admins. +Ideal for spawn areas, trading hubs, and event +staging areas. Players cannot be harmed here. ## WarZone -PvP always enabled, no protection. Battle areas. -> Zone rules always override faction territory. +PvP is always enabled. No block protection applies. +Open battle areas where anything goes. You receive +no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/commands.md b/src/main/resources/Server/Languages/en-US/help/economy/commands.md index 3720eaff..8a8f8b34 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/commands.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/commands.md @@ -3,19 +3,27 @@ id: economy_commands --- # Economy Commands -Quick reference for economy commands: +Quick reference for all faction economy commands. -`/f balance` -View treasury balance. +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | -`/f deposit ` -Deposit funds. +--- + +## Command Aliases + +- `/f balance` can also be used as `/f bal` +- `/f deposit` and `/f withdraw` accept decimal amounts -`/f withdraw ` -Withdraw funds. (Officer+) +## Permissions -`/f money transfer ` -Transfer to another faction. +All economy commands require `hyperfactions.economy.*` +permission nodes. Withdraw and transfer are further +restricted by faction role (Officer or higher). -`/f money log [page]` -View transaction history. +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/funds.md b/src/main/resources/Server/Languages/en-US/help/economy/funds.md index 3b7a6da6..99e99bec 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/funds.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/funds.md @@ -4,15 +4,43 @@ commands: deposit, withdraw --- # Managing Funds -Members deposit; Officers can withdraw/transfer. +Faction members work together to keep the treasury +funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the +faction treasury. `/f deposit ` -Deposit from your balance into the treasury. +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to +their personal balance. `/f withdraw ` -Withdraw from treasury. (Officer+) +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction +treasuries for trade deals or diplomacy. `/f money transfer ` -Transfer funds to another faction's treasury. +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. -> All transactions are logged for review. +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md index 6a148e82..a451af2e 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md @@ -4,10 +4,27 @@ commands: balance --- # Faction Treasury -Every faction has a shared treasury. Managed -by Officers and the Leader. +Every faction has a shared treasury that serves as +the faction's bank. Funds are used for upkeep costs, +territory maintenance, and faction operations. + +## Starting Balance + +New factions start with **0** in their treasury. +Members must deposit funds to build up reserves. + +## Who Can Manage + +- **Any member** can deposit funds +- **Officers and Leader** can withdraw and transfer +- **Leader** has full treasury control + +--- `/f balance` -Check your faction's treasury balance. (Alias: bal) +Check your faction's current treasury balance. +Also available as `/f bal`. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. -> Contribute regularly to keep your faction funded! +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md new file mode 100644 index 00000000..38eca444 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md @@ -0,0 +1,42 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their +claimed territory. This prevents land hoarding and +keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +Your first **3 chunks are free**. Beyond that, each +additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is **enabled by default**. The system +automatically deducts upkeep from your treasury at +each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a **48-hour +grace period** begins. A warning is sent 6 hours +before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md index 0097e8b8..0540d550 100644 --- a/src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/en-US/help/quick_ref/all_commands.md @@ -4,77 +4,91 @@ id: quickref_commands # All Commands ## Core -`/f — Open faction menu (alias: gui, menu)` -`/f help — Open this help center` -`/f create — Create a faction` -`/f disband — Delete your faction (Leader)` -`/f leave — Leave your faction` + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | ## Membership -`/f invite — Invite player (Officer+)` -`/f accept [faction] — Accept invite (alias: join)` -`/f request — Request to join` -`/f kick — Remove member (Officer+)` -`/f promote — Promote to Officer (Leader)` -`/f demote — Demote to Member (Leader)` -`/f transfer — Transfer leadership` + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | ## Territory -`/f claim — Claim current chunk (Officer+)` -`/f unclaim — Release current chunk (Officer+)` -`/f overclaim — Take weakened faction's chunk` -`/f map — Open territory map` + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | ## Teleport -`/f home — Teleport to faction home` -`/f sethome — Set faction home (Officer+)` -`/f delhome — Delete faction home (Officer+)` -`/f stuck — Escape enemy territory` + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | ## Information -`/f info [faction] — View faction details` -`/f list — Browse all factions` -`/f members — View roster` -`/f who [player] — View player info` -`/f power [player] — Check power levels` -`/f invites — Manage invites/requests` -`/f relations — View diplomatic relations` + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | ## Diplomacy -`/f ally — Request alliance (Officer+)` -`/f enemy — Declare enemy (Officer+)` -`/f neutral — Reset to neutral` + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | ## Settings -`/f settings — Open settings GUI (Officer+)` -`/f rename — Rename faction (Leader)` -`/f desc [text] — Set description (Officer+)` -`/f color — Set faction color (Officer+)` -`/f open — Allow anyone to join (Leader)` -`/f close — Require invitation (Leader)` + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | ## Economy -`/f balance — View treasury` -`/f deposit — Deposit funds` -`/f withdraw — Withdraw (Officer+)` -`/f money transfer — Transfer` -`/f money log [page] — Transaction history` + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | ## Chat -`/f c — Cycle: Normal > Faction > Ally` -`/f c f — Set faction chat` -`/f c a — Set ally chat` -`/f c off — Set public chat` - -## Admin (requires hyperfactions.admin) -`/f admin — Open admin dashboard` -`/f admin reload — Reload configuration` -`/f admin sync — Sync faction data` -`/f admin factions — Faction management` -`/f admin config — Configuration editor` -`/f admin zones — Zone management` -`/f admin backup create — Create backup` -`/f admin backup restore — Restore backup` -`/f admin safezone — Create SafeZone` -`/f admin warzone — Create WarZone` -`/f admin debug toggle — Debug logging` + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md new file mode 100644 index 00000000..16df0ec0 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md @@ -0,0 +1,70 @@ +--- +id: quickref_permissions +--- +# Permissions + +Key permission nodes for HyperFactions. All nodes +fall under the **hyperfactions** root namespace. + +## Core Permissions + +| Permission | Description | +|-----------|-------------| +| hyperfactions.use | Access to basic faction commands | +| hyperfactions.faction.create | Create a new faction | +| hyperfactions.faction.disband | Disband your faction | + +## Membership + +| Permission | Description | +|-----------|-------------| +| hyperfactions.member.invite | Invite players | +| hyperfactions.member.kick | Kick members | +| hyperfactions.member.promote | Promote members | + +## Territory + +| Permission | Description | +|-----------|-------------| +| hyperfactions.territory.claim | Claim chunks | +| hyperfactions.territory.unclaim | Release chunks | +| hyperfactions.territory.overclaim | Overclaim weakened land | + +## Teleport + +| Permission | Description | +|-----------|-------------| +| hyperfactions.teleport.home | Use faction home | +| hyperfactions.teleport.sethome | Set faction home | +| hyperfactions.teleport.stuck | Use stuck teleport | + +## Diplomacy and Chat + +| Permission | Description | +|-----------|-------------| +| hyperfactions.relation.ally | Manage alliances | +| hyperfactions.relation.enemy | Declare enemies | +| hyperfactions.chat.faction | Use faction chat | +| hyperfactions.chat.ally | Use ally chat | + +## Information and Economy + +| Permission | Description | +|-----------|-------------| +| hyperfactions.info.show | View faction info | +| hyperfactions.info.list | Browse factions | +| hyperfactions.economy.deposit | Deposit to treasury | +| hyperfactions.economy.withdraw | Withdraw from treasury | + +## Bypass Permissions + +| Permission | Description | +|-----------|-------------| +| hyperfactions.bypass.* | Bypass all restrictions | +| hyperfactions.bypass.combat | Bypass combat tag | +| hyperfactions.bypass.power | Bypass power limits | +| hyperfactions.bypass.territory | Bypass land protection | + +>[!INFO] Server admins can grant hyperfactions.* to give access to all permissions at once. + +>[!NOTE] Some permissions are restricted by faction role regardless of permission nodes. For example, only Officers can claim even with the permission. From 112120f78b0b7963947ed278492f5843897c2ee4 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:54:41 -0700 Subject: [PATCH 40/76] =?UTF-8?q?feat:=20add=20comprehensive=20admin=20hel?= =?UTF-8?q?p=20content=20(en-US)=20=E2=80=94=2018=20topics=20across=208=20?= =?UTF-8?q?categories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete admin help documentation covering overview, faction management, zones, power manipulation, economy, configuration, maintenance (backups, updates, imports), and admin command reference. All values sourced from actual config defaults and handler implementations. --- .../help/admin/admin_config/configuration.md | 42 ++++++++++++ .../help/admin/admin_config/world_settings.md | 47 +++++++++++++ .../admin_economy/treasury_management.md | 40 +++++++++++ .../admin/admin_economy/upkeep_management.md | 46 +++++++++++++ .../help/admin/admin_factions/disbanding.md | 39 +++++++++++ .../admin/admin_factions/managing_factions.md | 41 ++++++++++++ .../help/admin/admin_maintenance/backups.md | 49 ++++++++++++++ .../help/admin/admin_maintenance/imports.md | 49 ++++++++++++++ .../help/admin/admin_maintenance/updates.md | 48 ++++++++++++++ .../admin/admin_overview/getting_started.md | 43 ++++++++++++ .../help/admin/admin_overview/permissions.md | 41 ++++++++++++ .../help/admin/admin_power/power_commands.md | 41 ++++++++++++ .../help/admin/admin_power/power_overrides.md | 58 ++++++++++++++++ .../admin/admin_reference/all_commands.md | 66 +++++++++++++++++++ .../admin/admin_reference/integrations.md | 46 +++++++++++++ .../help/admin/admin_zones/zone_basics.md | 46 +++++++++++++ .../help/admin/admin_zones/zone_commands.md | 44 +++++++++++++ .../help/admin/admin_zones/zone_flags.md | 44 +++++++++++++ 18 files changed, 830 insertions(+) create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..c2351704 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md @@ -0,0 +1,42 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with +11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..2d63b0fb --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md @@ -0,0 +1,47 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for +claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through +the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..dcd28b60 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,40 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. +Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..9aa2a80e --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,46 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on +their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config +file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy +settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + +(member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..3392afc8 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md @@ -0,0 +1,39 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless +of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation +prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using `/f admin modify` to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..ed8fe072 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,41 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the +server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions +with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction +with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..5ba2fe64 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md @@ -0,0 +1,49 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups +with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..7fd86390 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md @@ -0,0 +1,49 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate +your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..84ddcff1 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md @@ -0,0 +1,48 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage +the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection +mixin that enables advanced zone flags (explosions, +fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version + and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..4577524f --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md @@ -0,0 +1,43 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide +covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all +management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a + server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..9765ddb8 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md @@ -0,0 +1,41 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes +in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin +permissions fall back to server operator (OP) status. +This is controlled by `adminRequiresOp` in the server +config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..cb3a1cc6 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md @@ -0,0 +1,41 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands +require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' +individual power. Territory claims require sufficient +total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..0834b1d6 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md @@ -0,0 +1,58 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves +for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, +overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the +player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, +the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..b77ccd0b --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md @@ -0,0 +1,66 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with +syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin bypass` | admin.bypass.limits | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..8578ea92 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md @@ -0,0 +1,46 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins +through soft dependencies. All integrations are +optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed +status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..44a13c4d --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,46 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom +rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. + Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. + Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use +`/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its +claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..737ac1a3 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,44 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. +All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..033605e6 --- /dev/null +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,44 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. +Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. From a0d2000cded737ab5d4a9b6b6a4204c5187cd8a8 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:54:53 -0700 Subject: [PATCH 41/76] =?UTF-8?q?feat:=20rewrite=20Spanish=20player=20help?= =?UTF-8?q?=20translations=20(es-ES)=20=E2=80=94=2025=20topics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full rewrite of all es-ES player help to match updated en-US content. Preserves command syntax, markdown formatting, and frontmatter IDs. Includes 3 new topics: spawn_protection, upkeep, permissions. --- .../Languages/es-ES/help/combat/death.md | 41 +++++- .../Languages/es-ES/help/combat/protection.md | 31 +++- .../es-ES/help/combat/spawn_protection.md | 30 ++++ .../Languages/es-ES/help/combat/tagging.md | 30 +++- .../Languages/es-ES/help/combat/zones.md | 32 +++- .../es-ES/help/diplomacy/alliances.md | 43 +++++- .../Languages/es-ES/help/diplomacy/enemies.md | 46 +++++- .../es-ES/help/diplomacy/relations.md | 34 ++++- .../Languages/es-ES/help/economy/commands.md | 30 ++-- .../Languages/es-ES/help/economy/funds.md | 44 +++++- .../Languages/es-ES/help/economy/treasury.md | 25 +++- .../Languages/es-ES/help/economy/upkeep.md | 45 ++++++ .../es-ES/help/power_land/claiming.md | 42 +++++- .../es-ES/help/power_land/losing_territory.md | 44 +++++- .../es-ES/help/power_land/territory_map.md | 39 ++++- .../help/power_land/understanding_power.md | 39 ++++- .../es-ES/help/quick_ref/all_commands.md | 138 ++++++++++-------- .../es-ES/help/quick_ref/permissions.md | 71 +++++++++ .../es-ES/help/welcome/getting_started.md | 37 ++++- .../es-ES/help/welcome/quick_tips.md | 46 ++++-- .../es-ES/help/welcome/what_are_factions.md | 40 +++-- .../es-ES/help/your_faction/creating.md | 35 ++++- .../es-ES/help/your_faction/joining.md | 35 ++++- .../es-ES/help/your_faction/managing.md | 44 ++++-- .../es-ES/help/your_faction/roles.md | 44 +++++- 25 files changed, 879 insertions(+), 206 deletions(-) create mode 100644 src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/death.md b/src/main/resources/Server/Languages/es-ES/help/combat/death.md index ba32eb8f..905820dd 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/death.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/death.md @@ -4,12 +4,41 @@ commands: home, sethome, stuck --- # Muerte y Recuperacion -Morir tiene consecuencias reales: +La muerte tiene consecuencias reales en facciones. Cada +muerte te cuesta poder personal, debilitando la capacidad +de tu faccion para mantener territorio. -Pierdes poder personal, reduciendo el total de la faccion. -Si los reclamos superan el poder, los enemigos pueden reclamar. +## Perdida de Poder -El poder se regenera estando conectado. Varias muertes -pueden dejar a tu faccion peligrosamente vulnerable. +Cada muerte cuesta **-1.0 de poder** de tu total personal. +Esto reduce el poder combinado de la faccion. -> Elige tus batallas con cuidado! +| Evento | Cambio de Poder | +|--------|-----------------| +| Muerte (cualquier causa) | -1.0 | +| Regeneracion en linea | +0.1 por minuto | +| Desconexion en combate | -1.0 (muerto) | + +## Escenarios de Ejemplo + +*5 miembros a 10.0 de poder cada uno = 50 total, 20 reclamos.* +*Un miembro muere dos veces: 8.0 de poder, total de faccion 48.* +*Tres miembros mueren una vez cada uno: el total baja a 47.* + +>[!WARNING] Si el poder de tu faccion cae por debajo de tu cantidad de reclamos, los enemigos pueden sobrereclamar tu territorio. + +## Recuperacion + +El poder se regenera a 0.1 por minuto mientras estas en linea. +Recuperar 1.0 de poder perdido toma aproximadamente 10 minutos. +Las muertes multiples se acumulan, asi que evita peleas repetidas. + +--- + +## Todos los Tipos de Muerte + +La perdida de poder aplica a todas las muertes: PvP, muertes +por mobs, dano por caida, ahogamiento y cualquier otra causa. +No hay forma segura de morir. + +>[!TIP] Establece un hogar de faccion con /f sethome para que los miembros puedan reagruparse rapidamente despues de morir. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/protection.md b/src/main/resources/Server/Languages/es-ES/help/combat/protection.md index 43b9e2a9..fb54af24 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/protection.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/protection.md @@ -3,15 +3,36 @@ id: combat_protection --- # Proteccion de Territorio -El territorio reclamado tiene varias protecciones: +El territorio reclamado proporciona varias capas de defensa +para las construcciones y recursos de tu faccion. ## Proteccion de Bloques -Solo los miembros pueden colocar o romper bloques. + +Solo los miembros de la faccion pueden colocar o destruir +bloques en tu territorio. Los enemigos y neutrales no pueden +modificar nada. ## Proteccion de Contenedores -Cofres, barriles, etc. estan asegurados para los miembros. + +Los cofres, barriles y otros contenedores estan asegurados. +Solo los miembros de tu faccion pueden abrir o interactuar +con el almacenamiento en chunks reclamados. ## Alertas de Entrada -Recibes notificaciones cuando no-miembros entran en tus reclamos. -> El territorio protege los bloques, no a los jugadores! +Cuando un no miembro entra en tu territorio reclamado, +los miembros de la faccion en linea reciben una notificacion +con el nombre y ubicacion del intruso. + +--- + +## Acceso de Aliados + +Los aliados no pueden construir ni destruir bloques en tu +territorio por defecto. El dano entre aliados tambien esta +desactivado, por lo que los jugadores aliados no pueden +danarse entre si. + +>[!INFO] El territorio protege bloques, no jugadores. El PvP en tu propio territorio depende de la relacion del atacante con tu faccion. + +>[!TIP] Manten tus reclamos conectados y evita chunks aislados que son mas dificiles de defender. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md new file mode 100644 index 00000000..3eec9c11 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md @@ -0,0 +1,30 @@ +--- +id: combat_spawn_protection +--- +# Proteccion de Aparicion + +Despues de reaparecer tras la muerte, recibes proteccion +temporal para prevenir el campeo de aparicion. + +## Como Funciona + +- La proteccion dura **5 segundos** despues de reaparecer +- No puedes recibir dano durante este periodo +- Un indicador visual muestra tu estado de proteccion + +## La Proteccion se Rompe + +La proteccion de aparicion termina antes si: + +- **Atacas** a otro jugador o entidad +- **Te mueves** de tu posicion de aparicion + +Esto previene el abuso. No puedes atacar a otros mientras +eres invulnerable. Una vez que realizas cualquier accion, +la proteccion cae y las reglas normales de combate aplican. + +--- + +>[!NOTE] La duracion de la proteccion de aparicion y las condiciones de ruptura son configurables por el servidor. Tu servidor puede usar configuraciones diferentes. + +>[!TIP] Usa tu tiempo de proteccion para evaluar la situacion antes de moverte. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md index cd292f7a..d414d649 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md @@ -3,10 +3,30 @@ id: combat_tagging --- # Etiqueta de Combate -Atacar o ser atacado te marca en combate. -Un temporizador muestra la duracion restante. +Cuando atacas o eres atacado por otro jugador, +te conviertes en **etiquetado de combate** por 15 segundos. -Mientras estas marcado: sin /f home, /f stuck ni teletransportes. -La marca se reinicia con cada nueva accion de combate. +## Mientras Estas Etiquetado -> Desconectarte mientras estas marcado es arriesgado. Quedate y pelea! +- No puedes usar `/f home` ni `/f stuck` para teletransportarte +- No puedes usar comandos de teletransporte del servidor +- La etiqueta se reinicia con cada nueva accion de combate +- Un temporizador muestra la duracion restante de tu etiqueta + +--- + +## Penalidad por Desconexion + +>[!WARNING] Desconectarte mientras estas etiquetado en combate mata a tu personaje y pierdes 1.0 de poder. + +Tus objetos caen donde te desconectaste y los enemigos +pueden saquearlos. Siempre espera a que la etiqueta expire. + +## Como Funciona el Temporizador + +El temporizador de etiqueta de combate aparece en pantalla +cuando entras en combate. Cada nuevo golpe lo reinicia a +15 segundos. Una vez que llega a cero, todas las restricciones +se levantan. + +>[!TIP] Desvincularte y espera a que el temporizador termine si necesitas teletransportarte. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/zones.md b/src/main/resources/Server/Languages/es-ES/help/combat/zones.md index ec748ecf..e19b5449 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/zones.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/zones.md @@ -3,12 +3,32 @@ id: combat_zones --- # Zonas Especiales -Los administradores pueden crear zonas con reglas especiales: +Los administradores pueden designar areas con reglas especiales +que anulan la proteccion normal de territorio de faccion. -## SafeZone -Sin PvP, sin romper bloques. Para spawn/comercio. +## Zona Segura -## WarZone -PvP siempre habilitado, sin proteccion. Areas de batalla. +Sin dano PvP, sin destruccion de bloques por no administradores. +Ideal para areas de aparicion, centros de comercio y areas de +preparacion de eventos. Los jugadores no pueden ser danados aqui. -> Las reglas de zona siempre anulan las del territorio de faccion. +## Zona de Guerra + +PvP siempre habilitado. No aplica proteccion de bloques. +Areas de batalla abierta donde todo vale. No recibes +beneficios de proteccion de territorio en una Zona de Guerra. + +--- + +## Comparacion de Zonas + +| Caracteristica | Zona Segura | Zona de Guerra | Tierra de Faccion | +|----------------|-------------|----------------|-------------------| +| PvP | Desactivado | Siempre Activo | Basado en relacion | +| Destruccion de Bloques | Desactivada | Permitida | Solo Miembros | +| Contenedores | Protegidos | Abiertos | Solo Miembros | +| Mejor Para | Aparicion/Comercio | Arenas | Bases | + +>[!NOTE] Las reglas de zona siempre anulan las reglas de territorio de faccion. Un chunk reclamado dentro de una Zona de Guerra sigue las reglas de Zona de Guerra. + +>[!TIP] Revisa tu mapa de territorio con /f map para ver los limites de las zonas. diff --git a/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md index 44863aeb..a9dfac40 100644 --- a/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md @@ -4,11 +4,42 @@ commands: ally --- # Formar Alianzas -Las alianzas protegen a ambas facciones del fuego -amigo y disputas territoriales. +Las alianzas son **acuerdos mutuos** entre dos facciones que proporcionan beneficios de proteccion y cooperacion. -`/f ally ` -Envia una solicitud de alianza. Ambos lados deben aceptar. +--- + +## Como Formar una Alianza + +`/f ally ` + +Envia una solicitud de alianza a la faccion objetivo. La alianza solo entra en efecto una vez que **ambos lados acepten**. Un Oficial o Lider de la otra faccion tambien debe ejecutar `/f ally ` para confirmar. + +## Como Romper una Alianza + +`/f neutral ` + +Cualquier lado puede terminar unilateralmente una alianza restableciendo la relacion a neutral. + +--- + +## Beneficios de Alianza + +| Beneficio | Detalles | +|-----------|----------| +| **Sin fuego amigo** | Los jugadores aliados no pueden danarse entre si (cuando el dano entre aliados esta desactivado) | +| **Visibilidad compartida en mapa** | El territorio aliado se muestra en [#5555FF] azul en el mapa de territorio | +| **Interaccion con territorio** | Los aliados pueden usar puertas, asientos y transporte en tu territorio por defecto | +| **Chat de aliados** | Usa `/f c` para cambiar al modo de chat de aliados para comunicacion entre facciones | +| **Proteccion contra sobrereclamacion** | Los aliados no pueden sobrereclamar el territorio del otro | + +>[!NOTE] Tu faccion puede tener hasta **10 alianzas** a la vez. Elige a tus aliados sabiamente. + +--- + +## Etiqueta de Alianza + +>[!TIP] La comunicacion es clave. Antes de enviar una solicitud de alianza, considera contactar al lider de la otra faccion para discutir terminos. Una alianza fuerte se construye sobre beneficio mutuo, no solo conveniencia. -Beneficios: sin fuego amigo, visibilidad compartida en el mapa. -> Puede haber un limite en la cantidad de alianzas. +- Las alianzas funcionan en ambas direcciones -- si te beneficias de la proteccion, tus aliados esperan lo mismo +- Romper una alianza durante tiempo de guerra puede danar la reputacion de tu faccion +- Las facciones aliadas pueden coordinar reclamos de territorio para crear fronteras defendibles diff --git a/src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md index 7458a504..cb8719ad 100644 --- a/src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/es-ES/help/diplomacy/enemies.md @@ -4,14 +4,44 @@ commands: enemy, neutral --- # Facciones Enemigas -Declarar un enemigo habilita el PvP y la agresion -territorial contra ellos. Accion unilateral. +Declarar un enemigo es una **accion unilateral** que inmediatamente habilita PvP y agresion territorial contra la faccion objetivo. No se requiere acuerdo. -`/f enemy ` -Declara enemigo inmediatamente. No requiere acuerdo. +--- + +## Declarar un Enemigo + +`/f enemy ` + +Marca instantaneamente a la faccion objetivo como tu enemigo. Esto entra en efecto inmediatamente -- no se necesita confirmacion del otro lado. Requiere rango de Oficial o superior. + +## Restablecer a Neutral + +`/f neutral ` + +Termina el estado de enemigo y restablece la relacion a neutral. Esto tambien requiere Oficial+ y entra en efecto inmediatamente. + +--- + +## Que Habilita el Estado de Enemigo + +| Efecto | Detalles | +|--------|----------| +| **PvP en territorio** | PvP completo habilitado en el territorio de ambas facciones | +| **Sobrereclamar** | Puedes usar `/f overclaim` en sus chunks si estan en deficit de poder | +| **Marcacion en mapa** | El territorio enemigo se muestra en [#FF5555] rojo en el mapa de territorio | +| **Sin proteccion** | La proteccion de territorio estandar no previene PvP enemigo | + +>[!WARNING] Declarar un enemigo es una decision seria. Sus miembros tambien pueden pelear contigo en tu propio territorio una vez que declares. + +--- + +## Consideraciones Estrategicas + +- Las declaraciones de enemigo son **unilaterales** -- puedes declarar sin su consentimiento, pero ellos tambien te ven como hostil +- Antes de declarar, revisa el poder del objetivo con `/f info `. Si son fuertes, puedes perder territorio en su lugar +- Debilita a los enemigos a traves de combate repetido para drenar su poder, luego sobreclama su tierra +- **No hay limite** de cuantos enemigos puedes tener, pero pelear en multiples frentes es arriesgado -PvP habilitado en el territorio del otro. Se puede -reclamar territorio si se debilitan. +>[!TIP] Usa `/f neutral ` para desescalar conflictos. A veces una paz estrategica es mas valiosa que una guerra continua. -`/f neutral ` -Restablece la relacion a neutral, finalizando la enemistad. +>[!NOTE] Si estas aliado con una faccion y la declaras como enemiga, la alianza se rompe primero. diff --git a/src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md index 264c169d..ab2bf378 100644 --- a/src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/es-ES/help/diplomacy/relations.md @@ -4,15 +4,35 @@ commands: relations --- # Relaciones entre Facciones -Cada par de facciones tiene una relacion diplomatica: +Cada par de facciones tiene una relacion diplomatica que determina como interactuan. Hay tres estados: **Aliado**, **Enemigo** y **Neutral**. -Aliado — Sin fuego amigo, protegidos de los reclamos -del otro. Requiere acuerdo mutuo. +--- + +## Comparacion de Relaciones -Enemigo — PvP habilitado en el territorio del otro. -Se puede reclamar territorio si el objetivo esta debilitado. +| Efecto | Aliado | Neutral | Enemigo | +|--------|--------|---------|---------| +| **PvP en territorio** | Desactivado | Reglas estandar | Activado | +| **Proteccion de territorio** | Proteccion mutua | Proteccion estandar | Puede sobrereclamar si esta debilitado | +| **Fuego amigo** | Desactivado | N/A | Activado en todas partes | +| **Color en mapa** | [#5555FF] Azul | [#AAAAAA] Gris | [#FF5555] Rojo | +| **Como establecer** | Acuerdo mutuo | Estado predeterminado | Declaracion unilateral | +| **Acceso a chat** | Canal de chat aliado | Ninguno | Ninguno | -Neutral — Estado por defecto. Se aplican reglas estandar. +--- + +## Ver Relaciones `/f relations` -Consulta todas las alianzas, enemigos y solicitudes pendientes. + +Muestra todas tus alianzas actuales, enemigos y cualquier solicitud de alianza pendiente. + +## Como Funcionan las Relaciones + +- **Neutral** es el estado predeterminado entre todas las facciones. Se aplican las reglas estandar del servidor. +- **Alianza** requiere que ambas facciones esten de acuerdo. Cualquier lado puede romperla unilateralmente. +- **Enemigo** se declara de forma unilateral. No se necesita acuerdo -- la otra faccion queda marcada inmediatamente como tu enemigo. + +>[!INFO] Las relaciones son gestionadas por Oficiales y Lideres. Los Miembros pueden ver relaciones pero no pueden cambiarlas. + +>[!TIP] Usa `/f relations` regularmente para mantenerte al tanto del panorama diplomatico. Saber quienes son tus enemigos te ayuda a prepararte para conflictos territoriales. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/commands.md b/src/main/resources/Server/Languages/es-ES/help/economy/commands.md index e923c336..034b72de 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/commands.md @@ -3,19 +3,27 @@ id: economy_commands --- # Comandos de Economia -Referencia rapida de comandos de economia: +Referencia rapida para todos los comandos de economia de faccion. -`/f balance` -Ver saldo de la tesoreria. +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f balance | Ver saldo de tesoreria | Cualquiera | +| /f deposit (amount) | Depositar en la tesoreria | Cualquiera | +| /f withdraw (amount) | Retirar de la tesoreria | Oficial+ | +| /f money transfer (faction) (amount) | Transferir a otra faccion | Oficial+ | +| /f money log [page] | Ver historial de transacciones | Oficial+ | -`/f deposit ` -Depositar fondos. +--- + +## Alias de Comandos + +- `/f balance` tambien puede usarse como `/f bal` +- `/f deposit` y `/f withdraw` aceptan cantidades decimales -`/f withdraw ` -Retirar fondos. (Oficial+) +## Permisos -`/f money transfer ` -Transferir a otra faccion. +Todos los comandos de economia requieren nodos de permiso +`hyperfactions.economy.*`. Retirar y transferir estan +adicionalmente restringidos por rol de faccion (Oficial o superior). -`/f money log [pagina]` -Ver historial de transacciones. +>[!TIP] Usa /f money log para revisar depositos, retiros y transferencias recientes con marcas de tiempo. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/funds.md b/src/main/resources/Server/Languages/es-ES/help/economy/funds.md index 2b315846..e6b09d86 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/funds.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/funds.md @@ -4,15 +4,43 @@ commands: deposit, withdraw --- # Gestionar Fondos -Los Miembros depositan; los Oficiales pueden retirar/transferir. +Los miembros de la faccion trabajan juntos para mantener la +tesoreria financiada a traves de depositos, retiros y transferencias. -`/f deposit ` -Deposita de tu saldo a la tesoreria. +## Depositar -`/f withdraw ` -Retira de la tesoreria. (Oficial+) +Cualquier miembro puede depositar fondos personales en la +tesoreria de la faccion. -`/f money transfer ` -Transfiere fondos a la tesoreria de otra faccion. +`/f deposit ` +Deposita de tu saldo personal a la tesoreria. -> Todas las transacciones quedan registradas para revision. +## Retirar + +Los Oficiales y el Lider pueden retirar fondos de vuelta a +su saldo personal. + +`/f withdraw ` +Retira de la tesoreria a tu saldo. (Oficial+) + +## Transferir + +Los Oficiales pueden transferir fondos directamente entre +tesorerias de facciones para acuerdos comerciales o diplomacia. + +`/f money transfer ` +Envia fondos a la tesoreria de otra faccion. (Oficial+) + +--- + +## Comisiones + +| Transaccion | Comision | +|-------------|----------| +| Deposito | 0% | +| Retiro | 0% | +| Transferencia | 0% | + +>[!INFO] Las tasas de comision son configurables por el servidor y pueden diferir de los valores predeterminados mostrados arriba. + +>[!TIP] Todas las transacciones se registran. Usa /f money log para revisar la actividad reciente. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md b/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md index b7c1d313..e8970219 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md @@ -4,10 +4,27 @@ commands: balance --- # Tesoreria de Faccion -Cada faccion tiene una tesoreria compartida. -Gestionada por los Oficiales y el Lider. +Cada faccion tiene una tesoreria compartida que sirve como +el banco de la faccion. Los fondos se usan para costos de +mantenimiento, mantenimiento de territorio y operaciones de faccion. + +## Saldo Inicial + +Las facciones nuevas comienzan con **0** en su tesoreria. +Los miembros deben depositar fondos para acumular reservas. + +## Quien Puede Gestionar + +- **Cualquier miembro** puede depositar fondos +- **Oficiales y Lider** pueden retirar y transferir +- **Lider** tiene control total de la tesoreria + +--- `/f balance` -Consulta el saldo de la tesoreria de tu faccion. (Alias: bal) +Consulta el saldo actual de la tesoreria de tu faccion. +Tambien disponible como `/f bal`. + +>[!TIP] Contribuye regularmente para mantener tu faccion financiada. Los costos de mantenimiento de territorio pueden vaciar una tesoreria rapidamente. -> Contribuye regularmente para mantener tu faccion financiada! +>[!INFO] Todas las transacciones de tesoreria se registran y pueden ser revisadas por los oficiales. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md b/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md new file mode 100644 index 00000000..baef7122 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md @@ -0,0 +1,45 @@ +--- +id: economy_upkeep +--- +# Mantenimiento de Territorio + +Las facciones deben pagar un mantenimiento continuo +para conservar su territorio reclamado. Esto evita +el acaparamiento de tierras y mantiene el mapa activo. + +## Costos de Mantenimiento + +| Configuracion | Valor por defecto | +|---------------|-------------------| +| Costo por chunk | 2.0 por ciclo | +| Intervalo de pago | Cada 24 horas | +| Chunks gratis | 3 (sin costo) | +| Modo de escalado | Tarifa plana | + +Tus primeros **3 chunks son gratis**. Mas alla de +eso, cada chunk adicional reclamado cuesta 2.0 por +ciclo de pago. + +## Pago Automatico + +El pago automatico esta **habilitado por defecto**. +El sistema deduce automaticamente el mantenimiento de +tu tesoreria en cada intervalo. No requiere accion +manual. + +--- + +## Periodo de Gracia + +Si tu tesoreria no puede cubrir el mantenimiento, +comienza un **periodo de gracia de 48 horas**. Se +envia una advertencia 6 horas antes de que se +empiecen a perder reclamos. + +>[!WARNING] Si el mantenimiento sigue sin pagarse despues del periodo de gracia, tu faccion pierde 1 reclamo por ciclo hasta que los costos se cubran o todos los reclamos extra desaparezcan. + +## Ejemplo + +*Una faccion con 8 reclamos paga por 5 chunks (8 menos 3 gratis). A 2.0 por chunk, eso es 10.0 por ciclo.* + +>[!TIP] Manten tu tesoreria por encima del costo de mantenimiento. Usa /f balance para revisar tus reservas. diff --git a/src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md b/src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md index 7d2547fb..7715e5c4 100644 --- a/src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/es-ES/help/power_land/claiming.md @@ -4,13 +4,45 @@ commands: claim, unclaim --- # Reclamar Territorio -Reclamar un chunk lo protege. Solo los miembros -pueden construir, destruir o acceder a contenedores. +Reclamar un chunk lo protege bajo el control de tu faccion. Solo los miembros de la faccion pueden construir, destruir o acceder a contenedores dentro del territorio reclamado. + +--- + +## Como Reclamar `/f claim` -Reclama el chunk en el que te encuentras. (Oficial+) + +Parate en el chunk que quieres reclamar y ejecuta este comando. El chunk queda protegido inmediatamente. Requiere rango de **Oficial** o superior. + +## Como Desreclamar `/f unclaim` -Libera un reclamo y lo devuelve a tierra salvaje. (Oficial+) -> Cada reclamo cuesta un punto de poder. No te expandes de mas! +Libera el chunk donde estas parado de vuelta a terreno salvaje. Tambien requiere Oficial+. + +--- + +## Reglas de Reclamo + +| Regla | Predeterminado | +|-------|----------------| +| **Costo de poder por reclamo** | 2.0 de poder | +| **Reclamos maximos** | 100 por faccion | +| **Solo adyacentes** | No (puedes reclamar en cualquier lugar) | + +>[!INFO] Cada reclamo cuesta 2.0 de poder para mantener. Una faccion con 50 de poder total puede mantener hasta 25 reclamos de forma segura. + +--- + +## Que Proporciona la Proteccion + +Dentro del territorio reclamado, lo siguiente se aplica por defecto: + +- **Los foraneos** no pueden destruir, colocar o interactuar con bloques +- **Los aliados** pueden usar puertas, asientos y transporte pero no pueden destruir o colocar bloques +- **Los Miembros y Oficiales** tienen acceso completo para construir, destruir y usar todo +- El acceso a contenedores (cofres, cajas) esta restringido solo a miembros + +>[!TIP] Tambien puedes reclamar directamente desde el mapa de territorio. Abre `/f map` y haz clic en chunks sin reclamar para reclamarlos. + +>[!WARNING] No te expandas demasiado. Si tu faccion pierde poder por muertes, los reclamos que excedan tu presupuesto de poder se vuelven vulnerables a sobrereclamaciones. diff --git a/src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md index acfb2339..53c152ac 100644 --- a/src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/es-ES/help/power_land/losing_territory.md @@ -4,11 +4,45 @@ commands: overclaim --- # Perder Territorio -Si el poder total cae por debajo de los reclamos, -eres vulnerable. Los enemigos pueden robar tus chunks. +Cuando el poder total de una faccion cae por debajo del costo de sus reclamos, se vuelve **vulnerable**. Los enemigos pueden sobrereclamar chunks directamente. + +--- + +## Como Funciona Sobrereclamar `/f overclaim` -Toma un chunk de una faccion debilitada. (Oficial+) -Mantente a salvo: permanece activo, evita morir y -no te expandes mas de lo que tu poder soporta. +Un Oficial o Lider de una faccion **enemiga** se para en tu chunk reclamado y ejecuta este comando. Si tu faccion esta en deficit de poder, el chunk se transfiere a su faccion. + +## Las Matematicas + +Cada reclamo cuesta **2.0 de poder** para mantener. Si tu poder total cae por debajo de ese umbral, los chunks en deficit son vulnerables. + +>[!WARNING] Sobrereclamar es permanente. Una vez que un enemigo toma un chunk, debes reclamarlo de nuevo (o sobrereclamarlo de vuelta si se debilitan). + +--- + +## Escenario de Ejemplo + +| Factor | Valor | +|--------|-------| +| Miembros | 5 jugadores | +| Poder por miembro | 10 cada uno (inicial) | +| **Poder total** | **50** | +| Reclamos | 30 chunks | +| Poder necesario (30 x 2.0) | **60** | +| **Deficit** | **10 de poder faltante** | + +En este ejemplo, la faccion ya es vulnerable desde el inicio. Los enemigos podrian sobrereclamar hasta **5 chunks** (10 de deficit / 2.0 por reclamo) antes de que la faccion alcance el equilibrio. + +--- + +## Como Prevenir Sobrereclamaciones + +- **No te expandas demasiado** -- siempre manten el poder total por encima del costo de tus reclamos con un margen +- **Mantente activo** -- el poder solo se regenera mientras estas en linea (+0.1/min) +- **Evita muertes innecesarias** -- cada muerte cuesta 1.0 de poder +- **Recluta mas miembros** -- mas jugadores significa mas poder total +- **Desreclama chunks sin usar** -- libera poder con `/f unclaim` + +>[!TIP] Revisa tu estado de poder regularmente con `/f power`. Si tu poder total esta cerca del costo de tus reclamos, considera desreclamar chunks menos importantes antes de una guerra. diff --git a/src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md b/src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md index 9617b3fc..21a1cf65 100644 --- a/src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/es-ES/help/power_land/territory_map.md @@ -4,10 +4,41 @@ commands: map --- # El Mapa de Territorio -Una vista aerea de los chunks reclamados cerca de ti. +El mapa de territorio te da una vista aerea de los chunks reclamados en tu area, mostrando que facciones controlan la tierra a tu alrededor. + +--- + +## Abrir el Mapa `/f map` -Abre el mapa de territorio. Haz clic en chunks para reclamar. -Tu faccion aparece en tu color. Aliados en azul, -enemigos en rojo, neutrales en gris, tierra salvaje oscura. +Abre la interfaz del mapa de territorio centrada en tu ubicacion actual. + +--- + +## Leyenda de Colores + +| Color | Significado | +|-------|-------------| +| [#55FF55] **El color de tu faccion** | Territorio reclamado por tu faccion | +| [#5555FF] **Azul** | Territorio de faccion aliada | +| [#FF5555] **Rojo** | Territorio de faccion enemiga | +| [#AAAAAA] **Gris** | Territorio de faccion neutral | +| [#333333] **Oscuro** | Terreno salvaje (tierra sin reclamar) | +| [#FFAA00] **Dorado** | Zonas especiales (zona segura, zona de guerra) | + +>[!INFO] El color de tu faccion en el mapa coincide con el color que estableciste en la configuracion de color de faccion. Los aliados y enemigos usan colores fijos para facil identificacion. + +--- + +## Clic para Reclamar + +El mapa no es solo para ver -- puedes interactuar con el directamente. + +- **Haz clic en un chunk sin reclamar** para reclamarlo (requiere rango Oficial+ y poder suficiente) +- **Haz clic en un chunk reclamado** para ver que faccion lo posee +- Desplazate o mueve el mapa para explorar el area a tu alrededor + +>[!TIP] El mapa es la forma mas facil de planear la expansion de tu territorio. Busca areas sin reclamar cerca de tu base y reclama estrategicamente para crear un borde contiguo. + +>[!NOTE] El mapa muestra un area fija alrededor de tu posicion. Muevete a otra ubicacion y vuelve a abrirlo para ver otras partes del mundo. diff --git a/src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md index 4cb7f4fd..a73464cc 100644 --- a/src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/es-ES/help/power_land/understanding_power.md @@ -4,11 +4,40 @@ commands: power --- # Entender el Poder -El poder permite a tu faccion mantener territorio. -Cada jugador tiene poder personal que se suma al total. +El poder es el recurso principal que determina cuanto territorio puede mantener tu faccion. Cada jugador tiene poder personal que contribuye al total de la faccion. + +--- + +## Valores de Poder Predeterminados + +| Configuracion | Valor | +|---------------|-------| +| **Poder maximo por jugador** | 20 | +| **Poder inicial** | 10 | +| **Penalidad por muerte** | -1.0 por muerte | +| **Recompensa por matar** | 0.0 | +| **Tasa de regeneracion** | +0.1 por minuto (mientras esta en linea) | +| **Costo de poder por reclamo** | 2.0 | +| **Desconexion mientras etiquetado** | -1.0 adicional | + +## Como Funciona + +El **poder total** de tu faccion es la suma del poder personal de cada miembro. Tu **poder requerido** es el numero de reclamos multiplicado por 2.0. Mientras el poder total se mantenga por encima del poder requerido, tu territorio esta seguro. + +>[!INFO] El poder se regenera pasivamente a 0.1 por minuto mientras estas en linea. A esa tasa, recuperar 1.0 de poder toma aproximadamente 10 minutos. + +--- + +## Consultar Tu Poder `/f power` -Consulta tu poder y el total de tu faccion. -El poder se regenera estando conectado y disminuye al morir. -> Si los reclamos superan el poder, eres vulnerable! +Muestra tu poder personal, el poder total de tu faccion y cuanto se necesita para mantener los reclamos actuales. + +## La Zona de Peligro + +Si el poder total cae **por debajo** de la cantidad requerida para tus reclamos, tu faccion se vuelve vulnerable. Los enemigos pueden usar `/f overclaim` para robar tus chunks. + +>[!WARNING] Multiples muertes en un corto periodo pueden escalar rapidamente. Si tienes 5 miembros cada uno con 10 de poder (50 total) y 20 reclamos (40 necesarios), solo 5 muertes en tu equipo te bajan a 45 -- aun seguro. Pero 11 muertes te ponen en 39, por debajo del umbral de 40. + +>[!TIP] Manten un margen de poder. No reclames cada chunk que puedas costear -- deja espacio para algunas muertes sin volverte vulnerable. diff --git a/src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md index 458823f4..a6af93f5 100644 --- a/src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/quick_ref/all_commands.md @@ -4,77 +4,91 @@ id: quickref_commands # Todos los Comandos ## Principal -`/f — Abrir menu de faccion (alias: gui, menu)` -`/f help — Abrir este centro de ayuda` -`/f create — Crear una faccion` -`/f disband — Disolver tu faccion (Lider)` -`/f leave — Abandonar tu faccion` - -## Miembros -`/f invite — Invitar jugador (Oficial+)` -`/f accept [faccion] — Aceptar invitacion (alias: join)` -`/f request — Solicitar unirse` -`/f kick — Expulsar miembro (Oficial+)` -`/f promote — Promover a Oficial (Lider)` -`/f demote — Degradar a Miembro (Lider)` -`/f transfer — Transferir liderazgo` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f | Abrir menu de faccion | Cualquiera | +| /f help | Abrir centro de ayuda | Cualquiera | +| /f create (name) | Crear una faccion | Cualquiera | +| /f disband | Eliminar tu faccion | Lider | +| /f leave | Abandonar tu faccion | Cualquiera | + +## Membresia + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f invite (player) | Invitar a un jugador | Oficial+ | +| /f accept [faction] | Aceptar una invitacion | Cualquiera | +| /f request (faction) | Solicitar unirse | Cualquiera | +| /f kick (player) | Remover a un miembro | Oficial+ | +| /f promote (player) | Promover a Oficial | Lider | +| /f demote (player) | Degradar a Miembro | Lider | +| /f transfer (player) | Transferir liderazgo | Lider | ## Territorio -`/f claim — Reclamar chunk actual (Oficial+)` -`/f unclaim — Liberar chunk actual (Oficial+)` -`/f overclaim — Tomar chunk de faccion debilitada` -`/f map — Abrir mapa de territorio` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f claim | Reclamar chunk actual | Oficial+ | +| /f unclaim | Liberar chunk actual | Oficial+ | +| /f overclaim | Tomar chunk debilitado | Oficial+ | +| /f map | Abrir mapa de territorio | Cualquiera | ## Teletransporte -`/f home — Teletransportarse al hogar de faccion` -`/f sethome — Establecer hogar de faccion (Oficial+)` -`/f delhome — Eliminar hogar de faccion (Oficial+)` -`/f stuck — Escapar de territorio enemigo` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f home | Teletransportarse al hogar de faccion | Cualquiera | +| /f sethome | Establecer hogar de faccion | Oficial+ | +| /f delhome | Eliminar hogar de faccion | Oficial+ | +| /f stuck | Escapar de territorio enemigo | Cualquiera | ## Informacion -`/f info [faccion] — Ver detalles de faccion` -`/f list — Explorar todas las facciones` -`/f members — Ver lista de miembros` -`/f who [jugador] — Ver info de jugador` -`/f power [jugador] — Consultar niveles de poder` -`/f invites — Gestionar invitaciones/solicitudes` -`/f relations — Ver relaciones diplomaticas` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f info [faction] | Ver detalles de faccion | Cualquiera | +| /f list | Explorar todas las facciones | Cualquiera | +| /f members | Ver lista de miembros | Cualquiera | +| /f who [player] | Ver info de jugador | Cualquiera | +| /f power [player] | Consultar niveles de poder | Cualquiera | +| /f invites | Gestionar invitaciones/solicitudes | Cualquiera | +| /f relations | Ver relaciones diplomaticas | Cualquiera | ## Diplomacia -`/f ally — Solicitar alianza (Oficial+)` -`/f enemy — Declarar enemigo (Oficial+)` -`/f neutral — Restablecer a neutral` - -## Ajustes -`/f settings — Abrir GUI de ajustes (Oficial+)` -`/f rename — Renombrar faccion (Lider)` -`/f desc [texto] — Establecer descripcion (Oficial+)` -`/f color — Establecer color de faccion (Oficial+)` -`/f open — Permitir que cualquiera se una (Lider)` -`/f close — Requerir invitacion (Lider)` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f ally (faction) | Solicitar alianza | Oficial+ | +| /f enemy (faction) | Declarar enemigo | Oficial+ | +| /f neutral (faction) | Restablecer a neutral | Oficial+ | + +## Configuracion + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f settings | Abrir interfaz de configuracion | Oficial+ | +| /f rename (name) | Renombrar faccion | Lider | +| /f desc [text] | Establecer descripcion | Oficial+ | +| /f color (code) | Establecer color de faccion | Oficial+ | +| /f open | Permitir que cualquiera se una | Lider | +| /f close | Requerir invitacion | Lider | ## Economia -`/f balance — Ver tesoreria` -`/f deposit — Depositar fondos` -`/f withdraw — Retirar (Oficial+)` -`/f money transfer — Transferir` -`/f money log [pagina] — Historial de transacciones` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f balance | Ver tesoreria | Cualquiera | +| /f deposit (amount) | Depositar fondos | Cualquiera | +| /f withdraw (amount) | Retirar fondos | Oficial+ | +| /f money transfer (faction) (amt) | Transferir fondos | Oficial+ | +| /f money log [page] | Historial de transacciones | Oficial+ | ## Chat -`/f c — Ciclo: Normal > Faccion > Aliado` -`/f c f — Chat de faccion` -`/f c a — Chat de aliados` -`/f c off — Chat publico` - -## Admin (requiere hyperfactions.admin) -`/f admin — Abrir panel de administracion` -`/f admin reload — Recargar configuracion` -`/f admin sync — Sincronizar datos de faccion` -`/f admin factions — Gestion de facciones` -`/f admin config — Editor de configuracion` -`/f admin zones — Gestion de zonas` -`/f admin backup create — Crear respaldo` -`/f admin backup restore — Restaurar respaldo` -`/f admin safezone — Crear SafeZone` -`/f admin warzone — Crear WarZone` -`/f admin debug toggle — Registro de depuracion` + +| Comando | Descripcion | Rol | +|---------|-------------|-----| +| /f c | Cambiar modo de chat | Cualquiera | +| /f c f | Establecer chat de faccion | Cualquiera | +| /f c a | Establecer chat de aliados | Cualquiera | +| /f c off | Establecer chat publico | Cualquiera | diff --git a/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md new file mode 100644 index 00000000..af11139c --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md @@ -0,0 +1,71 @@ +--- +id: quickref_permissions +--- +# Permisos + +Nodos de permisos clave para HyperFactions. Todos +los nodos estan bajo el espacio de nombres raiz +**hyperfactions**. + +## Permisos Principales + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.use | Acceso a comandos basicos de faccion | +| hyperfactions.faction.create | Crear una nueva faccion | +| hyperfactions.faction.disband | Disolver tu faccion | + +## Membresia + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.member.invite | Invitar jugadores | +| hyperfactions.member.kick | Expulsar miembros | +| hyperfactions.member.promote | Promover miembros | + +## Territorio + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.territory.claim | Reclamar chunks | +| hyperfactions.territory.unclaim | Liberar chunks | +| hyperfactions.territory.overclaim | Sobrereclamar territorio debilitado | + +## Teletransporte + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.teleport.home | Usar hogar de faccion | +| hyperfactions.teleport.sethome | Establecer hogar de faccion | +| hyperfactions.teleport.stuck | Usar teletransporte de emergencia | + +## Diplomacia y Chat + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.relation.ally | Gestionar alianzas | +| hyperfactions.relation.enemy | Declarar enemigos | +| hyperfactions.chat.faction | Usar chat de faccion | +| hyperfactions.chat.ally | Usar chat de aliados | + +## Informacion y Economia + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.info.show | Ver informacion de faccion | +| hyperfactions.info.list | Explorar facciones | +| hyperfactions.economy.deposit | Depositar en tesoreria | +| hyperfactions.economy.withdraw | Retirar de tesoreria | + +## Permisos de Bypass + +| Permiso | Descripcion | +|---------|-------------| +| hyperfactions.bypass.* | Saltar todas las restricciones | +| hyperfactions.bypass.combat | Saltar etiqueta de combate | +| hyperfactions.bypass.power | Saltar limites de poder | +| hyperfactions.bypass.territory | Saltar proteccion de territorio | + +>[!INFO] Los administradores pueden otorgar hyperfactions.* para dar acceso a todos los permisos de una vez. + +>[!NOTE] Algunos permisos estan restringidos por el rol de faccion independientemente de los nodos de permiso. Por ejemplo, solo los Oficiales pueden reclamar incluso teniendo el permiso. diff --git a/src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md b/src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md index d905ff5d..31958ee8 100644 --- a/src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/es-ES/help/welcome/getting_started.md @@ -4,14 +4,35 @@ commands: gui, menu --- # Primeros Pasos -Listo para empezar? Asi se hace: +Bienvenido a HyperFactions! Aqui te explicamos como empezar en unos pocos pasos. -`/f` -Abre el menu de faccion. Explora facciones, crea -la tuya o revisa invitaciones. +--- + +## Paso 1: Abre el Menu de Faccion + +Escribe `/f` para abrir la interfaz principal de facciones. Este es tu centro para todo -- explorar facciones, crear la tuya y gestionar invitaciones. + +## Paso 2: Elige Tu Camino + +| Opcion | Como | +|--------|------| +| **Explorar facciones abiertas** | Haz clic en *Explorar* en el menu y presiona *Unirse* en cualquier faccion abierta. | +| **Aceptar una invitacion** | Revisa la pestana *Invitaciones*. Si alguien te invito, haz clic en *Aceptar*. | +| **Crear la tuya** | Haz clic en *Crear Faccion*, elige un nombre, y seras el Lider. | + +## Paso 3: Explora Tu Faccion + +Una vez que estes en una faccion, veras el **Panel de Faccion** con tu lista de miembros, mapa de territorio, relaciones y configuraciones. + +>[!TIP] Si eres nuevo, intenta unirte a una faccion existente primero. Aprenderas mas rapido con miembros experimentados a tu alrededor. + +--- + +## Primeros Comandos Esenciales -Si te invitaron, revisa la pestana de Invitaciones -y acepta. Si no, busca facciones abiertas o crea -una nueva. +- `/f` -- Abre la interfaz de facciones +- `/f home` -- Teletransportate al hogar de tu faccion +- `/f c` -- Cambia el modo de chat entre Normal, Faccion y Aliado +- `/f map` -- Ver el mapa de territorio a tu alrededor -> Una vez dentro, explora el territorio y empieza a reclamar! +>[!TIP] Tambien puedes escribir `/f help` en el chat para una referencia rapida de comandos en cualquier momento. diff --git a/src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md index da32d018..8a81ad9e 100644 --- a/src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/es-ES/help/welcome/quick_tips.md @@ -3,16 +3,42 @@ id: welcome_tips --- # Consejos Rapidos -## Reclamar Tierra -`/f claim` -Protege el chunk en el que te encuentras. +Consejos utiles organizados por categoria para ayudarte a prosperar. -## Hogar de Faccion -`/f home` -Teletransportate al hogar de faccion. Establece con /f sethome. +--- + +## Territorio + +- Reclama tierra alrededor de tu base temprano con `/f claim` -- las construcciones sin reclamar no tienen **ninguna proteccion** +- Cada reclamo cuesta **2.0 de poder** para mantener, asi que no te expandas mas alla de lo que tus miembros pueden soportar +- Usa `/f map` para explorar reclamos cercanos y encontrar lugares seguros para construir +- Desreclama chunks que ya no necesites con `/f unclaim` para liberar poder + +## Combate + +- Morir cuesta **1.0 de poder** -- evita peleas innecesarias cuando tu faccion esta cerca de su limite de reclamos +- Tienes **5 segundos de proteccion de aparicion** despues de reaparecer +- La etiqueta de combate dura **15 segundos** -- desconectarte mientras estas etiquetado cuesta poder extra +- El fuego amigo esta **desactivado** entre miembros de faccion y aliados por defecto + +>[!WARNING] Desconectarte mientras estas etiquetado en combate causa perdida de poder adicional (1.0 por desconexion). Quedate y pelea o escapa primero. + +## Social + +- Usa `/f c` para cambiar entre modos de chat para que la conversacion de faccion sea privada +- Invita a jugadores de confianza con `/f invite ` -- las invitaciones expiran despues de **5 minutos** +- Forma alianzas con `/f ally ` para proteccion mutua y visibilidad compartida en el mapa +- Revisa `/f relations` para ver tu estado diplomatico completo + +## Economia + +>[!TIP] Si el servidor tiene economia habilitada, tu faccion puede acumular una tesoreria. Los miembros pueden depositar, pero solo los Oficiales y Lideres pueden retirar o transferir fondos. + +- Deposita fondos con la interfaz de tesoreria para fortalecer tu faccion +- Una faccion mas rica puede costear mas reclamos y recuperarse de contratiempos mas rapido -## Chat de Faccion -`/f c` -Cambia el modo de chat: Normal > Faccion > Aliado. +## General -> Morir cuesta poder, debilitando tu control territorial! +- Escribe `/f` en cualquier momento para abrir tu panel de faccion -- todo es accesible desde ahi +- Promueve a miembros activos a Oficial para que puedan ayudar a reclamar y gestionar territorio +- Manten tu faccion activa -- el poder solo se regenera mientras los jugadores estan **en linea** diff --git a/src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md index d31c5ee9..30d16b6a 100644 --- a/src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/es-ES/help/welcome/what_are_factions.md @@ -1,15 +1,37 @@ --- id: welcome_what --- -# Que son las Facciones? +# Que Son las Facciones? -Las facciones son equipos de jugadores que reclaman -territorio, construyen bases y crecen juntos. +Las facciones son **equipos dirigidos por jugadores** que reclaman territorio, construyen bases y compiten por el dominio. Cuando te unes o creas una faccion, obtienes acceso a tierras protegidas, un hogar compartido, chat privado y herramientas diplomaticas. -Como miembro obtienes tierra protegida, un hogar de -faccion, chat privado y relaciones diplomaticas. +>[!TIP] Las facciones se tratan de trabajo en equipo. Cuantos mas miembros activos tengas, mas fuerte sera tu faccion. -La fuerza se mide por poder. Los miembros activos -generan poder; morir lo reduce. Si el poder cae -por debajo de tus reclamos, los enemigos pueden -robar territorio. +--- + +## Mecanicas Principales + +| Mecanica | Que Hace | +|----------|----------| +| **Poder** | Cada jugador genera poder con el tiempo (max 20). El poder total de tu faccion determina cuanta tierra puedes mantener. | +| **Reclamos** | Los chunks reclamados estan protegidos -- solo los miembros pueden construir, destruir o abrir contenedores dentro de ellos. Cada reclamo cuesta 2.0 de poder para mantener. | +| **Relaciones** | Las facciones pueden formar **alianzas** para proteccion mutua o declarar **enemigos** para habilitar PvP y agresion territorial. | +| **Roles** | Tres rangos -- Lider, Oficial, Miembro -- cada uno con diferentes capacidades. | + +--- + +## Como Funciona la Fuerza + +La fuerza de tu faccion proviene de sus miembros. Cada jugador comienza con **10 de poder** y regenera hasta **20** mientras esta en linea. Morir cuesta poder. Si el poder total de tu faccion cae por debajo del costo de tus reclamos, los enemigos pueden **sobrereclamar** tu territorio. + +>[!WARNING] Una sola muerte cuesta 1.0 de poder. Multiples muertes en poco tiempo pueden dejar a tu faccion vulnerable a sobrereclamaciones. + +--- + +## Diplomacia en Resumen + +- **Aliados** -- Acuerdos mutuos que previenen el fuego amigo y protegen el territorio del otro +- **Enemigos** -- Declaraciones unilaterales que habilitan PvP en las tierras del otro y permiten sobrereclamar +- **Neutral** -- El estado predeterminado entre todas las facciones con reglas estandar + +>[!INFO] Puedes gestionar todo esto a traves de la interfaz del juego escribiendo `/f` o mediante comandos de chat. diff --git a/src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md index bf723183..b6e7c940 100644 --- a/src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/es-ES/help/your_faction/creating.md @@ -4,10 +4,35 @@ commands: create --- # Crear una Faccion -Crear una faccion te convierte en Lider con -control total sobre ajustes, miembros y tierra. +Iniciar tu propia faccion te convierte en el **Lider** con control total sobre configuraciones, miembros y territorio. -`/f create ` -Crea una faccion y abre tu panel de control. +--- + +## Como Crear + +`/f create ` + +Esto crea tu faccion e inmediatamente abre el **Panel de Faccion** donde puedes comenzar a invitar miembros, reclamar tierra y configurar ajustes. + +## Reglas de Nombre + +| Regla | Requisito | +|-------|-----------| +| **Longitud** | Entre **3** y **24** caracteres | +| **Caracteres** | Solo letras, numeros y espacios (alfanumerico) | +| **Unicidad** | Dos facciones no pueden compartir el mismo nombre | + +>[!WARNING] Elige tu nombre con cuidado. Renombrar despues requiere permisos de Lider y puede tener un tiempo de espera. + +--- + +## Que Ocurre al Crear + +- Te conviertes en el **Lider** (rango mas alto) +- Tu faccion comienza con **0 reclamos** y tu poder personal (10 por defecto) +- El panel de faccion se abre automaticamente +- Puedes inmediatamente invitar jugadores, reclamar territorio y establecer un hogar de faccion + +>[!INFO] Si el servidor tiene integracion de economia habilitada, crear una faccion puede costar dinero. El costo de creacion lo establece el administrador del servidor. -> Invita amigos, reclama tierra y empieza a construir! +>[!TIP] Despues de crear, tus primeras prioridades deben ser: invitar amigos con `/f invite `, encontrar una ubicacion para la base, y reclamarla con `/f claim`. diff --git a/src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md index fb3865d9..018d8c33 100644 --- a/src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/es-ES/help/your_faction/joining.md @@ -4,14 +4,33 @@ commands: accept, join, request --- # Unirse a una Faccion -Tres formas de unirse a una faccion existente: +Hay tres formas de unirse a una faccion existente, dependiendo de como esta configurada la faccion. -## Explorar Facciones Abiertas -Abre /f y haz clic en Explorar. Haz clic en Unirse en cualquier faccion abierta. +--- + +## Metodos Comparados + +| Metodo | Como Funciona | Requiere | +|--------|---------------|----------| +| **Explorar y Unirse** | Abre `/f`, haz clic en *Explorar*, y presiona *Unirse* en una faccion abierta | La faccion debe estar en modo **abierto** | +| **Aceptar Invitacion** | Un Oficial o Lider de la faccion te envia una invitacion; aceptala desde la pestana *Invitaciones* en `/f` | Una invitacion activa | +| **Solicitar Unirse** | Envia una solicitud a una faccion cerrada con `/f request ` | Un Oficial o Lider para aprobar | + +--- + +## Detalles de Invitacion + +- Las invitaciones son enviadas por Oficiales o Lideres usando `/f invite ` +- Las invitaciones expiran despues de **5 minutos** -- acepta pronto +- Ve tus invitaciones pendientes en la pestana *Invitaciones* del menu de faccion (`/f`) +- Acepta con la interfaz o `/f accept ` + +## Solicitudes de Union + +- Usa `/f request ` para solicitar membresia en una faccion cerrada +- Las solicitudes expiran despues de **24 horas** si no se actua sobre ellas +- Los Oficiales y Lideres pueden aprobar o rechazar solicitudes desde el panel de faccion -## Aceptar una Invitacion -Revisa la pestana de Invitaciones y haz clic en Aceptar. +>[!TIP] No sabes a que faccion unirte? Usa la pestana Explorar en `/f` para ver descripciones de facciones, cantidad de miembros y si son abiertas o solo por invitacion. -## Solicitar Unirse -`/f request ` -Envia una solicitud a una faccion solo por invitacion. +>[!NOTE] Cada faccion puede tener hasta **50 miembros** por defecto. Si una faccion esta llena, tendras que esperar a que se abra un lugar. diff --git a/src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md index a21c51e8..74838462 100644 --- a/src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/es-ES/help/your_faction/managing.md @@ -4,19 +4,41 @@ commands: invite, kick, promote, demote, transfer --- # Gestionar Miembros -Los Oficiales y Lideres gestionan la lista: +Los Oficiales y Lideres comparten la responsabilidad de gestionar la lista de miembros de la faccion. Aqui estan los comandos clave y quien puede usarlos. -`/f invite ` -Envia una invitacion. (Oficial+) +--- + +## Comandos + +| Comando | Que Hace | Rol Requerido | +|---------|----------|---------------| +| `/f invite ` | Envia una invitacion (expira en 5 min) | Oficial+ | +| `/f kick ` | Remueve a un miembro de la faccion | Oficial+ (ver nota) | +| `/f promote ` | Promueve un Miembro a Oficial | Solo Lider | +| `/f demote ` | Degrada un Oficial a Miembro | Solo Lider | +| `/f transfer ` | Transfiere la propiedad de la faccion | Solo Lider | + +>[!NOTE] Los Oficiales solo pueden expulsar **Miembros**. Para remover a otro Oficial, el Lider debe degradarlo primero o expulsarlo directamente. + +--- + +## Invitaciones + +- Las invitaciones expiran despues de **5 minutos** si no son aceptadas +- El jugador invitado las ve en su pestana de Invitaciones cuando abre `/f` +- No hay limite de cuantas invitaciones puedes enviar a la vez +- Tu faccion puede tener hasta **50 miembros** en total + +## Promociones y Degradaciones + +- Solo el **Lider** puede promover o degradar +- `/f promote ` eleva a un Miembro a Oficial +- `/f demote ` baja a un Oficial de vuelta a Miembro -`/f kick ` -Expulsa a un miembro. Los Oficiales expulsan Miembros; los Lideres a todos. +## Transferir Liderazgo -`/f promote ` -Promueve un Miembro a Oficial. (Solo Lider) +>[!WARNING] Transferir el liderazgo es **irreversible**. Seras degradado a Oficial y el jugador objetivo se convierte en el nuevo Lider. Asegurate de confiar completamente en el. -`/f demote ` -Degrada un Oficial a Miembro. (Solo Lider) +`/f transfer ` -`/f transfer ` -> Transfiere el liderazgo. Te conviertes en Oficial. No se puede deshacer! +El objetivo debe ser un miembro actual de tu faccion. diff --git a/src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md b/src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md index b8b72fa3..6be4f190 100644 --- a/src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/es-ES/help/your_faction/roles.md @@ -3,14 +3,42 @@ id: faction_roles --- # Roles y Rangos -Tres rangos con diferentes capacidades: +Cada faccion tiene tres roles en una jerarquia estricta. Los roles superiores heredan todas las capacidades de los roles inferiores. -## Lider (1 por faccion) -Control total: disolver, transferir liderazgo, -promover/degradar, mas todos los permisos de Oficial. +--- + +## Desglose de Permisos + +| Accion | Lider | Oficial | Miembro | +|--------|-------|---------|---------| +| Construir en territorio | S | S | S | +| Usar hogar de faccion | S | S | S | +| Chat de faccion y aliados | S | S | S | +| Invitar jugadores | S | S | N | +| Expulsar miembros | S | S (Solo Miembros) | N | +| Reclamar / desreclamar tierra | S | S | N | +| Sobrereclamar territorio enemigo | S | S | N | +| Establecer hogar de faccion | S | S | N | +| Eliminar hogar de faccion | S | S | N | +| Gestionar relaciones (aliado/enemigo) | S | S | N | +| Ver registros de faccion | S | S | N | +| Promover a Oficial | S | N | N | +| Degradar de Oficial | S | N | N | +| Renombrar faccion | S | N | N | +| Establecer descripcion / etiqueta / color | S | N | N | +| Abrir / cerrar faccion | S | N | N | +| Acceder a configuracion de faccion | S | N | N | +| Transferir liderazgo | S | N | N | +| Disolver faccion | S | N | N | + +>[!NOTE] Los Oficiales pueden expulsar **Miembros** pero no pueden expulsar a otros Oficiales. Solo el Lider puede remover Oficiales. + +--- + +## Detalles de Roles -## Oficial -Invitar/expulsar, reclamar/liberar, establecer hogar, relaciones. +- **Lider** -- Uno por faccion. Tiene control total sobre todas las configuraciones, miembros y territorio. Puede transferir la propiedad a otro miembro. +- **Oficial** -- Miembros de confianza que ayudan a gestionar la faccion. Pueden invitar, expulsar miembros, reclamar tierra y manejar la diplomacia. +- **Miembro** -- El rol predeterminado al unirse. Puede construir en territorio, usar el hogar de faccion y participar en el chat de faccion. -## Miembro -Usar hogar de faccion, chat, construir en territorio. +>[!TIP] Promueve a tus miembros mas activos y confiables a Oficial para que puedan ayudar a gestionar el territorio y reclutar nuevos jugadores. From 436c1248fd6b47326724d69f35bdd91912e7d880 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 14:55:13 -0700 Subject: [PATCH 42/76] feat: add Spanish admin help translations (es-ES), remove placeholder languages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add 18 es-ES admin help topics mirroring en-US structure. Remove de-DE, fr-FR, ja-JP, pt-BR, ru-RU, tr-TR, zh-CN placeholder translations — will be regenerated later with complete content. --- .../Server/Languages/de-DE/hyperfactions.lang | 452 ------------------ .../Languages/de-DE/hyperfactions_admin.lang | 268 ----------- .../Languages/de-DE/hyperfactions_gui.lang | 446 ----------------- .../help/admin/admin_config/configuration.md | 42 ++ .../help/admin/admin_config/world_settings.md | 47 ++ .../admin_economy/treasury_management.md | 40 ++ .../admin/admin_economy/upkeep_management.md | 48 ++ .../help/admin/admin_factions/disbanding.md | 39 ++ .../admin/admin_factions/managing_factions.md | 43 ++ .../help/admin/admin_maintenance/backups.md | 49 ++ .../help/admin/admin_maintenance/imports.md | 49 ++ .../help/admin/admin_maintenance/updates.md | 48 ++ .../admin/admin_overview/getting_started.md | 44 ++ .../help/admin/admin_overview/permissions.md | 41 ++ .../help/admin/admin_power/power_commands.md | 41 ++ .../help/admin/admin_power/power_overrides.md | 60 +++ .../admin/admin_reference/all_commands.md | 66 +++ .../admin/admin_reference/integrations.md | 47 ++ .../help/admin/admin_zones/zone_basics.md | 47 ++ .../help/admin/admin_zones/zone_commands.md | 44 ++ .../help/admin/admin_zones/zone_flags.md | 44 ++ .../Server/Languages/fr-FR/hyperfactions.lang | 452 ------------------ .../Languages/fr-FR/hyperfactions_admin.lang | 268 ----------- .../Languages/fr-FR/hyperfactions_gui.lang | 446 ----------------- .../Server/Languages/ja-JP/hyperfactions.lang | 452 ------------------ .../Languages/ja-JP/hyperfactions_admin.lang | 268 ----------- .../Languages/ja-JP/hyperfactions_gui.lang | 446 ----------------- .../Server/Languages/pt-BR/hyperfactions.lang | 452 ------------------ .../Languages/pt-BR/hyperfactions_admin.lang | 268 ----------- .../Languages/pt-BR/hyperfactions_gui.lang | 446 ----------------- .../Server/Languages/ru-RU/hyperfactions.lang | 452 ------------------ .../Languages/ru-RU/hyperfactions_admin.lang | 268 ----------- .../Languages/ru-RU/hyperfactions_gui.lang | 446 ----------------- .../Server/Languages/tr-TR/hyperfactions.lang | 452 ------------------ .../Languages/tr-TR/hyperfactions_admin.lang | 268 ----------- .../Languages/tr-TR/hyperfactions_gui.lang | 446 ----------------- .../Server/Languages/zh-CN/hyperfactions.lang | 452 ------------------ .../Languages/zh-CN/hyperfactions_admin.lang | 268 ----------- .../Languages/zh-CN/hyperfactions_gui.lang | 446 ----------------- 39 files changed, 839 insertions(+), 8162 deletions(-) delete mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md delete mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions.lang deleted file mode 100644 index 9177f8ff..00000000 --- a/src/main/resources/Server/Languages/de-DE/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: German (de-DE) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with German translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang deleted file mode 100644 index 75e94c48..00000000 --- a/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: German (de-DE) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with German translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang deleted file mode 100644 index c1420d61..00000000 --- a/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: German (de-DE) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with German translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..1e7a6bbf --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md @@ -0,0 +1,42 @@ +--- +id: admin_configuration +--- +# Sistema de Configuracion + +HyperFactions usa un sistema de configuracion modular +en JSON con 11 archivos de configuracion. + +## Comandos de Configuracion del Administrador + +| Comando | Descripcion | +|---------|-------------| +| `/f admin config` | Abrir la GUI del editor visual de configuracion | +| `/f admin reload` | Recargar todos los archivos de configuracion desde disco | +| `/f admin sync` | Sincronizar datos de facciones al almacenamiento | + +## Archivos de Configuracion + +| Archivo | Contenido | +|------|----------| +| `factions.json` | Roles, poder, reclamaciones, combate, relaciones | +| `server.json` | Teletransporte, auto-guardado, mensajes, GUI, permisos | +| `economy.json` | Tesoreria, mantenimiento, ajustes de transacciones | +| `backup.json` | Rotacion y retencion de copias de seguridad | +| `chat.json` | Formato de chat de faccion y aliados | +| `debug.json` | Categorias de registro de depuracion | +| `faction-permissions.json` | Permisos predeterminados por rol | +| `announcements.json` | Difusion de eventos y notificaciones de territorio | +| `gravestones.json` | Ajustes de integracion de lapidas | +| `worldmap.json` | Modos de actualizacion del mapa del mundo | +| `worlds.json` | Sobrescrituras de comportamiento por mundo | + +>[!TIP] La GUI de configuracion proporciona un editor visual con descripciones para cada ajuste. Los cambios se guardan inmediatamente pero algunos requieren `/f admin reload` para tomar efecto completo. + +## Ubicacion de Configuracion + +Todos los archivos se almacenan en: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Las ediciones manuales de JSON requieren `/f admin reload` para aplicarse. Un JSON invalido causara que el archivo sea omitido con una advertencia en el registro del servidor. + +>[!NOTE] La version de configuracion se rastrea en `server.json`. El plugin auto-migra configuraciones anteriores al iniciar. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..1e05b8bb --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md @@ -0,0 +1,47 @@ +--- +id: admin_world_settings +--- +# Ajustes por Mundo + +HyperFactions soporta configuracion por mundo para +reclamaciones, PvP y comportamiento de proteccion. + +## Comandos de Mundo + +| Comando | Descripcion | +|---------|-------------| +| `/f admin world list` | Listar todas las sobrescrituras de mundo | +| `/f admin world info ` | Mostrar ajustes de un mundo | +| `/f admin world set ` | Establecer un ajuste | +| `/f admin world reset ` | Restablecer mundo a valores predeterminados | + +## Ajustes Disponibles + +| Ajuste | Tipo | Descripcion | +|---------|------|-------------| +| claiming_enabled | boolean | Permitir reclamaciones de faccion en este mundo | +| pvp_enabled | boolean | Permitir combate PvP en este mundo | +| power_loss | boolean | Aplicar perdida de poder al morir | +| build_protection | boolean | Aplicar proteccion de construccion en reclamaciones | +| explosion_protection | boolean | Proteger reclamaciones de explosiones | + +## Lista Blanca / Lista Negra de Mundos + +Controla que mundos permiten funciones de facciones +a traves del archivo de configuracion `worlds.json`: + +- **Modo lista blanca**: Solo los mundos listados permiten reclamar +- **Modo lista negra**: Todos los mundos permiten reclamar excepto los listados + +>[!INFO] Los ajustes de mundo se almacenan en `worlds.json` y sobrescriben los valores globales predeterminados de `factions.json`. + +## Ejemplos + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restaurar todos los valores predeterminados + +>[!TIP] Deshabilita las reclamaciones en mundos creativos o de lobby para mantener el sistema de facciones enfocado en la jugabilidad de supervivencia. + +>[!NOTE] Los ajustes por mundo tienen prioridad sobre la configuracion global pero son sobrescritos por los indicadores de zona dentro de ese mundo. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..2d574788 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,40 @@ +--- +id: admin_treasury_management +--- +# Gestion de Tesoreria + +Comandos de administracion para gestionar tesorerias +de facciones. Requiere el permiso `hyperfactions.admin.economy`. + +## Comandos de Tesoreria + +| Comando | Descripcion | +|---------|-------------| +| `/f admin economy balance ` | Ver saldo de tesoreria de la faccion | +| `/f admin economy set ` | Establecer saldo exacto | +| `/f admin economy add ` | Agregar fondos a la tesoreria | +| `/f admin economy take ` | Retirar fondos de la tesoreria | +| `/f admin economy reset ` | Restablecer tesoreria a cero | + +## Ejemplos + +- `/f admin economy balance Vikings` -- consultar saldo +- `/f admin economy set Vikings 5000` -- establecer en 5000 +- `/f admin economy add Vikings 1000` -- depositar 1000 +- `/f admin economy take Vikings 500` -- retirar 500 +- `/f admin economy reset Vikings` -- poner saldo en cero + +>[!TIP] Usa `/f admin info ` para ver el panorama economico completo incluyendo historial de transacciones junto al saldo de tesoreria. + +## Casos de Uso + +| Escenario | Comando | +|----------|---------| +| Distribucion de premios de eventos | `economy add ` | +| Penalizacion por violacion de reglas | `economy take ` | +| Reinicio de economia tras limpieza | `economy reset ` | +| Compensacion por errores | `economy add ` | + +>[!WARNING] Los cambios en la tesoreria se registran en el historial de transacciones de la faccion. Las modificaciones del administrador se registran con el nombre del administrador para responsabilidad. + +>[!NOTE] Todos los comandos de economia de administracion funcionan incluso cuando el modulo de economia esta deshabilitado en la configuracion. Los datos se almacenan independientemente del estado del modulo. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..b1235079 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,48 @@ +--- +id: admin_upkeep_management +--- +# Gestion de Mantenimiento + +El mantenimiento de faccion cobra a las facciones +periodicamente basandose en su territorio y cantidad +de miembros. + +## Controles del Administrador + +Los ajustes de mantenimiento se gestionan a traves del +archivo de configuracion de economia o la GUI de +configuracion del administrador. + +`/f admin config` +Abre el editor de configuracion y navega a los ajustes +de economia para modificar valores de mantenimiento. + +## Ajustes Predeterminados de Mantenimiento + +| Ajuste | Predeterminado | Descripcion | +|---------|---------|-------------| +| Mantenimiento habilitado | false | Interruptor principal del sistema | +| Intervalo de mantenimiento | 24h | Frecuencia de cobro del mantenimiento | +| Costo por reclamacion | 5.0 | Costo por chunk reclamado por ciclo | +| Costo por miembro | 0.0 | Costo por miembro por ciclo | +| Periodo de gracia | 72h | Las facciones nuevas estan exentas | +| Disolver por bancarrota | false | Disolucion automatica si no puede pagar | + +## Monitorear el Mantenimiento + +Usa `/f admin info ` para ver: +- Saldo actual de tesoreria +- Costo estimado de mantenimiento por ciclo +- Tiempo hasta el proximo cobro de mantenimiento +- Si la faccion puede cubrir el mantenimiento + +>[!TIP] Revisa las estadisticas de economia de todas las facciones desde el panel de administracion para identificar facciones en riesgo de bancarrota antes de que se active el mantenimiento. + +>[!INFO] La configuracion de mantenimiento se almacena en `economy.json`. Los cambios realizados a traves de la GUI de configuracion toman efecto despues de recargar con `/f admin reload`. + +## Formula de Mantenimiento + +**Mantenimiento total** = (chunks reclamados x costo por reclamacion) + +(cantidad de miembros x costo por miembro) + +>[!WARNING] Habilitar el mantenimiento en un servidor con facciones existentes puede causar bancarrotas inesperadas. Considera establecer un periodo de gracia o anunciar el cambio con anticipacion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..84d9395a --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md @@ -0,0 +1,39 @@ +--- +id: admin_disbanding +--- +# Disolucion Forzada + +Los administradores pueden disolver cualquier faccion +por la fuerza, sin importar los deseos del lider. + +## Comando + +`/f admin disband ` +Disuelve la faccion indicada por la fuerza. Aparecera +un mensaje de confirmacion antes de ejecutar la accion. + +**Permiso**: `hyperfactions.admin.disband` + +>[!WARNING] Disolver una faccion es **irreversible**. Todas las reclamaciones son liberadas, todos los miembros son removidos y la faccion deja de existir. Crea una copia de seguridad primero. + +## Consecuencias + +Cuando una faccion es disuelta: + +| Efecto | Descripcion | +|--------|-------------| +| **Reclamaciones** | Todo el territorio es liberado inmediatamente | +| **Miembros** | Todos los jugadores son removidos de la lista | +| **Relaciones** | Todas las alianzas y enemistades son eliminadas | +| **Tesoreria** | Gestionada segun la configuracion de economia | +| **Hogar** | El hogar de la faccion es eliminado | +| **Chat** | El historial del chat de faccion es removido | + +## Buenas Practicas + +1. Siempre ejecuta `/f admin backup create` antes de disolver +2. Notifica a los miembros de la faccion cuando sea posible +3. Documenta la razon para los registros del servidor +4. Revisa `/f admin info ` antes de actuar + +>[!TIP] Si el problema es con un miembro especifico, considera usar `/f admin modify` para transferir el liderazgo en lugar de disolver toda la faccion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..1db1d254 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,43 @@ +--- +id: admin_managing_factions +--- +# Gestion de Facciones + +Los administradores pueden inspeccionar y modificar +cualquier faccion del servidor a traves del panel o comandos. + +## Explorar Facciones + +`/f admin factions` +Abre el explorador de facciones del administrador. Ve +todas las facciones con cantidad de miembros, niveles +de poder y territorio. + +`/f admin info ` +Abre el panel de informacion del administrador para una +faccion especifica con detalles completos y opciones +de gestion. + +## Modificar Configuracion de Facciones + +Con el permiso `hyperfactions.admin.modify`, puedes: + +- **Renombrar** una faccion para resolver conflictos +- **Cambiar color** para corregir problemas de visualizacion +- **Alternar abierta/cerrada** para sobrescribir la politica de ingreso +- **Editar descripcion** con fines de moderacion + +>[!TIP] Usa `/f admin who ` para buscar a que faccion pertenece un jugador especifico y ver sus detalles. + +## Ver Miembros y Relaciones + +El panel de informacion del administrador muestra: + +| Seccion | Detalles | +|---------|---------| +| **Miembros** | Lista completa con roles y ultima conexion | +| **Relaciones** | Todas las posiciones de aliados, enemigos y neutrales | +| **Territorio** | Chunks reclamados y balance de poder | +| **Economia** | Saldo de tesoreria y registro de transacciones | + +>[!NOTE] Los comandos de inspeccion del administrador no notifican a la faccion que esta siendo revisada. Solo las modificaciones activan alertas. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..17ca3371 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md @@ -0,0 +1,49 @@ +--- +id: admin_backups +--- +# Sistema de Copias de Seguridad + +HyperFactions incluye copias de seguridad automaticas y +manuales con rotacion GFS (Abuelo-Padre-Hijo). + +## Comandos de Copias de Seguridad + +| Comando | Descripcion | +|---------|-------------| +| `/f admin backup create` | Crear una copia de seguridad manual ahora | +| `/f admin backup list` | Listar todas las copias de seguridad disponibles | +| `/f admin backup restore ` | Restaurar desde una copia de seguridad | +| `/f admin backup delete ` | Eliminar una copia de seguridad especifica | + +**Permiso**: `hyperfactions.admin.backup` + +## Valores Predeterminados de Rotacion GFS + +| Tipo | Retencion | Descripcion | +|------|-----------|-------------| +| Cada hora | 24 | Ultimas 24 capturas por hora | +| Diaria | 7 | Ultimas 7 capturas diarias | +| Semanal | 4 | Ultimas 4 capturas semanales | +| Manual | 10 | Copias creadas manualmente | +| Apagado | 5 | Creadas al detener el servidor | + +>[!INFO] Las copias de seguridad al apagar estan habilitadas por defecto (`onShutdown=true`). Capturan el estado mas reciente antes de que el servidor se detenga. + +## Contenido de las Copias de Seguridad + +Cada archivo ZIP de copia de seguridad contiene: +- Todos los archivos de datos de facciones +- Datos de poder de jugadores +- Definiciones de zonas +- Historial de chat y datos de economia +- Datos de invitaciones y solicitudes de ingreso +- Archivos de configuracion + +>[!WARNING] **Restaurar una copia de seguridad es destructivo.** Reemplaza todos los datos actuales con el contenido de la copia de seguridad. Cualquier cambio realizado despues de que la copia fue creada se perdera. Siempre crea una copia de seguridad nueva antes de restaurar. + +## Buenas Practicas + +1. Crea una copia de seguridad manual antes de acciones importantes del administrador +2. Revisa la retencion de copias de seguridad en `backup.json` +3. Prueba la restauracion en un servidor de pruebas primero +4. Mantiene habilitadas las copias al apagar para recuperacion tras fallos diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..0b18b94f --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md @@ -0,0 +1,49 @@ +--- +id: admin_imports +--- +# Importacion de Datos + +Importa datos de facciones desde otros plugins para +migrar tu servidor a HyperFactions. + +## Comando de Importacion + +`/f admin import [path] [flags]` + +**Permiso**: `hyperfactions.admin.use` + +## Fuentes Soportadas + +| Fuente | Descripcion | +|--------|-------------| +| `elbaphfactions` | Importar desde datos de ElbaphFactions | +| `hyfactions` | Importar desde datos de HyFactions v1 | + +## Indicadores de Importacion + +| Indicador | Descripcion | +|------|-------------| +| `--dry-run` | Validar datos sin importar nada | +| `--overwrite` | Sobrescribir facciones existentes con el mismo nombre | +| `--no-zones` | Omitir datos de zonas durante la importacion | +| `--no-power` | Omitir datos de poder durante la importacion | + +>[!TIP] Siempre ejecuta con `--dry-run` primero para previsualizar lo que sera importado y detectar cualquier problema de datos antes de confirmar los cambios. + +## Proceso de Importacion + +1. Se crea una copia de seguridad previa automaticamente +2. Se cargan las asignaciones de nombres de jugadores +3. Se convierten facciones, reclamaciones y zonas +4. Los datos son validados y guardados + +## Ejemplos + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Usar `--overwrite` **reemplazara** cualquier faccion existente que comparta nombre con una faccion importada. Los datos de miembros y reclamaciones seran sobrescritos. Ejecuta con `--dry-run` primero para identificar conflictos. + +>[!NOTE] Algunos datos especificos de la fuente (ej., parcelas de trabajadores, parcelas de granja) no tienen equivalente en HyperFactions y se registraran como advertencias durante la importacion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..e0ad055d --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md @@ -0,0 +1,48 @@ +--- +id: admin_updates +--- +# Verificacion de Actualizaciones + +HyperFactions puede verificar nuevas versiones y +gestionar la dependencia HyperProtect-Mixin. + +## Comandos de Actualizacion + +| Comando | Descripcion | +|---------|-------------| +| `/f admin update` | Verificar actualizaciones de HyperFactions | +| `/f admin update mixin` | Verificar/descargar HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Alternar descarga automatica | +| `/f admin version` | Mostrar version actual e informacion de compilacion | + +## Canales de Lanzamiento + +| Canal | Descripcion | +|---------|-------------| +| **Estable** | Recomendado para servidores de produccion | +| **Pre-lanzamiento** | Acceso anticipado a funciones proximas | + +>[!INFO] El verificador de actualizaciones solo notifica sobre nuevas versiones. **No** instala automaticamente actualizaciones de HyperFactions. + +## HyperProtect-Mixin + +HyperProtect-Mixin es el mixin de proteccion recomendado +que habilita indicadores de zona avanzados (explosiones, +propagacion de fuego, conservar inventario, etc.). + +- `/f admin update mixin` verifica la ultima version + y la descarga si hay una version mas nueva disponible +- La descarga automatica puede alternarse por servidor + +>[!TIP] Despues de descargar una nueva version del mixin, se requiere reiniciar el servidor para que los cambios tomen efecto. + +## Procedimiento de Reversion + +Si una actualizacion causa problemas: + +1. Detiene el servidor +2. Reemplaza el JAR del plugin con la version anterior +3. Inicia el servidor +4. Verifica la funcionalidad con `/f admin version` + +>[!WARNING] Revertir a una version anterior puede requerir un reinicio de migracion de configuracion. Siempre conserva copias de seguridad antes de actualizar. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..c396737e --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md @@ -0,0 +1,44 @@ +--- +id: admin_getting_started +--- +# Primeros Pasos como Administrador + +Bienvenido a la administracion de HyperFactions. Esta +guia cubre tus primeros pasos despues de instalar el plugin. + +## Abrir el Panel de Administracion + +`/f admin` +Abre la interfaz del panel de administracion con acceso +a todas las herramientas de gestion, editores de zonas +y configuracion del servidor. + +>[!INFO] Necesitas el permiso **hyperfactions.admin.use** o estado de OP para acceder a los comandos de administracion. + +## Requisitos + +- **Con un plugin de permisos**: Otorga `hyperfactions.admin.use` +- **Sin un plugin de permisos**: El jugador debe ser un + operador del servidor (`adminRequiresOp=true` por defecto) + +## Primeros Pasos Tras la Instalacion + +1. Ejecuta `/f admin` para verificar tu acceso +2. Abre **Configuracion** para revisar los ajustes predeterminados de facciones +3. Crea una **Zona Segura** en el spawn con `/f admin safezone Spawn` +4. Opcionalmente crea **Zonas de Guerra** para arenas PvP +5. Revisa los ajustes de **Copia de seguridad** para asegurar la proteccion de datos + +## Capacidades del Administrador + +| Area | Lo Que Puedes Hacer | +|------|----------------| +| Facciones | Inspeccionar, modificar o disolver cualquier faccion | +| Zonas | Crear Zonas Seguras y Zonas de Guerra con indicadores personalizados | +| Poder | Sobrescribir valores de poder de jugadores/facciones | +| Economia | Gestionar tesorerias de facciones y mantenimiento | +| Configuracion | Editar ajustes en vivo via GUI o recargar desde disco | +| Copias de seguridad | Crear, restaurar y gestionar copias de seguridad de datos | +| Importaciones | Migrar datos desde otros plugins de facciones | + +>[!TIP] Usa `/f admin --text` para obtener salida por chat en lugar de la GUI, util para consola o automatizacion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..9ee5d729 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md @@ -0,0 +1,41 @@ +--- +id: admin_permissions +--- +# Permisos de Administracion + +Todas las funciones de administracion estan protegidas +por nodos de permisos en el espacio `hyperfactions.admin`. + +## Nodos de Permisos + +| Permiso | Descripcion | +|-----------|-------------| +| `hyperfactions.admin.*` | Otorga **todos** los permisos de administracion | +| `hyperfactions.admin.use` | Acceso al panel `/f admin` | +| `hyperfactions.admin.reload` | Recargar archivos de configuracion | +| `hyperfactions.admin.debug` | Alternar categorias de registro de depuracion | +| `hyperfactions.admin.zones` | Crear, editar y eliminar zonas | +| `hyperfactions.admin.disband` | Disolver cualquier faccion por la fuerza | +| `hyperfactions.admin.modify` | Modificar los ajustes de cualquier faccion | +| `hyperfactions.admin.bypass.limits` | Ignorar limites de reclamacion y poder | +| `hyperfactions.admin.backup` | Crear y restaurar copias de seguridad | +| `hyperfactions.admin.power` | Sobrescribir valores de poder de jugadores | +| `hyperfactions.admin.economy` | Gestionar tesorerias de facciones | + +## Comportamiento Alternativo + +Cuando **no hay un plugin de permisos** instalado, los +permisos de administracion recurren al estado de operador +del servidor (OP). Esto se controla mediante `adminRequiresOp` +en la configuracion del servidor (por defecto: `true`). + +>[!NOTE] El comodin `hyperfactions.admin.*` otorga todos los permisos de administracion. Usa nodos individuales para un control granular sobre tu equipo de staff. + +## Orden de Resolucion de Permisos + +1. Proveedor **VaultUnlocked** (si esta disponible) +2. Proveedor **HyperPerms** (si esta disponible) +3. Proveedor **LuckPerms** (si esta disponible) +4. **Verificacion de OP** para nodos de administracion (alternativa) + +>[!WARNING] Sin un plugin de permisos y con `adminRequiresOp` deshabilitado, los comandos de administracion estan **abiertos a todos los jugadores**. Siempre usa un plugin de permisos en produccion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..484379bc --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md @@ -0,0 +1,41 @@ +--- +id: admin_power_commands +--- +# Comandos de Administracion de Poder + +Sobrescribir valores de poder de jugadores y facciones. +Todos los comandos requieren el permiso `hyperfactions.admin.power`. + +## Comandos de Poder de Jugador + +| Comando | Descripcion | +|---------|-------------| +| `/f admin power set ` | Establecer valor exacto de poder | +| `/f admin power add ` | Agregar poder al jugador | +| `/f admin power remove ` | Remover poder del jugador | +| `/f admin power reset ` | Restablecer al poder inicial predeterminado | +| `/f admin power info ` | Ver desglose detallado de poder | + +## Como Afecta el Poder a las Facciones + +El poder total de una faccion es la suma del poder +individual de todos sus miembros. Las reclamaciones de +territorio requieren poder total suficiente para mantenerse. + +| Escenario | Efecto | +|----------|--------| +| Poder aumentado | La faccion puede reclamar mas territorio | +| Poder reducido | La faccion puede volverse vulnerable a sobre-reclamacion | +| Poder restablecido | Regresa al jugador al valor inicial predeterminado | + +>[!WARNING] Reducir el poder de un jugador puede causar que su faccion pierda territorio si el poder total cae por debajo del numero de chunks reclamados. + +## Ejemplos + +- `/f admin power set Steve 50` -- establecer exactamente en 50 +- `/f admin power add Steve 10` -- aumentar en 10 +- `/f admin power remove Steve 5` -- reducir en 5 +- `/f admin power reset Steve` -- volver al predeterminado +- `/f admin power info Steve` -- mostrar desglose completo + +>[!TIP] Usa `/f admin power info ` para ver el poder actual, poder maximo y cualquier sobrescritura activa antes de hacer cambios. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..b202aec5 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md @@ -0,0 +1,60 @@ +--- +id: admin_power_overrides +--- +# Sobrescrituras de Poder + +Comandos especiales de poder que cambian como funciona +el poder para jugadores o facciones especificos. + +## Comandos de Sobrescritura + +| Comando | Descripcion | +|---------|-------------| +| `/f admin power setmax ` | Establecer limite maximo de poder personalizado | +| `/f admin power noloss ` | Alternar inmunidad a penalizacion de poder por muerte | +| `/f admin power nodecay ` | Alternar inmunidad a deterioro de poder por desconexion | +| `/f admin power info ` | Ver todas las sobrescrituras y detalles de poder | + +## Poder Maximo Personalizado + +`/f admin power setmax ` +Establece un limite maximo de poder personal para el +jugador, sobrescribiendo el valor predeterminado del servidor. + +>[!INFO] Establecer un maximo personalizado **no** cambia el poder actual. Solo cambia el techo. El jugador aun debe ganar poder hasta el nuevo limite. + +## Modo Sin Perdida + +`/f admin power noloss ` +Alterna la inmunidad a perdida de poder por muerte. +Cuando esta habilitado, el jugador **no** perdera poder +al morir. + +Util para: +- Periodos de proteccion para nuevos jugadores +- Participantes de eventos +- Miembros del staff + +## Modo Sin Deterioro + +`/f admin power nodecay ` +Alterna la inmunidad al deterioro de poder por desconexion. +Cuando esta habilitado, el poder del jugador **no** +disminuira mientras este desconectado. + +Util para: +- Jugadores en ausencia prolongada +- Miembros VIP +- Proteccion estacional + +## Informacion de Poder + +`/f admin power info ` +Muestra un desglose completo: + +- Poder actual y poder maximo +- Sobrescrituras activas (sin perdida, sin deterioro, maximo personalizado) +- Ultima muerte y poder perdido +- Porcentaje de contribucion a la faccion + +>[!TIP] Todas las sobrescrituras de poder persisten entre reinicios del servidor y se almacenan en el archivo de datos del jugador. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..5faf6d91 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md @@ -0,0 +1,66 @@ +--- +id: admin_quickref_commands +--- +# Referencia de Comandos de Administracion + +Lista completa de todos los subcomandos de `/f admin` +con sintaxis y permisos requeridos. + +## Panel y General + +| Comando | Permiso | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin bypass` | admin.bypass.limits | + +## Gestion de Facciones + +| Comando | Permiso | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Gestion de Zonas + +| Comando | Permiso | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Poder y Economia + +| Comando | Permiso | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Mantenimiento + +| Comando | Permiso | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] Todos los nodos de permisos tienen el prefijo `hyperfactions.` (ej., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..f42213b3 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md @@ -0,0 +1,47 @@ +--- +id: admin_integrations +--- +# Integraciones de Plugins + +HyperFactions se integra con varios plugins externos +a traves de dependencias suaves. Todas las integraciones +son opcionales y funcionan correctamente si no estan +disponibles. + +## Verificar Estado de Integraciones + +`/f admin version` +Muestra la version actual y las integraciones detectadas. + +`/f admin integration` +Abre el panel de gestion de integraciones con el estado +detallado de cada plugin detectado. + +## Tabla de Integraciones + +| Plugin | Tipo | Descripcion | +|--------|------|-------------| +| **HyperPerms** | Permisos | Sistema completo de permisos con grupos, herencia y contexto | +| **LuckPerms** | Permisos | Proveedor alternativo de permisos | +| **VaultUnlocked** | Permisos/Economia | Puente de permisos y economia | +| **HyperProtect-Mixin** | Proteccion | Habilita indicadores de zona avanzados (explosiones, fuego, conservar inventario) | +| **OrbisGuard-Mixins** | Proteccion | Mixin alternativo para aplicacion de indicadores de zona | +| **PlaceholderAPI** | Marcadores | 49 marcadores de faccion para otros plugins | +| **WiFlow PlaceholderAPI** | Marcadores | Proveedor alternativo de marcadores | +| **GravestonePlugin** | Muerte | Control de acceso a lapidas en zonas | +| **HyperEssentials** | Funciones | Indicadores de zona para hogares, warps y kits | +| **KyuubiSoft Core** | Framework | Integracion de libreria base | +| **Sentry** | Monitoreo | Rastreo de errores y diagnosticos | + +## Prioridad de Proveedor de Permisos + +1. **VaultUnlocked** (mayor prioridad) +2. **HyperPerms** +3. **LuckPerms** +4. **Alternativa de OP** (si no se encuentra proveedor) + +>[!INFO] Las integraciones se detectan una vez al iniciar usando reflexion. Los resultados se almacenan en cache para la sesion. Se requiere reiniciar el servidor despues de agregar o remover un plugin integrado. + +>[!TIP] Usa `/f admin debug toggle integration` para habilitar el registro detallado de integraciones para solucion de problemas. + +>[!NOTE] HyperProtect-Mixin es el mixin de proteccion **recomendado**. Sin el, 15 indicadores de zona no tendran efecto. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..e62db056 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,47 @@ +--- +id: admin_zone_basics +--- +# Conceptos Basicos de Zonas + +Las zonas son territorios controlados por el administrador +con reglas personalizadas que anulan la proteccion normal +de facciones. + +## Tipos de Zonas + +- **Zona Segura** -- Sin PvP, sin construccion, sin dano. + Ideal para areas de spawn y centros de comercio. +- **Zona de Guerra** -- PvP siempre habilitado, sin construccion. + Ideal para arenas y areas de batalla disputadas. + +## Crear Zonas + +`/f admin safezone ` +Crea una Zona Segura y reclama tu chunk actual. + +`/f admin warzone ` +Crea una Zona de Guerra y reclama tu chunk actual. + +Despues de la creacion, colocate en chunks adicionales +y usa `/f admin zone claim ` para expandir la zona. + +## Gestionar Chunks de Zonas + +`/f admin zone claim ` +Agrega el chunk actual a la zona indicada. + +`/f admin zone unclaim ` +Remueve el chunk actual de la zona indicada. + +`/f admin zone radius ` +Reclama un cuadrado de chunks alrededor de tu posicion. + +## Eliminar Zonas + +`/f admin removezone ` +Elimina permanentemente la zona y libera todos sus +chunks reclamados. + +>[!WARNING] Eliminar una zona libera todos sus chunks instantaneamente. Esto no se puede deshacer sin una restauracion de copia de seguridad. + +>[!INFO] Las reglas de zona **siempre anulan** las reglas de territorio de faccion. Una Zona Segura dentro de territorio enemigo sigue siendo segura. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..dc93989d --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,44 @@ +--- +id: admin_zone_commands +--- +# Referencia de Comandos de Zonas + +Referencia completa de todos los comandos de gestion +de zonas. Todos requieren el permiso `hyperfactions.admin.zones`. + +## Creacion Rapida + +| Comando | Descripcion | +|---------|-------------| +| `/f admin safezone ` | Crear una Zona Segura en el chunk actual | +| `/f admin warzone ` | Crear una Zona de Guerra en el chunk actual | +| `/f admin removezone ` | Eliminar una zona y liberar chunks | + +## Gestion de Zonas + +| Comando | Descripcion | +|---------|-------------| +| `/f admin zone create ` | Crear una zona (safezone/warzone) | +| `/f admin zone delete ` | Eliminar una zona | +| `/f admin zone claim ` | Agregar chunk actual a la zona | +| `/f admin zone unclaim ` | Remover chunk actual de la zona | +| `/f admin zone radius ` | Reclamar radio cuadrado de chunks | +| `/f admin zone list` | Listar todas las zonas con cantidad de chunks | +| `/f admin zone notify ` | Alternar mensajes de entrada/salida | +| `/f admin zone title upper/lower ` | Establecer texto del titulo de zona | +| `/f admin zone properties ` | Abrir la GUI de propiedades de zona | + +## Gestion de Indicadores + +| Comando | Descripcion | +|---------|-------------| +| `/f admin zoneflag ` | Establecer un indicador especifico | + +>[!TIP] Usa la **GUI de propiedades** de zona para un editor visual con interruptores para cada indicador, organizados por categoria. + +## Ejemplos + +- `/f admin safezone Spawn` -- crear proteccion de spawn +- `/f admin zone radius Spawn 3` -- expandir a 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- permitir puertas +- `/f admin zone notify Spawn true` -- mostrar mensajes de entrada diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..645689b4 --- /dev/null +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,44 @@ +--- +id: admin_zone_flags +--- +# Indicadores de Zona + +Las zonas soportan **47 indicadores booleanos** en 10 categorias. +Cada indicador controla un comportamiento especifico dentro de la zona. + +## Resumen de Categorias de Indicadores + +| Categoria | Cantidad | Indicadores Clave | +|----------|-------|-----------| +| Combate | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Dano | 4 | fall_damage, explosion_damage, fire_spread | +| Muerte | 2 | keep_inventory, power_loss | +| Construccion | 4 | build_allowed, block_place, hammer_use | +| Interaccion | 13 | door_use, container_use, bench_use, npc_tame | +| Transporte | 3 | teleporter_use, portal_use, mount_entry | +| Objetos | 4 | item_drop, item_pickup, invincible_items | +| Aparicion de Mobs | 5 | mob_spawning, hostile/passive/neutral | +| Limpieza de Mobs | 4 | mob_clear, hostile/passive/neutral clear | +| Integracion | 5 | gravestone_access, show_on_map, essentials_homes | + +## Valores Predeterminados (Zona Segura vs Zona de Guerra) + +| Indicador | Zona Segura | Zona de Guerra | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Algunos indicadores requieren **HyperProtect-Mixin** para funcionar (ej., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Sin el mixin, estos indicadores no tienen efecto aunque esten habilitados. + +## Establecer Indicadores + +`/f admin zoneflag ` + +>[!TIP] Usa `/f admin zone properties ` para un editor visual con interruptores agrupados por categoria. diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang deleted file mode 100644 index 32931698..00000000 --- a/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: French (fr-FR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with French translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang deleted file mode 100644 index 165fd4a8..00000000 --- a/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: French (fr-FR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with French translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang deleted file mode 100644 index dd53d6a4..00000000 --- a/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: French (fr-FR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with French translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang deleted file mode 100644 index 69d52da6..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: Japanese (ja-JP) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Japanese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang deleted file mode 100644 index 2e8d5b94..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: Japanese (ja-JP) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Japanese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang deleted file mode 100644 index f5d674f0..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: Japanese (ja-JP) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Japanese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang deleted file mode 100644 index c45e3ffb..00000000 --- a/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: Brazilian Portuguese (pt-BR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Brazilian Portuguese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang deleted file mode 100644 index fe5d73cf..00000000 --- a/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: Brazilian Portuguese (pt-BR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Brazilian Portuguese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang deleted file mode 100644 index 45d56183..00000000 --- a/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: Brazilian Portuguese (pt-BR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Brazilian Portuguese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang deleted file mode 100644 index 96655253..00000000 --- a/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: Russian (ru-RU) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Russian translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang deleted file mode 100644 index c31b51a0..00000000 --- a/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: Russian (ru-RU) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Russian translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang deleted file mode 100644 index bfd9aaba..00000000 --- a/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: Russian (ru-RU) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Russian translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang deleted file mode 100644 index b88561fa..00000000 --- a/src/main/resources/Server/Languages/tr-TR/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: Turkish (tr-TR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Turkish translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang deleted file mode 100644 index 932ef287..00000000 --- a/src/main/resources/Server/Languages/tr-TR/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: Turkish (tr-TR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Turkish translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang deleted file mode 100644 index e5dcd0aa..00000000 --- a/src/main/resources/Server/Languages/tr-TR/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: Turkish (tr-TR) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Turkish translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang deleted file mode 100644 index 66ec67dc..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang +++ /dev/null @@ -1,452 +0,0 @@ -# Language: Simplified Chinese (zh-CN) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Simplified Chinese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions - English Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== Common ========== -common.no_permission = You don't have permission to do that. -common.not_in_faction = You are not in a faction. -common.already_in_faction = You are already in a faction. -common.player_not_found = Player not found. -common.faction_not_found = Faction not found. -common.player_not_online = That player is not online. -common.must_be_leader = Only the faction leader can do that. -common.must_be_officer = You must be an Officer or Leader to do that. -common.combat_tagged = You can't do that while combat tagged. -common.cancel = Cancel -common.confirm = Confirm -common.save = Save -common.close = Close -common.yes = Yes -common.no = No -common.loading = Loading... -common.online = Online -common.offline = Offline -common.enabled = Enabled -common.disabled = Disabled -common.none = None -common.page = Page {0} of {1} -common.unknown = Unknown -common.error_generic = Something went wrong. Please try again. -common.gui_fallback = Could not access GUI. Use /f help for commands. -common.admin_prefix = [Admin] -common.location_error = Could not determine your location. -common.world_error = Could not determine your world. -common.invalid_id = Invalid faction ID. -common.na = N/A - -# ========== Commands - Create ========== -cmd.create.no_permission = You don't have permission to create factions. -cmd.create.usage = Usage: /f create -cmd.create.success = Faction '{0}' created! -cmd.create.already_in_named = You are already in {0}. -cmd.create.use_leave_first = Use /f leave first if you want to create a new faction. -cmd.create.name_taken = That faction name is already taken. -cmd.create.name_too_short = Faction name is too short. -cmd.create.name_too_long = Faction name is too long. -cmd.create.failed = Failed to create faction. - -# ========== Commands - Disband ========== -cmd.disband.no_permission = You don't have permission to disband factions. -cmd.disband.not_leader = Only the faction leader can disband. -cmd.disband.confirm_prompt = Are you sure you want to disband your faction? -cmd.disband.confirm_instruction = Type /f disband --text again within {0} seconds to confirm. -cmd.disband.success = Your faction has been disbanded. -cmd.disband.failed = Failed to disband faction. -cmd.disband.cancelled = Previous confirmation cancelled. Type again to confirm disband. - -# ========== Commands - Rename ========== -cmd.rename.no_permission = You don't have permission. -cmd.rename.not_leader = Only the leader can rename the faction. -cmd.rename.usage = Usage: /f rename -cmd.rename.too_short = Name is too short (min {0} chars). -cmd.rename.too_long = Name is too long (max {0} chars). -cmd.rename.name_taken = That name is already taken. -cmd.rename.success = Faction renamed to {0}! -cmd.rename.broadcast = {0} renamed the faction to {1} - -# ========== Commands - Description ========== -cmd.desc.no_permission = You don't have permission. -cmd.desc.not_officer = You must be an officer to set the description. -cmd.desc.set = Faction description set! -cmd.desc.cleared = Faction description cleared. - -# ========== Commands - Open / Close ========== -cmd.open.no_permission = You don't have permission. -cmd.open.not_leader = Only the leader can change this setting. -cmd.open.already_open = Your faction is already open. -cmd.open.success = Your faction is now open! Anyone can join with /f join. -cmd.open.broadcast = {0} opened the faction to public joining. -cmd.close.no_permission = You don't have permission. -cmd.close.not_leader = Only the leader can change this setting. -cmd.close.already_closed = Your faction is already closed. -cmd.close.success = Your faction is now invite-only. -cmd.close.broadcast = {0} closed the faction to invite-only. - -# ========== Commands - Color ========== -cmd.color.no_permission = You don't have permission. -cmd.color.not_officer = You must be an officer to change the color. -cmd.color.colors_disabled = Faction colors are disabled. -cmd.color.usage = Usage: /f color -cmd.color.usage_hint = Valid codes: 0-9, a-f or #RRGGBB hex -cmd.color.invalid = Invalid color. Use 0-9, a-f, or #RRGGBB. -cmd.color.success = Faction color updated! - -# ========== Commands - Claim ========== -cmd.claim.no_permission = You don't have permission to claim territory. -cmd.claim.already_yours = Your faction already owns this chunk. -cmd.claim.cannot_claim_ally = You cannot claim ally territory. -cmd.claim.already_claimed_hint = This chunk is claimed. Use /f overclaim if they are raidable. -cmd.claim.success = Claimed chunk at {0}, {1}! -cmd.claim.not_officer = You must be an officer to claim land. -cmd.claim.already_claimed = This chunk is already claimed. -cmd.claim.max_claims = Your faction has reached max claims. Get more power! -cmd.claim.not_adjacent = You must claim adjacent to existing territory. -cmd.claim.world_not_allowed = Claiming is not allowed in this world. -cmd.claim.orbisguard = This area is protected by OrbisGuard. -cmd.claim.zone_protected = This chunk is in a safezone or warzone. -cmd.claim.insufficient_power = Your faction doesn't have enough power to claim more land. -cmd.claim.failed = Failed to claim chunk. - -# ========== Commands - Invite ========== -cmd.invite.no_permission = You don't have permission to invite players. -cmd.invite.not_officer = You must be an officer to invite players. -cmd.invite.usage = Usage: /f invite -cmd.invite.player_not_found = Player '{0}' not found or offline. -cmd.invite.target_in_faction = That player is already in a faction. -cmd.invite.sent = Invited {0} to your faction. -cmd.invite.received = You have been invited to join {0}! -cmd.invite.accept_hint = Type /f accept {0} to join. - -# ========== Commands - Accept / Join ========== -cmd.join.no_permission = You don't have permission to join factions. -cmd.join.already_in_named = You are already in {0}. -cmd.join.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.join.no_invites = You have no pending invites. -cmd.join.faction_not_found = Faction '{0}' not found. -cmd.join.not_invited = You have no invite from that faction. -cmd.join.faction_gone = That faction no longer exists. -cmd.join.success = You have joined {0}! -cmd.join.broadcast = {0} has joined the faction! -cmd.join.faction_full = That faction is full. -cmd.join.failed = Failed to join faction. - -# ========== Commands - Kick ========== -cmd.kick.no_permission = You don't have permission to kick members. -cmd.kick.usage = Usage: /f kick -cmd.kick.not_in_your_faction = Player '{0}' is not in your faction. -cmd.kick.success = Kicked {0} from the faction. -cmd.kick.broadcast = {0} was kicked from the faction. -cmd.kick.kicked = You have been kicked from the faction. -cmd.kick.cannot_kick_higher = You don't have permission to kick that player. -cmd.kick.cannot_kick_leader = You cannot kick the faction leader. -cmd.kick.failed = Failed to kick player. - -# ========== Commands - Leave ========== -cmd.leave.no_permission = You don't have permission to leave factions. -cmd.leave.confirm_prompt = Are you sure you want to leave your faction? -cmd.leave.confirm_instruction = Type /f leave --text again within {0} seconds to confirm. -cmd.leave.success = You have left your faction. -cmd.leave.broadcast = {0} has left the faction. -cmd.leave.failed = Failed to leave faction. -cmd.leave.cancelled = Previous confirmation cancelled. Type again to confirm leave. - -# ========== Commands - Promote / Demote / Transfer ========== -cmd.rank.promote_no_permission = You don't have permission to promote members. -cmd.rank.promote_usage = Usage: /f promote -cmd.rank.promoted = Promoted {0} to {1}! -cmd.rank.promote_broadcast = {0} was promoted to {1}! -cmd.rank.already_highest = Cannot promote further. Use /f transfer to change leader. -cmd.rank.promote_failed = Failed to promote player. -cmd.rank.demote_no_permission = You don't have permission to demote members. -cmd.rank.demote_usage = Usage: /f demote -cmd.rank.demoted = Demoted {0} to {1}. -cmd.rank.demote_broadcast = {0} was demoted to {1}. -cmd.rank.already_lowest = That player is already a Member. -cmd.rank.demote_failed = Failed to demote player. -cmd.rank.transfer_no_permission = You don't have permission to transfer leadership. -cmd.rank.transfer_usage = Usage: /f transfer -cmd.rank.player_not_in_faction = Player not found in your faction. -cmd.rank.transfer_confirm = Are you sure you want to transfer leadership to {0}? -cmd.rank.transfer_confirm_instruction = Type /f transfer {0} --text again within {1} seconds to confirm. -cmd.rank.transferred = Transferred leadership to {0}! -cmd.rank.transfer_broadcast = {0} is now the faction leader! -cmd.rank.transfer_failed = Failed to transfer leadership. -cmd.rank.transfer_cancelled = Previous confirmation cancelled. Type again to confirm transfer. - -# ========== Commands - Unclaim ========== -cmd.unclaim.no_permission = You don't have permission to unclaim territory. -cmd.unclaim.success = Unclaimed chunk at {0}, {1}. -cmd.unclaim.not_officer = You must be an officer to unclaim land. -cmd.unclaim.chunk_not_claimed = This chunk is not claimed. -cmd.unclaim.not_your_claim = Your faction doesn't own this chunk. -cmd.unclaim.cannot_unclaim_home = Cannot unclaim the chunk with faction home. -cmd.unclaim.would_disconnect = Cannot unclaim — it would disconnect your territory. -cmd.unclaim.failed = Failed to unclaim chunk. - -# ========== Commands - Overclaim ========== -cmd.overclaim.no_permission = You don't have permission to overclaim territory. -cmd.overclaim.success = Overclaimed enemy territory! -cmd.overclaim.not_officer = You must be an officer to overclaim. -cmd.overclaim.not_claimed = This chunk is not claimed. Use /f claim. -cmd.overclaim.own_chunk = Your faction already owns this chunk. -cmd.overclaim.ally = You cannot overclaim ally territory. -cmd.overclaim.target_has_power = This faction still has enough power. -cmd.overclaim.failed = Failed to overclaim. - -# ========== Commands - Stuck ========== -cmd.stuck.no_permission = You don't have permission to use /f stuck. -cmd.stuck.not_stuck = You're not stuck - this is wilderness. -cmd.stuck.combat_tagged = You cannot use /f stuck while in combat! -cmd.stuck.no_safe = Could not find a safe location. -cmd.stuck.teleporting = Teleporting to safety in {0} seconds. Don't move! - -# ========== Commands - Home ========== -cmd.home.no_permission = You don't have permission to teleport to faction home. -cmd.home.no_home = Your faction has no home set. -cmd.home.combat_tagged = You cannot teleport while in combat! -cmd.home.teleported = Teleported to faction home! - -# ========== Commands - SetHome ========== -cmd.sethome.no_permission = You don't have permission to set faction home. -cmd.sethome.world_not_allowed = Cannot set home in this world. -cmd.sethome.not_in_territory = You can only set home in your faction's territory. -cmd.sethome.set = Faction home set! -cmd.sethome.broadcast = {0} set the faction home. -cmd.sethome.not_officer = You must be an officer to set the home. -cmd.sethome.failed = Failed to set home. - -# ========== Commands - DelHome ========== -cmd.delhome.no_permission = You don't have permission to delete faction home. -cmd.delhome.no_home = Your faction does not have a home set. -cmd.delhome.deleted = Faction home deleted! -cmd.delhome.broadcast = {0} deleted the faction home. -cmd.delhome.not_officer = You must be an officer to delete the home. -cmd.delhome.failed = Failed to delete home. - -# ========== Commands - Relation (Ally/Enemy/Neutral/Relations) ========== -cmd.relation.ally_no_permission = You don't have permission to manage alliances. -cmd.relation.ally_usage = Usage: /f ally -cmd.relation.ally_sent = Ally request sent to {0}! -cmd.relation.ally_formed = You are now allies with {0}! -cmd.relation.already_ally = You are already allied with that faction. -cmd.relation.ally_failed = Failed to send ally request. -cmd.relation.enemy_no_permission = You don't have permission to declare enemies. -cmd.relation.enemy_usage = Usage: /f enemy -cmd.relation.enemy_declared = {0} is now your enemy! -cmd.relation.already_enemy = You are already enemies with that faction. -cmd.relation.max_enemies = You have reached the maximum number of enemies. -cmd.relation.enemy_failed = Failed to set enemy. -cmd.relation.neutral_no_permission = You don't have permission to set neutral relations. -cmd.relation.neutral_usage = Usage: /f neutral -cmd.relation.neutral_set = Your faction is now neutral with {0}. -cmd.relation.already_neutral = You are already neutral with that faction. -cmd.relation.neutral_failed = Failed to set neutral. -cmd.relation.cannot_self = You cannot ally with yourself. -cmd.relation.max_allies = You have reached the maximum number of allies. -cmd.relation.view_no_permission = You don't have permission to view relations. -cmd.relation.header = === Faction Relations === -cmd.relation.allies_count = Allies ({0}): -cmd.relation.enemies_count = Enemies ({0}): -cmd.relation.list_entry = - {0} - -# ========== Commands - Chat ========== -cmd.chat.usage = Usage: /f c [f|a|off] -cmd.chat.no_permission = You don't have permission for that chat mode. -cmd.chat.mode_set = Chat mode set to {0} - -# ========== Commands - Invites ========== -cmd.invites.not_officer = You must be an officer to manage invites. -cmd.invites.header = === Faction Invites === -cmd.invites.no_pending = No pending invites or requests. -cmd.invites.outgoing = Outgoing Invites: -cmd.invites.outgoing_entry = {0} (invited by {1}) -cmd.invites.requests = Join Requests: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === Your Invites === -cmd.invites.no_invites = You have no pending invites. -cmd.invites.invite_entry = {0} - Use /f accept {1} - -# ========== Commands - Request ========== -cmd.request.no_permission = You don't have permission to request faction membership. -cmd.request.already_in_named = You are already in {0}. -cmd.request.use_leave_hint = Use /f leave first if you want to join another faction. -cmd.request.usage = Usage: /f request [message] -cmd.request.faction_open = That faction is open! Use /f accept {0} to join directly. -cmd.request.already_requested = You already have a pending request to that faction. -cmd.request.has_invite = You have been invited to that faction! Use /f accept {0} to join. -cmd.request.sent = Sent join request to {0}! -cmd.request.your_message = Your message: "{0}" -cmd.request.officer_review = An officer will review your request. -cmd.request.officer_notify = {0} has requested to join your faction! -cmd.request.officer_review_hint = Use /f gui > Invites to review. - -# ========== Commands - Info ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = You don't have permission to view faction info. -cmd.info.faction_not_found = Faction '{0}' not found. -cmd.info.not_in_faction_hint = You are not in a faction. Use /f info -cmd.info.leader = Leader: {0} -cmd.info.members = Members: {0}/{1} -cmd.info.power = Power: {0} -cmd.info.claims = Claims: {0} -cmd.info.raidable = RAIDABLE! -cmd.info.allies = Allies: {0} -cmd.info.enemies = Enemies: {0} -cmd.info.they_consider = They consider you: {0} -cmd.info.you_consider = You consider them: {0} -cmd.info.members_no_permission = You don't have permission to view faction members. -cmd.info.members_header = === {0} Members ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = You don't have permission to view faction list. -cmd.info.list_empty = There are no factions. -cmd.info.list_header = === Factions ({0}) === -cmd.info.list_entry = {0} - {1} members, {2} power -cmd.info.list_entry_raidable = {0} - {1} members, {2} power [RAIDABLE] -cmd.info.help_no_permission = You don't have permission to view help. -cmd.info.who_no_permission = You don't have permission to view player info. -cmd.info.who_faction = Faction: {0} -cmd.info.who_role = Role: {0} -cmd.info.who_joined = Joined: {0} -cmd.info.who_faction_none = Faction: None -cmd.info.who_power = Power: {0} -cmd.info.who_status = Status: {0} -cmd.info.who_last_seen = Last seen: {0} -cmd.info.map_no_permission = You don't have permission to view the map. -cmd.info.map_header = === Territory Map === -cmd.info.map_legend = Legend: +You /Own /Ally /Enemy -Wild -cmd.info.map_gui_hint = Use /f gui for interactive map - -# ========== Commands - Power ========== -cmd.power.personal = Personal Power: {0}/{1} -cmd.power.faction = Faction Power: {0}/{1} -cmd.power.death_loss = Death Loss: {0} -cmd.power.regen = Regen Rate: {0}/hr -cmd.power.no_permission = You don't have permission to view power info. -cmd.power.header = {0}'s Power: -cmd.power.current = Current: {0} - -# ========== Commands - Economy ========== -cmd.economy.balance = Balance: {0} -cmd.economy.deposited = Deposited {0} into the faction treasury. -cmd.economy.withdrawn = Withdrew {0} from the faction treasury. -cmd.economy.transferred = Transferred {0} to {1}. -cmd.economy.insufficient = Insufficient funds in faction treasury. -cmd.economy.invalid_amount = Invalid amount: {0} -cmd.economy.economy_disabled = Economy is disabled. -cmd.economy.balance_no_permission = You don't have permission to view balances. -cmd.economy.treasury_unavailable = Treasury is not available. -cmd.economy.balance_display = {0}'s treasury: {1} -cmd.economy.deposit_no_permission = You don't have permission to deposit. -cmd.economy.deposit_faction_denied = You don't have faction permission to deposit. -cmd.economy.deposit_usage = Usage: /f deposit -cmd.economy.amount_positive = Amount must be positive. -cmd.economy.wallet_insufficient = You don't have enough money. Wallet: {0} -cmd.economy.wallet_withdraw_failed = Failed to withdraw from your wallet. -cmd.economy.deposit_failed = Failed to deposit to faction treasury. Money returned. -cmd.economy.withdraw_no_permission = You don't have permission to withdraw. -cmd.economy.withdraw_faction_denied = You don't have faction permission to withdraw. -cmd.economy.withdraw_usage = Usage: /f withdraw -cmd.economy.withdraw_limit_denied = Withdrawal denied: {0} -cmd.economy.wallet_deposit_failed = Warning: Failed to deposit to your wallet. Contact an admin. -cmd.economy.withdraw_limit_exceeded = Withdrawal denied: limit exceeded. -cmd.economy.withdraw_failed = Withdrawal failed: {0} -cmd.economy.transfer_no_permission = You don't have permission to transfer. -cmd.economy.transfer_faction_denied = You don't have faction permission to transfer. -cmd.economy.transfer_usage = Usage: /f money transfer -cmd.economy.transfer_self = Cannot transfer to your own faction. -cmd.economy.transfer_limit_denied = Transfer denied: {0} -cmd.economy.transfer_limit_exceeded = Transfer denied: limit exceeded. -cmd.economy.transfer_failed = Transfer failed: {0} -cmd.economy.log_no_permission = You don't have permission to view the transaction log. -cmd.economy.log_header = Transaction Log (page {0}/{1}) -cmd.economy.log_empty = No transactions found. -cmd.economy.money_help_header = Treasury Commands: -cmd.economy.money_help_balance = /f money balance [faction] - View balance -cmd.economy.money_help_deposit = /f money deposit - Deposit into treasury -cmd.economy.money_help_withdraw = /f money withdraw - Withdraw from treasury -cmd.economy.money_help_transfer = /f money transfer - Transfer between factions -cmd.economy.money_help_log = /f money log [page] [type] - View transaction history - -# ========== Protection - Action Phrases ========== -protection.action.generic = You can't do that -protection.action.build = You can't build or break blocks -protection.action.interact = You can't interact with that -protection.action.door = You can't use doors -protection.action.container = You can't open containers -protection.action.bench = You can't use crafting stations -protection.action.processing = You can't use processing stations -protection.action.seat = You can't use seats -protection.action.light = You can't toggle lights -protection.action.teleporter = You can't use teleporters -protection.action.crate = You can't use crates -protection.action.tame = You can't tame creatures -protection.action.npc = You can't interact with NPCs -protection.action.mount = You can't mount creatures -protection.action.pve = You can't damage creatures -protection.action.item_drop = You can't drop items -protection.action.item_pickup = You can't pick up items - -# ========== Protection - Denial Reasons ========== -protection.denied.safezone = {0} in a SafeZone. -protection.denied.warzone = {0} in a WarZone. -protection.denied.enemy_claim = {0} in enemy territory. -protection.denied.claimed = {0} in claimed territory. -protection.denied.here = {0} here. -protection.denied.zone = {0} in this zone. -protection.denied.faction_perm = {0} here. (Faction permission: {1}) -protection.denied.ally_territory = {0} here. (Ally territory) -protection.denied.error = Protection error — action blocked for safety. - -# ========== Protection - PvP ========== -protection.pvp.safezone = PvP is disabled in SafeZones. -protection.pvp.same_faction = You cannot attack faction members. -protection.pvp.ally = You cannot attack allies. -protection.pvp.spawn_protected = That player has spawn protection. -protection.pvp.territory_disabled = PvP is disabled in this territory. -protection.pvp.generic = You cannot attack this player. - -# ========== Protection - Entity Damage ========== -protection.mob_damage_disabled = Mob damage is disabled in this zone. -protection.pve_damage_disabled = PvE damage is disabled in this zone. -protection.pve_territory_denied = You cannot damage mobs in this territory. - -# ========== Protection - Combat Tag ========== -protection.combat_tag_command = You cannot use that command while combat tagged. - -# ========== Server Announcements ========== -# These are broadcast to all online players for significant faction events. -# {0}, {1} = dynamic values (faction names, player names) -server_announce.faction_created = {0} has founded the faction {1}! -server_announce.faction_disbanded = The faction {0} has been disbanded! -server_announce.leadership_transfer = {0} is now the leader of {1}! -server_announce.overclaim = {0} has overclaimed territory from {1}! -server_announce.war_declared = {0} has declared war on {1}! -server_announce.alliance_formed = {0} and {1} are now allies! -server_announce.alliance_broken = {0} and {1} are no longer allies! - -# ========== Teleport System ========== -teleport.cooldown_wait = You must wait {0} before teleporting again. -teleport.warmup_start = Teleporting to faction home in {0} seconds... -teleport.combat_cancelled = Teleportation cancelled - you are in combat! -teleport.success_default = Teleported to faction home! -teleport.no_home = Your faction has no home set. -teleport.world_not_found = World not found. -teleport.failed = Teleportation failed. -teleport.countdown = Teleporting in {0} seconds... -teleport.countdown_one = Teleporting in 1 second... -teleport.moved_cancelled = Teleportation cancelled - you moved! -teleport.damage_cancelled = Teleportation cancelled - you took damage! -teleport.mount_teleport_blocked = You can't teleport into that zone while mounted. -teleport.mount_entry_blocked = You can't enter this zone while mounted. - -# ========== Chat Display ========== -chat.display.public = Public -chat.display.faction = Faction -chat.display.ally = Ally diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang deleted file mode 100644 index 9f59bc07..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang +++ /dev/null @@ -1,268 +0,0 @@ -# Language: Simplified Chinese (zh-CN) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Simplified Chinese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions Admin GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== Admin Navigation Bar ========== -nav.dashboard = Dashboard -nav.actions = Actions -nav.factions = Factions -nav.players = Players -nav.economy = Economy -nav.zones = Zones -nav.config = Config -nav.backups = Backups -nav.log = Log -nav.updates = Updates -nav.help = Help -nav.version = Version - -# ========== Common Admin Labels ========== -common.faction_not_found = Faction Not Found -common.no_faction = No Faction -common.not_set = Not set -common.on = On -common.off = Off -common.enable = Enable -common.disable = Disable -common.none_paren = (None) -common.invalid_faction = Invalid faction. -common.leader_prefix = Leader: {0} -common.members_suffix = {0} members -common.claims_suffix = {0} claims -common.factions_suffix = {0} factions -common.players_suffix = {0} players -common.chunks_suffix = {0} chunks -common.entries_suffix = {0} entries -common.found_suffix = {0} found -common.power_format = {0}/{1} power -common.raidable = Raidable -common.protected = Protected -common.no_description = No description set. -common.officers_more = +{0} more -common.custom_max = (custom max) -common.default_max = (default max) -common.now = Now -common.ago_suffix = {0} ago -common.just_now = just now -common.no_membership_history = No membership history - -# ========== Admin Dashboard ========== -dashboard.factions_prefix = Factions: {0} -dashboard.members_prefix = Total Members: {0} -dashboard.claims_prefix = Total Claims: {0} - -# ========== Admin Actions ========== -actions.confirm_reset = Confirm Reset? -actions.confirm_trigger = Confirm Trigger? -actions.kd_reset = Reset K/D for {0} players. -actions.kd_reset_failed = Failed to reset K/D: {0} -actions.upkeep_unavailable = Upkeep processor is not available. -actions.upkeep_triggered = Upkeep collection triggered. -actions.upkeep_failed = Upkeep failed: {0} - -# ========== Admin Disband ========== -disband.faction_gone = Faction no longer exists. -disband.success = Faction '{0}' has been disbanded. -disband.failed = Failed to disband: {0} -disband.no_leader = Faction has no leader, cannot disband. - -# ========== Admin Unclaim All ========== -unclaim.removed = [Admin] Removed {0} claims from {1}. -unclaim.no_claims = {0} had no claims to remove. - -# ========== Admin Factions List ========== -factions.home_not_set = Not set -factions.teleported = Teleported to {0}'s home. -factions.no_home = Faction has no home set. -factions.world_not_found = Target world not found. - -# ========== Admin Faction Info ========== -info.faction_gone = This faction no longer exists. - -# ========== Admin Faction Members ========== -members.sort_role = Role -members.sort_online = Online -members.sort_name = Name -members.sort_power = Power -members.promoted = [Admin] Promoted {0} to {1}. -members.demoted = [Admin] Demoted {0} to {1}. -members.kicked = [Admin] Kicked {0} from the faction. - -# ========== Admin Faction Relations ========== -relations.allies_header = ALLIES ({0}) -relations.enemies_header = ENEMIES ({0}) -relations.no_allies = No allies. -relations.no_enemies = No enemies. -relations.neutral_count = {0} neutral factions -relations.since_today = Since: today -relations.since_one_day = Since: 1 day ago -relations.since_days = Since: {0} days ago -relations.set_ally = [Admin] Set mutual ally status with {0}. -relations.set_enemy = Set mutual enemy status with {0}. -relations.set_neutral = [Admin] Set mutual neutral status with {0}. - -# ========== Admin Faction Settings ========== -settings.locked = This setting is locked by server configuration. -settings.perm_toggled = Set {0} to {1}. -settings.color_changed = Set faction color to {0}. -settings.recruitment_set = Set recruitment to {0}. -settings.no_home = [Admin] This faction has no home set. -settings.home_cleared = Cleared faction home for {0}. - -# ========== Sort Dropdown Labels ========== -sort.power = Power -sort.name = Name -sort.members = Members -sort.balance = Balance - -# ========== Admin Players ========== -players.sort_last_online = Last Online -players.sort_faction = Faction -players.sort_online = Online -players.not_online = Player is not online. -players.world_not_found = Target world not found. -players.teleported = [Admin] Teleported to {0}. - -# ========== Admin Player Info ========== -playerinfo.disband_faction = Disband Faction -playerinfo.kick_leader = Kick Leader -playerinfo.enter_valid_number = Enter a valid number. -playerinfo.enter_valid_positive = Enter a valid positive number. -playerinfo.faction_gone = Faction no longer exists. -playerinfo.kd_reset = Reset K/D for {0}. -playerinfo.kicked_success = Kicked {0} from {1}. -playerinfo.kicked_leader = Kicked leader {0}. Leadership transferred to {1}. -playerinfo.disbanded_kick = [Admin] Faction '{0}' disbanded (last member kicked). - -# ========== Admin Economy ========== -economy.no_data = No factions with economy data. -economy.amount_zero = Amount cannot be zero. -economy.enter_amount = Please enter an amount. -economy.invalid_number = Invalid number: {0} -economy.error = An error occurred. -economy.balance_negative = Balance cannot be negative. -economy.failed = Failed: {0} -economy.bulk_complete = Bulk adjust complete: {0} {1} to {2} factions. -economy.bulk_failures = ({0} failed) - -# ========== Admin Zones ========== -zones.not_found = Zone not found. -zones.invalid_id = Invalid zone ID. -zones.deleted = Zone {0} deleted. -zones.delete_failed = Failed to delete zone: {0} -zones.no_chunks = No chunks -zones.chunks_suffix = {0} ({1} chunks) - -# ========== Zone Create Wizard ========== -wizard.enter_name = Please enter a zone name. -wizard.name_too_short = Zone name must be at least {0} characters. -wizard.name_too_long = Zone name cannot exceed {0} characters. -wizard.name_taken = A zone with this name already exists. -wizard.radius_range = Radius must be between 1 and {0}. -wizard.create_failed = Could not create zone: {0} -wizard.created_not_found = Zone created but could not be found. -wizard.created = Created {0} '{1}'! -wizard.chunk_claimed = Claimed chunk ({0}, {1}). -wizard.chunk_failed = Could not claim current chunk: {0} -wizard.radius_claimed = Claimed {0} chunks in a {1} radius of {2}. -wizard.radius_no_claims = No chunks could be claimed (area may be occupied). -wizard.no_claims = Zone created with no claims. -wizard.chunks_preview = ~{0} chunks - -# ========== Zone Rename ========== -zone_rename.zone_gone = Zone no longer exists. -zone_rename.enter_name = Please enter a zone name. -zone_rename.too_short = Zone name must be at least {0} character. -zone_rename.too_long = Zone name cannot exceed {0} characters. -zone_rename.same_name = That's already this zone's name. -zone_rename.renamed = [Admin] Zone renamed from {0} to {1}! -zone_rename.name_taken = A zone with that name already exists. -zone_rename.invalid_name = Invalid zone name. -zone_rename.rename_failed = Failed to rename zone: {0} - -# ========== Zone Change Type ========== -zone_type.zone_gone = Zone no longer exists. -zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). -zone_type.failed = Failed to change zone type: {0} - -# ========== Zone Integration Flags ========== -zone_int.zone_not_found = Zone Not Found -zone_int.no_plugin = (no plugin) -zone_int.default = (default) -zone_int.custom = (custom) - -# ========== Activity Log ========== -log.all_types = All Types -log.no_logs = No activity logs matching filters. - -# ========== Version Page ========== -version.active = Active -version.not_found = Not Found -version.not_detected = Not Detected -version.not_installed = Not Installed -version.active_version = Active (v{0}) -version.active_compatible = Active (compatible) -version.active_claims_only = Active (claims only) -version.installed_no_perm = Installed (no perm provider) -version.active_provider = Active ({0}) - -# ========== Admin Main Page ========== -main.reload_hint = Use /f reload to reload configuration. -main.unclaim_hint = Use /f admin unclaim {0} to unclaim all {1} chunks. - -# ========== Zone Flags/Settings ========== -zflags.invalid_flag = Invalid flag. -zflags.zone_not_found = Zone not found. -zflags.conflict = (conflict) -zflags.mixin = (mixin) -zflags.reset_int = Reset integration flags to defaults. -zflags.reset_all = Reset all flags to defaults. -zflags.reset_failed = Failed to reset flags: {0} -zflags.back_to_settings = Back to Settings - -# ========== Zone Properties ========== -zprop.current_custom = Current: "{0}" (custom) -zprop.current_default = Current: "{0}" (default) -zprop.pvp_disabled = PvP Disabled -zprop.pvp_enabled = PvP Enabled -zprop.name_empty = Name cannot be empty. -zprop.renamed = Zone renamed to "{0}". -zprop.name_taken = A zone with that name already exists. -zprop.name_invalid = Invalid name (max 32 characters). -zprop.rename_failed = Failed to rename: {0} -zprop.upper_empty = Upper title cannot be empty. Use Clear to reset. -zprop.upper_set = Upper title set. -zprop.upper_reset = Upper title reset to default. -zprop.lower_empty = Lower title cannot be empty. Use Clear to reset. -zprop.lower_set = Lower title set. -zprop.lower_reset = Lower title reset to default. - -# ========== Relations Additional ========== -relations.failed = Failed: {0} - -# ========== Members Additional ========== -members.never = Never -members.teleported = [Admin] Teleported to {0}. - -# ========== Player Info Additional ========== -playerinfo.records = {0} records -playerinfo.joined_date = Joined: {0} -playerinfo.current = Current -playerinfo.left_date = Left: {0} - -# ========== Zone Map ========== -map.world_warning = WARNING: You are in '{0}' - zone is in '{1}' -map.position = Your Position: Chunk ({0}, {1}) -map.zone_gone = Zone no longer exists. -map.claimed = Claimed chunk ({0}, {1}) for {2}. -map.claim_failed = Failed to claim chunk: {0} -map.unclaimed = Unclaimed chunk ({0}, {1}) from {2}. -map.unclaim_failed = Failed to unclaim chunk: {0} -map.chunk_belongs = This chunk belongs to {0}. -map.chunk_faction = This chunk is claimed by a faction. -map.chunk_protected = This chunk is in a protected region. diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang deleted file mode 100644 index 4483628b..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang +++ /dev/null @@ -1,446 +0,0 @@ -# Language: Simplified Chinese (zh-CN) -# Status: Untranslated — English placeholder values -# To translate: Replace English values with Simplified Chinese translations -# Keep keys and {0} placeholders unchanged - -# HyperFactions GUI - English Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== Navigation Bar ========== -nav.dashboard = Dashboard -nav.chat = Chat -nav.members = Members -nav.invites = Invites -nav.browser = Browse -nav.map = Map -nav.leaderboard = Leaderboard -nav.relations = Relations -nav.treasury = Treasury -nav.settings = Settings -nav.logs = Logs -nav.help = Help -nav.admin = Admin -nav.create = Create - -# ========== Help Category Names ========== -help.category.welcome = Welcome -help.category.your_faction = Your Faction -help.category.power_land = Power & Land -help.category.diplomacy = Diplomacy -help.category.combat = Combat & Safety -help.category.economy = Economy -help.category.quick_ref = Quick Reference - -# ========== Main Menu ========== -main_menu.section_my_faction = My Faction -main_menu.section_get_started = Get Started -main_menu.section_territory = Territory -main_menu.section_browse = Browse -main_menu.section_admin = Admin -main_menu.claim_hint = Use /f claim to claim territory. - -# ========== Faction Info Page ========== -faction_info.no_description = No description set. -faction_info.status_open = Open -faction_info.status_invite_only = Invite Only -faction_info.status_raidable = Raidable -faction_info.status_protected = Protected -faction_info.officers_more = +{0} more - -# ========== Rename Modal ========== -rename.no_permission = You don't have permission to rename the faction. -rename.enter_name = Please enter a faction name. -rename.too_short = Faction name must be at least {0} characters. -rename.too_long = Faction name cannot exceed {0} characters. -rename.same_name = That's already your faction's name. -rename.name_taken = A faction with that name already exists. -rename.success = Faction renamed from {0} to {1}! - -# ========== Description Modal ========== -desc.no_permission = You don't have permission to edit the description. -desc.display_none = (None) -desc.cleared = Faction description cleared. -desc.updated = Faction description updated! - -# ========== Tag Modal ========== -tag.no_permission = You don't have permission to edit the tag. -tag.display_none = (None) -tag.cleared = Faction tag cleared. -tag.too_short = Tag must be at least {0} character. -tag.too_long = Tag cannot exceed {0} characters. -tag.invalid_format = Tag can only contain letters and numbers. -tag.same_tag = That's already your faction's tag. -tag.tag_taken = A faction with that tag already exists. -tag.success = Faction tag set to [{0}]! - -# ========== Dashboard Page ========== -dashboard.faction_gone = Your faction no longer exists. -dashboard.available = {0} available -dashboard.at_risk = At Risk! -dashboard.online_count = {0} online -dashboard.status_invite = Invite -dashboard.in_grace = IN GRACE -dashboard.billable_chunks = {0} billable chunks -dashboard.btn_home = Home -dashboard.btn_set_home = Set Home -dashboard.btn_claim = Claim -dashboard.chat_prefix = Chat: {0} -dashboard.btn_leave = Leave -dashboard.no_activity = No recent activity. -dashboard.time_now = now -dashboard.time_minutes = {0}m ago -dashboard.time_hours = {0}h ago -dashboard.time_days = {0}d ago -dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. -dashboard.chat_mode_set = Chat mode: {0} -dashboard.claim_success = Claimed chunk at ({0}, {1}) - -# ========== Faction Main Page ========== -main.no_faction = No Faction -main.joined = You joined the faction! -main.join_failed = Failed to join faction: {0} -main.invite_declined = Invite declined. -main.cooldown = Teleport on cooldown! {0}s remaining. -main.world_not_found = Cannot teleport - world not found. -main.leave_failed = Failed to leave: {0} - -# ========== Shared GUI Labels ========== -common.faction_count = {0} factions -common.leader_label = Leader: {0} -common.sort_power = Power -common.sort_members = Members -common.page_format = {0}/{1} -common.own_faction = (You) - -# ========== Members Page ========== -members.count = {0} members -members.sort_role = Role -members.sort_last_online = Last Online -members.just_now = just now -members.ago = {0} ago -members.never = Never -members.member_not_found = Member not found. -members.promoted = Promoted {0} to {1}. -members.promote_failed = Failed to promote: {0} -members.demoted = Demoted {0} to {1}. -members.demote_failed = Failed to demote: {0} -members.kicked = Kicked {0} from the faction. -members.kick_failed = Failed to kick: {0} - -# ========== Browser Page ========== -browser.sort_name = Name -browser.invalid_faction = Invalid faction. - -# ========== Leaderboard Page ========== -leaderboard.sort_kd = K/D -leaderboard.sort_territory = Territory -leaderboard.sort_balance = Balance - -# ========== Player Info Page ========== -playerinfo.now = Now -playerinfo.history_count = {0} records -playerinfo.joined_label = Joined: {0} -playerinfo.current = Current -playerinfo.left_label = Left: {0} -playerinfo.no_history = No membership history -playerinfo.faction_gone = Faction no longer exists. -playerinfo.reason_active = ACTIVE -playerinfo.reason_left = LEFT -playerinfo.reason_kicked = KICKED -playerinfo.reason_disbanded = DISBANDED - -# ========== Relations Page ========== -relations.relation_count = {0} relations -relations.request_count = {0} requests -relations.type_ally = Ally -relations.type_enemy = Enemy -relations.type_incoming = Incoming -relations.type_outgoing = Outgoing -relations.incoming_request = Incoming request -relations.outgoing_request = Outgoing request -relations.empty_relations = No relations yet. -relations.empty_relations_hint = No relations yet. Click + SET RELATION to add allies or enemies. -relations.empty_pending = No pending ally requests. -relations.today = Today -relations.one_day_ago = 1 day ago -relations.days_ago = {0} days ago -relations.now_neutral = Now neutral with {0}. -relations.now_enemies = Now enemies with {0}! -relations.request_sent = Alliance request sent to {0}. -relations.now_allied = Now allied with {0}! -relations.request_declined = Ally request from {0} declined. -relations.request_cancelled = Ally request to {0} cancelled. -relations.failed = Failed: {0} -relations.search_hint = Search for a faction to set relation -relations.no_results = No factions found matching '{0}' -relations.power_display = {0} power -relations.member_count = {0} members - -# ========== Settings Page ========== -settings.officers_only = Only officers and leaders can change faction settings. -settings.display_none = (None) -settings.home_not_set = Not set -settings.no_permission = You don't have permission to change settings. -settings.only_leader_disband = Only the leader can disband the faction. -settings.perm_locked = This setting is locked by the server. -settings.no_perm_edit = You don't have permission to edit territory permissions. -settings.only_leader_officers = Only the leader can change officer access. -settings.pvp_enabled = Enabled -settings.pvp_disabled = Disabled -settings.not_in_territory = You must be in your faction's territory to set home. -settings.home_set = Faction home set to your current location! -settings.recruitment_set = Recruitment set to {0}. -settings.home_no_set = Your faction does not have a home set. -settings.home_deleted = Faction home deleted! - -# ========== Modules Page ========== -modules.treasury_name = Treasury -modules.treasury_desc = Faction bank & economy system -modules.raids_name = Raids -modules.raids_desc = Scheduled faction battles -modules.levels_name = Levels -modules.levels_desc = Faction progression & XP -modules.war_name = War -modules.war_desc = Formal war declarations -modules.coming_soon = Coming Soon -modules.active = Active -modules.view_treasury = View Treasury -modules.unavailable = Unavailable -modules.no_economy = No economy plugin detected -modules.disabled = Disabled -modules.economy_not_available = Economy features are not available on this server - -# ========== Treasury Page ========== -treasury.wallet_label = Your wallet: {0} -treasury.treasury_label = Treasury balance: {0} -treasury.chunks_detail = {0} free + {1} billable chunks -treasury.cost_label = Cost: {0} -treasury.pending = Pending -treasury.auto_pay_on = Auto-pay: ON -treasury.auto_pay_off = Auto-pay: OFF -treasury.runway_90_plus = 90+ days -treasury.runway_days = {0} days -treasury.runway_day = {0} day -treasury.runway_less_day = < 1 day -treasury.runway_no_funds = No funds -treasury.grace_expires = Grace expires in: {0} -treasury.missed_payments = Missed payments: {0} -treasury.pay_to_clear = Pay {0} to clear grace -treasury.system = System -treasury.type_deposit = Deposit -treasury.type_withdrawal = Withdrawal -treasury.type_transfer_in = Transfer In -treasury.type_transfer_out = Transfer Out -treasury.type_player_transfer = Player Transfer -treasury.type_upkeep = Upkeep -treasury.type_tax = Tax Collection -treasury.type_war_cost = War Cost -treasury.type_raid_cost = Raid Cost -treasury.type_spoils = Spoils -treasury.type_admin = Admin Adjustment -treasury.deposit_title = Deposit to Treasury -treasury.withdraw_title = Withdraw from Treasury -treasury.fee_label = Fee ({0}%) -treasury.confirm_deposit = Confirm Deposit -treasury.confirm_withdrawal = Confirm Withdrawal -treasury.from_wallet = {0} from wallet -treasury.to_wallet = {0} to wallet -treasury.enter_valid_amount = Enter a valid positive amount. -treasury.insufficient_wallet = Insufficient wallet funds. Need {0}, have {1}. -treasury.wallet_withdraw_failed = Failed to withdraw from your wallet. -treasury.deposit_failed_returned = Failed to deposit. Money returned. -treasury.deposited = Deposited {0} into the treasury. -treasury.deposited_fee = Deposited {0} into the treasury. (fee: {1}) -treasury.no_withdraw_permission = You don't have permission to withdraw. -treasury.withdraw_denied = Withdrawal denied: {0} -treasury.insufficient_treasury = Insufficient funds in treasury. -treasury.withdraw_limit = Withdrawal limit exceeded. -treasury.withdraw_failed = Withdrawal failed: {0} -treasury.wallet_deposit_warn = Warning: Failed to deposit to your wallet. Contact an admin. -treasury.withdrew = Withdrew {0} from the treasury. -treasury.withdrew_fee = Withdrew {0} from the treasury. (fee: {1}, received: {2}) -treasury.search_hint = Search for a player or faction -treasury.no_results = No results for '{0}' -treasury.tag_player = [Player] -treasury.tag_faction = [Faction] -treasury.source_online = Online -treasury.source_offline = Offline -treasury.source_player_db = Hytale player -treasury.no_transfer_permission = You don't have permission to transfer. -treasury.transfer_denied = Transfer denied: {0} -treasury.invalid_target_faction = Invalid target faction. -treasury.target_faction_gone = Target faction no longer exists. -treasury.transfer_failed = Transfer failed: {0} -treasury.transfer_failed_returned = Transfer failed. Funds returned. -treasury.transferred = Transferred {0} to {1}. -treasury.invalid_target_player = Invalid target player. -treasury.player_transfer_failed = Failed to deposit to player wallet. Transfer rolled back. -treasury.leader_only_perms = Only the leader can change treasury permissions. -treasury.leader_only_upkeep = Only the leader can change upkeep settings. -treasury.invalid_limit = Invalid number in limit fields. Use 0 for unlimited. - -# ========== Confirmation Pages ========== -confirm.disband_not_leader = Only the leader can disband the faction. -confirm.disbanded = Faction '{0}' has been disbanded. -confirm.disband_failed = Failed to disband faction. -confirm.succession_title = Leadership will transfer to: -confirm.no_members_warning = WARNING: No other members! -confirm.will_disband = Leaving will disband the faction permanently. -confirm.not_in_faction = You are not in this faction. -confirm.not_leader_anymore = You are no longer the leader. -confirm.no_successor = No successor available. Use disband instead. -confirm.transfer_failed = Failed to transfer leadership: {0} -confirm.leader_left = Leadership transferred to {0}. You have left {1}. -confirm.leave_failed = Failed to leave faction: {0} -confirm.leader_cannot_leave = Leaders cannot leave. Transfer leadership or disband the faction. -confirm.left_faction = You have left {0}. -confirm.faction_gone = Faction no longer exists. -confirm.not_leader_transfer = Only the leader can transfer leadership. -confirm.leadership_transferred = Leadership transferred to {0}. - -# ========== Logs Viewer Page ========== -logs.title = {0} - Activity Logs -logs.entry_count = {0} entries -logs.all_types = All Types -logs.no_logs_type = No logs of this type. -logs.no_logs = No activity logs yet. - -# ========== Chat Page ========== -chat.placeholder = Type a message... -chat.no_messages = No messages yet. -chat.no_ally_permission = You don't have permission for ally chat. -chat.no_permission = No permission. -chat.faction_gone = Your faction no longer exists. -chat.time_now = now -chat.time_minutes = {0}m -chat.time_hours = {0}h - -# ========== Invites Page ========== -invites.invite_count = {0} invites -invites.request_count = {0} requests -invites.invited_by = Invited by: {0} -invites.no_message = No message -invites.expires = Expires: {0} -invites.type_outgoing = Outgoing -invites.type_request = Request -invites.invited_by_label = Invited by: -invites.empty_outgoing = No outgoing invites. Use /f invite to invite someone. -invites.empty_requests = No join requests. Players can request to join with /f request. -invites.invalid_player = Invalid player. -invites.cancelled_invite = Cancelled invite to {0}. -invites.player_joined = {0} has joined the faction! -invites.faction_full = Faction is full. Cannot accept request. -invites.add_failed = Failed to add player to faction. -invites.request_expired = Request not found or expired. -invites.request_declined = Declined join request from {0}. -invites.time_seconds = {0}s -invites.time_minutes = {0}m -invites.time_hours = {0}h - -# ========== Map Page ========== -map.position = Your Position: Chunk ({0}, {1}) -map.legend_protected = Protected -map.claim_stats = Claims: {0}/{1} ({2} Available) -map.overclaimed = OVERCLAIMED by {0}! -map.power_display = Power: {0}/{1} -map.join_to_claim = Join a faction to claim -map.claim_success = Claimed chunk at ({0}, {1})! -map.claim_not_in_faction = You must be in a faction to claim territory. -map.claim_not_officer = Only officers and leaders can claim territory. -map.claim_already_yours = You already own this chunk. -map.claim_already_claimed = This chunk is already claimed by another faction. -map.claim_not_adjacent = You can only claim chunks adjacent to your territory. -map.claim_max = You have reached your maximum claim limit. -map.claim_world_not_allowed = Claiming is not allowed in this world. -map.claim_orbisguard = This area is protected by OrbisGuard. -map.claim_failed = Failed to claim chunk. -map.unclaim_success = Unclaimed chunk at ({0}, {1}). -map.unclaim_not_in_faction = You must be in a faction. -map.unclaim_not_officer = Only officers and leaders can unclaim territory. -map.unclaim_not_claimed = This chunk is not claimed. -map.unclaim_not_yours = This chunk belongs to another faction. -map.unclaim_home = Cannot unclaim the chunk containing your faction home. -map.unclaim_failed = Failed to unclaim chunk. -map.overclaim_success = Overclaimed enemy chunk at ({0}, {1})! -map.overclaim_not_in_faction = You must be in a faction. -map.overclaim_not_officer = Only officers and leaders can overclaim territory. -map.overclaim_already_yours = You already own this chunk. -map.overclaim_ally = You cannot overclaim allied territory. -map.overclaim_has_power = This faction has enough power to defend their territory. -map.overclaim_max = You have reached your maximum claim limit. -map.overclaim_failed = Failed to overclaim chunk. -# ========== Create Faction Page ========== -create.preview_name = Your Faction Name -create.leader_prefix = Leader: {0} -create.enter_name = Please enter a faction name. -create.name_too_short = Faction name must be at least {0} characters. -create.name_too_long = Faction name cannot exceed {0} characters. -create.name_taken = A faction with this name already exists. -create.tag_length = Faction tag must be {0}-{1} characters. -create.tag_format = Faction tag can only contain letters and numbers. -create.desc_too_long = Description cannot exceed {0} characters. -create.created = Faction {0} created successfully! -create.created_no_dashboard = Faction created but could not open dashboard. -create.invalid_name = Invalid faction name. -create.create_failed = Could not create faction. - -# ========== New Player Pages ========== -newplayer.pending_count = {0} pending -newplayer.received_header = RECEIVED INVITES ({0}) -newplayer.requests_header = YOUR REQUESTS ({0}) -newplayer.no_invites = No invites. Browse factions to find one! -newplayer.no_requests = No pending requests. -newplayer.invited_by = Invited by: {0} -newplayer.member_count = {0} members -newplayer.power_count = {0} power -newplayer.claim_count = {0} claims -newplayer.awaiting_review = Awaiting review -newplayer.expires_in = Expires in {0}h -newplayer.time_just_now = just now -newplayer.time_minutes = {0} min ago -newplayer.time_hours = {0}h ago -newplayer.time_days = {0}d ago -newplayer.invalid_faction = Invalid faction. -newplayer.invite_expired = This invite has expired or was revoked. -newplayer.faction_gone = Faction no longer exists. -newplayer.joined = You joined {0}! -newplayer.faction_full = This faction is full. -newplayer.join_failed = Could not join faction. -newplayer.invite_declined = Invite declined. -newplayer.request_cancelled = Cancelled request to join {0}. -newplayer.faction_count = {0} factions -newplayer.browse_subtitle = Find your new home! -newplayer.sort_power = Power -newplayer.sort_name = Name -newplayer.sort_members = Members -newplayer.btn_accept = Accept -newplayer.btn_pending = Pending -newplayer.btn_join = Join -newplayer.btn_request = Request -newplayer.invite_only_msg = This faction is invite-only. -newplayer.welcome_hint = Welcome! Use /f to open faction menu. -newplayer.faction_open_hint = This faction is open! Click JOIN instead. -newplayer.already_requested = You already have a pending request to this faction. -newplayer.has_invite_hint = You have an invite from this faction! Click ACCEPT instead. -newplayer.request_sent = Join request sent to {0}! -newplayer.officer_review = An officer will review your request. -newplayer.map_hint = View Only - Join a faction to claim territory! - -# Player Settings -nav.player_settings = Settings -player_settings.title = Player Settings -player_settings.language_section = Language -player_settings.auto_detect = Auto-detect from client -player_settings.auto_detect_desc = Uses your game client's language setting -player_settings.language_label = Language -player_settings.notifications_section = Notifications -player_settings.territory_alerts = Territory Alerts -player_settings.territory_alerts_desc = Show notifications when entering/leaving territories -player_settings.death_announcements = Death Broadcasts -player_settings.death_announcements_desc = Receive faction member death location announcements -player_settings.power_notifications = Power Changes -player_settings.power_notifications_desc = Show messages when your power changes -player_settings.language_changed = Language changed to {0} -player_settings.pref_enabled = {0} enabled -player_settings.pref_disabled = {0} disabled From 2e276cdea462a41553ef44906ce4c660b0e64ea7 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 15:14:35 -0700 Subject: [PATCH 43/76] fix: strip inline markdown markers, join continuation lines, fix invalid commands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add inline marker stripping to HelpLangGenerator (build-time): **bold** → bold, `code` → code, *italic* → italic, -- → em-dash - Join multi-line prose into single lines (each line = one UI entry) - Remove non-existent /f admin modify and /f admin bypass references - Fix duplicate debug toggle entry in admin command reference - Apply same fixes to both en-US and es-ES help content --- .../build/HelpLangGenerator.java | 38 ++++++++++++++++++- .../help/admin/admin_config/configuration.md | 3 +- .../help/admin/admin_config/world_settings.md | 6 +-- .../admin_economy/treasury_management.md | 3 +- .../admin/admin_economy/upkeep_management.md | 12 ++---- .../help/admin/admin_factions/disbanding.md | 8 ++-- .../admin/admin_factions/managing_factions.md | 9 ++--- .../help/admin/admin_maintenance/backups.md | 3 +- .../help/admin/admin_maintenance/imports.md | 3 +- .../help/admin/admin_maintenance/updates.md | 9 ++--- .../admin/admin_overview/getting_started.md | 8 ++-- .../help/admin/admin_overview/permissions.md | 8 +--- .../help/admin/admin_power/power_commands.md | 7 +--- .../help/admin/admin_power/power_overrides.md | 12 ++---- .../admin/admin_reference/all_commands.md | 5 +-- .../admin/admin_reference/integrations.md | 7 +--- .../help/admin/admin_zones/zone_basics.md | 13 +++---- .../help/admin/admin_zones/zone_commands.md | 3 +- .../help/admin/admin_zones/zone_flags.md | 3 +- .../Languages/en-US/help/combat/death.md | 15 ++------ .../Languages/en-US/help/combat/protection.md | 19 +++------- .../en-US/help/combat/spawn_protection.md | 7 +--- .../Languages/en-US/help/combat/tagging.md | 10 ++--- .../Languages/en-US/help/combat/zones.md | 11 ++---- .../Languages/en-US/help/economy/commands.md | 4 +- .../Languages/en-US/help/economy/funds.md | 12 ++---- .../Languages/en-US/help/economy/treasury.md | 10 ++--- .../Languages/en-US/help/economy/upkeep.md | 15 ++------ .../en-US/help/quick_ref/permissions.md | 3 +- .../help/admin/admin_config/configuration.md | 3 +- .../help/admin/admin_config/world_settings.md | 6 +-- .../admin_economy/treasury_management.md | 3 +- .../admin/admin_economy/upkeep_management.md | 14 ++----- .../help/admin/admin_factions/disbanding.md | 8 ++-- .../admin/admin_factions/managing_factions.md | 11 ++---- .../help/admin/admin_maintenance/backups.md | 3 +- .../help/admin/admin_maintenance/imports.md | 3 +- .../help/admin/admin_maintenance/updates.md | 9 ++--- .../admin/admin_overview/getting_started.md | 9 ++--- .../help/admin/admin_overview/permissions.md | 8 +--- .../help/admin/admin_power/power_commands.md | 7 +--- .../help/admin/admin_power/power_overrides.md | 14 ++----- .../admin/admin_reference/all_commands.md | 5 +-- .../admin/admin_reference/integrations.md | 8 +--- .../help/admin/admin_zones/zone_basics.md | 14 +++---- .../help/admin/admin_zones/zone_commands.md | 3 +- .../help/admin/admin_zones/zone_flags.md | 3 +- .../Languages/es-ES/help/combat/death.md | 15 ++------ .../Languages/es-ES/help/combat/protection.md | 20 +++------- .../es-ES/help/combat/spawn_protection.md | 7 +--- .../Languages/es-ES/help/combat/tagging.md | 11 ++---- .../Languages/es-ES/help/combat/zones.md | 11 ++---- .../Languages/es-ES/help/economy/commands.md | 4 +- .../Languages/es-ES/help/economy/funds.md | 12 ++---- .../Languages/es-ES/help/economy/treasury.md | 10 ++--- .../Languages/es-ES/help/economy/upkeep.md | 18 ++------- .../es-ES/help/quick_ref/permissions.md | 4 +- 57 files changed, 179 insertions(+), 330 deletions(-) diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java index 213648a0..6b6ecd0b 100644 --- a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -61,6 +61,18 @@ public class HelpLangGenerator { "admin_economy", "admin_config", "admin_maintenance", "admin_reference" ); + /** Pattern for inline bold: **text** */ + private static final Pattern INLINE_BOLD_PATTERN = Pattern.compile("\\*\\*(.+?)\\*\\*"); + + /** Pattern for inline code: `text` */ + private static final Pattern INLINE_CODE_PATTERN = Pattern.compile("`(.+?)`"); + + /** Pattern for inline italic: *text* (not bold **) */ + private static final Pattern INLINE_ITALIC_PATTERN = Pattern.compile("(? top Entry entry = topic.entries().get(i); if (entry.columns() != null) { // Table entry — write each column as a separate lang key + // (table cell formatting is handled at render time by applyCellFormatting) for (ColumnEntry col : entry.columns()) { sb.append(col.key()).append(" = ").append(col.text()).append("\n"); } } else if (entry.key() != null) { String text = topic.entryTexts().get(i); - sb.append(entry.key()).append(" = ").append(text).append("\n"); + sb.append(entry.key()).append(" = ").append(stripInlineMarkers(text)).append("\n"); } } @@ -554,6 +567,29 @@ private static void writeManifest(Path outputDir, List topics) throws IOE System.out.println("Wrote: " + manifestFile); } + // ── Inline marker stripping ───────────────────────────────────────── + + /** + * Strips inline markdown markers from text destined for .lang files. + *

The UI Labels can't mix bold and regular text in one element, + * so we strip markers to produce clean readable text: + *

    + *
  • {@code **bold**} → {@code bold}
  • + *
  • {@code `code`} → {@code code}
  • + *
  • {@code *italic*} → {@code italic}
  • + *
  • {@code " -- "} → {@code " — "} (em-dash)
  • + *
+ */ + private static String stripInlineMarkers(String text) { + if (text == null) return null; + // Order matters: strip bold (**) before italic (*) to avoid partial matches + text = INLINE_BOLD_PATTERN.matcher(text).replaceAll("$1"); + text = INLINE_CODE_PATTERN.matcher(text).replaceAll("$1"); + text = INLINE_ITALIC_PATTERN.matcher(text).replaceAll("$1"); + text = EM_DASH_PATTERN.matcher(text).replaceAll(" \u2014 "); + return text; + } + // ── Utility ────────────────────────────────────────────────────────── private static List listSortedDirectories(Path dir) throws IOException { diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md index c2351704..95b6c952 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/configuration.md @@ -3,8 +3,7 @@ id: admin_configuration --- # Configuration System -HyperFactions uses a modular JSON config system with -11 configuration files. +HyperFactions uses a modular JSON config system with 11 configuration files. ## Admin Config Commands diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md index 2d63b0fb..47e8dffe 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_config/world_settings.md @@ -3,8 +3,7 @@ id: admin_world_settings --- # Per-World Settings -HyperFactions supports per-world configuration for -claiming, PvP, and protection behavior. +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. ## World Commands @@ -27,8 +26,7 @@ claiming, PvP, and protection behavior. ## World Whitelist / Blacklist -Control which worlds allow faction features through -the `worlds.json` config file: +Control which worlds allow faction features through the `worlds.json` config file: - **Whitelist mode**: Only listed worlds allow claiming - **Blacklist mode**: All worlds allow claiming except listed diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md index dcd28b60..b219d330 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/treasury_management.md @@ -3,8 +3,7 @@ id: admin_treasury_management --- # Treasury Management -Admin commands for managing faction treasuries. -Requires `hyperfactions.admin.economy` permission. +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. ## Treasury Commands diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md index 9aa2a80e..7df9b4c7 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_economy/upkeep_management.md @@ -3,17 +3,14 @@ id: admin_upkeep_management --- # Upkeep Management -Faction upkeep charges factions periodically based on -their territory and member count. +Faction upkeep charges factions periodically based on their territory and member count. ## Admin Controls -Upkeep settings are managed through the economy config -file or the admin config GUI. +Upkeep settings are managed through the economy config file or the admin config GUI. `/f admin config` -Open the config editor and navigate to economy -settings to adjust upkeep values. +Open the config editor and navigate to economy settings to adjust upkeep values. ## Default Upkeep Settings @@ -40,7 +37,6 @@ Use `/f admin info ` to see: ## Upkeep Formula -**Total upkeep** = (claimed chunks x per-claim cost) + -(member count x per-member cost) +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) >[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md index 3392afc8..253e05ab 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/disbanding.md @@ -3,14 +3,12 @@ id: admin_disbanding --- # Force Disbanding -Admins can forcefully disband any faction, regardless -of the leader's wishes. +Admins can forcefully disband any faction, regardless of the leader's wishes. ## Command `/f admin disband ` -Force-disband the named faction. A confirmation -prompt will appear before the action is executed. +Force-disband the named faction. A confirmation prompt will appear before the action is executed. **Permission**: `hyperfactions.admin.disband` @@ -36,4 +34,4 @@ When a faction is disbanded: 3. Document the reason for server records 4. Check `/f admin info ` to review before acting ->[!TIP] If the issue is with a specific member, consider using `/f admin modify` to transfer leadership rather than disbanding the entire faction. +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md index ed8fe072..b00218c9 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_factions/managing_factions.md @@ -3,18 +3,15 @@ id: admin_managing_factions --- # Managing Factions -Admins can inspect and modify any faction on the -server through the dashboard or commands. +Admins can inspect and modify any faction on the server through the dashboard or commands. ## Browsing Factions `/f admin factions` -Opens the admin faction browser. View all factions -with member counts, power levels, and territory. +Opens the admin faction browser. View all factions with member counts, power levels, and territory. `/f admin info ` -Opens the admin info panel for a specific faction -with full details and management options. +Opens the admin info panel for a specific faction with full details and management options. ## Modifying Faction Settings diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md index 5ba2fe64..84a331f7 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/backups.md @@ -3,8 +3,7 @@ id: admin_backups --- # Backup System -HyperFactions includes automatic and manual backups -with GFS (Grandfather-Father-Son) rotation. +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. ## Backup Commands diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md index 7fd86390..e3bf7548 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/imports.md @@ -3,8 +3,7 @@ id: admin_imports --- # Data Import -Import faction data from other plugins to migrate -your server to HyperFactions. +Import faction data from other plugins to migrate your server to HyperFactions. ## Import Command diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md index 84ddcff1..f6dc2880 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_maintenance/updates.md @@ -3,8 +3,7 @@ id: admin_updates --- # Update Checking -HyperFactions can check for new versions and manage -the HyperProtect-Mixin dependency. +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. ## Update Commands @@ -26,12 +25,10 @@ the HyperProtect-Mixin dependency. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection -mixin that enables advanced zone flags (explosions, -fire spread, keep inventory, etc.). +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). - `/f admin update mixin` checks for the latest version - and downloads it if a newer version is available +and downloads it if a newer version is available - Auto-download can be toggled on or off per server >[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md index 4577524f..bf30a5b4 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/getting_started.md @@ -3,14 +3,12 @@ id: admin_getting_started --- # Getting Started as Admin -Welcome to HyperFactions administration. This guide -covers your first steps after installing the plugin. +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. ## Opening the Admin Dashboard `/f admin` -Opens the admin dashboard GUI with access to all -management tools, zone editors, and server settings. +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. >[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. @@ -18,7 +16,7 @@ management tools, zone editors, and server settings. - **With a permission plugin**: Grant `hyperfactions.admin.use` - **Without a permission plugin**: The player must be a - server operator (`adminRequiresOp=true` by default) +server operator (`adminRequiresOp=true` by default) ## First Steps After Install diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md index 9765ddb8..979e5543 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_overview/permissions.md @@ -3,8 +3,7 @@ id: admin_permissions --- # Admin Permissions -All admin features are gated behind permission nodes -in the `hyperfactions.admin` namespace. +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. ## Permission Nodes @@ -24,10 +23,7 @@ in the `hyperfactions.admin` namespace. ## Fallback Behavior -When **no permission plugin** is installed, admin -permissions fall back to server operator (OP) status. -This is controlled by `adminRequiresOp` in the server -config (default: `true`). +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). >[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md index cb3a1cc6..b2c9f463 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_commands.md @@ -3,8 +3,7 @@ id: admin_power_commands --- # Power Admin Commands -Override player and faction power values. All commands -require `hyperfactions.admin.power` permission. +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. ## Player Power Commands @@ -18,9 +17,7 @@ require `hyperfactions.admin.power` permission. ## How Power Affects Factions -A faction's total power is the sum of all its members' -individual power. Territory claims require sufficient -total power to maintain. +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. | Scenario | Effect | |----------|--------| diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md index 0834b1d6..5469f903 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_power/power_overrides.md @@ -3,8 +3,7 @@ id: admin_power_overrides --- # Power Overrides -Special power commands that change how power behaves -for specific players or factions. +Special power commands that change how power behaves for specific players or factions. ## Override Commands @@ -18,16 +17,14 @@ for specific players or factions. ## Custom Max Power `/f admin power setmax ` -Sets a personal maximum power cap for the player, -overriding the server default. +Sets a personal maximum power cap for the player, overriding the server default. >[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. ## No-Loss Mode `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the -player will **not** lose power on death. +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. Useful for: - New player protection periods @@ -37,8 +34,7 @@ Useful for: ## No-Decay Mode `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, -the player's power will **not** decrease while offline. +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. Useful for: - Players on extended leave diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md index b77ccd0b..bd0b0fa6 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/all_commands.md @@ -3,8 +3,7 @@ id: admin_quickref_commands --- # Admin Command Reference -Complete list of all `/f admin` subcommands with -syntax and required permissions. +Complete list of all `/f admin` subcommands with syntax and required permissions. ## Dashboard and General @@ -14,7 +13,7 @@ syntax and required permissions. | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | -| `/f admin bypass` | admin.bypass.limits | +| `/f admin sentry` | admin.use | ## Faction Management diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md index 8578ea92..c39bfb3b 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_reference/integrations.md @@ -3,9 +3,7 @@ id: admin_integrations --- # Plugin Integrations -HyperFactions integrates with several external plugins -through soft dependencies. All integrations are -optional and fail gracefully if unavailable. +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. ## Checking Integration Status @@ -13,8 +11,7 @@ optional and fail gracefully if unavailable. Shows current version and detected integrations. `/f admin integration` -Opens the integration management panel with detailed -status for each detected plugin. +Opens the integration management panel with detailed status for each detected plugin. ## Integration Table diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md index 44a13c4d..933a9b2d 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_basics.md @@ -3,15 +3,14 @@ id: admin_zone_basics --- # Zone Basics -Zones are admin-controlled territories with custom -rules that override normal faction protection. +Zones are admin-controlled territories with custom rules that override normal faction protection. ## Zone Types - **SafeZone** -- No PvP, no building, no damage. - Ideal for spawn areas and trading hubs. +Ideal for spawn areas and trading hubs. - **WarZone** -- PvP always enabled, no building. - Ideal for arenas and contested battle areas. +Ideal for arenas and contested battle areas. ## Creating Zones @@ -21,8 +20,7 @@ Creates a SafeZone and claims your current chunk. `/f admin warzone ` Creates a WarZone and claims your current chunk. -After creation, stand in additional chunks and use -`/f admin zone claim ` to expand the zone. +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. ## Managing Zone Chunks @@ -38,8 +36,7 @@ Claim a square of chunks around your position. ## Deleting Zones `/f admin removezone ` -Permanently deletes the zone and releases all its -claimed chunks. +Permanently deletes the zone and releases all its claimed chunks. >[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md index 737ac1a3..403b6b63 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_commands.md @@ -3,8 +3,7 @@ id: admin_zone_commands --- # Zone Command Reference -Complete reference for all zone management commands. -All require `hyperfactions.admin.zones` permission. +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. ## Quick Creation diff --git a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md index 033605e6..368a4ec9 100644 --- a/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/en-US/help/admin/admin_zones/zone_flags.md @@ -3,8 +3,7 @@ id: admin_zone_flags --- # Zone Flags -Zones support **47 boolean flags** across 10 categories. -Each flag controls a specific behavior within the zone. +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. ## Flag Categories Overview diff --git a/src/main/resources/Server/Languages/en-US/help/combat/death.md b/src/main/resources/Server/Languages/en-US/help/combat/death.md index 306b8dda..dc5699a7 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/death.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/death.md @@ -4,14 +4,11 @@ commands: home, sethome, stuck --- # Death and Recovery -Death carries real consequences in factions. Every -death costs you personal power, weakening your -faction's ability to hold territory. +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. ## Power Loss -Each death costs **-1.0 power** from your personal -total. This lowers the faction's combined power. +Each death costs **-1.0 power** from your personal total. This lowers the faction's combined power. | Event | Power Change | |-------|-------------| @@ -29,16 +26,12 @@ total. This lowers the faction's combined power. ## Recovery -Power regenerates at 0.1 per minute while online. -Recovering 1.0 lost power takes about 10 minutes. -Multiple deaths stack, so avoid repeated fights. +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. --- ## All Death Types -Power loss applies to all deaths: PvP, mob kills, -fall damage, drowning, and any other cause. -There is no safe way to die. +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. >[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/protection.md b/src/main/resources/Server/Languages/en-US/help/combat/protection.md index b80ed995..e564ec2d 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/protection.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/protection.md @@ -3,34 +3,25 @@ id: combat_protection --- # Territory Protection -Claimed territory provides several layers of defense -for your faction's builds and resources. +Claimed territory provides several layers of defense for your faction's builds and resources. ## Block Protection -Only faction members can place or break blocks in -your territory. Enemies and neutrals are blocked -from modifying anything. +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. ## Container Protection -Chests, barrels, and other containers are secured. -Only your faction members can open or interact with -storage in claimed chunks. +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. ## Entry Alerts -When a non-member enters your claimed territory, -online faction members receive a notification with -the intruder's name and location. +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. --- ## Ally Access -Allies cannot build or break blocks in your territory -by default. Ally damage is also disabled, so allied -players cannot harm each other. +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. >[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md index 0281243a..4803abf3 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md @@ -3,8 +3,7 @@ id: combat_spawn_protection --- # Spawn Protection -After respawning from death, you receive temporary -protection to prevent spawn camping. +After respawning from death, you receive temporary protection to prevent spawn camping. ## How It Works @@ -19,9 +18,7 @@ Spawn protection ends early if you: - **Attack** another player or entity - **Move** from your spawn position -This prevents abuse. You cannot attack others while -invulnerable. Once you take any action, protection -drops and normal combat rules apply. +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. --- diff --git a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md index a886430d..500ff734 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md @@ -3,8 +3,7 @@ id: combat_tagging --- # Combat Tagging -When you attack or are attacked by another player, -you become **combat tagged** for 15 seconds. +When you attack or are attacked by another player, you become **combat tagged** for 15 seconds. ## While Tagged @@ -19,13 +18,10 @@ you become **combat tagged** for 15 seconds. >[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. -Your items drop where you disconnected and enemies -can loot them. Always wait for the tag to expire. +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. ## How the Timer Works -The combat tag timer appears on screen when you -enter combat. Every new hit resets it to 15 seconds. -Once it reaches zero, all restrictions are lifted. +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. >[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/zones.md b/src/main/resources/Server/Languages/en-US/help/combat/zones.md index 33dab4b9..d1d957d2 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/zones.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/zones.md @@ -3,20 +3,15 @@ id: combat_zones --- # Special Zones -Admins can designate areas with special rules that -override normal faction territory protection. +Admins can designate areas with special rules that override normal faction territory protection. ## SafeZone -No PvP damage, no block breaking by non-admins. -Ideal for spawn areas, trading hubs, and event -staging areas. Players cannot be harmed here. +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. ## WarZone -PvP is always enabled. No block protection applies. -Open battle areas where anything goes. You receive -no territory protection benefits in a WarZone. +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. --- diff --git a/src/main/resources/Server/Languages/en-US/help/economy/commands.md b/src/main/resources/Server/Languages/en-US/help/economy/commands.md index 8a8f8b34..20751171 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/commands.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/commands.md @@ -22,8 +22,6 @@ Quick reference for all faction economy commands. ## Permissions -All economy commands require `hyperfactions.economy.*` -permission nodes. Withdraw and transfer are further -restricted by faction role (Officer or higher). +All economy commands require `hyperfactions.economy.*` permission nodes. Withdraw and transfer are further restricted by faction role (Officer or higher). >[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/funds.md b/src/main/resources/Server/Languages/en-US/help/economy/funds.md index 99e99bec..4fe4539c 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/funds.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/funds.md @@ -4,29 +4,25 @@ commands: deposit, withdraw --- # Managing Funds -Faction members work together to keep the treasury -funded through deposits, withdrawals, and transfers. +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. ## Depositing -Any member can deposit personal funds into the -faction treasury. +Any member can deposit personal funds into the faction treasury. `/f deposit ` Deposit from your personal balance into the treasury. ## Withdrawing -Officers and the Leader can withdraw funds back to -their personal balance. +Officers and the Leader can withdraw funds back to their personal balance. `/f withdraw ` Withdraw from the treasury to your balance. (Officer+) ## Transferring -Officers can transfer funds directly between faction -treasuries for trade deals or diplomacy. +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. `/f money transfer ` Send funds to another faction's treasury. (Officer+) diff --git a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md index a451af2e..7a73d3bf 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md @@ -4,14 +4,11 @@ commands: balance --- # Faction Treasury -Every faction has a shared treasury that serves as -the faction's bank. Funds are used for upkeep costs, -territory maintenance, and faction operations. +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. ## Starting Balance -New factions start with **0** in their treasury. -Members must deposit funds to build up reserves. +New factions start with **0** in their treasury. Members must deposit funds to build up reserves. ## Who Can Manage @@ -22,8 +19,7 @@ Members must deposit funds to build up reserves. --- `/f balance` -Check your faction's current treasury balance. -Also available as `/f bal`. +Check your faction's current treasury balance. Also available as `/f bal`. >[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md index 38eca444..b31e9b06 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md @@ -3,9 +3,7 @@ id: economy_upkeep --- # Territory Upkeep -Factions must pay ongoing upkeep to maintain their -claimed territory. This prevents land hoarding and -keeps the map dynamic. +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. ## Upkeep Costs @@ -16,22 +14,17 @@ keeps the map dynamic. | Free chunks | 3 (no cost) | | Scaling mode | Flat rate | -Your first **3 chunks are free**. Beyond that, each -additional claimed chunk costs 2.0 per payment cycle. +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. ## Auto-Pay -Auto-pay is **enabled by default**. The system -automatically deducts upkeep from your treasury at -each interval. No manual action needed. +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. --- ## Grace Period -If your treasury cannot cover upkeep, a **48-hour -grace period** begins. A warning is sent 6 hours -before claims start being lost. +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. >[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. diff --git a/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md index 16df0ec0..90673685 100644 --- a/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md +++ b/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md @@ -3,8 +3,7 @@ id: quickref_permissions --- # Permissions -Key permission nodes for HyperFactions. All nodes -fall under the **hyperfactions** root namespace. +Key permission nodes for HyperFactions. All nodes fall under the **hyperfactions** root namespace. ## Core Permissions diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md index 1e7a6bbf..6935ddd6 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/configuration.md @@ -3,8 +3,7 @@ id: admin_configuration --- # Sistema de Configuracion -HyperFactions usa un sistema de configuracion modular -en JSON con 11 archivos de configuracion. +HyperFactions usa un sistema de configuracion modular en JSON con 11 archivos de configuracion. ## Comandos de Configuracion del Administrador diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md index 1e05b8bb..4700a582 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_config/world_settings.md @@ -3,8 +3,7 @@ id: admin_world_settings --- # Ajustes por Mundo -HyperFactions soporta configuracion por mundo para -reclamaciones, PvP y comportamiento de proteccion. +HyperFactions soporta configuracion por mundo para reclamaciones, PvP y comportamiento de proteccion. ## Comandos de Mundo @@ -27,8 +26,7 @@ reclamaciones, PvP y comportamiento de proteccion. ## Lista Blanca / Lista Negra de Mundos -Controla que mundos permiten funciones de facciones -a traves del archivo de configuracion `worlds.json`: +Controla que mundos permiten funciones de facciones a traves del archivo de configuracion `worlds.json`: - **Modo lista blanca**: Solo los mundos listados permiten reclamar - **Modo lista negra**: Todos los mundos permiten reclamar excepto los listados diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md index 2d574788..7936806d 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/treasury_management.md @@ -3,8 +3,7 @@ id: admin_treasury_management --- # Gestion de Tesoreria -Comandos de administracion para gestionar tesorerias -de facciones. Requiere el permiso `hyperfactions.admin.economy`. +Comandos de administracion para gestionar tesorerias de facciones. Requiere el permiso `hyperfactions.admin.economy`. ## Comandos de Tesoreria diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md index b1235079..4f98e40f 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_economy/upkeep_management.md @@ -3,19 +3,14 @@ id: admin_upkeep_management --- # Gestion de Mantenimiento -El mantenimiento de faccion cobra a las facciones -periodicamente basandose en su territorio y cantidad -de miembros. +El mantenimiento de faccion cobra a las facciones periodicamente basandose en su territorio y cantidad de miembros. ## Controles del Administrador -Los ajustes de mantenimiento se gestionan a traves del -archivo de configuracion de economia o la GUI de -configuracion del administrador. +Los ajustes de mantenimiento se gestionan a traves del archivo de configuracion de economia o la GUI de configuracion del administrador. `/f admin config` -Abre el editor de configuracion y navega a los ajustes -de economia para modificar valores de mantenimiento. +Abre el editor de configuracion y navega a los ajustes de economia para modificar valores de mantenimiento. ## Ajustes Predeterminados de Mantenimiento @@ -42,7 +37,6 @@ Usa `/f admin info ` para ver: ## Formula de Mantenimiento -**Mantenimiento total** = (chunks reclamados x costo por reclamacion) + -(cantidad de miembros x costo por miembro) +**Mantenimiento total** = (chunks reclamados x costo por reclamacion) + (cantidad de miembros x costo por miembro) >[!WARNING] Habilitar el mantenimiento en un servidor con facciones existentes puede causar bancarrotas inesperadas. Considera establecer un periodo de gracia o anunciar el cambio con anticipacion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md index 84d9395a..cd0f473e 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/disbanding.md @@ -3,14 +3,12 @@ id: admin_disbanding --- # Disolucion Forzada -Los administradores pueden disolver cualquier faccion -por la fuerza, sin importar los deseos del lider. +Los administradores pueden disolver cualquier faccion por la fuerza, sin importar los deseos del lider. ## Comando `/f admin disband ` -Disuelve la faccion indicada por la fuerza. Aparecera -un mensaje de confirmacion antes de ejecutar la accion. +Disuelve la faccion indicada por la fuerza. Aparecera un mensaje de confirmacion antes de ejecutar la accion. **Permiso**: `hyperfactions.admin.disband` @@ -36,4 +34,4 @@ Cuando una faccion es disuelta: 3. Documenta la razon para los registros del servidor 4. Revisa `/f admin info ` antes de actuar ->[!TIP] Si el problema es con un miembro especifico, considera usar `/f admin modify` para transferir el liderazgo en lugar de disolver toda la faccion. +>[!TIP] Si el problema es con un miembro especifico, considera usar el panel de administracion de facciones para transferir el liderazgo en lugar de disolver toda la faccion. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md index 1db1d254..a35db23d 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_factions/managing_factions.md @@ -3,20 +3,15 @@ id: admin_managing_factions --- # Gestion de Facciones -Los administradores pueden inspeccionar y modificar -cualquier faccion del servidor a traves del panel o comandos. +Los administradores pueden inspeccionar y modificar cualquier faccion del servidor a traves del panel o comandos. ## Explorar Facciones `/f admin factions` -Abre el explorador de facciones del administrador. Ve -todas las facciones con cantidad de miembros, niveles -de poder y territorio. +Abre el explorador de facciones del administrador. Ve todas las facciones con cantidad de miembros, niveles de poder y territorio. `/f admin info ` -Abre el panel de informacion del administrador para una -faccion especifica con detalles completos y opciones -de gestion. +Abre el panel de informacion del administrador para una faccion especifica con detalles completos y opciones de gestion. ## Modificar Configuracion de Facciones diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md index 17ca3371..c3386ad0 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/backups.md @@ -3,8 +3,7 @@ id: admin_backups --- # Sistema de Copias de Seguridad -HyperFactions incluye copias de seguridad automaticas y -manuales con rotacion GFS (Abuelo-Padre-Hijo). +HyperFactions incluye copias de seguridad automaticas y manuales con rotacion GFS (Abuelo-Padre-Hijo). ## Comandos de Copias de Seguridad diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md index 0b18b94f..4e3ffb27 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/imports.md @@ -3,8 +3,7 @@ id: admin_imports --- # Importacion de Datos -Importa datos de facciones desde otros plugins para -migrar tu servidor a HyperFactions. +Importa datos de facciones desde otros plugins para migrar tu servidor a HyperFactions. ## Comando de Importacion diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md index e0ad055d..125a10d7 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_maintenance/updates.md @@ -3,8 +3,7 @@ id: admin_updates --- # Verificacion de Actualizaciones -HyperFactions puede verificar nuevas versiones y -gestionar la dependencia HyperProtect-Mixin. +HyperFactions puede verificar nuevas versiones y gestionar la dependencia HyperProtect-Mixin. ## Comandos de Actualizacion @@ -26,12 +25,10 @@ gestionar la dependencia HyperProtect-Mixin. ## HyperProtect-Mixin -HyperProtect-Mixin es el mixin de proteccion recomendado -que habilita indicadores de zona avanzados (explosiones, -propagacion de fuego, conservar inventario, etc.). +HyperProtect-Mixin es el mixin de proteccion recomendado que habilita indicadores de zona avanzados (explosiones, propagacion de fuego, conservar inventario, etc.). - `/f admin update mixin` verifica la ultima version - y la descarga si hay una version mas nueva disponible +y la descarga si hay una version mas nueva disponible - La descarga automatica puede alternarse por servidor >[!TIP] Despues de descargar una nueva version del mixin, se requiere reiniciar el servidor para que los cambios tomen efecto. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md index c396737e..7b976e90 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/getting_started.md @@ -3,15 +3,12 @@ id: admin_getting_started --- # Primeros Pasos como Administrador -Bienvenido a la administracion de HyperFactions. Esta -guia cubre tus primeros pasos despues de instalar el plugin. +Bienvenido a la administracion de HyperFactions. Esta guia cubre tus primeros pasos despues de instalar el plugin. ## Abrir el Panel de Administracion `/f admin` -Abre la interfaz del panel de administracion con acceso -a todas las herramientas de gestion, editores de zonas -y configuracion del servidor. +Abre la interfaz del panel de administracion con acceso a todas las herramientas de gestion, editores de zonas y configuracion del servidor. >[!INFO] Necesitas el permiso **hyperfactions.admin.use** o estado de OP para acceder a los comandos de administracion. @@ -19,7 +16,7 @@ y configuracion del servidor. - **Con un plugin de permisos**: Otorga `hyperfactions.admin.use` - **Sin un plugin de permisos**: El jugador debe ser un - operador del servidor (`adminRequiresOp=true` por defecto) +operador del servidor (`adminRequiresOp=true` por defecto) ## Primeros Pasos Tras la Instalacion diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md index 9ee5d729..88e522fe 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_overview/permissions.md @@ -3,8 +3,7 @@ id: admin_permissions --- # Permisos de Administracion -Todas las funciones de administracion estan protegidas -por nodos de permisos en el espacio `hyperfactions.admin`. +Todas las funciones de administracion estan protegidas por nodos de permisos en el espacio `hyperfactions.admin`. ## Nodos de Permisos @@ -24,10 +23,7 @@ por nodos de permisos en el espacio `hyperfactions.admin`. ## Comportamiento Alternativo -Cuando **no hay un plugin de permisos** instalado, los -permisos de administracion recurren al estado de operador -del servidor (OP). Esto se controla mediante `adminRequiresOp` -en la configuracion del servidor (por defecto: `true`). +Cuando **no hay un plugin de permisos** instalado, los permisos de administracion recurren al estado de operador del servidor (OP). Esto se controla mediante `adminRequiresOp` en la configuracion del servidor (por defecto: `true`). >[!NOTE] El comodin `hyperfactions.admin.*` otorga todos los permisos de administracion. Usa nodos individuales para un control granular sobre tu equipo de staff. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md index 484379bc..fa74dc41 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_commands.md @@ -3,8 +3,7 @@ id: admin_power_commands --- # Comandos de Administracion de Poder -Sobrescribir valores de poder de jugadores y facciones. -Todos los comandos requieren el permiso `hyperfactions.admin.power`. +Sobrescribir valores de poder de jugadores y facciones. Todos los comandos requieren el permiso `hyperfactions.admin.power`. ## Comandos de Poder de Jugador @@ -18,9 +17,7 @@ Todos los comandos requieren el permiso `hyperfactions.admin.power`. ## Como Afecta el Poder a las Facciones -El poder total de una faccion es la suma del poder -individual de todos sus miembros. Las reclamaciones de -territorio requieren poder total suficiente para mantenerse. +El poder total de una faccion es la suma del poder individual de todos sus miembros. Las reclamaciones de territorio requieren poder total suficiente para mantenerse. | Escenario | Efecto | |----------|--------| diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md index b202aec5..3eb9002a 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_power/power_overrides.md @@ -3,8 +3,7 @@ id: admin_power_overrides --- # Sobrescrituras de Poder -Comandos especiales de poder que cambian como funciona -el poder para jugadores o facciones especificos. +Comandos especiales de poder que cambian como funciona el poder para jugadores o facciones especificos. ## Comandos de Sobrescritura @@ -18,17 +17,14 @@ el poder para jugadores o facciones especificos. ## Poder Maximo Personalizado `/f admin power setmax ` -Establece un limite maximo de poder personal para el -jugador, sobrescribiendo el valor predeterminado del servidor. +Establece un limite maximo de poder personal para el jugador, sobrescribiendo el valor predeterminado del servidor. >[!INFO] Establecer un maximo personalizado **no** cambia el poder actual. Solo cambia el techo. El jugador aun debe ganar poder hasta el nuevo limite. ## Modo Sin Perdida `/f admin power noloss ` -Alterna la inmunidad a perdida de poder por muerte. -Cuando esta habilitado, el jugador **no** perdera poder -al morir. +Alterna la inmunidad a perdida de poder por muerte. Cuando esta habilitado, el jugador **no** perdera poder al morir. Util para: - Periodos de proteccion para nuevos jugadores @@ -38,9 +34,7 @@ Util para: ## Modo Sin Deterioro `/f admin power nodecay ` -Alterna la inmunidad al deterioro de poder por desconexion. -Cuando esta habilitado, el poder del jugador **no** -disminuira mientras este desconectado. +Alterna la inmunidad al deterioro de poder por desconexion. Cuando esta habilitado, el poder del jugador **no** disminuira mientras este desconectado. Util para: - Jugadores en ausencia prolongada diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md index 5faf6d91..b76b37b4 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/all_commands.md @@ -3,8 +3,7 @@ id: admin_quickref_commands --- # Referencia de Comandos de Administracion -Lista completa de todos los subcomandos de `/f admin` -con sintaxis y permisos requeridos. +Lista completa de todos los subcomandos de `/f admin` con sintaxis y permisos requeridos. ## Panel y General @@ -14,7 +13,7 @@ con sintaxis y permisos requeridos. | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | -| `/f admin bypass` | admin.bypass.limits | +| `/f admin sentry` | admin.use | ## Gestion de Facciones diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md index f42213b3..c99db3a2 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_reference/integrations.md @@ -3,10 +3,7 @@ id: admin_integrations --- # Integraciones de Plugins -HyperFactions se integra con varios plugins externos -a traves de dependencias suaves. Todas las integraciones -son opcionales y funcionan correctamente si no estan -disponibles. +HyperFactions se integra con varios plugins externos a traves de dependencias suaves. Todas las integraciones son opcionales y funcionan correctamente si no estan disponibles. ## Verificar Estado de Integraciones @@ -14,8 +11,7 @@ disponibles. Muestra la version actual y las integraciones detectadas. `/f admin integration` -Abre el panel de gestion de integraciones con el estado -detallado de cada plugin detectado. +Abre el panel de gestion de integraciones con el estado detallado de cada plugin detectado. ## Tabla de Integraciones diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md index e62db056..e83a2a6f 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_basics.md @@ -3,16 +3,14 @@ id: admin_zone_basics --- # Conceptos Basicos de Zonas -Las zonas son territorios controlados por el administrador -con reglas personalizadas que anulan la proteccion normal -de facciones. +Las zonas son territorios controlados por el administrador con reglas personalizadas que anulan la proteccion normal de facciones. ## Tipos de Zonas - **Zona Segura** -- Sin PvP, sin construccion, sin dano. - Ideal para areas de spawn y centros de comercio. +Ideal para areas de spawn y centros de comercio. - **Zona de Guerra** -- PvP siempre habilitado, sin construccion. - Ideal para arenas y areas de batalla disputadas. +Ideal para arenas y areas de batalla disputadas. ## Crear Zonas @@ -22,8 +20,7 @@ Crea una Zona Segura y reclama tu chunk actual. `/f admin warzone ` Crea una Zona de Guerra y reclama tu chunk actual. -Despues de la creacion, colocate en chunks adicionales -y usa `/f admin zone claim ` para expandir la zona. +Despues de la creacion, colocate en chunks adicionales y usa `/f admin zone claim ` para expandir la zona. ## Gestionar Chunks de Zonas @@ -39,8 +36,7 @@ Reclama un cuadrado de chunks alrededor de tu posicion. ## Eliminar Zonas `/f admin removezone ` -Elimina permanentemente la zona y libera todos sus -chunks reclamados. +Elimina permanentemente la zona y libera todos sus chunks reclamados. >[!WARNING] Eliminar una zona libera todos sus chunks instantaneamente. Esto no se puede deshacer sin una restauracion de copia de seguridad. diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md index dc93989d..55ad031b 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_commands.md @@ -3,8 +3,7 @@ id: admin_zone_commands --- # Referencia de Comandos de Zonas -Referencia completa de todos los comandos de gestion -de zonas. Todos requieren el permiso `hyperfactions.admin.zones`. +Referencia completa de todos los comandos de gestion de zonas. Todos requieren el permiso `hyperfactions.admin.zones`. ## Creacion Rapida diff --git a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md index 645689b4..c4ebc988 100644 --- a/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/es-ES/help/admin/admin_zones/zone_flags.md @@ -3,8 +3,7 @@ id: admin_zone_flags --- # Indicadores de Zona -Las zonas soportan **47 indicadores booleanos** en 10 categorias. -Cada indicador controla un comportamiento especifico dentro de la zona. +Las zonas soportan **47 indicadores booleanos** en 10 categorias. Cada indicador controla un comportamiento especifico dentro de la zona. ## Resumen de Categorias de Indicadores diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/death.md b/src/main/resources/Server/Languages/es-ES/help/combat/death.md index 905820dd..12c1dc1f 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/death.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/death.md @@ -4,14 +4,11 @@ commands: home, sethome, stuck --- # Muerte y Recuperacion -La muerte tiene consecuencias reales en facciones. Cada -muerte te cuesta poder personal, debilitando la capacidad -de tu faccion para mantener territorio. +La muerte tiene consecuencias reales en facciones. Cada muerte te cuesta poder personal, debilitando la capacidad de tu faccion para mantener territorio. ## Perdida de Poder -Cada muerte cuesta **-1.0 de poder** de tu total personal. -Esto reduce el poder combinado de la faccion. +Cada muerte cuesta **-1.0 de poder** de tu total personal. Esto reduce el poder combinado de la faccion. | Evento | Cambio de Poder | |--------|-----------------| @@ -29,16 +26,12 @@ Esto reduce el poder combinado de la faccion. ## Recuperacion -El poder se regenera a 0.1 por minuto mientras estas en linea. -Recuperar 1.0 de poder perdido toma aproximadamente 10 minutos. -Las muertes multiples se acumulan, asi que evita peleas repetidas. +El poder se regenera a 0.1 por minuto mientras estas en linea. Recuperar 1.0 de poder perdido toma aproximadamente 10 minutos. Las muertes multiples se acumulan, asi que evita peleas repetidas. --- ## Todos los Tipos de Muerte -La perdida de poder aplica a todas las muertes: PvP, muertes -por mobs, dano por caida, ahogamiento y cualquier otra causa. -No hay forma segura de morir. +La perdida de poder aplica a todas las muertes: PvP, muertes por mobs, dano por caida, ahogamiento y cualquier otra causa. No hay forma segura de morir. >[!TIP] Establece un hogar de faccion con /f sethome para que los miembros puedan reagruparse rapidamente despues de morir. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/protection.md b/src/main/resources/Server/Languages/es-ES/help/combat/protection.md index fb54af24..048fb06a 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/protection.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/protection.md @@ -3,35 +3,25 @@ id: combat_protection --- # Proteccion de Territorio -El territorio reclamado proporciona varias capas de defensa -para las construcciones y recursos de tu faccion. +El territorio reclamado proporciona varias capas de defensa para las construcciones y recursos de tu faccion. ## Proteccion de Bloques -Solo los miembros de la faccion pueden colocar o destruir -bloques en tu territorio. Los enemigos y neutrales no pueden -modificar nada. +Solo los miembros de la faccion pueden colocar o destruir bloques en tu territorio. Los enemigos y neutrales no pueden modificar nada. ## Proteccion de Contenedores -Los cofres, barriles y otros contenedores estan asegurados. -Solo los miembros de tu faccion pueden abrir o interactuar -con el almacenamiento en chunks reclamados. +Los cofres, barriles y otros contenedores estan asegurados. Solo los miembros de tu faccion pueden abrir o interactuar con el almacenamiento en chunks reclamados. ## Alertas de Entrada -Cuando un no miembro entra en tu territorio reclamado, -los miembros de la faccion en linea reciben una notificacion -con el nombre y ubicacion del intruso. +Cuando un no miembro entra en tu territorio reclamado, los miembros de la faccion en linea reciben una notificacion con el nombre y ubicacion del intruso. --- ## Acceso de Aliados -Los aliados no pueden construir ni destruir bloques en tu -territorio por defecto. El dano entre aliados tambien esta -desactivado, por lo que los jugadores aliados no pueden -danarse entre si. +Los aliados no pueden construir ni destruir bloques en tu territorio por defecto. El dano entre aliados tambien esta desactivado, por lo que los jugadores aliados no pueden danarse entre si. >[!INFO] El territorio protege bloques, no jugadores. El PvP en tu propio territorio depende de la relacion del atacante con tu faccion. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md index 3eec9c11..590dbde7 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/spawn_protection.md @@ -3,8 +3,7 @@ id: combat_spawn_protection --- # Proteccion de Aparicion -Despues de reaparecer tras la muerte, recibes proteccion -temporal para prevenir el campeo de aparicion. +Despues de reaparecer tras la muerte, recibes proteccion temporal para prevenir el campeo de aparicion. ## Como Funciona @@ -19,9 +18,7 @@ La proteccion de aparicion termina antes si: - **Atacas** a otro jugador o entidad - **Te mueves** de tu posicion de aparicion -Esto previene el abuso. No puedes atacar a otros mientras -eres invulnerable. Una vez que realizas cualquier accion, -la proteccion cae y las reglas normales de combate aplican. +Esto previene el abuso. No puedes atacar a otros mientras eres invulnerable. Una vez que realizas cualquier accion, la proteccion cae y las reglas normales de combate aplican. --- diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md index d414d649..b9dc61e5 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md @@ -3,8 +3,7 @@ id: combat_tagging --- # Etiqueta de Combate -Cuando atacas o eres atacado por otro jugador, -te conviertes en **etiquetado de combate** por 15 segundos. +Cuando atacas o eres atacado por otro jugador, te conviertes en **etiquetado de combate** por 15 segundos. ## Mientras Estas Etiquetado @@ -19,14 +18,10 @@ te conviertes en **etiquetado de combate** por 15 segundos. >[!WARNING] Desconectarte mientras estas etiquetado en combate mata a tu personaje y pierdes 1.0 de poder. -Tus objetos caen donde te desconectaste y los enemigos -pueden saquearlos. Siempre espera a que la etiqueta expire. +Tus objetos caen donde te desconectaste y los enemigos pueden saquearlos. Siempre espera a que la etiqueta expire. ## Como Funciona el Temporizador -El temporizador de etiqueta de combate aparece en pantalla -cuando entras en combate. Cada nuevo golpe lo reinicia a -15 segundos. Una vez que llega a cero, todas las restricciones -se levantan. +El temporizador de etiqueta de combate aparece en pantalla cuando entras en combate. Cada nuevo golpe lo reinicia a 15 segundos. Una vez que llega a cero, todas las restricciones se levantan. >[!TIP] Desvincularte y espera a que el temporizador termine si necesitas teletransportarte. diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/zones.md b/src/main/resources/Server/Languages/es-ES/help/combat/zones.md index e19b5449..251de49f 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/zones.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/zones.md @@ -3,20 +3,15 @@ id: combat_zones --- # Zonas Especiales -Los administradores pueden designar areas con reglas especiales -que anulan la proteccion normal de territorio de faccion. +Los administradores pueden designar areas con reglas especiales que anulan la proteccion normal de territorio de faccion. ## Zona Segura -Sin dano PvP, sin destruccion de bloques por no administradores. -Ideal para areas de aparicion, centros de comercio y areas de -preparacion de eventos. Los jugadores no pueden ser danados aqui. +Sin dano PvP, sin destruccion de bloques por no administradores. Ideal para areas de aparicion, centros de comercio y areas de preparacion de eventos. Los jugadores no pueden ser danados aqui. ## Zona de Guerra -PvP siempre habilitado. No aplica proteccion de bloques. -Areas de batalla abierta donde todo vale. No recibes -beneficios de proteccion de territorio en una Zona de Guerra. +PvP siempre habilitado. No aplica proteccion de bloques. Areas de batalla abierta donde todo vale. No recibes beneficios de proteccion de territorio en una Zona de Guerra. --- diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/commands.md b/src/main/resources/Server/Languages/es-ES/help/economy/commands.md index 034b72de..7427681d 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/commands.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/commands.md @@ -22,8 +22,6 @@ Referencia rapida para todos los comandos de economia de faccion. ## Permisos -Todos los comandos de economia requieren nodos de permiso -`hyperfactions.economy.*`. Retirar y transferir estan -adicionalmente restringidos por rol de faccion (Oficial o superior). +Todos los comandos de economia requieren nodos de permiso `hyperfactions.economy.*`. Retirar y transferir estan adicionalmente restringidos por rol de faccion (Oficial o superior). >[!TIP] Usa /f money log para revisar depositos, retiros y transferencias recientes con marcas de tiempo. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/funds.md b/src/main/resources/Server/Languages/es-ES/help/economy/funds.md index e6b09d86..030a3a03 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/funds.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/funds.md @@ -4,29 +4,25 @@ commands: deposit, withdraw --- # Gestionar Fondos -Los miembros de la faccion trabajan juntos para mantener la -tesoreria financiada a traves de depositos, retiros y transferencias. +Los miembros de la faccion trabajan juntos para mantener la tesoreria financiada a traves de depositos, retiros y transferencias. ## Depositar -Cualquier miembro puede depositar fondos personales en la -tesoreria de la faccion. +Cualquier miembro puede depositar fondos personales en la tesoreria de la faccion. `/f deposit ` Deposita de tu saldo personal a la tesoreria. ## Retirar -Los Oficiales y el Lider pueden retirar fondos de vuelta a -su saldo personal. +Los Oficiales y el Lider pueden retirar fondos de vuelta a su saldo personal. `/f withdraw ` Retira de la tesoreria a tu saldo. (Oficial+) ## Transferir -Los Oficiales pueden transferir fondos directamente entre -tesorerias de facciones para acuerdos comerciales o diplomacia. +Los Oficiales pueden transferir fondos directamente entre tesorerias de facciones para acuerdos comerciales o diplomacia. `/f money transfer ` Envia fondos a la tesoreria de otra faccion. (Oficial+) diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md b/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md index e8970219..e298ec4b 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/treasury.md @@ -4,14 +4,11 @@ commands: balance --- # Tesoreria de Faccion -Cada faccion tiene una tesoreria compartida que sirve como -el banco de la faccion. Los fondos se usan para costos de -mantenimiento, mantenimiento de territorio y operaciones de faccion. +Cada faccion tiene una tesoreria compartida que sirve como el banco de la faccion. Los fondos se usan para costos de mantenimiento, mantenimiento de territorio y operaciones de faccion. ## Saldo Inicial -Las facciones nuevas comienzan con **0** en su tesoreria. -Los miembros deben depositar fondos para acumular reservas. +Las facciones nuevas comienzan con **0** en su tesoreria. Los miembros deben depositar fondos para acumular reservas. ## Quien Puede Gestionar @@ -22,8 +19,7 @@ Los miembros deben depositar fondos para acumular reservas. --- `/f balance` -Consulta el saldo actual de la tesoreria de tu faccion. -Tambien disponible como `/f bal`. +Consulta el saldo actual de la tesoreria de tu faccion. Tambien disponible como `/f bal`. >[!TIP] Contribuye regularmente para mantener tu faccion financiada. Los costos de mantenimiento de territorio pueden vaciar una tesoreria rapidamente. diff --git a/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md b/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md index baef7122..efd1909f 100644 --- a/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/es-ES/help/economy/upkeep.md @@ -3,9 +3,7 @@ id: economy_upkeep --- # Mantenimiento de Territorio -Las facciones deben pagar un mantenimiento continuo -para conservar su territorio reclamado. Esto evita -el acaparamiento de tierras y mantiene el mapa activo. +Las facciones deben pagar un mantenimiento continuo para conservar su territorio reclamado. Esto evita el acaparamiento de tierras y mantiene el mapa activo. ## Costos de Mantenimiento @@ -16,25 +14,17 @@ el acaparamiento de tierras y mantiene el mapa activo. | Chunks gratis | 3 (sin costo) | | Modo de escalado | Tarifa plana | -Tus primeros **3 chunks son gratis**. Mas alla de -eso, cada chunk adicional reclamado cuesta 2.0 por -ciclo de pago. +Tus primeros 3 chunks son gratis. Mas alla de eso, cada chunk adicional reclamado cuesta 2.0 por ciclo de pago. ## Pago Automatico -El pago automatico esta **habilitado por defecto**. -El sistema deduce automaticamente el mantenimiento de -tu tesoreria en cada intervalo. No requiere accion -manual. +El pago automatico esta habilitado por defecto. El sistema deduce automaticamente el mantenimiento de tu tesoreria en cada intervalo. No requiere accion manual. --- ## Periodo de Gracia -Si tu tesoreria no puede cubrir el mantenimiento, -comienza un **periodo de gracia de 48 horas**. Se -envia una advertencia 6 horas antes de que se -empiecen a perder reclamos. +Si tu tesoreria no puede cubrir el mantenimiento, comienza un periodo de gracia de 48 horas. Se envia una advertencia 6 horas antes de que se empiecen a perder reclamos. >[!WARNING] Si el mantenimiento sigue sin pagarse despues del periodo de gracia, tu faccion pierde 1 reclamo por ciclo hasta que los costos se cubran o todos los reclamos extra desaparezcan. diff --git a/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md index af11139c..220edcf7 100644 --- a/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md +++ b/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md @@ -3,9 +3,7 @@ id: quickref_permissions --- # Permisos -Nodos de permisos clave para HyperFactions. Todos -los nodos estan bajo el espacio de nombres raiz -**hyperfactions**. +Nodos de permisos clave para HyperFactions. Todos los nodos estan bajo el espacio de nombres raiz **hyperfactions**. ## Permisos Principales From 4492fba93df42719420845d028c643b74b93d28e Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 17:25:50 -0700 Subject: [PATCH 44/76] feat: table rendering with inline rows, rich text, and help window resize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switch table rendering from .ui templates to appendInline with explicit calculated heights (fixes content-driven height not working with TextSpans) - Support 2/3/4 column tables with dynamic width calculation and borders - Add HelpRichText parser for inline markdown (bold, italic, code, colors) - Increase help window size ~15% (750x650 → 863x748) for both player/admin - Fix Y/N → Yes/No in roles permission table - Use 2px row borders for visibility on all table rows - Remove stripped inline markers from lang generator (rich text handles them) --- .../build/HelpLangGenerator.java | 2 +- .../gui/admin/page/AdminHelpPage.java | 131 +++++++++----- .../hyperfactions/gui/help/HelpRichText.java | 114 ++++++++++++ .../gui/help/page/HelpMainPage.java | 169 ++++++++++-------- .../Custom/HyperFactions/admin/admin_help.ui | 2 +- .../UI/Custom/HyperFactions/help/help_main.ui | 4 +- .../HyperFactions/help/help_table_cell.ui | 8 +- .../HyperFactions/help/help_table_header.ui | 42 +++-- .../help/help_table_header_cell.ui | 8 +- .../HyperFactions/help/help_table_row.ui | 33 +++- .../Languages/en-US/help/combat/death.md | 4 +- .../en-US/help/combat/spawn_protection.md | 8 +- .../Languages/en-US/help/combat/tagging.md | 6 +- .../en-US/help/diplomacy/alliances.md | 16 +- .../Languages/en-US/help/diplomacy/enemies.md | 18 +- .../en-US/help/diplomacy/relations.md | 22 +-- .../Languages/en-US/help/economy/commands.md | 8 +- .../Languages/en-US/help/economy/treasury.md | 10 +- .../Languages/en-US/help/economy/upkeep.md | 2 + .../en-US/help/power_land/claiming.md | 18 +- .../en-US/help/power_land/losing_territory.md | 28 +-- .../en-US/help/power_land/territory_map.md | 16 +- .../help/power_land/understanding_power.md | 20 ++- .../en-US/help/quick_ref/permissions.md | 69 ------- .../en-US/help/welcome/getting_started.md | 20 +-- .../en-US/help/welcome/what_are_factions.md | 12 +- .../en-US/help/your_faction/creating.md | 16 +- .../en-US/help/your_faction/joining.md | 26 +-- .../en-US/help/your_faction/managing.md | 16 +- .../en-US/help/your_faction/roles.md | 48 ++--- .../es-ES/help/quick_ref/permissions.md | 69 ------- 31 files changed, 528 insertions(+), 437 deletions(-) create mode 100644 src/main/java/com/hyperfactions/gui/help/HelpRichText.java delete mode 100644 src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md delete mode 100644 src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md diff --git a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java index 6b6ecd0b..2c101cd4 100644 --- a/src/main/java/com/hyperfactions/build/HelpLangGenerator.java +++ b/src/main/java/com/hyperfactions/build/HelpLangGenerator.java @@ -501,7 +501,7 @@ private static void writeLangFile(Path outputDir, String locale, List top } } else if (entry.key() != null) { String text = topic.entryTexts().get(i); - sb.append(entry.key()).append(" = ").append(stripInlineMarkers(text)).append("\n"); + sb.append(entry.key()).append(" = ").append(text).append("\n"); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java index 7bfb80d7..0ac0c061 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminHelpPage.java @@ -110,30 +110,30 @@ private void buildTopicCards(UICommandBuilder cmd) { for (HelpTopic topic : topics) { cmd.append("#ContentList", UIPaths.HELP_TOPIC_CARD); String cardPrefix = "#ContentList[" + cardIndex + "]"; - cmd.set(cardPrefix + " #Title.Text", topic.title(playerRef)); int lineIndex = 0; for (HelpEntry entry : topic.entries()) { String linesContainer = cardPrefix + " #Lines"; + // Table entries: inline rows with calculated height and variable columns if (entry.type() == HelpEntry.EntryType.TABLE_HEADER || entry.type() == HelpEntry.EntryType.TABLE_ROW) { boolean isHeader = entry.type() == HelpEntry.EntryType.TABLE_HEADER; - String rowTemplate = isHeader ? UIPaths.HELP_TABLE_HEADER : UIPaths.HELP_TABLE_ROW; - String cellTemplate = isHeader ? UIPaths.HELP_TABLE_HEADER_CELL : UIPaths.HELP_TABLE_CELL; + String[] columnKeys = entry.columnKeys(); + int numCols = columnKeys.length; - cmd.append(linesContainer, rowTemplate); + String[] cellTexts = new String[numCols]; + for (int col = 0; col < numCols; col++) { + cellTexts[col] = HelpMessages.get(playerRef, columnKeys[col]); + } + int rowHeight = estimateTableRowHeight(cellTexts, numCols); + + cmd.appendInline(linesContainer, buildTableRowInline(rowHeight, numCols, isHeader)); String rowSelector = linesContainer + "[" + lineIndex + "]"; - String colsContainer = rowSelector + " #Cols"; - String[] columnKeys = entry.columnKeys(); - for (int col = 0; col < columnKeys.length; col++) { - cmd.append(colsContainer, cellTemplate); - String cellSelector = colsContainer + "[" + col + "]"; - String cellText = HelpMessages.get(playerRef, columnKeys[col]); - applyCellFormatting(cmd, cellSelector, cellText, entry.color()); + for (int col = 0; col < numCols; col++) { + applyCellText(cmd, rowSelector, col, cellTexts[col], entry.color()); } - lineIndex++; continue; } @@ -149,13 +149,12 @@ private void buildTopicCards(UICommandBuilder cmd) { text = "\u2022 " + text; } - cmd.set(selector + " #Text.Text", text); + java.awt.Color baseColor = entry.color() != null + ? java.awt.Color.decode(entry.color()) : null; + cmd.set(selector + " #Text.TextSpans", HelpRichText.parse(text, baseColor)); - if (entry.color() != null) { - cmd.set(selector + " #Text.Style.TextColor", entry.color()); - if (entry.type() == HelpEntry.EntryType.CALLOUT) { - cmd.set(selector + " #AccentBar.Background.Color", entry.color()); - } + if (entry.color() != null && entry.type() == HelpEntry.EntryType.CALLOUT) { + cmd.set(selector + " #AccentBar.Background.Color", entry.color()); } } lineIndex++; @@ -164,35 +163,88 @@ private void buildTopicCards(UICommandBuilder cmd) { } } - private void applyCellFormatting(UICommandBuilder cmd, String cellSelector, - String text, @Nullable String rowColor) { + private void applyCellText(UICommandBuilder cmd, String rowSelector, + int col, String text, @Nullable String rowColor) { String displayText = text; - String cellColor = rowColor; - boolean bold = false; - boolean italic = false; + java.awt.Color cellColor = rowColor != null ? java.awt.Color.decode(rowColor) : null; Matcher hexMatcher = CELL_HEX_COLOR.matcher(displayText); if (hexMatcher.matches()) { - cellColor = "#" + hexMatcher.group(1); + cellColor = java.awt.Color.decode("#" + hexMatcher.group(1)); displayText = hexMatcher.group(2); } - if (displayText.startsWith("**") && displayText.endsWith("**") && displayText.length() > 4) { - displayText = displayText.substring(2, displayText.length() - 2); - bold = true; - } else if (displayText.startsWith("`") && displayText.endsWith("`") && displayText.length() > 2) { - displayText = displayText.substring(1, displayText.length() - 1); - bold = true; - if (cellColor == null) cellColor = "#FFFF55"; - } else if (displayText.startsWith("*") && displayText.endsWith("*") && displayText.length() > 2) { - displayText = displayText.substring(1, displayText.length() - 1); - italic = true; + cmd.set(rowSelector + " #Col" + col + ".TextSpans", HelpRichText.parse(displayText, cellColor)); + } + + private static int[] getColumnPixelWidths(int numCols) { + return switch (numCols) { + case 3 -> new int[]{170, 170, 280}; + case 4 -> new int[]{170, 85, 85, 270}; + default -> new int[]{217, 400}; + }; + } + + private static int[] getColumnFixedWidths(int numCols) { + return switch (numCols) { + case 3 -> new int[]{170, 170}; + case 4 -> new int[]{170, 85, 85}; + default -> new int[]{217}; + }; + } + + private static int estimateTableRowHeight(String[] cellTexts, int numCols) { + int[] pixelWidths = getColumnPixelWidths(numCols); + int maxLines = 1; + for (int col = 0; col < Math.min(cellTexts.length, numCols); col++) { + int charsPerLine = Math.max(6, pixelWidths[col] / 6); + int lines = Math.max(1, (int) Math.ceil((double) cellTexts[col].length() / charsPerLine)); + maxLines = Math.max(maxLines, lines); + } + return Math.max(20, 4 + (maxLines * 13)); + } + + private static String buildTableRowInline(int height, int numCols, boolean isHeader) { + String bg = isHeader ? "#141a28" : "#0f1520"; + String tc = isHeader ? "#DDDDDD" : "#CCCCCC"; + String bd = isHeader ? ", RenderBold: true" : ""; + String bh = "2"; + int[] widths = getColumnFixedWidths(numCols); + + StringBuilder sb = new StringBuilder(); + sb.append("Group { Anchor: (Height: ").append(height).append("); Background: (Color: ").append(bg).append("); "); + + int pos = 2; + for (int col = 0; col < numCols; col++) { + boolean last = (col == numCols - 1); + String style = "Style: (FontSize: 10, TextColor: " + tc + bd + ", Wrap: true, VerticalAlignment: Center)"; + + if (last) { + sb.append("Label #Col").append(col).append(" { Text: \"\"; ").append(style).append("; "); + sb.append("Padding: (Left: 10, Right: 8); "); + sb.append("Anchor: (Left: ").append(pos).append(", Right: 2, Top: 0, Bottom: 0); } "); + } else { + sb.append("Group { Anchor: (Left: ").append(pos).append(", Width: ").append(widths[col]); + sb.append(", Top: 0, Bottom: 0); "); + sb.append("Label #Col").append(col).append(" { Text: \"\"; ").append(style).append("; "); + sb.append("Padding: (Left: 10, Right: 6); "); + sb.append("Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); } } "); + + int sepPos = pos + widths[col] + 1; + sb.append("Group { Anchor: (Width: 1, Left: ").append(sepPos); + sb.append(", Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + pos = sepPos + 2; + } } - cmd.set(cellSelector + " #CellText.Text", displayText); - if (bold) cmd.set(cellSelector + " #CellText.Style.RenderBold", true); - if (italic) cmd.set(cellSelector + " #CellText.Style.RenderItalics", true); - if (cellColor != null) cmd.set(cellSelector + " #CellText.Style.TextColor", cellColor); + if (isHeader) { + sb.append("Group { Anchor: (Height: 1, Top: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } "); + } + sb.append("Group { Anchor: (Height: ").append(bh).append(", Bottom: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } "); + sb.append("Group { Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + sb.append("Group { Anchor: (Width: 1, Right: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + sb.append("}"); + return sb.toString(); } private String getTemplateForType(HelpEntry.EntryType type) { @@ -206,8 +258,7 @@ private String getTemplateForType(HelpEntry.EntryType type) { case LIST -> UIPaths.HELP_LINE_LIST; case SEPARATOR -> UIPaths.HELP_SEPARATOR; case CALLOUT -> UIPaths.HELP_LINE_CALLOUT; - case TABLE_HEADER -> UIPaths.HELP_TABLE_HEADER; - case TABLE_ROW -> UIPaths.HELP_TABLE_ROW; + case TABLE_HEADER, TABLE_ROW -> UIPaths.HELP_LINE_TEXT; // fallback, not reached }; } diff --git a/src/main/java/com/hyperfactions/gui/help/HelpRichText.java b/src/main/java/com/hyperfactions/gui/help/HelpRichText.java new file mode 100644 index 00000000..6d3b9fde --- /dev/null +++ b/src/main/java/com/hyperfactions/gui/help/HelpRichText.java @@ -0,0 +1,114 @@ +package com.hyperfactions.gui.help; + +import com.hypixel.hytale.server.core.Message; +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Parses inline markdown markers within help text and builds a {@link Message} + * with proper formatting (bold, italic, colored command references). + * + *

Supported inline markers: + *

    + *
  • {@code **bold text**} → bold
  • + *
  • {@code `command`} → yellow bold (command style)
  • + *
  • {@code *italic text*} → italic
  • + *
  • {@code --} → em-dash (—)
  • + *
+ * + *

Used by both {@code HelpMainPage} and {@code AdminHelpPage} to render + * rich text within Labels via the {@code TextSpans} property. + */ +public final class HelpRichText { + + /** Command color: yellow (#FFFF55) matching the COMMAND entry style. */ + private static final Color CMD_COLOR = new Color(0xFF, 0xFF, 0x55); + + /** + * Tokenizer pattern that matches inline markers in order of priority: + *

    + *
  1. {@code **...** } bold (non-greedy)
  2. + *
  3. {@code `...`} code/command (non-greedy)
  4. + *
  5. {@code *...*} italic (not preceded/followed by *)
  6. + *
+ */ + private static final Pattern INLINE_PATTERN = Pattern.compile( + "\\*\\*(.+?)\\*\\*" // Group 1: bold + + "|`(.+?)`" // Group 2: code + + "|(? parts = new ArrayList<>(); + int lastEnd = 0; + + while (matcher.find()) { + // Add any plain text before this match + if (matcher.start() > lastEnd) { + String plain = text.substring(lastEnd, matcher.start()); + Message plainMsg = Message.raw(plain); + if (baseColor != null) plainMsg = plainMsg.color(baseColor); + parts.add(plainMsg); + } + + if (matcher.group(1) != null) { + // Bold: **text** + Message boldMsg = Message.raw(matcher.group(1)).bold(true); + if (baseColor != null) boldMsg = boldMsg.color(baseColor); + parts.add(boldMsg); + } else if (matcher.group(2) != null) { + // Code/Command: `text` → yellow bold + parts.add(Message.raw(matcher.group(2)).color(CMD_COLOR).bold(true)); + } else if (matcher.group(3) != null) { + // Italic: *text* + Message italicMsg = Message.raw(matcher.group(3)).italic(true); + if (baseColor != null) italicMsg = italicMsg.color(baseColor); + parts.add(italicMsg); + } + + lastEnd = matcher.end(); + } + + // Add remaining plain text after last match + if (lastEnd < text.length()) { + String remaining = text.substring(lastEnd); + Message remainMsg = Message.raw(remaining); + if (baseColor != null) remainMsg = remainMsg.color(baseColor); + parts.add(remainMsg); + } + + // If no matches found, return plain text + if (parts.isEmpty()) { + Message plainMsg = Message.raw(text); + if (baseColor != null) plainMsg = plainMsg.color(baseColor); + return plainMsg; + } + + return Message.join(parts.toArray(new Message[0])); + } + + /** + * Convenience overload using default label color. + */ + public static @NotNull Message parse(@NotNull String text) { + return parse(text, null); + } +} diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index 5580e9e8..1364650e 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -56,14 +56,6 @@ public class HelpMainPage extends InteractiveCustomUIPage { private static final String TPL_LINE_CALLOUT = UIPaths.HELP_LINE_CALLOUT; - private static final String TPL_TABLE_HEADER = UIPaths.HELP_TABLE_HEADER; - - private static final String TPL_TABLE_ROW = UIPaths.HELP_TABLE_ROW; - - private static final String TPL_TABLE_HEADER_CELL = UIPaths.HELP_TABLE_HEADER_CELL; - - private static final String TPL_TABLE_CELL = UIPaths.HELP_TABLE_CELL; - private final PlayerRef playerRef; private final GuiManager guiManager; @@ -163,6 +155,8 @@ private void setupCategoryButtons(UICommandBuilder cmd, UIEventBuilder events) { } } + private static final Pattern CELL_HEX_COLOR = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); + /** * Builds topic cards in the content area for the selected category. */ @@ -171,63 +165,54 @@ private void buildTopicCards(UICommandBuilder cmd) { int cardIndex = 0; for (HelpTopic topic : topics) { - // Append card template cmd.append("#ContentList", TPL_TOPIC_CARD); String cardPrefix = "#ContentList[" + cardIndex + "]"; - - // Set card title cmd.set(cardPrefix + " #Title.Text", topic.title(playerRef)); - // Append lines into card's #Lines container int lineIndex = 0; for (HelpEntry entry : topic.entries()) { String linesContainer = cardPrefix + " #Lines"; - // Table entries need special rendering + // Table entries: inline rows with calculated height and variable columns if (entry.type() == HelpEntry.EntryType.TABLE_HEADER || entry.type() == HelpEntry.EntryType.TABLE_ROW) { boolean isHeader = entry.type() == HelpEntry.EntryType.TABLE_HEADER; - String rowTemplate = isHeader ? TPL_TABLE_HEADER : TPL_TABLE_ROW; - String cellTemplate = isHeader ? TPL_TABLE_HEADER_CELL : TPL_TABLE_CELL; + String[] columnKeys = entry.columnKeys(); + int numCols = columnKeys.length; - cmd.append(linesContainer, rowTemplate); + // Resolve all cell texts for height estimation + String[] cellTexts = new String[numCols]; + for (int col = 0; col < numCols; col++) { + cellTexts[col] = HelpMessages.get(playerRef, columnKeys[col]); + } + int rowHeight = estimateTableRowHeight(cellTexts, numCols); + + cmd.appendInline(linesContainer, buildTableRowInline(rowHeight, numCols, isHeader)); String rowSelector = linesContainer + "[" + lineIndex + "]"; - String colsContainer = rowSelector + " #Cols"; - String[] columnKeys = entry.columnKeys(); - for (int col = 0; col < columnKeys.length; col++) { - cmd.append(colsContainer, cellTemplate); - String cellSelector = colsContainer + "[" + col + "]"; - String cellText = HelpMessages.get(playerRef, columnKeys[col]); - applyCellFormatting(cmd, cellSelector, cellText, entry.color()); + for (int col = 0; col < numCols; col++) { + applyCellText(cmd, rowSelector, col, cellTexts[col], entry.color()); } - lineIndex++; continue; } String template = getTemplateForType(entry.type()); cmd.append(linesContainer, template); - String selector = linesContainer + "[" + lineIndex + "]"; if (entry.type() != HelpEntry.EntryType.SPACER && entry.type() != HelpEntry.EntryType.SEPARATOR) { String text = entry.text(playerRef); - // Add bullet prefix for unordered list items if (entry.type() == HelpEntry.EntryType.LIST && !text.matches("^\\d+\\.\\s.*")) { text = "\u2022 " + text; } - cmd.set(selector + " #Text.Text", text); - - // Apply color override if present - if (entry.color() != null) { - cmd.set(selector + " #Text.Style.TextColor", entry.color()); + java.awt.Color baseColor = entry.color() != null + ? java.awt.Color.decode(entry.color()) : null; + cmd.set(selector + " #Text.TextSpans", HelpRichText.parse(text, baseColor)); - // For callouts, also color the accent bar - if (entry.type() == HelpEntry.EntryType.CALLOUT) { - cmd.set(selector + " #AccentBar.Background.Color", entry.color()); - } + if (entry.color() != null && entry.type() == HelpEntry.EntryType.CALLOUT) { + cmd.set(selector + " #AccentBar.Background.Color", entry.color()); } } lineIndex++; @@ -237,57 +222,92 @@ private void buildTopicCards(UICommandBuilder cmd) { } /** - * Returns the appropriate template path for an entry type. - */ - private static final Pattern CELL_HEX_COLOR = Pattern.compile("^\\[#([0-9A-Fa-f]{6})]\\s*(.+)$"); - - /** - * Applies inline formatting to a table cell. - * Supports: **bold**, *italic*, `command`, [#RRGGBB] color prefix. + * Sets text on a table cell Label (#Col0 or #Col1), handling [#RRGGBB] color prefix. */ - private void applyCellFormatting(UICommandBuilder cmd, String cellSelector, - String text, @Nullable String rowColor) { + private void applyCellText(UICommandBuilder cmd, String rowSelector, + int col, String text, @Nullable String rowColor) { String displayText = text; - String cellColor = rowColor; - boolean bold = false; - boolean italic = false; + java.awt.Color cellColor = rowColor != null ? java.awt.Color.decode(rowColor) : null; - // Check for inline hex color: [#RRGGBB] text Matcher hexMatcher = CELL_HEX_COLOR.matcher(displayText); if (hexMatcher.matches()) { - cellColor = "#" + hexMatcher.group(1); + cellColor = java.awt.Color.decode("#" + hexMatcher.group(1)); displayText = hexMatcher.group(2); } - // Check for bold: **text** - if (displayText.startsWith("**") && displayText.endsWith("**") && displayText.length() > 4) { - displayText = displayText.substring(2, displayText.length() - 2); - bold = true; + cmd.set(rowSelector + " #Col" + col + ".TextSpans", HelpRichText.parse(displayText, cellColor)); + } + + /** Column pixel widths for height estimation (includes last column). */ + private static int[] getColumnPixelWidths(int numCols) { + return switch (numCols) { + case 3 -> new int[]{170, 170, 280}; + case 4 -> new int[]{170, 85, 85, 270}; + default -> new int[]{217, 400}; + }; + } + + /** Fixed widths for non-last columns (last column uses Right anchor). */ + private static int[] getColumnFixedWidths(int numCols) { + return switch (numCols) { + case 3 -> new int[]{170, 170}; + case 4 -> new int[]{170, 85, 85}; + default -> new int[]{217}; + }; + } + + private static int estimateTableRowHeight(String[] cellTexts, int numCols) { + int[] pixelWidths = getColumnPixelWidths(numCols); + int maxLines = 1; + for (int col = 0; col < Math.min(cellTexts.length, numCols); col++) { + int charsPerLine = Math.max(6, pixelWidths[col] / 6); + int lines = Math.max(1, (int) Math.ceil((double) cellTexts[col].length() / charsPerLine)); + maxLines = Math.max(maxLines, lines); } - // Check for command: `text` - else if (displayText.startsWith("`") && displayText.endsWith("`") && displayText.length() > 2) { - displayText = displayText.substring(1, displayText.length() - 1); - bold = true; - if (cellColor == null) { - cellColor = "#FFFF55"; + return Math.max(20, 4 + (maxLines * 13)); + } + + private static String buildTableRowInline(int height, int numCols, boolean isHeader) { + String bg = isHeader ? "#141a28" : "#0f1520"; + String tc = isHeader ? "#DDDDDD" : "#CCCCCC"; + String bd = isHeader ? ", RenderBold: true" : ""; + String bh = "2"; + int[] widths = getColumnFixedWidths(numCols); + + StringBuilder sb = new StringBuilder(); + sb.append("Group { Anchor: (Height: ").append(height).append("); Background: (Color: ").append(bg).append("); "); + + int pos = 2; + for (int col = 0; col < numCols; col++) { + boolean last = (col == numCols - 1); + String style = "Style: (FontSize: 10, TextColor: " + tc + bd + ", Wrap: true, VerticalAlignment: Center)"; + + if (last) { + sb.append("Label #Col").append(col).append(" { Text: \"\"; ").append(style).append("; "); + sb.append("Padding: (Left: 10, Right: 8); "); + sb.append("Anchor: (Left: ").append(pos).append(", Right: 2, Top: 0, Bottom: 0); } "); + } else { + sb.append("Group { Anchor: (Left: ").append(pos).append(", Width: ").append(widths[col]); + sb.append(", Top: 0, Bottom: 0); "); + sb.append("Label #Col").append(col).append(" { Text: \"\"; ").append(style).append("; "); + sb.append("Padding: (Left: 10, Right: 6); "); + sb.append("Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); } } "); + + int sepPos = pos + widths[col] + 1; + sb.append("Group { Anchor: (Width: 1, Left: ").append(sepPos); + sb.append(", Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + pos = sepPos + 2; } } - // Check for italic: *text* - else if (displayText.startsWith("*") && displayText.endsWith("*") && displayText.length() > 2) { - displayText = displayText.substring(1, displayText.length() - 1); - italic = true; - } - cmd.set(cellSelector + " #CellText.Text", displayText); - if (bold) { - cmd.set(cellSelector + " #CellText.Style.RenderBold", true); - } - if (italic) { - cmd.set(cellSelector + " #CellText.Style.RenderItalics", true); - } - if (cellColor != null) { - cmd.set(cellSelector + " #CellText.Style.TextColor", cellColor); + if (isHeader) { + sb.append("Group { Anchor: (Height: 1, Top: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } "); } + sb.append("Group { Anchor: (Height: ").append(bh).append(", Bottom: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } "); + sb.append("Group { Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + sb.append("Group { Anchor: (Width: 1, Right: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } "); + sb.append("}"); + return sb.toString(); } private String getTemplateForType(HelpEntry.EntryType type) { @@ -301,8 +321,7 @@ private String getTemplateForType(HelpEntry.EntryType type) { case LIST -> TPL_LINE_LIST; case SEPARATOR -> TPL_SEPARATOR; case CALLOUT -> TPL_LINE_CALLOUT; - case TABLE_HEADER -> TPL_TABLE_HEADER; - case TABLE_ROW -> TPL_TABLE_ROW; + case TABLE_HEADER, TABLE_ROW -> TPL_LINE_TEXT; // fallback, not reached }; } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui index 4d777e61..3aaffbc0 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_help.ui @@ -96,7 +96,7 @@ $C.@PageOverlay { $Nav.@HyperFactionsAdminNavBar #HyperFactionsAdminNavBar {} $C.@DecoratedContainer { - Anchor: (Width: 750, Height: 650); + Anchor: (Width: 863, Height: 748); #Title { Group { diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui index 9fc3bd6f..ec4de588 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_main.ui @@ -1,4 +1,4 @@ -// Help Center - Wide sidebar layout (750x650) +// Help Center - Wide sidebar layout (863x748) // Left: Colored category sidebar (180px), Right: Scrollable card content $C = "../../Common.ui"; $S = "../shared/styles.ui"; @@ -115,7 +115,7 @@ $C.@PageOverlay { $Nav.@HyperFactionsNavBar #HyperFactionsNavBar {} $C.@DecoratedContainer { - Anchor: (Width: 750, Height: 650); + Anchor: (Width: 863, Height: 748); #Title { Group { diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui index 2528283d..55be9908 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_cell.ui @@ -1,7 +1,7 @@ // Help table cell - column value with left border separator Group { - Anchor: (Width: 200); + FlexWeight: 1; // Left border (acts as column separator + table left border on first cell) Group { @@ -11,8 +11,8 @@ Group { Label #CellText { Text: ""; - Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true, VerticalAlignment: Center); - Padding: (Left: 10, Right: 8); - Anchor: (Left: 1, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true); + Padding: (Left: 10, Right: 8, Top: 4, Bottom: 4); + Anchor: (Left: 1, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui index a13a2380..b927ca2d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header.ui @@ -1,23 +1,37 @@ -// Help table header row - GitHub-style with top/bottom border and background +// Help table header row - Col0 in stretching Group, Col1 drives height Group { - Padding: (Top: 4, Bottom: 4); - Background: (Color: #161b26); + Padding: (Top: 5, Bottom: 5); + Background: (Color: #141a28); - // Top border + // Column 1 wrapper - Group stretches vertically Group { - Anchor: (Height: 1, Top: 0, Left: 0, Right: 0); - Background: (Color: #2a3a4a); - } + Anchor: (Left: 2, Width: 217, Top: 0, Bottom: 0); - // Bottom border - Group { - Anchor: (Height: 1, Bottom: 0, Left: 0, Right: 0); - Background: (Color: #2a3a4a); + Label #Col0 { + Text: ""; + Style: (FontSize: 10, TextColor: #DDDDDD, RenderBold: true, Wrap: true, VerticalAlignment: Center); + Padding: (Left: 12, Right: 8); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } } - Group #Cols { - LayoutMode: Left; - Anchor: (Left: 0, Top: 1, Bottom: 1); + // Column 2 - DRIVES row height through content wrapping + Label #Col1 { + Text: ""; + Style: (FontSize: 10, TextColor: #DDDDDD, RenderBold: true, Wrap: true); + Padding: (Left: 12, Right: 8, Top: 2, Bottom: 2); + Anchor: (Left: 222, Right: 2); } + + // Top border + Group { Anchor: (Height: 1, Top: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } + // Bottom border (thicker) + Group { Anchor: (Height: 2, Bottom: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } + // Left border + Group { Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } + // Column separator + Group { Anchor: (Width: 1, Left: 220, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } + // Right border + Group { Anchor: (Width: 1, Right: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui index 302ba49e..a05d3cfa 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_header_cell.ui @@ -1,7 +1,7 @@ // Help table header cell - bold label with left border separator Group { - Anchor: (Width: 200); + FlexWeight: 1; // Left border (acts as column separator + table left border on first cell) Group { @@ -11,8 +11,8 @@ Group { Label #CellText { Text: ""; - Style: (FontSize: 10, TextColor: #CCCCCC, RenderBold: true, Wrap: true, VerticalAlignment: Center); - Padding: (Left: 10, Right: 8); - Anchor: (Left: 1, Right: 0, Top: 0, Bottom: 0); + Style: (FontSize: 10, TextColor: #CCCCCC, RenderBold: true, Wrap: true); + Padding: (Left: 10, Right: 8, Top: 4, Bottom: 4); + Anchor: (Left: 1, Right: 0); } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui index 2608050b..fb246896 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/help/help_table_row.ui @@ -1,16 +1,35 @@ -// Help table data row - GitHub-style with bottom border +// Help table data row - Col0 in stretching Group (like callout AccentBar), Col1 drives height Group { Padding: (Top: 4, Bottom: 4); + Background: (Color: #0f1520); - // Bottom border + // Column 1 wrapper - Group stretches vertically (like AccentBar in callout) Group { - Anchor: (Height: 1, Bottom: 0, Left: 0, Right: 0); - Background: (Color: #2a3a4a); + Anchor: (Left: 2, Width: 217, Top: 0, Bottom: 0); + + Label #Col0 { + Text: ""; + Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true, VerticalAlignment: Center); + Padding: (Left: 12, Right: 8); + Anchor: (Left: 0, Right: 0, Top: 0, Bottom: 0); + } } - Group #Cols { - LayoutMode: Left; - Anchor: (Left: 0, Top: 0, Bottom: 1); + // Column 2 - DRIVES row height through content wrapping (like Text in callout) + Label #Col1 { + Text: ""; + Style: (FontSize: 10, TextColor: #CCCCCC, Wrap: true); + Padding: (Left: 12, Right: 8, Top: 2, Bottom: 2); + Anchor: (Left: 222, Right: 2); } + + // Bottom border + Group { Anchor: (Height: 1, Bottom: 0, Left: 0, Right: 0); Background: (Color: #2a3a4a); } + // Left border + Group { Anchor: (Width: 1, Left: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } + // Column separator + Group { Anchor: (Width: 1, Left: 220, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } + // Right border + Group { Anchor: (Width: 1, Right: 0, Top: 0, Bottom: 0); Background: (Color: #2a3a4a); } } diff --git a/src/main/resources/Server/Languages/en-US/help/combat/death.md b/src/main/resources/Server/Languages/en-US/help/combat/death.md index dc5699a7..8690b43a 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/death.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/death.md @@ -8,7 +8,7 @@ Death carries real consequences in factions. Every death costs you personal powe ## Power Loss -Each death costs **-1.0 power** from your personal total. This lowers the faction's combined power. +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. | Event | Power Change | |-------|-------------| @@ -16,6 +16,8 @@ Each death costs **-1.0 power** from your personal total. This lowers the factio | Online regen | +0.1 per minute | | Combat logout | -1.0 (killed) | +>[!NOTE] These are default values. Your server administrator may have configured different settings. + ## Example Scenarios *5 members at 10.0 power each = 50 total, 20 claims.* diff --git a/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md index 4803abf3..f0b2ab76 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/spawn_protection.md @@ -7,7 +7,7 @@ After respawning from death, you receive temporary protection to prevent spawn c ## How It Works -- Protection lasts **5 seconds** after respawn +- Protection lasts 5 seconds after respawn - You cannot take damage during this period - A visual indicator shows your protected status @@ -15,13 +15,13 @@ After respawning from death, you receive temporary protection to prevent spawn c Spawn protection ends early if you: -- **Attack** another player or entity -- **Move** from your spawn position +- Attack another player or entity +- Move from your spawn position This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. --- ->[!NOTE] Spawn protection duration and break conditions are configurable by the server. Your server may use different settings. +>[!NOTE] These are default values. Your server administrator may have configured different settings. >[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md index 500ff734..e45cbdb3 100644 --- a/src/main/resources/Server/Languages/en-US/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/en-US/help/combat/tagging.md @@ -3,11 +3,11 @@ id: combat_tagging --- # Combat Tagging -When you attack or are attacked by another player, you become **combat tagged** for 15 seconds. +When you attack or are attacked by another player, you become combat tagged for 15 seconds. ## While Tagged -- No `/f home` or `/f stuck` teleports +- No /f home or /f stuck teleports - No server teleport commands - Tag resets with each new combat action - A timer displays your remaining tag duration @@ -24,4 +24,6 @@ Your items drop where you disconnected and enemies can loot them. Always wait fo The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +>[!NOTE] These are default values. Your server administrator may have configured different settings. + >[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md index 57a13187..45da7756 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/alliances.md @@ -4,7 +4,7 @@ commands: ally --- # Forming Alliances -Alliances are **mutual agreements** between two factions that provide protection and cooperation benefits. +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. --- @@ -12,7 +12,7 @@ Alliances are **mutual agreements** between two factions that provide protection `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once **both sides agree**. An Officer or Leader from the other faction must also run `/f ally ` to confirm. +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. ## How to Break an Alliance @@ -26,13 +26,13 @@ Either side can unilaterally end an alliance by resetting the relation to neutra | Benefit | Details | |---------|---------| -| **No friendly fire** | Allied players cannot damage each other (when allyDamage is disabled) | -| **Shared map visibility** | Allied territory shows in [#5555FF] blue on the territory map | -| **Territory interaction** | Allies can use doors, seats, and transport in your territory by default | -| **Ally chat** | Use `/f c` to cycle to ally chat mode for cross-faction communication | -| **Overclaim protection** | Allies cannot overclaim each other's territory | +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | ->[!NOTE] Your faction can have up to **10 alliances** at a time. Choose your allies wisely. +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. --- diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md index 74c9ca45..70688ad4 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/enemies.md @@ -4,7 +4,7 @@ commands: enemy, neutral --- # Enemy Factions -Declaring an enemy is a **one-way action** that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. --- @@ -26,10 +26,10 @@ Ends the enemy status and resets the relation to neutral. This also requires Off | Effect | Details | |--------|---------| -| **PvP in territory** | Full PvP is enabled in both factions' territory | -| **Overclaiming** | You can `/f overclaim` their chunks if they are in a power deficit | -| **Map marking** | Enemy territory shows in [#FF5555] red on the territory map | -| **No protection** | Standard territory protection does not prevent enemy PvP | +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | >[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. @@ -37,11 +37,11 @@ Ends the enemy status and resets the relation to neutral. This also requires Off ## Strategic Considerations -- Enemy declarations are **one-way** -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with `/f info `. If they are strong, you may lose territory instead +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead - Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is **no limit** to how many enemies you can have, but fighting on multiple fronts is risky +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky ->[!TIP] Use `/f neutral ` to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. >[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md b/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md index 9ec717c5..89711eee 100644 --- a/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/en-US/help/diplomacy/relations.md @@ -4,7 +4,7 @@ commands: relations --- # Faction Relations -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: **Ally**, **Enemy**, and **Neutral**. +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. --- @@ -12,12 +12,12 @@ Every pair of factions has a diplomatic relation that determines how they intera | Effect | Ally | Neutral | Enemy | |--------|------|---------|-------| -| **PvP in territory** | Disabled | Standard rules | Enabled | -| **Territory protection** | Mutual protection | Standard protection | Can overclaim if weakened | -| **Friendly fire** | Disabled | N/A | Enabled everywhere | -| **Map color** | [#5555FF] Blue | [#AAAAAA] Gray | [#FF5555] Red | -| **How to set** | Mutual agreement | Default state | One-way declaration | -| **Chat access** | Ally chat channel | None | None | +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | --- @@ -29,10 +29,10 @@ Shows all your current alliances, enemies, and any pending alliance requests. ## How Relations Work -- **Neutral** is the default state between all factions. Standard server rules apply. -- **Alliance** requires both factions to agree. Either side can break it unilaterally. -- **Enemy** is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. >[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. ->[!TIP] Use `/f relations` regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/commands.md b/src/main/resources/Server/Languages/en-US/help/economy/commands.md index 20751171..020190cd 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/commands.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/commands.md @@ -17,11 +17,11 @@ Quick reference for all faction economy commands. ## Command Aliases -- `/f balance` can also be used as `/f bal` -- `/f deposit` and `/f withdraw` accept decimal amounts +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts -## Permissions +## Role Requirements -All economy commands require `hyperfactions.economy.*` permission nodes. Withdraw and transfer are further restricted by faction role (Officer or higher). +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. >[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md index 7a73d3bf..e4e7307b 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/treasury.md @@ -8,18 +8,18 @@ Every faction has a shared treasury that serves as the faction's bank. Funds are ## Starting Balance -New factions start with **0** in their treasury. Members must deposit funds to build up reserves. +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. ## Who Can Manage -- **Any member** can deposit funds -- **Officers and Leader** can withdraw and transfer -- **Leader** has full treasury control +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control --- `/f balance` -Check your faction's current treasury balance. Also available as `/f bal`. +Check your faction's current treasury balance. Also available as /f bal. >[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. diff --git a/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md index b31e9b06..8a2d12e4 100644 --- a/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/en-US/help/economy/upkeep.md @@ -14,6 +14,8 @@ Factions must pay ongoing upkeep to maintain their claimed territory. This preve | Free chunks | 3 (no cost) | | Scaling mode | Flat rate | +>[!NOTE] These are default values. Your server administrator may have configured different settings. + Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. ## Auto-Pay diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md b/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md index 83212207..f70427cb 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/claiming.md @@ -12,7 +12,7 @@ Claiming a chunk protects it under your faction's control. Only faction members `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires **Officer** rank or higher. +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. ## How to Unclaim @@ -26,9 +26,11 @@ Releases the chunk you are standing in back to wilderness. Also requires Officer | Rule | Default | |------|---------| -| **Power cost per claim** | 2.0 power | -| **Maximum claims** | 100 per faction | -| **Adjacent only** | No (you can claim anywhere) | +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. >[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. @@ -38,11 +40,11 @@ Releases the chunk you are standing in back to wilderness. Also requires Officer Inside claimed territory, the following is enforced by default: -- **Outsiders** cannot break, place, or interact with blocks -- **Allies** can use doors, seats, and transport but cannot break or place blocks -- **Members and Officers** have full access to build, break, and use everything +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything - Container access (chests, crates) is restricted to members only ->[!TIP] You can also claim directly from the territory map. Open `/f map` and click on unclaimed chunks to claim them. +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. >[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md index 36b7a915..ea39186b 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/losing_territory.md @@ -4,7 +4,7 @@ commands: overclaim --- # Losing Territory -When a faction's total power drops below the cost of its claims, it becomes **raidable**. Enemies can overclaim chunks right out from under you. +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. --- @@ -12,11 +12,13 @@ When a faction's total power drops below the cost of its claims, it becomes **ra `/f overclaim` -An Officer or Leader from an **enemy** faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. ## The Math -Each claim costs **2.0 power** to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. >[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). @@ -28,21 +30,21 @@ Each claim costs **2.0 power** to maintain. If your total power falls below that |--------|-------| | Members | 5 players | | Power per member | 10 each (starting) | -| **Total power** | **50** | +| Total power | 50 | | Claims | 30 chunks | -| Power needed (30 x 2.0) | **60** | -| **Deficit** | **10 power short** | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | -In this example, the faction is already raidable from the start. Enemies could overclaim up to **5 chunks** (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. --- ## How to Prevent Overclaiming -- **Do not over-expand** -- always keep total power above your claim cost with a buffer -- **Stay active** -- power only regenerates while online (+0.1/min) -- **Avoid unnecessary deaths** -- each death costs 1.0 power -- **Recruit more members** -- more players means more total power -- **Unclaim unused chunks** -- free up power with `/f unclaim` +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim ->[!TIP] Check your power status regularly with `/f power`. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md b/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md index 3b1e3293..207c041d 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/territory_map.md @@ -20,12 +20,12 @@ Opens the territory map GUI centered on your current location. | Color | Meaning | |-------|---------| -| [#55FF55] **Your faction's color** | Territory claimed by your faction | -| [#5555FF] **Blue** | Allied faction territory | -| [#FF5555] **Red** | Enemy faction territory | -| [#AAAAAA] **Gray** | Neutral faction territory | -| [#333333] **Dark** | Wilderness (unclaimed land) | -| [#FFAA00] **Gold** | Special zones (safezone, warzone) | +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | >[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. @@ -35,8 +35,8 @@ Opens the territory map GUI centered on your current location. The map is not just for viewing -- you can interact with it directly. -- **Click an unclaimed chunk** to claim it (requires Officer+ rank and sufficient power) -- **Click a claimed chunk** to see which faction owns it +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it - Scroll or pan to explore the area around you >[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. diff --git a/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md index f46586dc..ae158ed5 100644 --- a/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/en-US/help/power_land/understanding_power.md @@ -12,17 +12,19 @@ Power is the core resource that determines how much territory your faction can h | Setting | Value | |---------|-------| -| **Maximum power per player** | 20 | -| **Starting power** | 10 | -| **Death penalty** | -1.0 per death | -| **Kill reward** | 0.0 | -| **Regen rate** | +0.1 per minute (while online) | -| **Power cost per claim** | 2.0 | -| **Logout while tagged** | -1.0 additional | +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. ## How It Works -Your faction's **total power** is the sum of every member's personal power. Your **required power** is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. >[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. @@ -36,7 +38,7 @@ Shows your personal power, your faction's total power, and how much is needed to ## The Danger Zone -If total power falls **below** the required amount for your claims, your faction becomes vulnerable. Enemies can use `/f overclaim` to steal your chunks. +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. >[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. diff --git a/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md deleted file mode 100644 index 90673685..00000000 --- a/src/main/resources/Server/Languages/en-US/help/quick_ref/permissions.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: quickref_permissions ---- -# Permissions - -Key permission nodes for HyperFactions. All nodes fall under the **hyperfactions** root namespace. - -## Core Permissions - -| Permission | Description | -|-----------|-------------| -| hyperfactions.use | Access to basic faction commands | -| hyperfactions.faction.create | Create a new faction | -| hyperfactions.faction.disband | Disband your faction | - -## Membership - -| Permission | Description | -|-----------|-------------| -| hyperfactions.member.invite | Invite players | -| hyperfactions.member.kick | Kick members | -| hyperfactions.member.promote | Promote members | - -## Territory - -| Permission | Description | -|-----------|-------------| -| hyperfactions.territory.claim | Claim chunks | -| hyperfactions.territory.unclaim | Release chunks | -| hyperfactions.territory.overclaim | Overclaim weakened land | - -## Teleport - -| Permission | Description | -|-----------|-------------| -| hyperfactions.teleport.home | Use faction home | -| hyperfactions.teleport.sethome | Set faction home | -| hyperfactions.teleport.stuck | Use stuck teleport | - -## Diplomacy and Chat - -| Permission | Description | -|-----------|-------------| -| hyperfactions.relation.ally | Manage alliances | -| hyperfactions.relation.enemy | Declare enemies | -| hyperfactions.chat.faction | Use faction chat | -| hyperfactions.chat.ally | Use ally chat | - -## Information and Economy - -| Permission | Description | -|-----------|-------------| -| hyperfactions.info.show | View faction info | -| hyperfactions.info.list | Browse factions | -| hyperfactions.economy.deposit | Deposit to treasury | -| hyperfactions.economy.withdraw | Withdraw from treasury | - -## Bypass Permissions - -| Permission | Description | -|-----------|-------------| -| hyperfactions.bypass.* | Bypass all restrictions | -| hyperfactions.bypass.combat | Bypass combat tag | -| hyperfactions.bypass.power | Bypass power limits | -| hyperfactions.bypass.territory | Bypass land protection | - ->[!INFO] Server admins can grant hyperfactions.* to give access to all permissions at once. - ->[!NOTE] Some permissions are restricted by faction role regardless of permission nodes. For example, only Officers can claim even with the permission. diff --git a/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md b/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md index a63c39a6..2155ff0c 100644 --- a/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/en-US/help/welcome/getting_started.md @@ -10,19 +10,19 @@ Welcome to HyperFactions! Here is how to get up and running in just a few steps. ## Step 1: Open the Faction Menu -Type `/f` to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. ## Step 2: Choose Your Path | Option | How | |--------|-----| -| **Browse open factions** | Click *Browse* in the menu and hit *Join* on any open faction. | -| **Accept an invitation** | Check the *Invites* tab. If someone invited you, click *Accept*. | -| **Create your own** | Click *Create Faction*, pick a name, and you are the Leader. | +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | ## Step 3: Explore Your Faction -Once you are in a faction, you will see the **Faction Dashboard** with your roster, territory map, relations, and settings. +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. >[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. @@ -30,9 +30,9 @@ Once you are in a faction, you will see the **Faction Dashboard** with your rost ## Essential First Commands -- `/f` -- Opens the faction GUI -- `/f home` -- Teleport to your faction's home base -- `/f c` -- Cycle chat mode between Normal, Faction, and Ally -- `/f map` -- View the territory map around you +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you ->[!TIP] You can also type `/f help` in chat for a quick command reference anytime. +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md index f1641b50..5fedf54c 100644 --- a/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/en-US/help/welcome/what_are_factions.md @@ -3,7 +3,7 @@ id: welcome_what --- # What Are Factions? -Factions are **player-run teams** that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. >[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. @@ -13,16 +13,16 @@ Factions are **player-run teams** that claim territory, build bases, and compete | Mechanic | What It Does | |----------|-------------| -| **Power** | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| **Claims** | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| **Relations** | Factions can form **alliances** for mutual protection or declare **enemies** to enable PvP and territorial aggression. | -| **Roles** | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | --- ## How Strength Works -Your faction's strength comes from its members. Every player starts with **10 power** and regenerates up to **20** while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can **overclaim** your territory. +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. >[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md b/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md index 716341dc..e1eaa33b 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/creating.md @@ -4,7 +4,7 @@ commands: create --- # Creating a Faction -Starting your own faction makes you the **Leader** with full control over settings, members, and territory. +Starting your own faction makes you the Leader with full control over settings, members, and territory. --- @@ -12,15 +12,15 @@ Starting your own faction makes you the **Leader** with full control over settin `/f create ` -This creates your faction and immediately opens the **Faction Dashboard** where you can begin inviting members, claiming land, and configuring settings. +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. ## Name Rules | Rule | Requirement | |------|------------| -| **Length** | Between **3** and **24** characters | -| **Characters** | Letters, numbers, and spaces only (alphanumeric) | -| **Uniqueness** | No two factions can share the same name | +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | >[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. @@ -28,11 +28,11 @@ This creates your faction and immediately opens the **Faction Dashboard** where ## What Happens on Creation -- You become the **Leader** (highest rank) -- Your faction starts with **0 claims** and your personal power (10 by default) +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) - The faction dashboard opens automatically - You can immediately invite players, claim territory, and set a faction home >[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. ->[!TIP] After creating, your first priorities should be: invite friends with `/f invite `, find a base location, and claim it with `/f claim`. +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md b/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md index 5bd2f83e..7dbabdcd 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/joining.md @@ -10,27 +10,27 @@ There are three ways to join an existing faction, depending on how the faction i ## Methods Compared -| Method | How It Works | Requires | -|--------|-------------|----------| -| **Browse and Join** | Open `/f`, click *Browse*, and hit *Join* on an open faction | Faction must be set to **open** | -| **Accept Invite** | A faction Officer or Leader sends you an invite; accept it from the *Invites* tab in `/f` | An active invitation | -| **Request to Join** | Send a join request to a closed faction with `/f request ` | An Officer or Leader to approve | +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | --- ## Invite Details -- Invitations are sent by Officers or Leaders using `/f invite ` -- Invitations expire after **5 minutes** -- accept promptly -- View your pending invites in the *Invites* tab of the faction menu (`/f`) -- Accept with the GUI or `/f accept ` +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept ## Join Requests -- Use `/f request ` to request membership in a closed faction -- Requests expire after **24 hours** if not acted on +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on - Officers and Leaders can approve or deny requests from the faction dashboard ->[!TIP] Not sure which faction to join? Use the Browse tab in `/f` to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. ->[!NOTE] Each faction can hold up to **50 members** by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md b/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md index 3219cffb..870c6133 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/managing.md @@ -18,26 +18,26 @@ Officers and Leaders share responsibility for managing the faction roster. Here | `/f demote ` | Demotes an Officer to Member | Leader only | | `/f transfer ` | Transfers faction ownership | Leader only | ->[!NOTE] Officers can only kick **Members**. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. --- ## Invitations -- Invitations expire after **5 minutes** if not accepted -- The invited player sees it in their Invites tab when they open `/f` +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f - There is no limit to how many invitations you can send at once -- Your faction can hold up to **50 members** total +- Your faction can hold up to 50 members total ## Promotions and Demotions -- Only the **Leader** can promote or demote -- `/f promote ` raises a Member to Officer -- `/f demote ` lowers an Officer back to Member +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member ## Transferring Leadership ->[!WARNING] Transferring leadership is **irreversible**. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. `/f transfer ` diff --git a/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md b/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md index 049076de..67bb5962 100644 --- a/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/en-US/help/your_faction/roles.md @@ -11,34 +11,34 @@ Every faction has three roles in a strict hierarchy. Higher roles inherit all ca | Action | Leader | Officer | Member | |--------|--------|---------|--------| -| Build in territory | Y | Y | Y | -| Use faction home | Y | Y | Y | -| Faction and ally chat | Y | Y | Y | -| Invite players | Y | Y | N | -| Kick members | Y | Y (Members only) | N | -| Claim / unclaim land | Y | Y | N | -| Overclaim enemy territory | Y | Y | N | -| Set faction home | Y | Y | N | -| Delete faction home | Y | Y | N | -| Manage relations (ally/enemy) | Y | Y | N | -| View faction logs | Y | Y | N | -| Promote to Officer | Y | N | N | -| Demote from Officer | Y | N | N | -| Rename faction | Y | N | N | -| Set description / tag / color | Y | N | N | -| Open / close faction | Y | N | N | -| Access faction settings | Y | N | N | -| Transfer leadership | Y | N | N | -| Disband faction | Y | N | N | - ->[!NOTE] Officers can kick **Members** but cannot kick other Officers. Only the Leader can remove Officers. +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. --- ## Role Details -- **Leader** -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- **Officer** -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- **Member** -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. >[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md b/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md deleted file mode 100644 index 220edcf7..00000000 --- a/src/main/resources/Server/Languages/es-ES/help/quick_ref/permissions.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: quickref_permissions ---- -# Permisos - -Nodos de permisos clave para HyperFactions. Todos los nodos estan bajo el espacio de nombres raiz **hyperfactions**. - -## Permisos Principales - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.use | Acceso a comandos basicos de faccion | -| hyperfactions.faction.create | Crear una nueva faccion | -| hyperfactions.faction.disband | Disolver tu faccion | - -## Membresia - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.member.invite | Invitar jugadores | -| hyperfactions.member.kick | Expulsar miembros | -| hyperfactions.member.promote | Promover miembros | - -## Territorio - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.territory.claim | Reclamar chunks | -| hyperfactions.territory.unclaim | Liberar chunks | -| hyperfactions.territory.overclaim | Sobrereclamar territorio debilitado | - -## Teletransporte - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.teleport.home | Usar hogar de faccion | -| hyperfactions.teleport.sethome | Establecer hogar de faccion | -| hyperfactions.teleport.stuck | Usar teletransporte de emergencia | - -## Diplomacia y Chat - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.relation.ally | Gestionar alianzas | -| hyperfactions.relation.enemy | Declarar enemigos | -| hyperfactions.chat.faction | Usar chat de faccion | -| hyperfactions.chat.ally | Usar chat de aliados | - -## Informacion y Economia - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.info.show | Ver informacion de faccion | -| hyperfactions.info.list | Explorar facciones | -| hyperfactions.economy.deposit | Depositar en tesoreria | -| hyperfactions.economy.withdraw | Retirar de tesoreria | - -## Permisos de Bypass - -| Permiso | Descripcion | -|---------|-------------| -| hyperfactions.bypass.* | Saltar todas las restricciones | -| hyperfactions.bypass.combat | Saltar etiqueta de combate | -| hyperfactions.bypass.power | Saltar limites de poder | -| hyperfactions.bypass.territory | Saltar proteccion de territorio | - ->[!INFO] Los administradores pueden otorgar hyperfactions.* para dar acceso a todos los permisos de una vez. - ->[!NOTE] Algunos permisos estan restringidos por el rol de faccion independientemente de los nodos de permiso. Por ejemplo, solo los Oficiales pueden reclamar incluso teniendo el permiso. From 7847e4df39e718a56f85185bc7ec2104e5eb9d7c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 17:32:21 -0700 Subject: [PATCH 45/76] fix: remove duplicate gui.cancel key in admin lang files Hytale's I18nModule rejects the entire lang file when it encounters a duplicate key, causing ALL admin GUI translations to show raw keys. --- .../resources/Server/Languages/en-US/hyperfactions_admin.lang | 3 --- .../resources/Server/Languages/es-ES/hyperfactions_admin.lang | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 5c1d5391..c25fe32c 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -672,6 +672,3 @@ gui.czw_flags_defaults_desc = Based on zone type gui.czw_flags_defaults = Use defaults gui.czw_flags_customize_desc = Open settings after gui.czw_flags_customize = Customize - -# Common button labels -gui.cancel = Cancel diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 4ad1a966..24f91d3f 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -672,6 +672,3 @@ gui.czw_flags_defaults_desc = Basado en tipo de zona gui.czw_flags_defaults = Usar por defecto gui.czw_flags_customize_desc = Abrir ajustes despues gui.czw_flags_customize = Personalizar - -# Etiquetas comunes de botones -gui.cancel = Cancelar From 72819699b054ca1f62373a7e98e1fdab071290de Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 18:01:54 -0700 Subject: [PATCH 46/76] =?UTF-8?q?feat:=20localize=20GUI=20labels=20for=20e?= =?UTF-8?q?s-ES=20=E2=80=94=20browse=20stats,=20log=20time/types,=20sort?= =?UTF-8?q?=20labels?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add i18n support for previously hardcoded English text across player and admin GUI pages: browse entry stat labels (power/claims/members), activity log time formatting and type names, leaderboard/browser/members sort labels. Fix truncated Spanish button text (relations, settings, sort labels). --- .../gui/admin/page/AdminActivityLogPage.java | 34 ++++++++++-- .../gui/faction/page/FactionBrowserPage.java | 11 ++++ .../faction/page/FactionDashboardPage.java | 3 +- .../gui/faction/page/LogsViewerPage.java | 39 ++++++++++++-- .../newplayer/page/NewPlayerBrowsePage.java | 10 ++++ .../com/hyperfactions/util/MessageKeys.java | 39 ++++++++++++++ .../faction/faction_browse_entry.ui | 18 +++---- .../newplayer/newplayer_faction_entry.ui | 12 ++--- .../Languages/en-US/hyperfactions_gui.lang | 34 ++++++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 54 ++++++++++++++++--- 10 files changed, 221 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index c2284a90..62790952 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -27,6 +27,7 @@ import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import java.util.*; +import java.util.concurrent.TimeUnit; import org.jetbrains.annotations.Nullable; /** @@ -126,7 +127,8 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { List typeOptions = new ArrayList<>(); typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.AdminGui.LOG_ALL_TYPES)), "ALL")); for (FactionLog.LogType type : FactionLog.LogType.values()) { - typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(type.getDisplayName()), type.name())); + typeOptions.add(new DropdownEntryInfo(LocalizableString.fromString( + HFMessages.get(playerRef, MessageKeys.LogsGui.typeKey(type.name()))), type.name())); } cmd.set("#TypeDropdown.Entries", typeOptions); cmd.set("#TypeDropdown.Value", filterType != null ? filterType.name() : "ALL"); @@ -190,11 +192,11 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { cmd.append("#LogList", UIPaths.ADMIN_ACTIVITY_LOG_ENTRY); - // Time - cmd.set(sel + " #LogTime.Text", TimeUtil.formatRelative(entry.log.timestamp())); + // Time (localized) + cmd.set(sel + " #LogTime.Text", formatRelativeTime(entry.log.timestamp())); - // Type with color - cmd.set(sel + " #LogType.Text", entry.log.type().getDisplayName()); + // Type with color (localized) + cmd.set(sel + " #LogType.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.typeKey(entry.log.type().name()))); cmd.set(sel + " #LogType.Style.TextColor", GuiColors.forLogType(entry.log.type())); // Faction name with color @@ -363,6 +365,28 @@ public void handleDataEvent(Ref ref, Store store, } } + /** Returns a localized relative time string for the given timestamp. */ + private String formatRelativeTime(long timestamp) { + long diff = System.currentTimeMillis() - timestamp; + if (diff < 60_000) { + return HFMessages.get(playerRef, MessageKeys.LogsGui.TIME_JUST_NOW); + } else if (diff < 3600_000) { + long m = TimeUnit.MILLISECONDS.toMinutes(diff); + return HFMessages.get(playerRef, m == 1 ? MessageKeys.LogsGui.TIME_MINUTE : MessageKeys.LogsGui.TIME_MINUTES, m); + } else if (diff < 86400_000) { + long h = TimeUnit.MILLISECONDS.toHours(diff); + return HFMessages.get(playerRef, h == 1 ? MessageKeys.LogsGui.TIME_HOUR : MessageKeys.LogsGui.TIME_HOURS, h); + } else if (diff < 604800_000) { + long d = TimeUnit.MILLISECONDS.toDays(diff); + return HFMessages.get(playerRef, d == 1 ? MessageKeys.LogsGui.TIME_DAY : MessageKeys.LogsGui.TIME_DAYS, d); + } else if (diff < 2592000_000L) { + long w = TimeUnit.MILLISECONDS.toDays(diff) / 7; + return HFMessages.get(playerRef, w == 1 ? MessageKeys.LogsGui.TIME_WEEK : MessageKeys.LogsGui.TIME_WEEKS, w); + } else { + return TimeUtil.formatDate(timestamp); + } + } + private void rebuildList() { UICommandBuilder cmd = new UICommandBuilder(); UIEventBuilder events = new UIEventBuilder(); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java index 8de7a5f1..056d952e 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java @@ -244,6 +244,11 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int cmd.set(idx + " #ClaimsDisplay.Text", String.valueOf(entry.claimCount)); cmd.set(idx + " #MemberCount.Text", String.valueOf(entry.memberCount)); + // Localized stat labels + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_POWER)); + cmd.set(idx + " #ClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_CLAIMS)); + cmd.set(idx + " #MemberLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_MEMBERS)); + // Own faction indicator if (isOwnFaction) { cmd.set(idx + " #OwnIndicator.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.OWN_FACTION)); @@ -275,6 +280,12 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Extended info (only set values if expanded) if (isExpanded) { + // Localized extended labels + cmd.set(idx + " #RecruitmentLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_RECRUITMENT)); + cmd.set(idx + " #CreatedLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_CREATED)); + cmd.set(idx + " #DescriptionLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_DESCRIPTION)); + cmd.set(idx + " #ViewInfoBtn.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.VIEW_INFO_BTN)); + // Recruitment status cmd.set(idx + " #RecruitmentStatus.Text", entry.isOpen ? HFMessages.get(playerRef, MessageKeys.FactionInfoGui.STATUS_OPEN) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java index 636c81c7..978f6e48 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java @@ -422,7 +422,8 @@ private void buildActivityFeed(UICommandBuilder cmd, UIEventBuilder events, Fact String idx = "#ActivityFeed[" + i + "]"; cmd.append("#ActivityFeed", UIPaths.ACTIVITY_ENTRY); - cmd.set(idx + " #ActivityType.Text", log.type().getDisplayName().toUpperCase()); + cmd.set(idx + " #ActivityType.Text", + HFMessages.get(playerRef, MessageKeys.LogsGui.typeKey(log.type().name())).toUpperCase()); cmd.set(idx + " #ActivityMessage.Text", log.message()); cmd.set(idx + " #ActivityTime.Text", formatTimeAgo(log.timestamp())); } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java index 5995e499..d0160702 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java @@ -28,6 +28,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import org.jetbrains.annotations.Nullable; @@ -41,6 +42,7 @@ public class LogsViewerPage extends InteractiveCustomUIPage { private static final int LOGS_PER_PAGE = 10; + private final PlayerRef playerRef; private final FactionManager factionManager; @@ -130,7 +132,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { List filterOptions = new ArrayList<>(); filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, MessageKeys.LogsGui.ALL_TYPES)), "ALL")); for (FactionLog.LogType type : FactionLog.LogType.values()) { - filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString(type.getDisplayName()), type.name())); + filterOptions.add(new DropdownEntryInfo(LocalizableString.fromString(getLocalizedTypeName(type)), type.name())); } cmd.set("#FilterDropdown.Entries", filterOptions); cmd.set("#FilterDropdown.Value", filterType != null ? filterType.name() : "ALL"); @@ -160,11 +162,11 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { cmd.append("#LogsList", UIPaths.LOG_ENTRY); - // Time - cmd.set(sel + " #LogTime.Text", TimeUtil.formatRelative(log.timestamp())); + // Time (localized) + cmd.set(sel + " #LogTime.Text", formatRelativeTime(log.timestamp())); - // Type badge with color - cmd.set(sel + " #LogType.Text", log.type().getDisplayName()); + // Type badge with color (localized) + cmd.set(sel + " #LogType.Text", getLocalizedTypeName(log.type())); cmd.set(sel + " #LogType.Style.TextColor", GuiColors.forLogType(log.type())); // Message @@ -254,6 +256,33 @@ public void handleDataEvent(Ref ref, Store store, } } + /** Returns a localized relative time string for the given timestamp. */ + private String formatRelativeTime(long timestamp) { + long diff = System.currentTimeMillis() - timestamp; + if (diff < 60_000) { + return HFMessages.get(playerRef, MessageKeys.LogsGui.TIME_JUST_NOW); + } else if (diff < 3600_000) { + long m = TimeUnit.MILLISECONDS.toMinutes(diff); + return HFMessages.get(playerRef, m == 1 ? MessageKeys.LogsGui.TIME_MINUTE : MessageKeys.LogsGui.TIME_MINUTES, m); + } else if (diff < 86400_000) { + long h = TimeUnit.MILLISECONDS.toHours(diff); + return HFMessages.get(playerRef, h == 1 ? MessageKeys.LogsGui.TIME_HOUR : MessageKeys.LogsGui.TIME_HOURS, h); + } else if (diff < 604800_000) { + long d = TimeUnit.MILLISECONDS.toDays(diff); + return HFMessages.get(playerRef, d == 1 ? MessageKeys.LogsGui.TIME_DAY : MessageKeys.LogsGui.TIME_DAYS, d); + } else if (diff < 2592000_000L) { + long w = TimeUnit.MILLISECONDS.toDays(diff) / 7; + return HFMessages.get(playerRef, w == 1 ? MessageKeys.LogsGui.TIME_WEEK : MessageKeys.LogsGui.TIME_WEEKS, w); + } else { + return TimeUtil.formatDate(timestamp); + } + } + + /** Returns the localized display name for a log type. */ + private String getLocalizedTypeName(FactionLog.LogType type) { + return HFMessages.get(playerRef, MessageKeys.LogsGui.typeKey(type.name())); + } + private void rebuildList() { UICommandBuilder cmd = new UICommandBuilder(); UIEventBuilder events = new UIEventBuilder(); diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java index 26f20ab4..2293c969 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java @@ -283,6 +283,10 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int cmd.set(idx + " #PowerDisplay.Text", String.format("%.0f/%.0f", entry.power, entry.maxPower)); cmd.set(idx + " #MemberCount.Text", String.valueOf(entry.memberCount)); + // Localized stat labels + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_POWER)); + cmd.set(idx + " #MemberLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_MEMBERS)); + // Expansion state cmd.set(idx + " #ExpandIcon.Visible", !isExpanded); cmd.set(idx + " #CollapseIcon.Visible", isExpanded); @@ -299,6 +303,12 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Extended info (only set values if expanded) if (isExpanded) { + // Localized extended labels + cmd.set(idx + " #LeaderLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_LEADER)); + cmd.set(idx + " #ClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_CLAIMS)); + cmd.set(idx + " #DescriptionLabel.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.LABEL_DESCRIPTION)); + cmd.set(idx + " #ViewInfoBtn.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.VIEW_INFO_BTN)); + // Leader and claims cmd.set(idx + " #LeaderName.Text", entry.leaderName); cmd.set(idx + " #ClaimsDisplay.Text", String.valueOf(entry.claimCount)); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 4a4a316d..96535d9b 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -881,6 +881,14 @@ public static final class BrowserGui { public static final String NEXT_BTN = "hyperfactions_gui.browser.next_btn"; public static final String SORT_NAME = "hyperfactions_gui.browser.sort_name"; public static final String INVALID_FACTION = "hyperfactions_gui.browser.invalid_faction"; + public static final String LABEL_POWER = "hyperfactions_gui.browser.label_power"; + public static final String LABEL_CLAIMS = "hyperfactions_gui.browser.label_claims"; + public static final String LABEL_MEMBERS = "hyperfactions_gui.browser.label_members"; + public static final String LABEL_RECRUITMENT = "hyperfactions_gui.browser.label_recruitment"; + public static final String LABEL_CREATED = "hyperfactions_gui.browser.label_created"; + public static final String LABEL_DESCRIPTION = "hyperfactions_gui.browser.label_description"; + public static final String VIEW_INFO_BTN = "hyperfactions_gui.browser.view_info_btn"; + public static final String LABEL_LEADER = "hyperfactions_gui.browser.label_leader"; private BrowserGui() {} } @@ -1335,6 +1343,37 @@ public static final class LogsGui { public static final String ALL_TYPES = "hyperfactions_gui.logs.all_types"; public static final String NO_LOGS_TYPE = "hyperfactions_gui.logs.no_logs_type"; public static final String NO_LOGS = "hyperfactions_gui.logs.no_logs"; + public static final String TIME_JUST_NOW = "hyperfactions_gui.logs.time_just_now"; + public static final String TIME_MINUTE = "hyperfactions_gui.logs.time_minute"; + public static final String TIME_MINUTES = "hyperfactions_gui.logs.time_minutes"; + public static final String TIME_HOUR = "hyperfactions_gui.logs.time_hour"; + public static final String TIME_HOURS = "hyperfactions_gui.logs.time_hours"; + public static final String TIME_DAY = "hyperfactions_gui.logs.time_day"; + public static final String TIME_DAYS = "hyperfactions_gui.logs.time_days"; + public static final String TIME_WEEK = "hyperfactions_gui.logs.time_week"; + public static final String TIME_WEEKS = "hyperfactions_gui.logs.time_weeks"; + public static final String TYPE_MEMBER_JOIN = "hyperfactions_gui.logs.type_member_join"; + public static final String TYPE_MEMBER_LEAVE = "hyperfactions_gui.logs.type_member_leave"; + public static final String TYPE_MEMBER_KICK = "hyperfactions_gui.logs.type_member_kick"; + public static final String TYPE_MEMBER_PROMOTE = "hyperfactions_gui.logs.type_member_promote"; + public static final String TYPE_MEMBER_DEMOTE = "hyperfactions_gui.logs.type_member_demote"; + public static final String TYPE_CLAIM = "hyperfactions_gui.logs.type_claim"; + public static final String TYPE_UNCLAIM = "hyperfactions_gui.logs.type_unclaim"; + public static final String TYPE_OVERCLAIM = "hyperfactions_gui.logs.type_overclaim"; + public static final String TYPE_HOME_SET = "hyperfactions_gui.logs.type_home_set"; + public static final String TYPE_RELATION_ALLY = "hyperfactions_gui.logs.type_relation_ally"; + public static final String TYPE_RELATION_ENEMY = "hyperfactions_gui.logs.type_relation_enemy"; + public static final String TYPE_RELATION_NEUTRAL = "hyperfactions_gui.logs.type_relation_neutral"; + public static final String TYPE_LEADER_TRANSFER = "hyperfactions_gui.logs.type_leader_transfer"; + public static final String TYPE_SETTINGS_CHANGE = "hyperfactions_gui.logs.type_settings_change"; + public static final String TYPE_POWER_CHANGE = "hyperfactions_gui.logs.type_power_change"; + public static final String TYPE_ECONOMY = "hyperfactions_gui.logs.type_economy"; + public static final String TYPE_ADMIN_POWER = "hyperfactions_gui.logs.type_admin_power"; + + /** Derives the lang key for a FactionLog.LogType enum by name. */ + public static String typeKey(String logTypeName) { + return "hyperfactions_gui.logs.type_" + logTypeName.toLowerCase(); + } private LogsGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui index e04c92b4..20f4f8e3 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui @@ -61,7 +61,7 @@ Group { Style: (FontSize: 12, TextColor: #44CC44, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #PowerLabel { Text: "power"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -78,7 +78,7 @@ Group { Style: (FontSize: 12, TextColor: #FFAA00, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #ClaimsLabel { Text: "claims"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -95,7 +95,7 @@ Group { Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #MemberLabel { Text: "members"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -136,18 +136,18 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #RecruitmentLabel { Text: "Recruitment:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 75); + Anchor: (Width: 85); } Label #RecruitmentStatus { Text: "Unknown"; Style: (FontSize: 10, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 100); + Anchor: (Width: 90); } - Label { + Label #CreatedLabel { Text: "Created:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 55); @@ -164,10 +164,10 @@ Group { LayoutMode: Left; Anchor: (Height: 18, Bottom: 6); - Label { + Label #DescriptionLabel { Text: "Description:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 75); + Anchor: (Width: 85); } Label #Description { Text: "No description set"; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/newplayer_faction_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/newplayer_faction_entry.ui index b5b0f46c..888e2439 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/newplayer_faction_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/newplayer_faction_entry.ui @@ -45,7 +45,7 @@ Group { Style: (FontSize: 12, TextColor: #44CC44, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #PowerLabel { Text: "power"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -62,7 +62,7 @@ Group { Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #MemberLabel { Text: "members"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -103,7 +103,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #LeaderLabel { Text: "Leader:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -114,7 +114,7 @@ Group { Anchor: (Width: 120); } - Label { + Label #ClaimsLabel { Text: "Claims:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -131,10 +131,10 @@ Group { LayoutMode: Left; Anchor: (Height: 18, Bottom: 6); - Label { + Label #DescriptionLabel { Text: "Description:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 75); + Anchor: (Width: 85); } Label #Description { Text: "No description set"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 2e38f503..780b01f0 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -205,6 +205,14 @@ browser.prev_btn = < Prev browser.next_btn = Next > browser.sort_name = Name browser.invalid_faction = Invalid faction. +browser.label_power = power +browser.label_claims = claims +browser.label_members = members +browser.label_recruitment = Recruitment: +browser.label_created = Created: +browser.label_description = Description: +browser.view_info_btn = View Info +browser.label_leader = Leader: # ========== Leaderboard Page ========== leaderboard.title = Faction Leaderboard @@ -523,6 +531,32 @@ logs.next_btn = Next > logs.all_types = All Types logs.no_logs_type = No logs of this type. logs.no_logs = No activity logs yet. +logs.time_just_now = just now +logs.time_minute = {0} minute ago +logs.time_minutes = {0} minutes ago +logs.time_hour = {0} hour ago +logs.time_hours = {0} hours ago +logs.time_day = {0} day ago +logs.time_days = {0} days ago +logs.time_week = {0} week ago +logs.time_weeks = {0} weeks ago +logs.type_member_join = Join +logs.type_member_leave = Leave +logs.type_member_kick = Kick +logs.type_member_promote = Promote +logs.type_member_demote = Demote +logs.type_claim = Claim +logs.type_unclaim = Unclaim +logs.type_overclaim = Overclaim +logs.type_home_set = Home Set +logs.type_relation_ally = Ally +logs.type_relation_enemy = Enemy +logs.type_relation_neutral = Neutral +logs.type_leader_transfer = Transfer +logs.type_settings_change = Settings +logs.type_power_change = Power +logs.type_economy = Economy +logs.type_admin_power = Admin Power # ========== Chat Page ========== chat.title = Faction Chat diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index 475d5229..cd99dafd 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -173,14 +173,14 @@ common.sort_members = Miembros common.page_format = {0}/{1} common.own_faction = (Tu) common.search = Buscar: -common.sort = Ordenar: +common.sort = Orden: common.prev = < Anterior common.next = Siguiente > # ========== Pagina de Miembros ========== members.title = Miembros members.search_label = Buscar: -members.sort_label = Ordenar: +members.sort_label = Orden: members.prev_btn = < Anterior members.next_btn = Siguiente > members.count = {0} miembros @@ -200,15 +200,23 @@ members.kick_failed = No se pudo expulsar: {0} # ========== Pagina del Explorador ========== browser.title = Explorar Facciones browser.search_label = Buscar: -browser.sort_label = Ordenar: +browser.sort_label = Orden: browser.prev_btn = < Anterior browser.next_btn = Siguiente > browser.sort_name = Nombre browser.invalid_faction = Faccion invalida. +browser.label_power = poder +browser.label_claims = reclamos +browser.label_members = miembros +browser.label_recruitment = Reclutamiento: +browser.label_created = Creada: +browser.label_description = Descripcion: +browser.view_info_btn = Ver Info +browser.label_leader = Lider: # ========== Pagina de Clasificacion ========== leaderboard.title = Clasificacion de Facciones -leaderboard.rank_by = Clasificar por: +leaderboard.rank_by = Orden: leaderboard.col_rank = # leaderboard.col_faction = Faccion leaderboard.col_claims = Reclamos @@ -251,7 +259,7 @@ playerinfo.reason_disbanded = DISUELTA relations.title = Relaciones relations.tab_relations = Relaciones relations.tab_pending = Pendientes -relations.set_relation_btn = + Establecer Relacion +relations.set_relation_btn = + Nueva Relacion relations.prev_btn = < Anterior relations.next_btn = Siguiente > relations.relation_count = {0} relaciones @@ -292,7 +300,7 @@ settings.status_label = Estado: settings.home_location = Ubicacion del Hogar settings.location_label = Ubicacion: settings.set_home_btn = Fijar Hogar -settings.teleport_btn = Teletransportar +settings.teleport_btn = Teleportar settings.delete_btn = Eliminar settings.optional_features = Funciones Opcionales settings.configure_modules = Configurar modulos opcionales. @@ -514,9 +522,41 @@ confirm.leadership_transferred = Liderazgo transferido a {0}. # ========== Pagina del Visor de Registros ========== logs.title = {0} - Registros de Actividad logs.entry_count = {0} entradas +logs.filter_label = Filtrar: +logs.col_time = Hora +logs.col_type = Tipo +logs.col_message = Mensaje +logs.prev_btn = < Anterior +logs.next_btn = Siguiente > logs.all_types = Todos los Tipos logs.no_logs_type = No hay registros de este tipo. logs.no_logs = No hay registros de actividad aun. +logs.time_just_now = ahora mismo +logs.time_minute = hace {0} minuto +logs.time_minutes = hace {0} minutos +logs.time_hour = hace {0} hora +logs.time_hours = hace {0} horas +logs.time_day = hace {0} dia +logs.time_days = hace {0} dias +logs.time_week = hace {0} semana +logs.time_weeks = hace {0} semanas +logs.type_member_join = Ingreso +logs.type_member_leave = Salida +logs.type_member_kick = Expulsion +logs.type_member_promote = Ascenso +logs.type_member_demote = Descenso +logs.type_claim = Reclamo +logs.type_unclaim = Desreclamo +logs.type_overclaim = Sobrerreclamo +logs.type_home_set = Hogar +logs.type_relation_ally = Aliado +logs.type_relation_enemy = Enemigo +logs.type_relation_neutral = Neutral +logs.type_leader_transfer = Liderazgo +logs.type_settings_change = Ajustes +logs.type_power_change = Poder +logs.type_economy = Economia +logs.type_admin_power = Admin # ========== Pagina de Chat ========== chat.title = Chat de Faccion @@ -639,7 +679,7 @@ newplayer.legend_warzone = Zona de Guerra newplayer.legend_faction = Faccion newplayer.legend_wilderness = Naturaleza newplayer.search_label = Buscar: -newplayer.sort_label = Ordenar: +newplayer.sort_label = Orden: newplayer.prev_btn = < Anterior newplayer.next_btn = Siguiente > newplayer.pending_count = {0} pendientes From e7dc9448ca88422116a7add9dd2123bf62fe4b70 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Tue, 10 Mar 2026 20:15:04 -0700 Subject: [PATCH 47/76] feat(i18n): localize admin GUI pages, entry templates, and zone flag display names Localize admin dashboard stats, faction/player/zone list entries, activity log types and timestamps, economy/treasury labels, zone flags with display names, integration flags, relation buttons, action buttons, and faction log enhancements. Add ~100 new keys to both en-US and es-ES admin and GUI lang files. --- .../admin/handler/AdminPowerHandler.java | 45 +++++-- .../command/faction/CloseSubCommand.java | 3 +- .../command/faction/ColorSubCommand.java | 3 +- .../command/faction/DescSubCommand.java | 3 +- .../command/faction/OpenSubCommand.java | 3 +- .../command/faction/RenameSubCommand.java | 3 +- .../java/com/hyperfactions/data/Faction.java | 4 +- .../com/hyperfactions/data/FactionLog.java | 65 ++++++++-- .../com/hyperfactions/data/ZoneFlags.java | 12 ++ .../economy/UpkeepProcessor.java | 22 +++- .../gui/admin/page/AdminActionsPage.java | 4 + .../gui/admin/page/AdminActivityLogPage.java | 4 +- .../gui/admin/page/AdminFactionInfoPage.java | 6 +- .../admin/page/AdminFactionRelationsPage.java | 6 + .../gui/admin/page/AdminFactionsPage.java | 17 +++ .../gui/admin/page/AdminPlayerInfoPage.java | 43 +++++-- .../gui/admin/page/AdminPlayersPage.java | 18 ++- .../page/AdminZoneIntegrationFlagsPage.java | 16 ++- .../gui/admin/page/AdminZonePage.java | 15 +++ .../gui/admin/page/AdminZoneSettingsPage.java | 7 +- .../faction/page/FactionDashboardPage.java | 2 +- .../gui/faction/page/LogsViewerPage.java | 4 +- .../gui/faction/page/TreasuryPage.java | 3 +- .../importer/ElbaphFactionsImporter.java | 10 +- .../importer/HyFactionsImporter.java | 7 +- .../hyperfactions/manager/ClaimManager.java | 25 ++-- .../hyperfactions/manager/EconomyManager.java | 15 ++- .../hyperfactions/manager/FactionManager.java | 31 +++-- .../manager/RelationManager.java | 4 +- .../storage/json/JsonFactionStorage.java | 22 +++- .../com/hyperfactions/util/HFMessages.java | 18 +++ .../com/hyperfactions/util/MessageKeys.java | 117 ++++++++++++++++++ .../HyperFactions/admin/admin_dashboard.ui | 5 +- .../admin/admin_faction_entry.ui | 10 +- .../HyperFactions/admin/admin_faction_info.ui | 6 +- .../HyperFactions/admin/admin_factions.ui | 2 +- .../HyperFactions/admin/admin_player_entry.ui | 12 +- .../HyperFactions/admin/admin_zone_entry.ui | 10 +- .../HyperFactions/faction/activity_entry.ui | 40 +++--- .../Languages/en-US/hyperfactions_admin.lang | 98 +++++++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 68 ++++++++++ .../Languages/es-ES/hyperfactions_admin.lang | 98 +++++++++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 68 ++++++++++ 43 files changed, 840 insertions(+), 134 deletions(-) diff --git a/src/main/java/com/hyperfactions/command/admin/handler/AdminPowerHandler.java b/src/main/java/com/hyperfactions/command/admin/handler/AdminPowerHandler.java index a08f2af8..055af530 100644 --- a/src/main/java/com/hyperfactions/command/admin/handler/AdminPowerHandler.java +++ b/src/main/java/com/hyperfactions/command/admin/handler/AdminPowerHandler.java @@ -13,6 +13,7 @@ import com.hyperfactions.platform.HyperFactionsPlugin; import com.hyperfactions.util.CommandHelp; import com.hyperfactions.util.HelpFormatter; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.util.PlayerResolver; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; @@ -132,6 +133,14 @@ private void logAdminPowerChange(UUID targetUuid, UUID adminUuid, String message } } + private void logAdminPowerChange(UUID targetUuid, UUID adminUuid, String message, String key, String... args) { + Faction faction = hyperFactions.getFactionManager().getPlayerFaction(targetUuid); + if (faction != null) { + Faction updated = faction.withLog(FactionLog.create(FactionLog.LogType.ADMIN_POWER, message, adminUuid, key, args)); + hyperFactions.getFactionManager().updateFaction(updated); + } + } + // /f admin power set /** Handles power set. */ public void handlePowerSet(CommandContext ctx, UUID senderUuid, String[] args) { @@ -155,7 +164,8 @@ public void handlePowerSet(CommandContext ctx, UUID senderUuid, String[] args) { double oldPower = hyperFactions.getPowerManager().getPlayerPower(target.uuid()).power(); double newPower = hyperFactions.getPowerManager().setPlayerPower(target.uuid(), amount); logAdminPowerChange(target.uuid(), senderUuid, - "Admin set " + target.name() + "'s power to " + String.format("%.1f", newPower) + " (was " + String.format("%.1f", oldPower) + ")"); + "Admin set " + target.name() + "'s power to " + String.format("%.1f", newPower) + " (was " + String.format("%.1f", oldPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_SET, target.name(), String.format("%.1f", newPower), String.format("%.1f", oldPower)); ctx.sendMessage(prefix().insert(msg("Set ", COLOR_GREEN)) .insert(msg(target.name(), COLOR_CYAN)) .insert(msg("'s power to ", COLOR_GREEN)) @@ -186,7 +196,8 @@ public void handlePowerAdd(CommandContext ctx, UUID senderUuid, String[] args) { double oldPower = hyperFactions.getPowerManager().getPlayerPower(target.uuid()).power(); double newPower = hyperFactions.getPowerManager().adjustPlayerPower(target.uuid(), amount); logAdminPowerChange(target.uuid(), senderUuid, - "Admin added " + String.format("%.1f", amount) + " power to " + target.name() + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")"); + "Admin added " + String.format("%.1f", amount) + " power to " + target.name() + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_ADD, String.format("%.1f", amount), target.name(), String.format("%.1f", oldPower), String.format("%.1f", newPower)); ctx.sendMessage(prefix().insert(msg("Added ", COLOR_GREEN)) .insert(msg(String.format("%.1f", amount), COLOR_WHITE)) .insert(msg(" power to ", COLOR_GREEN)) @@ -217,7 +228,8 @@ public void handlePowerRemove(CommandContext ctx, UUID senderUuid, String[] args double oldPower = hyperFactions.getPowerManager().getPlayerPower(target.uuid()).power(); double newPower = hyperFactions.getPowerManager().adjustPlayerPower(target.uuid(), -amount); logAdminPowerChange(target.uuid(), senderUuid, - "Admin removed " + String.format("%.1f", amount) + " power from " + target.name() + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")"); + "Admin removed " + String.format("%.1f", amount) + " power from " + target.name() + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_REMOVE, String.format("%.1f", amount), target.name(), String.format("%.1f", oldPower), String.format("%.1f", newPower)); ctx.sendMessage(prefix().insert(msg("Removed ", COLOR_GREEN)) .insert(msg(String.format("%.1f", amount), COLOR_WHITE)) .insert(msg(" power from ", COLOR_GREEN)) @@ -241,7 +253,8 @@ public void handlePowerReset(CommandContext ctx, UUID senderUuid, String[] args) double oldPower = hyperFactions.getPowerManager().getPlayerPower(target.uuid()).power(); double newPower = hyperFactions.getPowerManager().resetPlayerPower(target.uuid()); logAdminPowerChange(target.uuid(), senderUuid, - "Admin reset " + target.name() + "'s power to " + String.format("%.1f", newPower) + " (was " + String.format("%.1f", oldPower) + ")"); + "Admin reset " + target.name() + "'s power to " + String.format("%.1f", newPower) + " (was " + String.format("%.1f", oldPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_RESET, target.name(), String.format("%.1f", newPower), String.format("%.1f", oldPower)); ctx.sendMessage(prefix().insert(msg("Reset ", COLOR_GREEN)) .insert(msg(target.name(), COLOR_CYAN)) .insert(msg("'s power to ", COLOR_GREEN)) @@ -277,7 +290,8 @@ public void handlePowerSetMax(CommandContext ctx, UUID senderUuid, String[] args double oldMax = oldPower.getEffectiveMaxPower(); double newCurrentPower = hyperFactions.getPowerManager().setPlayerMaxPower(target.uuid(), amount); logAdminPowerChange(target.uuid(), senderUuid, - "Admin set " + target.name() + "'s max power to " + String.format("%.1f", amount) + " (was " + String.format("%.1f", oldMax) + ")"); + "Admin set " + target.name() + "'s max power to " + String.format("%.1f", amount) + " (was " + String.format("%.1f", oldMax) + ")", + MessageKeys.LogsGui.MSG_ADMIN_MAXPOWER_SET, target.name(), String.format("%.1f", amount), String.format("%.1f", oldMax)); ctx.sendMessage(prefix().insert(msg("Set ", COLOR_GREEN)) .insert(msg(target.name(), COLOR_CYAN)) .insert(msg("'s max power to ", COLOR_GREEN)) @@ -303,7 +317,8 @@ public void handlePowerResetMax(CommandContext ctx, UUID senderUuid, String[] ar hyperFactions.getPowerManager().resetPlayerMaxPower(target.uuid()); double globalMax = ConfigManager.get().getMaxPlayerPower(); logAdminPowerChange(target.uuid(), senderUuid, - "Admin reset " + target.name() + "'s max power to global default (" + String.format("%.1f", globalMax) + ")"); + "Admin reset " + target.name() + "'s max power to global default (" + String.format("%.1f", globalMax) + ")", + MessageKeys.LogsGui.MSG_ADMIN_MAXPOWER_RESET, target.name(), String.format("%.1f", globalMax)); ctx.sendMessage(prefix().insert(msg("Reset ", COLOR_GREEN)) .insert(msg(target.name(), COLOR_CYAN)) .insert(msg("'s max power to global default ", COLOR_GREEN)) @@ -328,7 +343,8 @@ public void handlePowerNoLoss(CommandContext ctx, UUID senderUuid, String[] args boolean newState = !current.powerLossDisabled(); hyperFactions.getPowerManager().setPlayerPowerLossDisabled(target.uuid(), newState); logAdminPowerChange(target.uuid(), senderUuid, - "Admin " + (newState ? "disabled" : "enabled") + " power loss for " + target.name()); + "Admin " + (newState ? "disabled" : "enabled") + " power loss for " + target.name(), + newState ? MessageKeys.LogsGui.MSG_ADMIN_POWERLOSS_DISABLED : MessageKeys.LogsGui.MSG_ADMIN_POWERLOSS_ENABLED, target.name()); ctx.sendMessage(prefix().insert(msg("Power loss ", COLOR_GREEN)) .insert(msg(newState ? "disabled" : "enabled", newState ? COLOR_RED : COLOR_GREEN)) .insert(msg(" for ", COLOR_GREEN)) @@ -352,7 +368,8 @@ public void handlePowerNoDecay(CommandContext ctx, UUID senderUuid, String[] arg boolean newState = !current.claimDecayExempt(); hyperFactions.getPowerManager().setPlayerClaimDecayExempt(target.uuid(), newState); logAdminPowerChange(target.uuid(), senderUuid, - "Admin " + (newState ? "enabled" : "disabled") + " claim decay exemption for " + target.name()); + "Admin " + (newState ? "enabled" : "disabled") + " claim decay exemption for " + target.name(), + newState ? MessageKeys.LogsGui.MSG_ADMIN_DECAY_ENABLED : MessageKeys.LogsGui.MSG_ADMIN_DECAY_DISABLED, target.name()); ctx.sendMessage(prefix().insert(msg("Claim decay exemption ", COLOR_GREEN)) .insert(msg(newState ? "enabled" : "disabled", newState ? COLOR_GREEN : COLOR_RED)) .insert(msg(" for ", COLOR_GREEN)) @@ -392,7 +409,8 @@ public void handlePowerFaction(CommandContext ctx, UUID senderUuid, String[] arg hyperFactions.getFactionManager().updateFaction(faction.withLog(FactionLog.create( FactionLog.LogType.ADMIN_POWER, "Admin set all " + members.size() + " members' power to " + String.format("%.1f", amount), - senderUuid))); + senderUuid, + MessageKeys.LogsGui.MSG_ADMIN_POWER_SET_ALL, String.valueOf(members.size()), String.format("%.1f", amount)))); ctx.sendMessage(prefix().insert(msg("Set power to ", COLOR_GREEN)) .insert(msg(String.format("%.1f", amount), COLOR_WHITE)) .insert(msg(" for " + members.size() + " members of ", COLOR_GREEN)) @@ -413,7 +431,8 @@ public void handlePowerFaction(CommandContext ctx, UUID senderUuid, String[] arg hyperFactions.getFactionManager().updateFaction(faction.withLog(FactionLog.create( FactionLog.LogType.ADMIN_POWER, "Admin added " + String.format("%.1f", amount) + " power to all " + members.size() + " members", - senderUuid))); + senderUuid, + MessageKeys.LogsGui.MSG_ADMIN_POWER_ADD_ALL, String.format("%.1f", amount), String.valueOf(members.size())))); ctx.sendMessage(prefix().insert(msg("Added ", COLOR_GREEN)) .insert(msg(String.format("%.1f", amount), COLOR_WHITE)) .insert(msg(" power to " + members.size() + " members of ", COLOR_GREEN)) @@ -434,7 +453,8 @@ public void handlePowerFaction(CommandContext ctx, UUID senderUuid, String[] arg hyperFactions.getFactionManager().updateFaction(faction.withLog(FactionLog.create( FactionLog.LogType.ADMIN_POWER, "Admin removed " + String.format("%.1f", amount) + " power from all " + members.size() + " members", - senderUuid))); + senderUuid, + MessageKeys.LogsGui.MSG_ADMIN_POWER_REMOVE_ALL, String.format("%.1f", amount), String.valueOf(members.size())))); ctx.sendMessage(prefix().insert(msg("Removed ", COLOR_GREEN)) .insert(msg(String.format("%.1f", amount), COLOR_WHITE)) .insert(msg(" power from " + members.size() + " members of ", COLOR_GREEN)) @@ -447,7 +467,8 @@ public void handlePowerFaction(CommandContext ctx, UUID senderUuid, String[] arg hyperFactions.getFactionManager().updateFaction(faction.withLog(FactionLog.create( FactionLog.LogType.ADMIN_POWER, "Admin reset power for all " + members.size() + " members", - senderUuid))); + senderUuid, + MessageKeys.LogsGui.MSG_ADMIN_POWER_RESET_ALL, String.valueOf(members.size())))); ctx.sendMessage(prefix().insert(msg("Reset power for ", COLOR_GREEN)) .insert(msg(String.valueOf(members.size()), COLOR_WHITE)) .insert(msg(" members of ", COLOR_GREEN)) diff --git a/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java b/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java index 20ded497..1273fccf 100644 --- a/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/CloseSubCommand.java @@ -62,7 +62,8 @@ protected void execute(@NotNull CommandContext ctx, Faction updated = faction.withOpen(false) .withLog(FactionLog.create(FactionLog.LogType.SETTINGS_CHANGE, - "Faction set to invite-only", player.getUuid())); + "Faction set to invite-only", player.getUuid(), + MessageKeys.LogsGui.MSG_SET_CLOSED)); hyperFactions.getFactionManager().updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java b/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java index 6d54beec..3baedd9f 100644 --- a/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/ColorSubCommand.java @@ -97,7 +97,8 @@ protected void execute(@NotNull CommandContext ctx, Faction updated = faction.withColor(hexColor) .withLog(FactionLog.create(FactionLog.LogType.SETTINGS_CHANGE, - "Color changed to '" + hexColor + "'", player.getUuid())); + "Color changed to '" + hexColor + "'", player.getUuid(), + MessageKeys.LogsGui.MSG_COLOR_CHANGED, hexColor)); hyperFactions.getFactionManager().updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java b/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java index bd9476a2..605e25e3 100644 --- a/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/DescSubCommand.java @@ -73,7 +73,8 @@ protected void execute(@NotNull CommandContext ctx, Faction updated = faction.withDescription(description) .withLog(FactionLog.create(FactionLog.LogType.SETTINGS_CHANGE, - description != null ? "Description set" : "Description cleared", player.getUuid())); + description != null ? "Description set" : "Description cleared", player.getUuid(), + description != null ? MessageKeys.LogsGui.MSG_DESC_SET : MessageKeys.LogsGui.MSG_DESC_CLEARED)); hyperFactions.getFactionManager().updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java b/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java index 01a26041..60702100 100644 --- a/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/OpenSubCommand.java @@ -62,7 +62,8 @@ protected void execute(@NotNull CommandContext ctx, Faction updated = faction.withOpen(true) .withLog(FactionLog.create(FactionLog.LogType.SETTINGS_CHANGE, - "Faction set to open", player.getUuid())); + "Faction set to open", player.getUuid(), + MessageKeys.LogsGui.MSG_SET_OPEN)); hyperFactions.getFactionManager().updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java b/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java index 1a026b04..9c90fde6 100644 --- a/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java +++ b/src/main/java/com/hyperfactions/command/faction/RenameSubCommand.java @@ -93,7 +93,8 @@ protected void execute(@NotNull CommandContext ctx, String oldName = faction.name(); Faction updated = faction.withName(newName) .withLog(FactionLog.create(FactionLog.LogType.SETTINGS_CHANGE, - "Renamed from '" + oldName + "' to '" + newName + "'", player.getUuid())); + "Renamed from '" + oldName + "' to '" + newName + "'", player.getUuid(), + MessageKeys.LogsGui.MSG_RENAMED, oldName, newName)); hyperFactions.getFactionManager().updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/data/Faction.java b/src/main/java/com/hyperfactions/data/Faction.java index c5ca822f..29b8a181 100644 --- a/src/main/java/com/hyperfactions/data/Faction.java +++ b/src/main/java/com/hyperfactions/data/Faction.java @@ -1,6 +1,7 @@ package com.hyperfactions.data; import com.hyperfactions.util.LegacyColorParser; +import com.hyperfactions.util.MessageKeys; import java.util.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -74,7 +75,8 @@ public static Faction create(@NotNull String name, @NotNull UUID leaderUuid, @No members.put(leaderUuid, leader); List logs = new ArrayList<>(); - logs.add(FactionLog.create(FactionLog.LogType.MEMBER_JOIN, leaderName + " created the faction", leaderUuid)); + logs.add(FactionLog.create(FactionLog.LogType.MEMBER_JOIN, leaderName + " created the faction", leaderUuid, + MessageKeys.LogsGui.MSG_FACTION_CREATED, leaderName)); return new Faction( UUID.randomUUID(), diff --git a/src/main/java/com/hyperfactions/data/FactionLog.java b/src/main/java/com/hyperfactions/data/FactionLog.java index 90ffc32c..dcaf774d 100644 --- a/src/main/java/com/hyperfactions/data/FactionLog.java +++ b/src/main/java/com/hyperfactions/data/FactionLog.java @@ -1,5 +1,6 @@ package com.hyperfactions.data; +import java.util.List; import java.util.UUID; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -7,17 +8,32 @@ /** * Represents a log entry for faction activity. * - * @param type the type of log entry - * @param message the log message - * @param timestamp when this occurred (epoch millis) - * @param actorUuid UUID of the player who performed the action (null for system) + *

Supports i18n via optional {@code messageKey} and {@code messageArgs} fields. + * When present, display code resolves the key per-locale using HFMessages. + * The {@code message} field always contains the English fallback text. + * + * @param type the type of log entry + * @param message the log message (English fallback, always populated) + * @param timestamp when this occurred (epoch millis) + * @param actorUuid UUID of the player who performed the action (null for system) + * @param messageKey i18n message key for localized display (null for legacy logs) + * @param messageArgs arguments for the message key placeholders (null if no args) */ public record FactionLog( @NotNull LogType type, @NotNull String message, long timestamp, - @Nullable UUID actorUuid + @Nullable UUID actorUuid, + @Nullable String messageKey, + @Nullable List messageArgs ) { + + /** Backward-compatible constructor for legacy logs (no i18n key). */ + public FactionLog(@NotNull LogType type, @NotNull String message, + long timestamp, @Nullable UUID actorUuid) { + this(type, message, timestamp, actorUuid, null, null); + } + /** * Types of faction log entries. */ @@ -56,23 +72,54 @@ public String getDisplayName() { * Creates a new log entry at the current time. * * @param type the log type - * @param message the message + * @param message the English fallback message * @param actorUuid the actor's UUID * @return a new FactionLog */ public static FactionLog create(@NotNull LogType type, @NotNull String message, @Nullable UUID actorUuid) { - return new FactionLog(type, message, System.currentTimeMillis(), actorUuid); + return new FactionLog(type, message, System.currentTimeMillis(), actorUuid, null, null); + } + + /** + * Creates a new log entry with i18n support. + * + * @param type the log type + * @param message the English fallback message + * @param actorUuid the actor's UUID + * @param key the i18n message key + * @param args arguments for the message key placeholders + * @return a new FactionLog with i18n data + */ + public static FactionLog create(@NotNull LogType type, @NotNull String message, + @Nullable UUID actorUuid, @NotNull String key, String... args) { + return new FactionLog(type, message, System.currentTimeMillis(), actorUuid, + key, args.length > 0 ? List.of(args) : null); } /** * Creates a system log entry (no actor). * * @param type the log type - * @param message the message + * @param message the English fallback message * @return a new FactionLog with null actor */ public static FactionLog system(@NotNull LogType type, @NotNull String message) { - return new FactionLog(type, message, System.currentTimeMillis(), null); + return new FactionLog(type, message, System.currentTimeMillis(), null, null, null); + } + + /** + * Creates a system log entry with i18n support (no actor). + * + * @param type the log type + * @param message the English fallback message + * @param key the i18n message key + * @param args arguments for the message key placeholders + * @return a new FactionLog with i18n data and null actor + */ + public static FactionLog system(@NotNull LogType type, @NotNull String message, + @NotNull String key, String... args) { + return new FactionLog(type, message, System.currentTimeMillis(), null, + key, args.length > 0 ? List.of(args) : null); } /** diff --git a/src/main/java/com/hyperfactions/data/ZoneFlags.java b/src/main/java/com/hyperfactions/data/ZoneFlags.java index 74be315e..569a2abc 100644 --- a/src/main/java/com/hyperfactions/data/ZoneFlags.java +++ b/src/main/java/com/hyperfactions/data/ZoneFlags.java @@ -759,6 +759,18 @@ public static String getDisplayName(String flagName) { }; } + /** + * Gets the i18n lang key for a flag's display name. + * Maps flag names like "pvp_enabled" to keys like "hyperfactions_admin.gui.zflag_pvp_enabled". + * + * @param flagName the flag name + * @return the lang key for the display name + */ + @NotNull + public static String getDisplayNameKey(String flagName) { + return "hyperfactions_admin.gui.zflag_" + flagName; + } + /** * Gets a short description for a flag. * diff --git a/src/main/java/com/hyperfactions/economy/UpkeepProcessor.java b/src/main/java/com/hyperfactions/economy/UpkeepProcessor.java index e0b6b9e7..3332ef09 100644 --- a/src/main/java/com/hyperfactions/economy/UpkeepProcessor.java +++ b/src/main/java/com/hyperfactions/economy/UpkeepProcessor.java @@ -12,6 +12,7 @@ import com.hyperfactions.integration.economy.VaultEconomyProvider; import com.hyperfactions.util.ErrorHandler; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; @@ -150,7 +151,8 @@ public void processUpkeep() { "#55FF55"); logToFaction(faction.id(), FactionLog.LogType.ECONOMY, String.format("Upkeep paid: %s (%d billable chunks)", - economyManager.formatCurrency(cost), billableChunks)); + economyManager.formatCurrency(cost), billableChunks), + MessageKeys.LogsGui.MSG_UPKEEP_PAID, economyManager.formatCurrency(cost), String.valueOf(billableChunks)); paid++; Logger.debugEconomy("Upkeep paid for %s: %s (%d billable chunks)", faction.name(), economyManager.formatCurrency(cost), billableChunks); @@ -204,7 +206,8 @@ private FactionEconomy handlePaymentFailure(@NotNull Faction faction, @NotNull F reason + " Grace period: " + config.getUpkeepGracePeriodHours() + "h", "#FFAA00"); logToFaction(faction.id(), FactionLog.LogType.ECONOMY, - "Upkeep failed: grace period started (" + config.getUpkeepGracePeriodHours() + "h)"); + "Upkeep failed: grace period started (" + config.getUpkeepGracePeriodHours() + "h)", + MessageKeys.LogsGui.MSG_UPKEEP_GRACE_STARTED, String.valueOf(config.getUpkeepGracePeriodHours())); Logger.info("[Upkeep] Grace started for %s: %s (missed: %d)", faction.name(), reason, missed); return updated; @@ -225,7 +228,8 @@ private FactionEconomy handlePaymentFailure(@NotNull Faction faction, @NotNull F "Upkeep still unpaid! Grace expires in " + remaining, "#FFAA00"); logToFaction(faction.id(), FactionLog.LogType.ECONOMY, - "Upkeep missed (payment " + missed + "), grace expires in " + remaining); + "Upkeep missed (payment " + missed + "), grace expires in " + remaining, + MessageKeys.LogsGui.MSG_UPKEEP_MISSED, String.valueOf(missed), remaining); Logger.debugEconomy("Grace continues for %s: %s remaining (missed: %d)", faction.name(), remaining, missed); @@ -249,7 +253,8 @@ private FactionEconomy handlePaymentFailure(@NotNull Faction faction, @NotNull F Faction current = factionManager.getFaction(faction.id()); if (current != null) { Faction logged = current.withLog(FactionLog.create(FactionLog.LogType.UNCLAIM, - String.format("Lost %d claim(s) to upkeep (missed %d payments)", removed, missed), null)); + String.format("Lost %d claim(s) to upkeep (missed %d payments)", removed, missed), null, + MessageKeys.LogsGui.MSG_CLAIMS_LOST_UPKEEP, String.valueOf(removed), String.valueOf(missed))); factionManager.updateFaction(logged); } @@ -390,6 +395,15 @@ private void logToFaction(@NotNull UUID factionId, @NotNull FactionLog.LogType t } } + private void logToFaction(@NotNull UUID factionId, @NotNull FactionLog.LogType type, + @NotNull String message, @NotNull String key, String... args) { + Faction faction = factionManager.getFaction(factionId); + if (faction != null) { + Faction logged = faction.withLog(FactionLog.system(type, message, key, args)); + factionManager.updateFaction(logged); + } + } + private void notifyFaction(@NotNull UUID factionId, @NotNull String message, @NotNull String hexColor) { if (notificationCallback != null) { try { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java index bac0528e..525a25a3 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActionsPage.java @@ -86,6 +86,8 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { // Reset button text depends on confirmation state if (confirmResetKD) { cmd.set("#ResetAllKDBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_RESET)); + } else { + cmd.set("#ResetAllKDBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_RESET_KD)); } // Bind the reset button @@ -107,6 +109,8 @@ private void buildContent(UICommandBuilder cmd, UIEventBuilder events) { if (upkeepEnabled) { if (confirmUpkeep) { cmd.set("#TriggerUpkeepBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.ACT_CONFIRM_TRIGGER)); + } else { + cmd.set("#TriggerUpkeepBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ACT_TRIGGER_UPKEEP)); } events.addEventBinding(CustomUIEventBindingType.Activating, "#TriggerUpkeepBtn", EventData.of("Button", "TriggerUpkeep"), false); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index 62790952..2ae1ca72 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -207,8 +207,8 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { cmd.set(sel + " #FactionName.Text", factionDisplay); cmd.set(sel + " #FactionName.Style.TextColor", entry.factionColor); - // Message - cmd.set(sel + " #LogMessage.Text", entry.log.message()); + // Message (localized if key available, else English fallback) + cmd.set(sel + " #LogMessage.Text", HFMessages.resolveLogMessage(playerRef, entry.log())); index++; } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java index 8c39071e..1a0d8c0a 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java @@ -326,7 +326,8 @@ public void handleDataEvent(Ref ref, Store store, } Faction updated = faction.withLog(FactionLog.create(FactionLog.LogType.ADMIN_POWER, "Admin adjusted all " + faction.getMemberCount() + " members' power by " + String.format("%.1f", delta), - playerRef.getUuid())); + playerRef.getUuid(), + MessageKeys.LogsGui.MSG_ADMIN_POWER_ADJUSTED_ALL, String.valueOf(faction.getMemberCount()), String.format("%.1f", delta))); factionManager.updateFaction(updated); // Rebuild page to show updated stats guiManager.openAdminFactionInfo(player, ref, store, playerRef, factionId); @@ -342,7 +343,8 @@ public void handleDataEvent(Ref ref, Store store, } Faction updated = faction.withLog(FactionLog.create(FactionLog.LogType.ADMIN_POWER, "Admin reset power for all " + faction.getMemberCount() + " members", - playerRef.getUuid())); + playerRef.getUuid(), + MessageKeys.LogsGui.MSG_ADMIN_POWER_RESET_ALL, String.valueOf(faction.getMemberCount()))); factionManager.updateFaction(updated); guiManager.openAdminFactionInfo(player, ref, store, playerRef, factionId); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java index ba8add17..fce9ec1e 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java @@ -99,6 +99,9 @@ private void buildRelationEntry(UICommandBuilder cmd, UIEventBuilder events, Str cmd.set(idx + " #FactionName.Text", entry.factionName); cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, entry.leaderName)); cmd.set(idx + " #DateEstablished.Text", formatDate(entry.sinceMillis)); + cmd.set(idx + " #SetAllyBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_ALLY)); + cmd.set(idx + " #SetNeutralBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_NEUTRAL)); + cmd.set(idx + " #SetEnemyBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_ENEMY)); if ("ally".equals(type)) { events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetNeutralBtn", EventData.of("Button", "AdminSetNeutral").append("TargetFactionId", entry.factionId.toString()), false); events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetEnemyBtn", EventData.of("Button", "AdminSetEnemy").append("TargetFactionId", entry.factionId.toString()), false); @@ -130,6 +133,9 @@ private void buildSetRelationSection(UICommandBuilder cmd, UIEventBuilder events cmd.set(idx + " #FactionName.Text", other.name()); cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, leaderName)); cmd.set(idx + " #DateEstablished.Text", ""); + cmd.set(idx + " #SetAllyBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_ALLY)); + cmd.set(idx + " #SetNeutralBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_NEUTRAL)); + cmd.set(idx + " #SetEnemyBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_REL_BTN_ENEMY)); events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetAllyBtn", EventData.of("Button", "AdminSetAlly").append("TargetFactionId", other.id().toString()), false); events.addEventBinding(CustomUIEventBindingType.Activating, idx + " #SetEnemyBtn", EventData.of("Button", "AdminSetEnemy").append("TargetFactionId", other.id().toString()), false); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java index 05815fd6..c2b2f8b2 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionsPage.java @@ -198,6 +198,11 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int cmd.set(idx + " #ClaimsDisplay.Text", String.valueOf(faction.claims().size())); cmd.set(idx + " #MemberCount.Text", String.valueOf(faction.members().size())); + // Localize stat labels + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_POWER)); + cmd.set(idx + " #ClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_CLAIMS)); + cmd.set(idx + " #MembersLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_MEMBERS)); + // Expansion state cmd.set(idx + " #ExpandIcon.Visible", !isExpanded); cmd.set(idx + " #CollapseIcon.Visible", isExpanded); @@ -214,6 +219,18 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int // Extended info (only set values if expanded) if (isExpanded) { + // Localize expanded labels + cmd.set(idx + " #CreatedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_CREATED)); + cmd.set(idx + " #HomeLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_HOME)); + + // Localize button texts + cmd.set(idx + " #TpHomeBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_TP_HOME)); + cmd.set(idx + " #ViewInfoBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_VIEW_INFO)); + cmd.set(idx + " #MembersBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_MEMBERS_BTN)); + cmd.set(idx + " #SettingsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_SETTINGS)); + cmd.set(idx + " #UnclaimAllBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_UNCLAIM_ALL)); + cmd.set(idx + " #DisbandBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_FAC_ENTRY_DISBAND)); + // Created date String createdDate = DATE_FORMAT.format(Instant.ofEpochMilli(faction.createdAt())); cmd.set(idx + " #CreatedDate.Text", createdDate); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index bdd562ef..9ccb1518 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -333,7 +333,9 @@ public void handleDataEvent(Ref ref, Store store, double newPower = powerManager.adjustPlayerPower(targetPlayerUuid, delta); logAdminPowerChange(adminUuid, "Admin adjusted " + targetPlayerName + "'s power by " + String.format("%.1f", delta) - + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")"); + + " (" + String.format("%.1f", oldPower) + " -> " + String.format("%.1f", newPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_ADJUSTED, targetPlayerName, + String.format("%.1f", delta), String.format("%.1f", oldPower), String.format("%.1f", newPower)); reopenPage(player, ref, store, playerRef); } @@ -347,7 +349,9 @@ public void handleDataEvent(Ref ref, Store store, double newPower = powerManager.setPlayerPower(targetPlayerUuid, amount); logAdminPowerChange(adminUuid, "Admin set " + targetPlayerName + "'s power to " + String.format("%.1f", newPower) - + " (was " + String.format("%.1f", oldPower) + ")"); + + " (was " + String.format("%.1f", oldPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_SET, targetPlayerName, + String.format("%.1f", newPower), String.format("%.1f", oldPower)); reopenPage(player, ref, store, playerRef); } @@ -356,7 +360,9 @@ public void handleDataEvent(Ref ref, Store store, double newPower = powerManager.resetPlayerPower(targetPlayerUuid); logAdminPowerChange(adminUuid, "Admin reset " + targetPlayerName + "'s power to " + String.format("%.1f", newPower) - + " (was " + String.format("%.1f", oldPower) + ")"); + + " (was " + String.format("%.1f", oldPower) + ")", + MessageKeys.LogsGui.MSG_ADMIN_POWER_RESET, targetPlayerName, + String.format("%.1f", newPower), String.format("%.1f", oldPower)); reopenPage(player, ref, store, playerRef); } @@ -371,7 +377,9 @@ public void handleDataEvent(Ref ref, Store store, powerManager.setPlayerMaxPower(targetPlayerUuid, amount); logAdminPowerChange(adminUuid, "Admin set " + targetPlayerName + "'s max power to " + String.format("%.1f", amount) - + " (was " + String.format("%.1f", oldMax) + ")"); + + " (was " + String.format("%.1f", oldMax) + ")", + MessageKeys.LogsGui.MSG_ADMIN_MAXPOWER_SET, targetPlayerName, + String.format("%.1f", amount), String.format("%.1f", oldMax)); reopenPage(player, ref, store, playerRef); } @@ -380,7 +388,10 @@ public void handleDataEvent(Ref ref, Store store, double oldMax = old.getEffectiveMaxPower(); powerManager.resetPlayerMaxPower(targetPlayerUuid); logAdminPowerChange(adminUuid, - "Admin reset " + targetPlayerName + "'s max power to global default"); + "Admin reset " + targetPlayerName + "'s max power to global default (" + + String.format("%.1f", ConfigManager.get().getMaxPlayerPower()) + ")", + MessageKeys.LogsGui.MSG_ADMIN_MAXPOWER_RESET, targetPlayerName, + String.format("%.1f", ConfigManager.get().getMaxPlayerPower())); reopenPage(player, ref, store, playerRef); } @@ -390,7 +401,9 @@ public void handleDataEvent(Ref ref, Store store, boolean newState = !current.powerLossDisabled(); powerManager.setPlayerPowerLossDisabled(targetPlayerUuid, newState); logAdminPowerChange(adminUuid, - "Admin " + (newState ? "disabled" : "enabled") + " power loss for " + targetPlayerName); + "Admin " + (newState ? "disabled" : "enabled") + " power loss for " + targetPlayerName, + newState ? MessageKeys.LogsGui.MSG_ADMIN_POWERLOSS_DISABLED : MessageKeys.LogsGui.MSG_ADMIN_POWERLOSS_ENABLED, + targetPlayerName); reopenPage(player, ref, store, playerRef); } @@ -400,7 +413,9 @@ public void handleDataEvent(Ref ref, Store store, boolean newState = !current.claimDecayExempt(); powerManager.setPlayerClaimDecayExempt(targetPlayerUuid, newState); logAdminPowerChange(adminUuid, - "Admin " + (newState ? "enabled" : "disabled") + " claim decay exemption for " + targetPlayerName); + "Admin " + (newState ? "enabled" : "disabled") + " claim decay exemption for " + targetPlayerName, + newState ? MessageKeys.LogsGui.MSG_ADMIN_DECAY_ENABLED : MessageKeys.LogsGui.MSG_ADMIN_DECAY_DISABLED, + targetPlayerName); reopenPage(player, ref, store, playerRef); } @@ -412,7 +427,8 @@ public void handleDataEvent(Ref ref, Store store, Faction faction = factionManager.getPlayerFaction(targetPlayerUuid); if (faction != null) { Faction updated = faction.withLog(FactionLog.create(FactionLog.LogType.ADMIN_POWER, - "Admin reset K/D for " + targetPlayerName, adminUuid)); + "Admin reset K/D for " + targetPlayerName, adminUuid, + MessageKeys.LogsGui.MSG_ADMIN_KD_RESET, targetPlayerName)); factionManager.updateFaction(updated); } player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.PLR_KD_RESET, targetPlayerName)); @@ -449,7 +465,8 @@ public void handleDataEvent(Ref ref, Store store, .withLog(FactionLog.create(FactionLog.LogType.LEADER_TRANSFER, "[Admin] Leadership transferred from " + targetPlayerName + " to " + successor.username() + " (admin kick)", - adminUuid)); + adminUuid, + MessageKeys.LogsGui.MSG_ADMIN_LEADER_KICK, targetPlayerName, successor.username())); factionManager.updateFaction(updated); // Now kick the demoted member @@ -505,6 +522,14 @@ private void logAdminPowerChange(UUID adminUuid, String message) { } } + private void logAdminPowerChange(UUID adminUuid, String message, String key, String... args) { + Faction faction = factionManager.getPlayerFaction(targetPlayerUuid); + if (faction != null) { + Faction updated = faction.withLog(FactionLog.create(FactionLog.LogType.ADMIN_POWER, message, adminUuid, key, args)); + factionManager.updateFaction(updated); + } + } + private PlayerData loadPlayerDataSync() { try { return guiManager.getPlugin().get().getPlayerStorage() diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java index 8010e7fb..c6345262 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java @@ -344,13 +344,25 @@ private void buildPlayerEntry(UICommandBuilder cmd, UIEventBuilder events, int i // Extended info if (isExpanded) { + // Localize expanded labels + cmd.set(idx + " #RoleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_ROLE)); + cmd.set(idx + " #JoinedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_JOINED)); + cmd.set(idx + " #LastOnlineLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_LAST_ONLINE)); + cmd.set(idx + " #KdrLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_KDR)); + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_POWER)); + cmd.set(idx + " #UuidLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_UUID)); + + // Localize button texts + cmd.set(idx + " #ViewInfoBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_INFO)); + cmd.set(idx + " #TeleportBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_TELEPORT)); + // Role - cmd.set(idx + " #RoleValue.Text", info.factionRole() != null ? info.factionRole() : "N/A"); + cmd.set(idx + " #RoleValue.Text", info.factionRole() != null ? info.factionRole() : HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_NA)); // First joined String joinedDate = info.firstJoined() > 0 ? DATE_FORMAT.format(Instant.ofEpochMilli(info.firstJoined())) - : "Unknown"; + : HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_UNKNOWN); cmd.set(idx + " #JoinedDate.Text", joinedDate); // Last online @@ -358,7 +370,7 @@ private void buildPlayerEntry(UICommandBuilder cmd, UIEventBuilder events, int i if (info.isOnline()) { lastOnlineText = HFMessages.get(playerRef, MessageKeys.AdminGui.NOW); } else if (info.lastOnline() > 0) { - lastOnlineText = TimeUtil.formatDuration(System.currentTimeMillis() - info.lastOnline()) + " ago"; + lastOnlineText = HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_ENTRY_AGO, TimeUtil.formatDuration(System.currentTimeMillis() - info.lastOnline())); } else { lastOnlineText = HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java index f1b97185..120321e5 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneIntegrationFlagsPage.java @@ -143,9 +143,8 @@ private void buildFlagToggle(UICommandBuilder cmd, UIEventBuilder events, // Check if the integration for this flag is available boolean integrationUnavailable = !isIntegrationAvailable(flagName); - // Flag name (display name from ZoneFlags) - String displayName = ZoneFlags.getDisplayName(flagName); - cmd.set(idx + "Name.Text", displayName); + // Flag name (localized display name) + cmd.set(idx + "Name.Text", HFMessages.get(playerRef, ZoneFlags.getDisplayNameKey(flagName))); // Set checkbox value via child selector // When integration is unavailable, show as unchecked @@ -185,9 +184,14 @@ private void buildMapVisibilityControl(UICommandBuilder cmd, UIEventBuilder even cmd.set("#MapVisibilityRow.Visible", showOnMapEnabled); if (showOnMapEnabled) { - // Set button text to current selection - String displayText = ZoneFlags.getSettingValueDisplay(ZoneFlags.MAP_VISIBILITY, visibility); - cmd.set("#MapVisibilityBtn.Text", displayText); + // Set button text to current selection (localized) + String visKey = switch (visibility) { + case ZoneFlags.MAP_VISIBILITY_FACTION -> MessageKeys.AdminGui.GUI_ZINT_MAP_VIS_FACTION; + case ZoneFlags.MAP_VISIBILITY_ALLY -> MessageKeys.AdminGui.GUI_ZINT_MAP_VIS_ALLY; + case ZoneFlags.MAP_VISIBILITY_ALL -> MessageKeys.AdminGui.GUI_ZINT_MAP_VIS_ALL; + default -> MessageKeys.AdminGui.GUI_ZINT_MAP_VIS_FACTION; + }; + cmd.set("#MapVisibilityBtn.Text", HFMessages.get(playerRef, visKey)); // Default indicator if (isDefault) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java index b5aa0a57..6f3caf46 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZonePage.java @@ -240,6 +240,10 @@ private void buildZoneEntry(UICommandBuilder cmd, UIEventBuilder events, int ind // Inline stats (visible in collapsed row) cmd.set(idx + " #InlineChunks.Text", String.valueOf(zone.getChunkCount())); + // Localize header labels + cmd.set(idx + " #WorldLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_WORLD)); + cmd.set(idx + " #InlineChunksLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_CHUNKS)); + // Expansion state cmd.set(idx + " #ExpandIcon.Visible", !isExpanded); cmd.set(idx + " #CollapseIcon.Visible", isExpanded); @@ -256,6 +260,17 @@ private void buildZoneEntry(UICommandBuilder cmd, UIEventBuilder events, int ind // Extended info (only bind events if expanded) if (isExpanded) { + // Localize expanded labels + cmd.set(idx + " #ChunksLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_CHUNKS)); + cmd.set(idx + " #BoundsLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_BOUNDS)); + cmd.set(idx + " #CreatedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_CREATED)); + + // Localize button texts + cmd.set(idx + " #EditMapBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_EDIT_MAP)); + cmd.set(idx + " #SettingsBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_FLAGS)); + cmd.set(idx + " #SettingsBtn2.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_SETTINGS)); + cmd.set(idx + " #DeleteBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZONE_ENTRY_DELETE)); + // Chunk count cmd.set(idx + " #ChunkCount.Text", String.valueOf(zone.getChunkCount())); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java index d86e601c..ac7d7d63 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneSettingsPage.java @@ -131,7 +131,7 @@ public void build(Ref ref, UICommandBuilder cmd, // Zone info header cmd.set("#ZoneName.Text", zone.name()); cmd.set("#ZoneType.Text", zone.type().name()); - cmd.set("#ZoneChunks.Text", zone.getChunkCount() + " chunks"); + cmd.set("#ZoneChunks.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ZSET_CHUNKS, zone.getChunkCount())); // Type indicator color String typeColor = zone.isSafeZone() ? "#55FF55" : "#FF5555"; @@ -228,9 +228,8 @@ private void buildFlagToggle(UICommandBuilder cmd, UIEventBuilder events, spawnConflict = true; } - // Flag name (display name from ZoneFlags) - String displayName = ZoneFlags.getDisplayName(flagName); - cmd.set(idx + "Name.Text", displayName); + // Flag name (localized display name via i18n) + cmd.set(idx + "Name.Text", HFMessages.get(playerRef, ZoneFlags.getDisplayNameKey(flagName))); // Set checkbox value via child selector // When parent is off, show children as unchecked for clearer visual state diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java index 978f6e48..eb5c5e3f 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionDashboardPage.java @@ -424,7 +424,7 @@ private void buildActivityFeed(UICommandBuilder cmd, UIEventBuilder events, Fact cmd.append("#ActivityFeed", UIPaths.ACTIVITY_ENTRY); cmd.set(idx + " #ActivityType.Text", HFMessages.get(playerRef, MessageKeys.LogsGui.typeKey(log.type().name())).toUpperCase()); - cmd.set(idx + " #ActivityMessage.Text", log.message()); + cmd.set(idx + " #ActivityMessage.Text", HFMessages.resolveLogMessage(playerRef, log)); cmd.set(idx + " #ActivityTime.Text", formatTimeAgo(log.timestamp())); } } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java index d0160702..13ebd458 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/LogsViewerPage.java @@ -169,8 +169,8 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { cmd.set(sel + " #LogType.Text", getLocalizedTypeName(log.type())); cmd.set(sel + " #LogType.Style.TextColor", GuiColors.forLogType(log.type())); - // Message - cmd.set(sel + " #LogMessage.Text", log.message()); + // Message (localized if key available, else English fallback) + cmd.set(sel + " #LogMessage.Text", HFMessages.resolveLogMessage(playerRef, log)); } } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java index 7e407df5..edb65563 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java @@ -456,7 +456,8 @@ private void handlePayNow(Player player, Ref ref, Faction logged = factionNow.withLog(FactionLog.create(FactionLog.LogType.ECONOMY, String.format("Upkeep paid manually: %s (%d billable chunks, grace cleared)", economyManager.formatCurrency(cost), billableChunks), - playerRef.getUuid())); + playerRef.getUuid(), + MessageKeys.LogsGui.MSG_UPKEEP_MANUAL, economyManager.formatCurrency(cost), String.valueOf(billableChunks))); factionManager.updateFaction(logged); } } diff --git a/src/main/java/com/hyperfactions/importer/ElbaphFactionsImporter.java b/src/main/java/com/hyperfactions/importer/ElbaphFactionsImporter.java index 076b1625..13c1377a 100644 --- a/src/main/java/com/hyperfactions/importer/ElbaphFactionsImporter.java +++ b/src/main/java/com/hyperfactions/importer/ElbaphFactionsImporter.java @@ -13,6 +13,7 @@ import com.hyperfactions.manager.PowerManager; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.io.File; import java.io.FileReader; import java.lang.reflect.Type; @@ -736,7 +737,8 @@ private int handleExistingMemberships(Faction importedFaction, ImportResult.Buil .withLog(FactionLog.create( FactionLog.LogType.MEMBER_LEAVE, playerName + " left (imported to another faction)", - null + null, + MessageKeys.LogsGui.MSG_LEFT_IMPORT, playerName )); factionManager.removePlayerFromIndex(memberUuid); @@ -754,7 +756,8 @@ private int handleExistingMemberships(Faction importedFaction, ImportResult.Buil .withLog(FactionLog.create( FactionLog.LogType.LEADER_TRANSFER, promoted.username() + " became leader (previous leader imported to another faction)", - null + null, + MessageKeys.LogsGui.MSG_LEADER_IMPORT_TRANSFER, promoted.username() )); progress(" - %s promoted to leader of '%s'", promoted.username(), existingFaction.name()); @@ -871,7 +874,8 @@ private Faction convertFaction(ElbaphFaction elbaphFaction, Map logs = new ArrayList<>(); logs.add(FactionLog.system(FactionLog.LogType.MEMBER_JOIN, - "Faction imported from ElbaphFactions")); + "Faction imported from ElbaphFactions", + MessageKeys.LogsGui.MSG_IMPORTED_FROM, "ElbaphFactions")); // Warn about faction points if (elbaphFaction.factionPoints() > 0) { diff --git a/src/main/java/com/hyperfactions/importer/HyFactionsImporter.java b/src/main/java/com/hyperfactions/importer/HyFactionsImporter.java index aa02cca4..d71b869c 100644 --- a/src/main/java/com/hyperfactions/importer/HyFactionsImporter.java +++ b/src/main/java/com/hyperfactions/importer/HyFactionsImporter.java @@ -12,6 +12,7 @@ import com.hyperfactions.manager.PowerManager; import com.hyperfactions.manager.ZoneManager; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.io.File; import java.io.FileReader; import java.io.IOException; @@ -901,7 +902,8 @@ private int handleExistingMemberships(Faction importedFaction, ImportResult.Buil .withLog(FactionLog.create( FactionLog.LogType.MEMBER_LEAVE, playerName + " left (imported to another faction)", - null // System action + null, // System action + MessageKeys.LogsGui.MSG_LEFT_IMPORT, playerName )); // CRITICAL: Remove player from the player-to-faction index @@ -924,7 +926,8 @@ private int handleExistingMemberships(Faction importedFaction, ImportResult.Buil .withLog(FactionLog.create( FactionLog.LogType.LEADER_TRANSFER, promoted.username() + " became leader (previous leader imported to another faction)", - null + null, + MessageKeys.LogsGui.MSG_LEADER_IMPORT_TRANSFER, promoted.username() )); progress(" - %s promoted to leader of '%s'", promoted.username(), existingFaction.name()); diff --git a/src/main/java/com/hyperfactions/manager/ClaimManager.java b/src/main/java/com/hyperfactions/manager/ClaimManager.java index 25b9be13..c9ebac75 100644 --- a/src/main/java/com/hyperfactions/manager/ClaimManager.java +++ b/src/main/java/com/hyperfactions/manager/ClaimManager.java @@ -11,6 +11,7 @@ import com.hyperfactions.integration.protection.OrbisGuardIntegration; import com.hyperfactions.util.ChunkUtil; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; @@ -415,7 +416,8 @@ public ClaimResult claim(@NotNull UUID playerUuid, @NotNull String world, int ch FactionClaim claim = FactionClaim.create(world, chunkX, chunkZ, playerUuid); Faction updated = faction.withClaim(claim) .withLog(FactionLog.create(FactionLog.LogType.CLAIM, - String.format("Claimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid)); + String.format("Claimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid, + MessageKeys.LogsGui.MSG_CLAIMED, String.valueOf(chunkX), String.valueOf(chunkZ), world)); // Update indices and faction claimIndex.put(key, faction.id()); @@ -493,7 +495,8 @@ public ClaimResult unclaim(@NotNull UUID playerUuid, @NotNull String world, int // Remove claim Faction updated = faction.withoutClaimAt(world, chunkX, chunkZ) .withLog(FactionLog.create(FactionLog.LogType.UNCLAIM, - String.format("Unclaimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid)); + String.format("Unclaimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid, + MessageKeys.LogsGui.MSG_UNCLAIMED, String.valueOf(chunkX), String.valueOf(chunkZ), world)); claimIndex.remove(key); Set factionClaims = factionClaimsIndex.get(faction.id()); @@ -576,13 +579,15 @@ public ClaimResult overclaim(@NotNull UUID playerUuid, @NotNull String world, in // Remove from defender Faction updatedDefender = defenderFaction.withoutClaimAt(world, chunkX, chunkZ) .withLog(FactionLog.create(FactionLog.LogType.OVERCLAIM, - String.format("Lost chunk at %d, %d to %s", chunkX, chunkZ, attackerFaction.name()), null)); + String.format("Lost chunk at %d, %d to %s", chunkX, chunkZ, attackerFaction.name()), null, + MessageKeys.LogsGui.MSG_OVERCLAIM_LOST, String.valueOf(chunkX), String.valueOf(chunkZ), attackerFaction.name())); // Add to attacker FactionClaim claim = FactionClaim.create(world, chunkX, chunkZ, playerUuid); Faction updatedAttacker = attackerFaction.withClaim(claim) .withLog(FactionLog.create(FactionLog.LogType.OVERCLAIM, - String.format("Overclaimed chunk at %d, %d from %s", chunkX, chunkZ, defenderFaction.name()), playerUuid)); + String.format("Overclaimed chunk at %d, %d from %s", chunkX, chunkZ, defenderFaction.name()), playerUuid, + MessageKeys.LogsGui.MSG_OVERCLAIM_TAKEN, String.valueOf(chunkX), String.valueOf(chunkZ), defenderFaction.name())); // Update indices - remove from defender Set defenderClaims = factionClaimsIndex.get(defenderId); @@ -640,7 +645,8 @@ public void unclaimAll(@NotNull UUID factionId) { if (faction != null && faction.getClaimCount() > 0) { Faction updated = faction.withoutAllClaims() .withLog(FactionLog.create(FactionLog.LogType.UNCLAIM, - "All territory unclaimed", null)); + "All territory unclaimed", null, + MessageKeys.LogsGui.MSG_ALL_UNCLAIMED)); factionManager.updateFaction(updated); Logger.debugClaim("Unclaim all: faction=%s, claims removed=%d", faction.name(), faction.getClaimCount()); } @@ -678,7 +684,8 @@ public int cleanupDisallowedWorldClaims() { if (faction != null) { Faction updated = faction.withoutClaimAt(key.world(), key.chunkX(), key.chunkZ()) .withLog(FactionLog.create(FactionLog.LogType.UNCLAIM, - "Claim in '" + key.world() + "' removed (world disallows claiming)", null)); + "Claim in '" + key.world() + "' removed (world disallows claiming)", null, + MessageKeys.LogsGui.MSG_CLAIM_REMOVED_WORLD, key.world())); factionManager.updateFaction(updated); } removed++; @@ -761,7 +768,8 @@ private ClaimResult forceClaimChunk(Faction faction, UUID playerUuid, String wor Faction updated = faction.withClaim(claim) .withLog(FactionLog.create(FactionLog.LogType.CLAIM, - String.format("Claimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid)); + String.format("Claimed chunk at %d, %d in %s", chunkX, chunkZ, world), playerUuid, + MessageKeys.LogsGui.MSG_CLAIMED, String.valueOf(chunkX), String.valueOf(chunkZ), world)); // Update both indices claimIndex.put(key, faction.id()); @@ -931,7 +939,8 @@ public void tickClaimDecay() { Faction current = factionManager.getFaction(factionId); if (current != null) { Faction logged = current.withLog(FactionLog.create(FactionLog.LogType.UNCLAIM, - String.format("%d claims removed due to inactivity (%d days)", removed, daysSinceActive), null)); + String.format("%d claims removed due to inactivity (%d days)", removed, daysSinceActive), null, + MessageKeys.LogsGui.MSG_CLAIMS_REMOVED_INACTIVE, String.valueOf(removed), String.valueOf(daysSinceActive))); factionManager.updateFaction(logged); } diff --git a/src/main/java/com/hyperfactions/manager/EconomyManager.java b/src/main/java/com/hyperfactions/manager/EconomyManager.java index a69f66dc..cb45f685 100644 --- a/src/main/java/com/hyperfactions/manager/EconomyManager.java +++ b/src/main/java/com/hyperfactions/manager/EconomyManager.java @@ -9,6 +9,7 @@ import com.hyperfactions.integration.economy.VaultEconomyProvider; import com.hyperfactions.storage.JsonEconomyStorage; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; @@ -340,7 +341,8 @@ public CompletableFuture deposit( String logMessage = String.format("Deposit: %s (+%s)", formatCurrency(newBalance), formatCurrency(amount)); Faction updatedFaction = faction.withLog( - FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, actorId) + FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, actorId, + MessageKeys.LogsGui.MSG_DEPOSIT, formatCurrency(newBalance), formatCurrency(amount)) ); factionManager.updateFaction(updatedFaction); @@ -417,7 +419,8 @@ public CompletableFuture withdraw( String logMessage = String.format("Withdrawal: %s (-%s)", formatCurrency(newBalance), formatCurrency(amount)); Faction updatedFaction = faction.withLog( - FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, actorId) + FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, actorId, + MessageKeys.LogsGui.MSG_WITHDRAWAL, formatCurrency(newBalance), formatCurrency(amount)) ); factionManager.updateFaction(updatedFaction); @@ -625,8 +628,11 @@ public CompletableFuture adminAdjust( String logMessage = String.format("Admin %s: %s (balance: %s)", amount.compareTo(BigDecimal.ZERO) >= 0 ? "added" : "deducted", formatCurrency(amount.abs()), formatCurrency(newBalance)); + String msgKey = amount.compareTo(BigDecimal.ZERO) >= 0 + ? MessageKeys.LogsGui.MSG_ADMIN_ECON_ADDED : MessageKeys.LogsGui.MSG_ADMIN_ECON_DEDUCTED; Faction updatedFaction = faction.withLog( - FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, adminId) + FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, adminId, + msgKey, formatCurrency(amount.abs()), formatCurrency(newBalance)) ); factionManager.updateFaction(updatedFaction); @@ -681,7 +687,8 @@ public CompletableFuture setBalance( String logMessage = String.format("Admin set balance to %s (was %s)", formatCurrency(newBalance), formatCurrency(oldBalance)); Faction updatedFaction = faction.withLog( - FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, adminId) + FactionLog.create(FactionLog.LogType.ECONOMY, logMessage, adminId, + MessageKeys.LogsGui.MSG_ADMIN_ECON_SET, formatCurrency(newBalance), formatCurrency(oldBalance)) ); factionManager.updateFaction(updatedFaction); diff --git a/src/main/java/com/hyperfactions/manager/FactionManager.java b/src/main/java/com/hyperfactions/manager/FactionManager.java index f102c0b9..a25c9402 100644 --- a/src/main/java/com/hyperfactions/manager/FactionManager.java +++ b/src/main/java/com/hyperfactions/manager/FactionManager.java @@ -10,6 +10,7 @@ import com.hyperfactions.storage.FactionStorage; import com.hyperfactions.util.ErrorHandler; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -581,7 +582,8 @@ public FactionResult addMember(@NotNull UUID factionId, @NotNull UUID playerUuid // Add member FactionMember member = FactionMember.create(playerUuid, playerName); Faction updated = faction.withMember(member) - .withLog(FactionLog.create(FactionLog.LogType.MEMBER_JOIN, playerName + " joined the faction", playerUuid)); + .withLog(FactionLog.create(FactionLog.LogType.MEMBER_JOIN, playerName + " joined the faction", playerUuid, + MessageKeys.LogsGui.MSG_MEMBER_JOINED, playerName)); // Update caches factions.put(factionId, updated); @@ -635,7 +637,8 @@ public FactionResult removeMember(@NotNull UUID factionId, @NotNull UUID playerU .withoutMember(playerUuid) .withMember(promoted) .withLog(FactionLog.create(FactionLog.LogType.LEADER_TRANSFER, - target.username() + " left, " + promoted.username() + " is now leader", playerUuid)); + target.username() + " left, " + promoted.username() + " is now leader", playerUuid, + MessageKeys.LogsGui.MSG_LEADER_LEFT_TRANSFER, target.username(), promoted.username())); factions.put(factionId, updated); playerToFaction.remove(playerUuid); @@ -669,9 +672,10 @@ public FactionResult removeMember(@NotNull UUID factionId, @NotNull UUID playerU // Remove member FactionLog.LogType logType = isKick ? FactionLog.LogType.MEMBER_KICK : FactionLog.LogType.MEMBER_LEAVE; String message = isKick ? target.username() + " was kicked" : target.username() + " left the faction"; + String msgKey = isKick ? MessageKeys.LogsGui.MSG_MEMBER_KICKED : MessageKeys.LogsGui.MSG_MEMBER_LEFT; Faction updated = faction.withoutMember(playerUuid) - .withLog(FactionLog.create(logType, message, actorUuid)); + .withLog(FactionLog.create(logType, message, actorUuid, msgKey, target.username())); // Update caches factions.put(factionId, updated); @@ -773,7 +777,8 @@ public FactionResult promoteMember(@NotNull UUID factionId, @NotNull UUID player Faction updated = faction.withMember(promoted) .withLog(FactionLog.create(FactionLog.LogType.MEMBER_PROMOTE, - target.username() + " promoted to " + ConfigManager.get().getRoleDisplayName(newRole), actorUuid)); + target.username() + " promoted to " + ConfigManager.get().getRoleDisplayName(newRole), actorUuid, + MessageKeys.LogsGui.MSG_MEMBER_PROMOTED, target.username(), ConfigManager.get().getRoleDisplayName(newRole))); factions.put(factionId, updated); storage.saveFaction(updated); @@ -823,7 +828,8 @@ public FactionResult demoteMember(@NotNull UUID factionId, @NotNull UUID playerU Faction updated = faction.withMember(demoted) .withLog(FactionLog.create(FactionLog.LogType.MEMBER_DEMOTE, - target.username() + " demoted to " + ConfigManager.get().getRoleDisplayName(FactionRole.MEMBER), actorUuid)); + target.username() + " demoted to " + ConfigManager.get().getRoleDisplayName(FactionRole.MEMBER), actorUuid, + MessageKeys.LogsGui.MSG_MEMBER_DEMOTED, target.username(), ConfigManager.get().getRoleDisplayName(FactionRole.MEMBER))); factions.put(factionId, updated); storage.saveFaction(updated); @@ -871,7 +877,8 @@ public FactionResult transferLeadership(@NotNull UUID factionId, @NotNull UUID n .withMember(oldLeader) .withMember(promoted) .withLog(FactionLog.create(FactionLog.LogType.LEADER_TRANSFER, - "Leadership transferred to " + target.username(), actorUuid)); + "Leadership transferred to " + target.username(), actorUuid, + MessageKeys.LogsGui.MSG_LEADER_TRANSFERRED, target.username())); factions.put(factionId, updated); storage.saveFaction(updated); @@ -923,7 +930,8 @@ public FactionResult adminSetMemberRole(@NotNull UUID factionId, @NotNull UUID p FactionMember updatedMember = target.withRole(newRole); updated = updated.withMember(updatedMember) .withLog(FactionLog.create(FactionLog.LogType.MEMBER_PROMOTE, - "[Admin] " + target.username() + " role set to " + ConfigManager.get().getRoleDisplayName(newRole), null)); + "[Admin] " + target.username() + " role set to " + ConfigManager.get().getRoleDisplayName(newRole), null, + MessageKeys.LogsGui.MSG_ADMIN_ROLE_SET, target.username(), ConfigManager.get().getRoleDisplayName(newRole))); factions.put(factionId, updated); storage.saveFaction(updated); @@ -960,7 +968,8 @@ public FactionResult adminRemoveMember(@NotNull UUID factionId, @NotNull UUID pl // Remove member Faction updated = faction.withoutMember(playerUuid) .withLog(FactionLog.create(FactionLog.LogType.MEMBER_KICK, - "[Admin] " + target.username() + " was kicked", null)); + "[Admin] " + target.username() + " was kicked", null, + MessageKeys.LogsGui.MSG_ADMIN_KICKED, target.username())); factions.put(factionId, updated); playerToFaction.remove(playerUuid); @@ -999,7 +1008,8 @@ public FactionResult setHome(@NotNull UUID factionId, @Nullable Faction.FactionH Faction updated = faction.withHome(home) .withLog(FactionLog.create(FactionLog.LogType.HOME_SET, - home != null ? "Home set" : "Home cleared", actorUuid)); + home != null ? "Home set" : "Home cleared", actorUuid, + home != null ? MessageKeys.LogsGui.MSG_HOME_SET : MessageKeys.LogsGui.MSG_HOME_CLEARED)); factions.put(factionId, updated); storage.saveFaction(updated); @@ -1021,7 +1031,8 @@ public int cleanupDisallowedWorldHomes() { if (home != null && !ConfigManager.get().isWorldAllowed(home.world())) { Faction updated = faction.withHome(null) .withLog(FactionLog.create(FactionLog.LogType.HOME_SET, - "Home in '" + home.world() + "' cleared (world disallows claiming)", null)); + "Home in '" + home.world() + "' cleared (world disallows claiming)", null, + MessageKeys.LogsGui.MSG_HOME_CLEARED_WORLD, home.world())); factions.put(faction.id(), updated); storage.saveFaction(updated); cleared++; diff --git a/src/main/java/com/hyperfactions/manager/RelationManager.java b/src/main/java/com/hyperfactions/manager/RelationManager.java index 9976b833..c0116ad1 100644 --- a/src/main/java/com/hyperfactions/manager/RelationManager.java +++ b/src/main/java/com/hyperfactions/manager/RelationManager.java @@ -5,6 +5,7 @@ import com.hyperfactions.data.*; import com.hyperfactions.integration.PermissionManager; import com.hyperfactions.util.Logger; +import com.hyperfactions.util.MessageKeys; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; @@ -638,7 +639,8 @@ private void setRelation(@NotNull UUID factionId, @NotNull UUID targetId, }; Faction updated = faction.withRelation(relation) - .withLog(FactionLog.create(logType, "Set " + targetName + " as " + type.getDisplayName(), actorUuid)); + .withLog(FactionLog.create(logType, "Set " + targetName + " as " + type.getDisplayName(), actorUuid, + MessageKeys.LogsGui.MSG_RELATION_SET, targetName, type.getDisplayName())); factionManager.updateFaction(updated); diff --git a/src/main/java/com/hyperfactions/storage/json/JsonFactionStorage.java b/src/main/java/com/hyperfactions/storage/json/JsonFactionStorage.java index 23041acb..a4aa66ac 100644 --- a/src/main/java/com/hyperfactions/storage/json/JsonFactionStorage.java +++ b/src/main/java/com/hyperfactions/storage/json/JsonFactionStorage.java @@ -310,6 +310,16 @@ private JsonObject serializeLog(FactionLog log) { if (log.actorUuid() != null) { obj.addProperty("actorUuid", log.actorUuid().toString()); } + if (log.messageKey() != null) { + obj.addProperty("messageKey", log.messageKey()); + } + if (log.messageArgs() != null && !log.messageArgs().isEmpty()) { + JsonArray argsArray = new JsonArray(); + for (String arg : log.messageArgs()) { + argsArray.add(arg); + } + obj.add("messageArgs", argsArray); + } return obj; } @@ -490,11 +500,21 @@ private FactionRelation deserializeRelation(JsonObject obj) { private FactionLog deserializeLog(JsonObject obj) { UUID actorUuid = obj.has("actorUuid") ? UUID.fromString(obj.get("actorUuid").getAsString()) : null; + String messageKey = obj.has("messageKey") ? obj.get("messageKey").getAsString() : null; + List messageArgs = null; + if (obj.has("messageArgs") && obj.get("messageArgs").isJsonArray()) { + messageArgs = new ArrayList<>(); + for (JsonElement el : obj.getAsJsonArray("messageArgs")) { + messageArgs.add(el.getAsString()); + } + } return new FactionLog( FactionLog.LogType.valueOf(obj.get("type").getAsString()), obj.get("message").getAsString(), obj.get("timestamp").getAsLong(), - actorUuid + actorUuid, + messageKey, + messageArgs ); } } diff --git a/src/main/java/com/hyperfactions/util/HFMessages.java b/src/main/java/com/hyperfactions/util/HFMessages.java index 987f43f1..8b76fd34 100644 --- a/src/main/java/com/hyperfactions/util/HFMessages.java +++ b/src/main/java/com/hyperfactions/util/HFMessages.java @@ -1,6 +1,7 @@ package com.hyperfactions.util; import com.hyperfactions.config.ConfigManager; +import com.hyperfactions.data.FactionLog; import com.hypixel.hytale.server.core.modules.i18n.I18nModule; import com.hypixel.hytale.server.core.universe.PlayerRef; import java.util.Map; @@ -158,6 +159,23 @@ public static String getLanguageFor(@Nullable PlayerRef player) { return serverDefault; } + /** + * Resolves a FactionLog's message for display, using the i18n key if available. + * Falls back to the English message for legacy logs without a messageKey. + * + * @param player the player viewing the log (determines locale) + * @param log the faction log entry + * @return the localized message, or the English fallback + */ + @NotNull + public static String resolveLogMessage(@Nullable PlayerRef player, @NotNull FactionLog log) { + if (log.messageKey() != null) { + Object[] args = log.messageArgs() != null ? log.messageArgs().toArray() : new Object[0]; + return get(player, log.messageKey(), args); + } + return log.message(); + } + /** * Formats a message by replacing {0}, {1}, etc. with provided arguments. */ diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 96535d9b..8b42662f 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1375,6 +1375,82 @@ public static String typeKey(String logTypeName) { return "hyperfactions_gui.logs.type_" + logTypeName.toLowerCase(); } + // === Log message templates (i18n for FactionLog.message content) === + + // Player actions + public static final String MSG_FACTION_CREATED = "hyperfactions_gui.logs.msg_faction_created"; + public static final String MSG_MEMBER_JOINED = "hyperfactions_gui.logs.msg_member_joined"; + public static final String MSG_MEMBER_LEFT = "hyperfactions_gui.logs.msg_member_left"; + public static final String MSG_MEMBER_KICKED = "hyperfactions_gui.logs.msg_member_kicked"; + public static final String MSG_MEMBER_PROMOTED = "hyperfactions_gui.logs.msg_member_promoted"; + public static final String MSG_MEMBER_DEMOTED = "hyperfactions_gui.logs.msg_member_demoted"; + public static final String MSG_LEADER_TRANSFERRED = "hyperfactions_gui.logs.msg_leader_transferred"; + public static final String MSG_LEADER_LEFT_TRANSFER = "hyperfactions_gui.logs.msg_leader_left_transfer"; + public static final String MSG_RELATION_SET = "hyperfactions_gui.logs.msg_relation_set"; + + // Territory + public static final String MSG_CLAIMED = "hyperfactions_gui.logs.msg_claimed"; + public static final String MSG_UNCLAIMED = "hyperfactions_gui.logs.msg_unclaimed"; + public static final String MSG_OVERCLAIM_LOST = "hyperfactions_gui.logs.msg_overclaim_lost"; + public static final String MSG_OVERCLAIM_TAKEN = "hyperfactions_gui.logs.msg_overclaim_taken"; + public static final String MSG_ALL_UNCLAIMED = "hyperfactions_gui.logs.msg_all_unclaimed"; + public static final String MSG_CLAIM_REMOVED_WORLD = "hyperfactions_gui.logs.msg_claim_removed_world"; + public static final String MSG_CLAIMS_LOST_UPKEEP = "hyperfactions_gui.logs.msg_claims_lost_upkeep"; + public static final String MSG_CLAIMS_REMOVED_INACTIVE = "hyperfactions_gui.logs.msg_claims_removed_inactive"; + + // Home + public static final String MSG_HOME_SET = "hyperfactions_gui.logs.msg_home_set"; + public static final String MSG_HOME_CLEARED = "hyperfactions_gui.logs.msg_home_cleared"; + public static final String MSG_HOME_CLEARED_WORLD = "hyperfactions_gui.logs.msg_home_cleared_world"; + + // Settings + public static final String MSG_RENAMED = "hyperfactions_gui.logs.msg_renamed"; + public static final String MSG_SET_OPEN = "hyperfactions_gui.logs.msg_set_open"; + public static final String MSG_SET_CLOSED = "hyperfactions_gui.logs.msg_set_closed"; + public static final String MSG_DESC_SET = "hyperfactions_gui.logs.msg_desc_set"; + public static final String MSG_DESC_CLEARED = "hyperfactions_gui.logs.msg_desc_cleared"; + public static final String MSG_COLOR_CHANGED = "hyperfactions_gui.logs.msg_color_changed"; + + // Economy + public static final String MSG_DEPOSIT = "hyperfactions_gui.logs.msg_deposit"; + public static final String MSG_WITHDRAWAL = "hyperfactions_gui.logs.msg_withdrawal"; + public static final String MSG_UPKEEP_PAID = "hyperfactions_gui.logs.msg_upkeep_paid"; + public static final String MSG_UPKEEP_GRACE_STARTED = "hyperfactions_gui.logs.msg_upkeep_grace_started"; + public static final String MSG_UPKEEP_MISSED = "hyperfactions_gui.logs.msg_upkeep_missed"; + public static final String MSG_UPKEEP_MANUAL = "hyperfactions_gui.logs.msg_upkeep_manual"; + + // Admin power + public static final String MSG_ADMIN_POWER_SET = "hyperfactions_gui.logs.msg_admin_power_set"; + public static final String MSG_ADMIN_POWER_ADD = "hyperfactions_gui.logs.msg_admin_power_add"; + public static final String MSG_ADMIN_POWER_REMOVE = "hyperfactions_gui.logs.msg_admin_power_remove"; + public static final String MSG_ADMIN_POWER_RESET = "hyperfactions_gui.logs.msg_admin_power_reset"; + public static final String MSG_ADMIN_POWER_ADJUSTED = "hyperfactions_gui.logs.msg_admin_power_adjusted"; + public static final String MSG_ADMIN_MAXPOWER_SET = "hyperfactions_gui.logs.msg_admin_maxpower_set"; + public static final String MSG_ADMIN_MAXPOWER_RESET = "hyperfactions_gui.logs.msg_admin_maxpower_reset"; + public static final String MSG_ADMIN_POWERLOSS_ENABLED = "hyperfactions_gui.logs.msg_admin_powerloss_enabled"; + public static final String MSG_ADMIN_POWERLOSS_DISABLED = "hyperfactions_gui.logs.msg_admin_powerloss_disabled"; + public static final String MSG_ADMIN_DECAY_ENABLED = "hyperfactions_gui.logs.msg_admin_decay_enabled"; + public static final String MSG_ADMIN_DECAY_DISABLED = "hyperfactions_gui.logs.msg_admin_decay_disabled"; + public static final String MSG_ADMIN_KD_RESET = "hyperfactions_gui.logs.msg_admin_kd_reset"; + public static final String MSG_ADMIN_POWER_SET_ALL = "hyperfactions_gui.logs.msg_admin_power_set_all"; + public static final String MSG_ADMIN_POWER_ADD_ALL = "hyperfactions_gui.logs.msg_admin_power_add_all"; + public static final String MSG_ADMIN_POWER_REMOVE_ALL = "hyperfactions_gui.logs.msg_admin_power_remove_all"; + public static final String MSG_ADMIN_POWER_RESET_ALL = "hyperfactions_gui.logs.msg_admin_power_reset_all"; + public static final String MSG_ADMIN_POWER_ADJUSTED_ALL = "hyperfactions_gui.logs.msg_admin_power_adjusted_all"; + + // Admin faction + public static final String MSG_ADMIN_KICKED = "hyperfactions_gui.logs.msg_admin_kicked"; + public static final String MSG_ADMIN_ROLE_SET = "hyperfactions_gui.logs.msg_admin_role_set"; + public static final String MSG_ADMIN_LEADER_KICK = "hyperfactions_gui.logs.msg_admin_leader_kick"; + public static final String MSG_ADMIN_ECON_ADDED = "hyperfactions_gui.logs.msg_admin_econ_added"; + public static final String MSG_ADMIN_ECON_DEDUCTED = "hyperfactions_gui.logs.msg_admin_econ_deducted"; + public static final String MSG_ADMIN_ECON_SET = "hyperfactions_gui.logs.msg_admin_econ_set"; + + // Import + public static final String MSG_LEFT_IMPORT = "hyperfactions_gui.logs.msg_left_import"; + public static final String MSG_LEADER_IMPORT_TRANSFER = "hyperfactions_gui.logs.msg_leader_import_transfer"; + public static final String MSG_IMPORTED_FROM = "hyperfactions_gui.logs.msg_imported_from"; + private LogsGui() {} } @@ -1741,6 +1817,9 @@ public static final class AdminGui { public static final String GUI_ZINT_CAT_ESSENTIALS = "hyperfactions_admin.gui.zint_cat_essentials"; public static final String GUI_ZINT_RESET_DEFAULTS = "hyperfactions_admin.gui.zint_reset_defaults"; public static final String GUI_ZINT_BACK_TO_FLAGS = "hyperfactions_admin.gui.zint_back_to_flags"; + public static final String GUI_ZINT_MAP_VIS_FACTION = "hyperfactions_admin.gui.zint_map_vis_faction"; + public static final String GUI_ZINT_MAP_VIS_ALLY = "hyperfactions_admin.gui.zint_map_vis_ally"; + public static final String GUI_ZINT_MAP_VIS_ALL = "hyperfactions_admin.gui.zint_map_vis_all"; // Activity log public static final String LOG_ALL_TYPES = "hyperfactions_admin.log.all_types"; @@ -1783,6 +1862,7 @@ public static final class AdminGui { public static final String GUI_ZSET_RESET_DEFAULTS = "hyperfactions_admin.gui.zset_reset_defaults"; public static final String GUI_ZSET_INTEGRATION_FLAGS = "hyperfactions_admin.gui.zset_integration_flags"; public static final String GUI_ZSET_BACK_TO_ZONES = "hyperfactions_admin.gui.zset_back_to_zones"; + public static final String GUI_ZSET_CHUNKS = "hyperfactions_admin.gui.zset_chunks"; // Zone properties public static final String ZPROP_CURRENT_CUSTOM = "hyperfactions_admin.zprop.current_custom"; @@ -2067,6 +2147,9 @@ public static final class AdminGui { // Faction relations labels public static final String GUI_REL_SUBTITLE = "hyperfactions_admin.gui.rel_subtitle"; public static final String GUI_REL_SET_NEW = "hyperfactions_admin.gui.rel_set_new"; + public static final String GUI_REL_BTN_ALLY = "hyperfactions_admin.gui.rel_btn_ally"; + public static final String GUI_REL_BTN_NEUTRAL = "hyperfactions_admin.gui.rel_btn_neutral"; + public static final String GUI_REL_BTN_ENEMY = "hyperfactions_admin.gui.rel_btn_enemy"; // Zone page labels public static final String GUI_ZONE_SORT_NAME = "hyperfactions_admin.gui.zone_sort_name"; @@ -2208,6 +2291,40 @@ public static final class AdminGui { public static final String GUI_CZW_FLAGS_CUSTOMIZE_DESC = "hyperfactions_admin.gui.czw_flags_customize_desc"; public static final String GUI_CZW_FLAGS_CUSTOMIZE = "hyperfactions_admin.gui.czw_flags_customize"; + // Faction entry labels + public static final String GUI_FAC_ENTRY_POWER = "hyperfactions_admin.gui.fac_entry_power"; + public static final String GUI_FAC_ENTRY_CLAIMS = "hyperfactions_admin.gui.fac_entry_claims"; + public static final String GUI_FAC_ENTRY_MEMBERS = "hyperfactions_admin.gui.fac_entry_members"; + public static final String GUI_FAC_ENTRY_CREATED = "hyperfactions_admin.gui.fac_entry_created"; + public static final String GUI_FAC_ENTRY_HOME = "hyperfactions_admin.gui.fac_entry_home"; + public static final String GUI_FAC_ENTRY_TP_HOME = "hyperfactions_admin.gui.fac_entry_tp_home"; + public static final String GUI_FAC_ENTRY_VIEW_INFO = "hyperfactions_admin.gui.fac_entry_view_info"; + public static final String GUI_FAC_ENTRY_MEMBERS_BTN = "hyperfactions_admin.gui.fac_entry_members_btn"; + public static final String GUI_FAC_ENTRY_SETTINGS = "hyperfactions_admin.gui.fac_entry_settings"; + public static final String GUI_FAC_ENTRY_UNCLAIM_ALL = "hyperfactions_admin.gui.fac_entry_unclaim_all"; + public static final String GUI_FAC_ENTRY_DISBAND = "hyperfactions_admin.gui.fac_entry_disband"; + // Player entry labels + public static final String GUI_PLR_ENTRY_ROLE = "hyperfactions_admin.gui.plr_entry_role"; + public static final String GUI_PLR_ENTRY_JOINED = "hyperfactions_admin.gui.plr_entry_joined"; + public static final String GUI_PLR_ENTRY_LAST_ONLINE = "hyperfactions_admin.gui.plr_entry_last_online"; + public static final String GUI_PLR_ENTRY_KDR = "hyperfactions_admin.gui.plr_entry_kdr"; + public static final String GUI_PLR_ENTRY_POWER = "hyperfactions_admin.gui.plr_entry_power"; + public static final String GUI_PLR_ENTRY_UUID = "hyperfactions_admin.gui.plr_entry_uuid"; + public static final String GUI_PLR_ENTRY_INFO = "hyperfactions_admin.gui.plr_entry_info"; + public static final String GUI_PLR_ENTRY_TELEPORT = "hyperfactions_admin.gui.plr_entry_teleport"; + public static final String GUI_PLR_ENTRY_NA = "hyperfactions_admin.gui.plr_entry_na"; + public static final String GUI_PLR_ENTRY_UNKNOWN = "hyperfactions_admin.gui.plr_entry_unknown"; + public static final String GUI_PLR_ENTRY_AGO = "hyperfactions_admin.gui.plr_entry_ago"; + // Zone entry labels + public static final String GUI_ZONE_ENTRY_WORLD = "hyperfactions_admin.gui.zone_entry_world"; + public static final String GUI_ZONE_ENTRY_CHUNKS = "hyperfactions_admin.gui.zone_entry_chunks"; + public static final String GUI_ZONE_ENTRY_BOUNDS = "hyperfactions_admin.gui.zone_entry_bounds"; + public static final String GUI_ZONE_ENTRY_CREATED = "hyperfactions_admin.gui.zone_entry_created"; + public static final String GUI_ZONE_ENTRY_EDIT_MAP = "hyperfactions_admin.gui.zone_entry_edit_map"; + public static final String GUI_ZONE_ENTRY_FLAGS = "hyperfactions_admin.gui.zone_entry_flags"; + public static final String GUI_ZONE_ENTRY_SETTINGS = "hyperfactions_admin.gui.zone_entry_settings"; + public static final String GUI_ZONE_ENTRY_DELETE = "hyperfactions_admin.gui.zone_entry_delete"; + private AdminGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui index 8b5f76f5..400d4ce3 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui @@ -258,14 +258,13 @@ $C.@PageOverlay { Label #BypassLabel { Text: "Protection Bypass:"; Style: (FontSize: 13, TextColor: #AAAAAA, VerticalAlignment: Center); - Anchor: (Width: 130); + FlexWeight: 1; } Label #BypassState { Text: "Off"; Style: (FontSize: 14, TextColor: #FF5555, RenderBold: true, VerticalAlignment: Center); - Anchor: (Width: 50); + Anchor: (Width: 80); } - Label { FlexWeight: 1; } TextButton #ToggleBypassBtn { Text: "Enable"; Anchor: (Height: 30, Width: 100); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_entry.ui index 31821709..3b8bd30e 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_entry.ui @@ -44,7 +44,7 @@ Group { Style: (FontSize: 12, TextColor: #44CC44, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #PowerLabel { Text: "power"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -61,7 +61,7 @@ Group { Style: (FontSize: 12, TextColor: #FFAA00, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #ClaimsLabel { Text: "claims"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -78,7 +78,7 @@ Group { Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #MembersLabel { Text: "members"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -119,7 +119,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #CreatedLabel { Text: "Created:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -130,7 +130,7 @@ Group { Anchor: (Width: 90); } - Label { + Label #HomeLabel { Text: "Home:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 40); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui index 0ed52eda..14e01f9d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_info.ui @@ -360,7 +360,7 @@ $C.@PageOverlay { TextButton #PowerResetAll { Text: "Reset All Power"; - Anchor: (Height: 26, Width: 130); + Anchor: (Height: 26, Width: 170); Style: $S.@CyanButtonStyle; } } @@ -426,7 +426,7 @@ $C.@PageOverlay { TextButton #ViewMembersBtn { Text: "Members"; - Anchor: (Height: 30, Width: 85); + Anchor: (Height: 30, Width: 110); Style: $S.@ButtonStyle; } @@ -434,7 +434,7 @@ $C.@PageOverlay { TextButton #ViewRelationsBtn { Text: "Relations"; - Anchor: (Height: 30, Width: 85); + Anchor: (Height: 30, Width: 110); Style: $S.@ButtonStyle; } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui index fe2a8798..5e3c3ccd 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_factions.ui @@ -50,7 +50,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 35); + Anchor: (Width: 60); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui index a5364b7f..d5514d6a 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui @@ -90,7 +90,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #RoleLabel { Text: "Role:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 35); @@ -101,7 +101,7 @@ Group { Anchor: (Width: 70); } - Label { + Label #JoinedLabel { Text: "Joined:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 45); @@ -112,7 +112,7 @@ Group { Anchor: (Width: 80); } - Label { + Label #LastOnlineLabel { Text: "Last Online:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 70); @@ -129,7 +129,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #KdrLabel { Text: "K/D/R:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 40); @@ -140,7 +140,7 @@ Group { Anchor: (Width: 100); } - Label { + Label #PowerLabel { Text: "Power:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 45); @@ -157,7 +157,7 @@ Group { LayoutMode: Left; Anchor: (Height: 18, Bottom: 8); - Label { + Label #UuidLabel { Text: "UUID:"; Style: (FontSize: 9, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 40); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_entry.ui index 13172dda..639386dd 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zone_entry.ui @@ -47,7 +47,7 @@ Group { Anchor: (Width: 140); LayoutMode: Left; - Label { + Label #WorldLabel { Text: "World:"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 40); @@ -64,7 +64,7 @@ Group { Anchor: (Width: 80); LayoutMode: Left; - Label { + Label #InlineChunksLabel { Text: "Chunks:"; Style: (FontSize: 10, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 45); @@ -111,7 +111,7 @@ Group { LayoutMode: Left; Anchor: (Height: 22, Bottom: 6); - Label { + Label #ChunksLabel { Text: "Chunks:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -122,7 +122,7 @@ Group { Anchor: (Width: 50); } - Label { + Label #BoundsLabel { Text: "Bounds:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -133,7 +133,7 @@ Group { Anchor: (Width: 150); } - Label { + Label #CreatedLabel { Text: "Created:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 52); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/activity_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/activity_entry.ui index 0764a118..719203a2 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/activity_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/activity_entry.ui @@ -1,29 +1,27 @@ // Activity Entry Template +// Matches log_entry.ui style: date first, type, then description Group { - Anchor: (Height: 24); - LayoutMode: Top; + Anchor: (Height: 30, Bottom: 2); + Background: (Color: #0d1520); + Padding: (Left: 10, Right: 10, Top: 4, Bottom: 4); + LayoutMode: Left; - Group { - LayoutMode: Left; - Anchor: (Height: 24); - - Label #ActivityType { - Text: "Type"; - Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, VerticalAlignment: Center); - Anchor: (Width: 65); - } + Label #ActivityTime { + Text: "5m ago"; + Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); + Anchor: (Width: 70); + } - Label #ActivityMessage { - Text: "Activity description"; - Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); - Anchor: (Width: 220); - } + Label #ActivityType { + Text: "Type"; + Style: (FontSize: 10, TextColor: #00AAAA, RenderBold: true, VerticalAlignment: Center); + Anchor: (Width: 70); + } - Label #ActivityTime { - Text: "5m ago"; - Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 60); - } + Label #ActivityMessage { + Text: "Activity description"; + Style: (FontSize: 11, TextColor: #AAAAAA, VerticalAlignment: Center); + FlexWeight: 1; } } diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index c25fe32c..4175385d 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -200,6 +200,9 @@ gui.zint_visibility_label = Visibility Level: gui.zint_cat_essentials = HyperEssentials gui.zint_reset_defaults = Reset to Defaults gui.zint_back_to_flags = Back to Flags +gui.zint_map_vis_faction = Faction Only +gui.zint_map_vis_ally = Faction + Allies +gui.zint_map_vis_all = All Players # ========== Activity Log ========== log.all_types = All Types @@ -244,6 +247,60 @@ gui.zset_children_hint = (children only apply when parent ON) gui.zset_reset_defaults = Reset to Defaults gui.zset_integration_flags = Integration Flags gui.zset_back_to_zones = Back to Zones +gui.zset_chunks = {0} chunks + +# Zone Flag Display Names +gui.zflag_pvp_enabled = PvP Enabled +gui.zflag_friendly_fire = Friendly Fire +gui.zflag_friendly_fire_faction = Faction Damage +gui.zflag_friendly_fire_ally = Ally Damage +gui.zflag_projectile_damage = Projectile Damage +gui.zflag_mob_damage = Take Mob Damage +gui.zflag_pve_damage = Give Mob Damage +gui.zflag_fall_damage = Fall Damage +gui.zflag_environmental_damage = Env. Damage +gui.zflag_explosion_damage = Explosion Damage +gui.zflag_fire_spread = Fire Spread +gui.zflag_keep_inventory = Keep Inventory +gui.zflag_power_loss = Power Loss +gui.zflag_build_allowed = Building Allowed +gui.zflag_block_place = Block Placement +gui.zflag_hammer_use = Hammer Use +gui.zflag_builder_tools_use = Builder Tools +gui.zflag_block_interact = Block Interaction +gui.zflag_door_use = Door Use +gui.zflag_container_use = Container Use +gui.zflag_bench_use = Bench Use +gui.zflag_processing_use = Processing Use +gui.zflag_seat_use = Seat Use +gui.zflag_mount_use = Mount Use +gui.zflag_light_use = Light Use +gui.zflag_npc_use = NPC Interaction +gui.zflag_crate_pickup = Crate Pickup +gui.zflag_crate_place = Crate Place +gui.zflag_npc_tame = NPC Tame +gui.zflag_npc_interact = NPC Interact +gui.zflag_teleporter_use = Teleporter Use +gui.zflag_portal_use = Portal Use +gui.zflag_mount_entry = Mount Entry +gui.zflag_item_drop = Item Drop +gui.zflag_item_pickup = Auto Pickup +gui.zflag_item_pickup_manual = F-Key Pickup +gui.zflag_invincible_items = Invincible Items +gui.zflag_mob_spawning = Mob Spawning +gui.zflag_hostile_mob_spawning = Hostile Mobs +gui.zflag_passive_mob_spawning = Passive Mobs +gui.zflag_neutral_mob_spawning = Neutral Mobs +gui.zflag_npc_spawning = NPC Spawning +gui.zflag_mob_clear = Mob Clearing +gui.zflag_hostile_mob_clear = Clear Hostile Mobs +gui.zflag_passive_mob_clear = Clear Passive Mobs +gui.zflag_neutral_mob_clear = Clear Neutral Mobs +gui.zflag_gravestone_access = Others Loot Graves +gui.zflag_show_on_map = Show on Map +gui.zflag_essentials_homes = Home Use +gui.zflag_essentials_warps = Warp Use +gui.zflag_essentials_kits = Kit Claiming # ========== Zone Properties ========== zprop.current_custom = Current: "{0}" (custom) @@ -532,6 +589,9 @@ gui.set_perm_officers_edit = Officers can edit # Faction relations labels gui.rel_subtitle = Manage faction relations (bypasses approval) gui.rel_set_new = Set New Relation +gui.rel_btn_ally = Ally +gui.rel_btn_neutral = Neutral +gui.rel_btn_enemy = Enemy # Zone page labels gui.zone_sort_name = Name @@ -672,3 +732,41 @@ gui.czw_flags_defaults_desc = Based on zone type gui.czw_flags_defaults = Use defaults gui.czw_flags_customize_desc = Open settings after gui.czw_flags_customize = Customize + +# ========== Entry Labels (Faction/Player/Zone list entries) ========== + +# Faction entry labels +gui.fac_entry_power = power +gui.fac_entry_claims = claims +gui.fac_entry_members = members +gui.fac_entry_created = Created: +gui.fac_entry_home = Home: +gui.fac_entry_tp_home = TP Home +gui.fac_entry_view_info = View Info +gui.fac_entry_members_btn = Members +gui.fac_entry_settings = Settings +gui.fac_entry_unclaim_all = Unclaim All +gui.fac_entry_disband = Disband + +# Player entry labels +gui.plr_entry_role = Role: +gui.plr_entry_joined = Joined: +gui.plr_entry_last_online = Last Online: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Power: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teleport +gui.plr_entry_na = N/A +gui.plr_entry_unknown = Unknown +gui.plr_entry_ago = {0} ago + +# Zone entry labels +gui.zone_entry_world = World: +gui.zone_entry_chunks = Chunks: +gui.zone_entry_bounds = Bounds: +gui.zone_entry_created = Created: +gui.zone_entry_edit_map = Edit Map +gui.zone_entry_flags = Flags +gui.zone_entry_settings = Settings +gui.zone_entry_delete = Delete diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 780b01f0..05664b84 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -558,6 +558,74 @@ logs.type_power_change = Power logs.type_economy = Economy logs.type_admin_power = Admin Power +# Log message templates (i18n for activity log content) +# Player actions +logs.msg_faction_created = {0} created the faction +logs.msg_member_joined = {0} joined the faction +logs.msg_member_left = {0} left the faction +logs.msg_member_kicked = {0} was kicked +logs.msg_member_promoted = {0} promoted to {1} +logs.msg_member_demoted = {0} demoted to {1} +logs.msg_leader_transferred = Leadership transferred to {0} +logs.msg_leader_left_transfer = {0} left, {1} is now leader +logs.msg_relation_set = Set {0} as {1} +# Territory +logs.msg_claimed = Claimed chunk at {0}, {1} in {2} +logs.msg_unclaimed = Unclaimed chunk at {0}, {1} in {2} +logs.msg_overclaim_lost = Lost chunk at {0}, {1} to {2} +logs.msg_overclaim_taken = Overclaimed chunk at {0}, {1} from {2} +logs.msg_all_unclaimed = All territory unclaimed +logs.msg_claim_removed_world = Claim in '{0}' removed (world disallows claiming) +logs.msg_claims_lost_upkeep = Lost {0} claim(s) to upkeep (missed {1} payments) +logs.msg_claims_removed_inactive = {0} claims removed due to inactivity ({1} days) +# Home +logs.msg_home_set = Home set +logs.msg_home_cleared = Home cleared +logs.msg_home_cleared_world = Home in '{0}' cleared (world disallows claiming) +# Settings +logs.msg_renamed = Renamed from '{0}' to '{1}' +logs.msg_set_open = Faction set to open +logs.msg_set_closed = Faction set to invite-only +logs.msg_desc_set = Description set +logs.msg_desc_cleared = Description cleared +logs.msg_color_changed = Color changed to '{0}' +# Economy +logs.msg_deposit = Deposit: {0} (+{1}) +logs.msg_withdrawal = Withdrawal: {0} (-{1}) +logs.msg_upkeep_paid = Upkeep paid: {0} ({1} billable chunks) +logs.msg_upkeep_grace_started = Upkeep failed: grace period started ({0}h) +logs.msg_upkeep_missed = Upkeep missed (payment {0}), grace expires in {1} +logs.msg_upkeep_manual = Upkeep paid manually: {0} ({1} billable chunks, grace cleared) +# Admin power +logs.msg_admin_power_set = Admin set {0}'s power to {1} (was {2}) +logs.msg_admin_power_add = Admin added {0} power to {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin removed {0} power from {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin reset {0}'s power to {1} (was {2}) +logs.msg_admin_power_adjusted = Admin adjusted {0}'s power by {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin set {0}'s max power to {1} (was {2}) +logs.msg_admin_maxpower_reset = Admin reset {0}'s max power to global default ({1}) +logs.msg_admin_powerloss_enabled = Admin enabled power loss for {0} +logs.msg_admin_powerloss_disabled = Admin disabled power loss for {0} +logs.msg_admin_decay_enabled = Admin enabled claim decay exemption for {0} +logs.msg_admin_decay_disabled = Admin disabled claim decay exemption for {0} +logs.msg_admin_kd_reset = Admin reset K/D for {0} +logs.msg_admin_power_set_all = Admin set all {0} members' power to {1} +logs.msg_admin_power_add_all = Admin added {0} power to all {1} members +logs.msg_admin_power_remove_all = Admin removed {0} power from all {1} members +logs.msg_admin_power_reset_all = Admin reset power for all {0} members +logs.msg_admin_power_adjusted_all = Admin adjusted all {0} members' power by {1} +# Admin faction +logs.msg_admin_kicked = [Admin] {0} was kicked +logs.msg_admin_role_set = [Admin] {0} role set to {1} +logs.msg_admin_leader_kick = [Admin] Leadership transferred from {0} to {1} (admin kick) +logs.msg_admin_econ_added = Admin added: {0} (balance: {1}) +logs.msg_admin_econ_deducted = Admin deducted: {0} (balance: {1}) +logs.msg_admin_econ_set = Admin set balance to {0} (was {1}) +# Import +logs.msg_left_import = {0} left (imported to another faction) +logs.msg_leader_import_transfer = {0} became leader (previous leader imported to another faction) +logs.msg_imported_from = Faction imported from {0} + # ========== Chat Page ========== chat.title = Faction Chat chat.tab_faction = Faction diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 24f91d3f..e8e70a9d 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -200,6 +200,9 @@ gui.zint_visibility_label = Nivel de Visibilidad: gui.zint_cat_essentials = HyperEssentials gui.zint_reset_defaults = Restablecer Valores gui.zint_back_to_flags = Volver a Flags +gui.zint_map_vis_faction = Solo Faccion +gui.zint_map_vis_ally = Faccion + Aliados +gui.zint_map_vis_all = Todos los Jugadores # ========== Registro de Actividad ========== log.all_types = Todos los Tipos @@ -244,6 +247,60 @@ gui.zset_children_hint = (hijos solo aplican cuando el padre esta EN) gui.zset_reset_defaults = Restablecer Valores gui.zset_integration_flags = Flags de Integracion gui.zset_back_to_zones = Volver a Zonas +gui.zset_chunks = {0} chunks + +# Nombres de Flags de Zona +gui.zflag_pvp_enabled = PvP Activado +gui.zflag_friendly_fire = Fuego Amigo +gui.zflag_friendly_fire_faction = Dano de Faccion +gui.zflag_friendly_fire_ally = Dano de Aliado +gui.zflag_projectile_damage = Dano de Proyectil +gui.zflag_mob_damage = Recibir Dano de Mob +gui.zflag_pve_damage = Dar Dano a Mob +gui.zflag_fall_damage = Dano por Caida +gui.zflag_environmental_damage = Dano Ambiental +gui.zflag_explosion_damage = Dano de Explosion +gui.zflag_fire_spread = Propagacion de Fuego +gui.zflag_keep_inventory = Conservar Inventario +gui.zflag_power_loss = Perdida de Poder +gui.zflag_build_allowed = Construccion Permitida +gui.zflag_block_place = Colocar Bloques +gui.zflag_hammer_use = Uso de Martillo +gui.zflag_builder_tools_use = Herr. de Constructor +gui.zflag_block_interact = Interaccion de Bloques +gui.zflag_door_use = Uso de Puertas +gui.zflag_container_use = Uso de Contenedores +gui.zflag_bench_use = Uso de Bancos +gui.zflag_processing_use = Uso de Procesadores +gui.zflag_seat_use = Uso de Asientos +gui.zflag_mount_use = Uso de Monturas +gui.zflag_light_use = Uso de Luces +gui.zflag_npc_use = Interaccion con NPC +gui.zflag_crate_pickup = Recoger Cajas +gui.zflag_crate_place = Colocar Cajas +gui.zflag_npc_tame = Domesticar NPC +gui.zflag_npc_interact = Interactuar con NPC +gui.zflag_teleporter_use = Uso de Teletransporte +gui.zflag_portal_use = Uso de Portales +gui.zflag_mount_entry = Entrada a Montura +gui.zflag_item_drop = Soltar Objetos +gui.zflag_item_pickup = Recoger Automatico +gui.zflag_item_pickup_manual = Recoger con F +gui.zflag_invincible_items = Objetos Invencibles +gui.zflag_mob_spawning = Aparicion de Mobs +gui.zflag_hostile_mob_spawning = Mobs Hostiles +gui.zflag_passive_mob_spawning = Mobs Pasivos +gui.zflag_neutral_mob_spawning = Mobs Neutrales +gui.zflag_npc_spawning = Aparicion de NPC +gui.zflag_mob_clear = Limpieza de Mobs +gui.zflag_hostile_mob_clear = Limpiar Mobs Hostiles +gui.zflag_passive_mob_clear = Limpiar Mobs Pasivos +gui.zflag_neutral_mob_clear = Limpiar Mobs Neutrales +gui.zflag_gravestone_access = Saquear Tumbas Ajenas +gui.zflag_show_on_map = Mostrar en Mapa +gui.zflag_essentials_homes = Uso de Hogar +gui.zflag_essentials_warps = Uso de Warps +gui.zflag_essentials_kits = Reclamo de Kits # ========== Propiedades de Zona ========== zprop.current_custom = Actual: "{0}" (personalizado) @@ -532,6 +589,9 @@ gui.set_perm_officers_edit = Oficiales pueden editar # Etiquetas de relaciones de faccion gui.rel_subtitle = Gestionar relaciones de faccion (sin aprobacion) gui.rel_set_new = Establecer Nueva Relacion +gui.rel_btn_ally = Aliado +gui.rel_btn_neutral = Neutral +gui.rel_btn_enemy = Enemigo # Etiquetas de pagina de zonas gui.zone_sort_name = Nombre @@ -672,3 +732,41 @@ gui.czw_flags_defaults_desc = Basado en tipo de zona gui.czw_flags_defaults = Usar por defecto gui.czw_flags_customize_desc = Abrir ajustes despues gui.czw_flags_customize = Personalizar + +# ========== Etiquetas de Entradas (listas de Faccion/Jugador/Zona) ========== + +# Etiquetas de entrada de faccion +gui.fac_entry_power = poder +gui.fac_entry_claims = reclamos +gui.fac_entry_members = miembros +gui.fac_entry_created = Creada: +gui.fac_entry_home = Hogar: +gui.fac_entry_tp_home = TP Hogar +gui.fac_entry_view_info = Ver Info +gui.fac_entry_members_btn = Miembros +gui.fac_entry_settings = Ajustes +gui.fac_entry_unclaim_all = Desreclamar +gui.fac_entry_disband = Disolver + +# Etiquetas de entrada de jugador +gui.plr_entry_role = Rol: +gui.plr_entry_joined = Ingreso: +gui.plr_entry_last_online = Ultima Conexion: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Poder: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teletransportar +gui.plr_entry_na = N/D +gui.plr_entry_unknown = Desconocido +gui.plr_entry_ago = hace {0} + +# Etiquetas de entrada de zona +gui.zone_entry_world = Mundo: +gui.zone_entry_chunks = Chunks: +gui.zone_entry_bounds = Limites: +gui.zone_entry_created = Creada: +gui.zone_entry_edit_map = Editar Mapa +gui.zone_entry_flags = Flags +gui.zone_entry_settings = Ajustes +gui.zone_entry_delete = Eliminar diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index cd99dafd..adbcf30d 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -558,6 +558,74 @@ logs.type_power_change = Poder logs.type_economy = Economia logs.type_admin_power = Admin +# Plantillas de mensajes de registro (i18n para contenido del registro de actividad) +# Acciones de jugador +logs.msg_faction_created = {0} creo la faccion +logs.msg_member_joined = {0} se unio a la faccion +logs.msg_member_left = {0} abandono la faccion +logs.msg_member_kicked = {0} fue expulsado +logs.msg_member_promoted = {0} ascendido a {1} +logs.msg_member_demoted = {0} degradado a {1} +logs.msg_leader_transferred = Liderazgo transferido a {0} +logs.msg_leader_left_transfer = {0} se fue, {1} es ahora el lider +logs.msg_relation_set = {0} establecido como {1} +# Territorio +logs.msg_claimed = Chunk reclamado en {0}, {1} en {2} +logs.msg_unclaimed = Chunk abandonado en {0}, {1} en {2} +logs.msg_overclaim_lost = Chunk perdido en {0}, {1} ante {2} +logs.msg_overclaim_taken = Sobrerreclamo de chunk en {0}, {1} de {2} +logs.msg_all_unclaimed = Todo el territorio abandonado +logs.msg_claim_removed_world = Reclamo en '{0}' eliminado (mundo no permite reclamos) +logs.msg_claims_lost_upkeep = {0} reclamo(s) perdidos por mantenimiento (faltan {1} pagos) +logs.msg_claims_removed_inactive = {0} reclamos eliminados por inactividad ({1} dias) +# Hogar +logs.msg_home_set = Hogar establecido +logs.msg_home_cleared = Hogar eliminado +logs.msg_home_cleared_world = Hogar en '{0}' eliminado (mundo no permite reclamos) +# Ajustes +logs.msg_renamed = Renombrado de '{0}' a '{1}' +logs.msg_set_open = Faccion abierta al publico +logs.msg_set_closed = Faccion solo por invitacion +logs.msg_desc_set = Descripcion establecida +logs.msg_desc_cleared = Descripcion eliminada +logs.msg_color_changed = Color cambiado a '{0}' +# Economia +logs.msg_deposit = Deposito: {0} (+{1}) +logs.msg_withdrawal = Retiro: {0} (-{1}) +logs.msg_upkeep_paid = Mantenimiento pagado: {0} ({1} chunks facturables) +logs.msg_upkeep_grace_started = Mantenimiento fallido: periodo de gracia iniciado ({0}h) +logs.msg_upkeep_missed = Mantenimiento no pagado (pago {0}), gracia expira en {1} +logs.msg_upkeep_manual = Mantenimiento pagado manualmente: {0} ({1} chunks facturables, gracia eliminada) +# Admin poder +logs.msg_admin_power_set = Admin establecio el poder de {0} a {1} (era {2}) +logs.msg_admin_power_add = Admin agrego {0} de poder a {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin quito {0} de poder de {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin reinicio el poder de {0} a {1} (era {2}) +logs.msg_admin_power_adjusted = Admin ajusto el poder de {0} en {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin establecio el poder maximo de {0} a {1} (era {2}) +logs.msg_admin_maxpower_reset = Admin reinicio el poder maximo de {0} al valor predeterminado ({1}) +logs.msg_admin_powerloss_enabled = Admin habilito perdida de poder para {0} +logs.msg_admin_powerloss_disabled = Admin deshabilito perdida de poder para {0} +logs.msg_admin_decay_enabled = Admin habilito exencion de deterioro de reclamos para {0} +logs.msg_admin_decay_disabled = Admin deshabilito exencion de deterioro de reclamos para {0} +logs.msg_admin_kd_reset = Admin reinicio K/D de {0} +logs.msg_admin_power_set_all = Admin establecio el poder de los {0} miembros a {1} +logs.msg_admin_power_add_all = Admin agrego {0} de poder a los {1} miembros +logs.msg_admin_power_remove_all = Admin quito {0} de poder de los {1} miembros +logs.msg_admin_power_reset_all = Admin reinicio el poder de los {0} miembros +logs.msg_admin_power_adjusted_all = Admin ajusto el poder de los {0} miembros en {1} +# Admin faccion +logs.msg_admin_kicked = [Admin] {0} fue expulsado +logs.msg_admin_role_set = [Admin] Rol de {0} establecido a {1} +logs.msg_admin_leader_kick = [Admin] Liderazgo transferido de {0} a {1} (expulsion admin) +logs.msg_admin_econ_added = Admin agrego: {0} (saldo: {1}) +logs.msg_admin_econ_deducted = Admin dedujo: {0} (saldo: {1}) +logs.msg_admin_econ_set = Admin establecio saldo a {0} (era {1}) +# Importacion +logs.msg_left_import = {0} se fue (importado a otra faccion) +logs.msg_leader_import_transfer = {0} se convirtio en lider (lider anterior importado a otra faccion) +logs.msg_imported_from = Faccion importada desde {0} + # ========== Pagina de Chat ========== chat.title = Chat de Faccion chat.tab_faction = Faccion From 1eb62c502ddbe2520563c9e6b598b7e344089517 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 10:35:51 -0700 Subject: [PATCH 48/76] feat(i18n): localize player member and browser entry templates Add #IDs to anonymous labels in member_entry.ui (Power, Joined, Last Death) and wire cmd.set() for all entry-level labels and buttons in FactionMembersPage. Add no_description fallback key for browser entries. Widen Recruitment label for Spanish. Add 11 new keys to both en-US and es-ES gui lang files. --- .../gui/faction/page/FactionBrowserPage.java | 2 ++ .../gui/faction/page/FactionMembersPage.java | 11 +++++++++++ src/main/java/com/hyperfactions/util/MessageKeys.java | 10 ++++++++++ .../HyperFactions/faction/faction_browse_entry.ui | 2 +- .../UI/Custom/HyperFactions/faction/member_entry.ui | 10 +++++----- .../Server/Languages/en-US/hyperfactions_gui.lang | 10 ++++++++++ .../Server/Languages/es-ES/hyperfactions_gui.lang | 10 ++++++++++ 7 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java index 056d952e..def7c46d 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionBrowserPage.java @@ -302,6 +302,8 @@ private void buildFactionEntry(UICommandBuilder cmd, UIEventBuilder events, int ? entry.description.substring(0, 57) + "..." : entry.description; cmd.set(idx + " #Description.Text", desc); + } else { + cmd.set(idx + " #Description.Text", HFMessages.get(playerRef, MessageKeys.BrowserGui.NO_DESCRIPTION)); } // View Info button diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java index 0f38a18d..c4e80710 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java @@ -226,6 +226,17 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i // Use indexed selector like NavBarHelper does String idx = "#IndexCards[" + index + "]"; + // Localize entry labels + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.LABEL_POWER)); + cmd.set(idx + " #JoinedLabel.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.LABEL_JOINED)); + cmd.set(idx + " #LastDeathLabel.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.LABEL_LAST_DEATH)); + cmd.set(idx + " #PromoteBtn.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.BTN_PROMOTE)); + cmd.set(idx + " #DemoteBtn.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.BTN_DEMOTE)); + cmd.set(idx + " #KickBtn.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.BTN_KICK)); + cmd.set(idx + " #TransferBtn.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.BTN_MAKE_LEADER)); + cmd.set(idx + " #ProfileBtn.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.BTN_PROFILE)); + cmd.set(idx + " #SelfLabel.Text", HFMessages.get(playerRef, MessageKeys.MembersGui.SELF_LABEL)); + // Basic info cmd.set(idx + " #MemberName.Text", member.username()); cmd.set(idx + " #MemberRole.Text", formatRole(member.role())); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index 8b42662f..a576b8db 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -868,6 +868,15 @@ public static final class MembersGui { public static final String DEMOTE_FAILED = "hyperfactions_gui.members.demote_failed"; public static final String KICKED = "hyperfactions_gui.members.kicked"; public static final String KICK_FAILED = "hyperfactions_gui.members.kick_failed"; + public static final String LABEL_POWER = "hyperfactions_gui.members.label_power"; + public static final String LABEL_JOINED = "hyperfactions_gui.members.label_joined"; + public static final String LABEL_LAST_DEATH = "hyperfactions_gui.members.label_last_death"; + public static final String BTN_PROMOTE = "hyperfactions_gui.members.btn_promote"; + public static final String BTN_DEMOTE = "hyperfactions_gui.members.btn_demote"; + public static final String BTN_KICK = "hyperfactions_gui.members.btn_kick"; + public static final String BTN_MAKE_LEADER = "hyperfactions_gui.members.btn_make_leader"; + public static final String BTN_PROFILE = "hyperfactions_gui.members.btn_profile"; + public static final String SELF_LABEL = "hyperfactions_gui.members.self_label"; private MembersGui() {} } @@ -889,6 +898,7 @@ public static final class BrowserGui { public static final String LABEL_DESCRIPTION = "hyperfactions_gui.browser.label_description"; public static final String VIEW_INFO_BTN = "hyperfactions_gui.browser.view_info_btn"; public static final String LABEL_LEADER = "hyperfactions_gui.browser.label_leader"; + public static final String NO_DESCRIPTION = "hyperfactions_gui.browser.no_description"; private BrowserGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui index 20f4f8e3..c1b0569f 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_browse_entry.ui @@ -139,7 +139,7 @@ Group { Label #RecruitmentLabel { Text: "Recruitment:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 85); + Anchor: (Width: 95); } Label #RecruitmentStatus { Text: "Unknown"; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/member_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/member_entry.ui index 8564050e..829c9ae7 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/member_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/member_entry.ui @@ -93,7 +93,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #PowerLabel { Text: "Power:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 45); @@ -104,10 +104,10 @@ Group { Anchor: (Width: 60); } - Label { + Label #JoinedLabel { Text: "Joined:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 45); + Anchor: (Width: 50); } Label #JoinedDate { Text: "Unknown"; @@ -115,10 +115,10 @@ Group { Anchor: (Width: 80); } - Label { + Label #LastDeathLabel { Text: "Last Death:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 65); + Anchor: (Width: 75); } Label #LastDeath { Text: "Never"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 05664b84..95913ea8 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -196,6 +196,15 @@ members.demoted = Demoted {0} to {1}. members.demote_failed = Failed to demote: {0} members.kicked = Kicked {0} from the faction. members.kick_failed = Failed to kick: {0} +members.label_power = Power: +members.label_joined = Joined: +members.label_last_death = Last Death: +members.btn_promote = Promote +members.btn_demote = Demote +members.btn_kick = Kick +members.btn_make_leader = Make Leader +members.btn_profile = Profile +members.self_label = (You) # ========== Browser Page ========== browser.title = Browse Factions @@ -213,6 +222,7 @@ browser.label_created = Created: browser.label_description = Description: browser.view_info_btn = View Info browser.label_leader = Leader: +browser.no_description = No description set # ========== Leaderboard Page ========== leaderboard.title = Faction Leaderboard diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index adbcf30d..8bb206d7 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -196,6 +196,15 @@ members.demoted = {0} degradado a {1}. members.demote_failed = No se pudo degradar: {0} members.kicked = {0} expulsado de la faccion. members.kick_failed = No se pudo expulsar: {0} +members.label_power = Poder: +members.label_joined = Ingreso: +members.label_last_death = Ultima Muerte: +members.btn_promote = Promover +members.btn_demote = Degradar +members.btn_kick = Expulsar +members.btn_make_leader = Hacer Lider +members.btn_profile = Perfil +members.self_label = (Tu) # ========== Pagina del Explorador ========== browser.title = Explorar Facciones @@ -213,6 +222,7 @@ browser.label_created = Creada: browser.label_description = Descripcion: browser.view_info_btn = Ver Info browser.label_leader = Lider: +browser.no_description = Sin descripcion # ========== Pagina de Clasificacion ========== leaderboard.title = Clasificacion de Facciones From feab96515cb0ecac83b2d460a2880cebfe81fcef Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 11:11:37 -0700 Subject: [PATCH 49/76] feat(i18n): localize admin member entries and player info page Add #IDs to anonymous labels in admin_faction_members_entry.ui, wire cmd.set() for entry labels and buttons in AdminFactionMembersPage. Localize formatReason(), bypass checkbox labels, and NoFactionLabel in AdminPlayerInfoPage. Widen sort label and teleport button for Spanish. Add 13 new keys per locale. --- .../gui/admin/page/AdminFactionMembersPage.java | 11 +++++++++++ .../gui/admin/page/AdminPlayerInfoPage.java | 13 +++++++++---- .../java/com/hyperfactions/util/MessageKeys.java | 15 +++++++++++++++ .../HyperFactions/admin/admin_faction_members.ui | 2 +- .../admin/admin_faction_members_entry.ui | 14 +++++++------- .../Languages/en-US/hyperfactions_admin.lang | 15 +++++++++++++++ .../Languages/es-ES/hyperfactions_admin.lang | 15 +++++++++++++++ 7 files changed, 73 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java index 86384171..f6e4df09 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java @@ -129,6 +129,17 @@ private void buildMemberEntry(UICommandBuilder cmd, UIEventBuilder events, int i boolean memberIsOnline = isOnline(member); cmd.append("#IndexCards", UIPaths.ADMIN_FACTION_MEMBERS_ENTRY); String idx = "#IndexCards[" + index + "]"; + // Localize entry labels and buttons + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_LABEL_POWER)); + cmd.set(idx + " #JoinedLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_LABEL_JOINED)); + cmd.set(idx + " #LastDeathLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_LABEL_LAST_DEATH)); + cmd.set(idx + " #UuidLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_LABEL_UUID)); + cmd.set(idx + " #ViewInfoBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_BTN_INFO)); + cmd.set(idx + " #TeleportBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_BTN_TELEPORT)); + cmd.set(idx + " #PromoteBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_BTN_PROMOTE)); + cmd.set(idx + " #DemoteBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_BTN_DEMOTE)); + cmd.set(idx + " #KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_MEM_BTN_KICK)); + cmd.set(idx + " #MemberName.Text", member.username()); cmd.set(idx + " #MemberRole.Text", formatRole(member.role())); cmd.set(idx + " #RoleIndicator.Background.Color", GuiColors.forRole(member.role())); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index 9ccb1518..019edf54 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -128,6 +128,11 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_KICK_FROM_FACTION)); cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); + // Localize bypass checkbox labels and no-faction label + cmd.set("#NoLossCheck #CheckBox.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_POWER_LOSS)); + cmd.set("#NoDecayCheck #CheckBox.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_CLAIM_DECAY)); + cmd.set("#NoFactionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NO_FACTION)); + buildContent(cmd, events); } @@ -555,10 +560,10 @@ private String formatRole(FactionRole role) { private String formatReason(MembershipRecord.LeaveReason reason) { return switch (reason) { - case ACTIVE -> "ACTIVE"; - case LEFT -> "LEFT"; - case KICKED -> "KICKED"; - case DISBANDED -> "DISBANDED"; + case ACTIVE -> HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_REASON_ACTIVE); + case LEFT -> HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_REASON_LEFT); + case KICKED -> HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_REASON_KICKED); + case DISBANDED -> HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_REASON_DISBANDED); }; } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index a576b8db..d6bbb1b4 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1895,6 +1895,16 @@ public static final class AdminGui { // Members additional public static final String MEM_NEVER = "hyperfactions_admin.members.never"; public static final String MEM_TELEPORTED = "hyperfactions_admin.members.teleported"; + // Member entry labels + public static final String GUI_MEM_LABEL_POWER = "hyperfactions_admin.gui.mem_label_power"; + public static final String GUI_MEM_LABEL_JOINED = "hyperfactions_admin.gui.mem_label_joined"; + public static final String GUI_MEM_LABEL_LAST_DEATH = "hyperfactions_admin.gui.mem_label_last_death"; + public static final String GUI_MEM_LABEL_UUID = "hyperfactions_admin.gui.mem_label_uuid"; + public static final String GUI_MEM_BTN_INFO = "hyperfactions_admin.gui.mem_btn_info"; + public static final String GUI_MEM_BTN_TELEPORT = "hyperfactions_admin.gui.mem_btn_teleport"; + public static final String GUI_MEM_BTN_PROMOTE = "hyperfactions_admin.gui.mem_btn_promote"; + public static final String GUI_MEM_BTN_DEMOTE = "hyperfactions_admin.gui.mem_btn_demote"; + public static final String GUI_MEM_BTN_KICK = "hyperfactions_admin.gui.mem_btn_kick"; // Player info additional public static final String PLR_RECORDS = "hyperfactions_admin.playerinfo.records"; public static final String PLR_JOINED_DATE = "hyperfactions_admin.playerinfo.joined_date"; @@ -2063,6 +2073,11 @@ public static final class AdminGui { public static final String GUI_PLR_KICK_FROM_FACTION = "hyperfactions_admin.gui.plr_kick_from_faction"; public static final String GUI_PLR_SET_MAX_BTN = "hyperfactions_admin.gui.plr_set_max_btn"; public static final String GUI_PLR_COMBAT = "hyperfactions_admin.gui.plr_combat"; + // Player info history reason labels + public static final String GUI_PLR_REASON_ACTIVE = "hyperfactions_admin.gui.plr_reason_active"; + public static final String GUI_PLR_REASON_LEFT = "hyperfactions_admin.gui.plr_reason_left"; + public static final String GUI_PLR_REASON_KICKED = "hyperfactions_admin.gui.plr_reason_kicked"; + public static final String GUI_PLR_REASON_DISBANDED = "hyperfactions_admin.gui.plr_reason_disbanded"; // Faction info labels public static final String GUI_FAC_DESCRIPTION = "hyperfactions_admin.gui.fac_description"; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui index af86ffbf..c60d8c1b 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui @@ -69,7 +69,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 35); + Anchor: (Width: 50); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members_entry.ui index ff83490e..0fb91319 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members_entry.ui @@ -94,7 +94,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #PowerLabel { Text: "Power:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 45); @@ -105,10 +105,10 @@ Group { Anchor: (Width: 60); } - Label { + Label #JoinedLabel { Text: "Joined:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 45); + Anchor: (Width: 50); } Label #JoinedDate { Text: "Unknown"; @@ -116,10 +116,10 @@ Group { Anchor: (Width: 80); } - Label { + Label #LastDeathLabel { Text: "Last Death:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 65); + Anchor: (Width: 75); } Label #LastDeath { Text: "Never"; @@ -133,7 +133,7 @@ Group { LayoutMode: Left; Anchor: (Height: 18, Bottom: 8); - Label { + Label #UuidLabel { Text: "UUID:"; Style: (FontSize: 9, TextColor: #555555, VerticalAlignment: Center); Anchor: (Width: 40); @@ -157,7 +157,7 @@ Group { } TextButton #TeleportBtn { Text: "Teleport"; - Anchor: (Height: 24, Width: 80, Right: 6); + Anchor: (Height: 24, Width: 95, Right: 6); Style: $S.@ButtonStyle; } TextButton #PromoteBtn { diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 4175385d..01654007 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -495,6 +495,21 @@ gui.plr_view = View gui.plr_kick_from_faction = Kick from Faction gui.plr_set_max_btn = Set Max gui.plr_combat = Combat +gui.plr_reason_active = ACTIVE +gui.plr_reason_left = LEFT +gui.plr_reason_kicked = KICKED +gui.plr_reason_disbanded = DISBANDED + +# Member entry labels +gui.mem_label_power = Power: +gui.mem_label_joined = Joined: +gui.mem_label_last_death = Last Death: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teleport +gui.mem_btn_promote = Promote +gui.mem_btn_demote = Demote +gui.mem_btn_kick = Kick # Faction info labels gui.fac_description = Description diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index e8e70a9d..5dfd1fcc 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -495,6 +495,21 @@ gui.plr_view = Ver gui.plr_kick_from_faction = Expulsar de Faccion gui.plr_set_max_btn = Establecer Max gui.plr_combat = Combate +gui.plr_reason_active = ACTIVO +gui.plr_reason_left = SALIO +gui.plr_reason_kicked = EXPULSADO +gui.plr_reason_disbanded = DISUELTO + +# Etiquetas de entrada de miembros +gui.mem_label_power = Poder: +gui.mem_label_joined = Ingreso: +gui.mem_label_last_death = Ultima Muerte: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teletransportar +gui.mem_btn_promote = Promover +gui.mem_btn_demote = Degradar +gui.mem_btn_kick = Expulsar # Etiquetas de info de faccion gui.fac_description = Descripcion From 0d20d6b8248298babaac24de2155d61ee83b497b Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 13:27:49 -0700 Subject: [PATCH 50/76] feat(i18n): localize player invite and relation entry templates Add #IDs to anonymous labels in faction_invite_entry.ui and faction_relation_entry.ui, wire cmd.set() for all entry-level labels and buttons in FactionInvitesPage and FactionRelationsPage, add 17 new MessageKeys constants, and add en-US/es-ES lang entries. Width adjustments: ClaimsLabel 50->55px, DirectionLabel 65->70px for Spanish translations. --- .../gui/faction/page/FactionInvitesPage.java | 8 +++++++- .../gui/faction/page/FactionRelationsPage.java | 14 ++++++++++++++ .../java/com/hyperfactions/util/MessageKeys.java | 16 ++++++++++++++++ .../faction/faction_invite_entry.ui | 2 +- .../faction/faction_relation_entry.ui | 14 +++++++------- .../Languages/en-US/hyperfactions_gui.lang | 16 ++++++++++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 16 ++++++++++++++++ 7 files changed, 77 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java index 47c810cd..29c085a9 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java @@ -257,6 +257,12 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, String idx = "#IndexCards[" + index + "]"; + // Localize entry labels and buttons + cmd.set(idx + " #MessageLabel.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.LABEL_MESSAGE)); + cmd.set(idx + " #CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.BTN_CANCEL)); + cmd.set(idx + " #AcceptBtn.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.BTN_ACCEPT)); + cmd.set(idx + " #DeclineBtn.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.BTN_DECLINE)); + // Basic info cmd.set(idx + " #PlayerName.Text", item.playerName); cmd.set(idx + " #StatusInfo.Text", HFMessages.get(playerRef, MessageKeys.InvitesGui.EXPIRES, formatTime(item.remainingSeconds))); @@ -349,7 +355,7 @@ private String getPlayerName(UUID playerUuid) { return member.username(); } } - return "Unknown"; + return HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); } private String formatTime(int seconds) { diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java index 531030df..ab8f2b99 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionRelationsPage.java @@ -339,6 +339,20 @@ private void buildEntry(UICommandBuilder cmd, UIEventBuilder events, int index, String idx = "#IndexCards[" + index + "]"; + // Localize entry labels and buttons + cmd.set(idx + " #MemberLabel.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.LABEL_MEMBERS)); + cmd.set(idx + " #PowerLabel.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.LABEL_POWER)); + cmd.set(idx + " #SinceLabel.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.LABEL_SINCE)); + cmd.set(idx + " #ClaimsLabel.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.LABEL_CLAIMS)); + cmd.set(idx + " #DirectionLabel.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.LABEL_DIRECTION)); + cmd.set(idx + " #ViewBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_VIEW)); + cmd.set(idx + " #NeutralBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_NEUTRAL)); + cmd.set(idx + " #EnemyBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_ENEMY)); + cmd.set(idx + " #AllyBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_ALLY)); + cmd.set(idx + " #AcceptBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_ACCEPT)); + cmd.set(idx + " #DeclineBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_DECLINE)); + cmd.set(idx + " #CancelBtn.Text", HFMessages.get(playerRef, MessageKeys.RelationsGui.BTN_CANCEL)); + // === Header info === cmd.set(idx + " #FactionName.Text", item.factionName); cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.GuiCommon.LEADER_LABEL, item.leaderName)); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index d6bbb1b4..f5a06a60 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1074,6 +1074,18 @@ public static final class RelationsGui { public static final String NO_RESULTS = "hyperfactions_gui.relations.no_results"; public static final String POWER_DISPLAY = "hyperfactions_gui.relations.power_display"; public static final String MEMBER_COUNT_DISPLAY = "hyperfactions_gui.relations.member_count"; + public static final String LABEL_MEMBERS = "hyperfactions_gui.relations.label_members"; + public static final String LABEL_POWER = "hyperfactions_gui.relations.label_power"; + public static final String LABEL_SINCE = "hyperfactions_gui.relations.label_since"; + public static final String LABEL_CLAIMS = "hyperfactions_gui.relations.label_claims"; + public static final String LABEL_DIRECTION = "hyperfactions_gui.relations.label_direction"; + public static final String BTN_VIEW = "hyperfactions_gui.relations.btn_view"; + public static final String BTN_NEUTRAL = "hyperfactions_gui.relations.btn_neutral"; + public static final String BTN_ENEMY = "hyperfactions_gui.relations.btn_enemy"; + public static final String BTN_ALLY = "hyperfactions_gui.relations.btn_ally"; + public static final String BTN_ACCEPT = "hyperfactions_gui.relations.btn_accept"; + public static final String BTN_DECLINE = "hyperfactions_gui.relations.btn_decline"; + public static final String BTN_CANCEL = "hyperfactions_gui.relations.btn_cancel"; private RelationsGui() {} } @@ -1509,6 +1521,10 @@ public static final class InvitesGui { public static final String TIME_SECONDS = "hyperfactions_gui.invites.time_seconds"; public static final String TIME_MINUTES = "hyperfactions_gui.invites.time_minutes"; public static final String TIME_HOURS = "hyperfactions_gui.invites.time_hours"; + public static final String LABEL_MESSAGE = "hyperfactions_gui.invites.label_message"; + public static final String BTN_CANCEL = "hyperfactions_gui.invites.btn_cancel"; + public static final String BTN_ACCEPT = "hyperfactions_gui.invites.btn_accept"; + public static final String BTN_DECLINE = "hyperfactions_gui.invites.btn_decline"; private InvitesGui() {} } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invite_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invite_entry.ui index 8d66b25d..ddad2af2 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invite_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_invite_entry.ui @@ -97,7 +97,7 @@ Group { LayoutMode: Left; Anchor: (Height: 18, Bottom: 6); - Label { + Label #MessageLabel { Text: "Message:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 70); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relation_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relation_entry.ui index 37db0a44..a44c8e44 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relation_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_relation_entry.ui @@ -64,7 +64,7 @@ Group { Style: (FontSize: 12, TextColor: #888888, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #MemberLabel { Text: "members"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -81,7 +81,7 @@ Group { Style: (FontSize: 12, TextColor: #44CC44, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 18); } - Label { + Label #PowerLabel { Text: "power"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center, HorizontalAlignment: Center); Anchor: (Height: 14); @@ -122,7 +122,7 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #SinceLabel { Text: "Since:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); Anchor: (Width: 50); @@ -133,10 +133,10 @@ Group { Anchor: (Width: 100); } - Label { + Label #ClaimsLabel { Text: "Claims:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 50); + Anchor: (Width: 55); } Label #ClaimsValue { Text: "0"; @@ -150,10 +150,10 @@ Group { LayoutMode: Left; Anchor: (Height: 20, Bottom: 4); - Label { + Label #DirectionLabel { Text: "Direction:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 65); + Anchor: (Width: 70); } Label #DirectionValue { Text: "Incoming"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index 95913ea8..aa17cc9a 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -297,6 +297,18 @@ relations.search_hint = Search for a faction to set relation relations.no_results = No factions found matching '{0}' relations.power_display = {0} power relations.member_count = {0} members +relations.label_members = members +relations.label_power = power +relations.label_since = Since: +relations.label_claims = Claims: +relations.label_direction = Direction: +relations.btn_view = View +relations.btn_neutral = Neutral +relations.btn_enemy = Enemy +relations.btn_ally = Ally +relations.btn_accept = Accept +relations.btn_decline = Decline +relations.btn_cancel = Cancel # ========== Settings Page ========== settings.title = Faction Settings @@ -676,6 +688,10 @@ invites.request_declined = Declined join request from {0}. invites.time_seconds = {0}s invites.time_minutes = {0}m invites.time_hours = {0}h +invites.label_message = Message: +invites.btn_cancel = Cancel +invites.btn_accept = Accept +invites.btn_decline = Decline # ========== Map Page ========== map.title = Territory Map diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index 8bb206d7..a0ba35f1 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -297,6 +297,18 @@ relations.search_hint = Busca una faccion para establecer relacion relations.no_results = No se encontraron facciones con '{0}' relations.power_display = {0} poder relations.member_count = {0} miembros +relations.label_members = miembros +relations.label_power = poder +relations.label_since = Desde: +relations.label_claims = Reclamos: +relations.label_direction = Direccion: +relations.btn_view = Ver +relations.btn_neutral = Neutral +relations.btn_enemy = Enemigo +relations.btn_ally = Aliado +relations.btn_accept = Aceptar +relations.btn_decline = Rechazar +relations.btn_cancel = Cancelar # ========== Pagina de Ajustes ========== settings.title = Ajustes de Faccion @@ -676,6 +688,10 @@ invites.request_declined = Solicitud de ingreso de {0} rechazada. invites.time_seconds = {0}s invites.time_minutes = {0}m invites.time_hours = {0}h +invites.label_message = Mensaje: +invites.btn_cancel = Cancelar +invites.btn_accept = Aceptar +invites.btn_decline = Rechazar # ========== Pagina del Mapa ========== map.title = Mapa de Territorio From 2b6a71358cc10c0a3f093059634045cf85f9ab3d Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 13:53:56 -0700 Subject: [PATCH 51/76] feat(i18n): localize all hardcoded Java strings in GUI pages Replace hardcoded English strings with HFMessages.get() calls: - FactionPageOpener: "Treasury is not available." (5 occurrences) - AdminPageOpener: "Economy system is not enabled." (3 occurrences) - AdminFactionInfoPage: "+N more" officer list truncation - FactionDashboardPage: "in " upkeep time prefix - AdminVersionPage: "Unknown" fallbacks - AdminActivityLogPage: "1h"/"24h"/"7d"/"All" time filter labels - CreateZoneWizardPage: "circular"/"square" shape names - ZoneChangeTypeModalPage: "flags reset"/"flags kept" Add 14 new MessageKeys constants and en-US/es-ES lang entries. --- .../com/hyperfactions/gui/AdminPageOpener.java | 7 ++++--- .../com/hyperfactions/gui/FactionPageOpener.java | 11 ++++++----- .../gui/admin/page/AdminActivityLogPage.java | 16 ++++++++-------- .../gui/admin/page/AdminFactionInfoPage.java | 2 +- .../gui/admin/page/AdminVersionPage.java | 5 +++-- .../gui/admin/page/CreateZoneWizardPage.java | 2 +- .../gui/admin/page/ZoneChangeTypeModalPage.java | 2 +- .../gui/faction/page/FactionDashboardPage.java | 2 +- .../java/com/hyperfactions/util/MessageKeys.java | 13 +++++++++++++ .../Languages/en-US/hyperfactions_admin.lang | 10 ++++++++++ .../Languages/en-US/hyperfactions_gui.lang | 2 ++ .../Languages/es-ES/hyperfactions_admin.lang | 10 ++++++++++ .../Languages/es-ES/hyperfactions_gui.lang | 2 ++ 13 files changed, 62 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/AdminPageOpener.java b/src/main/java/com/hyperfactions/gui/AdminPageOpener.java index cadda709..42461b9e 100644 --- a/src/main/java/com/hyperfactions/gui/AdminPageOpener.java +++ b/src/main/java/com/hyperfactions/gui/AdminPageOpener.java @@ -2,6 +2,7 @@ import com.hyperfactions.HyperFactions; import com.hyperfactions.Permissions; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.data.FactionRole; @@ -310,7 +311,7 @@ public void openAdminEconomy(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Economy system is not enabled.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ECON_NOT_ENABLED)); return; } PageManager pageManager = player.getPageManager(); @@ -343,7 +344,7 @@ public void openAdminEconomyAdjust(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Economy system is not enabled.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ECON_NOT_ENABLED)); return; } PageManager pageManager = player.getPageManager(); @@ -371,7 +372,7 @@ public void openAdminBulkEconomy(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Economy system is not enabled.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.AdminGui.ECON_NOT_ENABLED)); return; } PageManager pageManager = player.getPageManager(); diff --git a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java index 03a6fe95..dc0cef77 100644 --- a/src/main/java/com/hyperfactions/gui/FactionPageOpener.java +++ b/src/main/java/com/hyperfactions/gui/FactionPageOpener.java @@ -2,6 +2,7 @@ import com.hyperfactions.HyperFactions; import com.hyperfactions.Permissions; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.data.Faction; import com.hyperfactions.data.FactionMember; import com.hyperfactions.data.FactionRole; @@ -730,7 +731,7 @@ public void openFactionTreasury(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Treasury is not available.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.GuiCommon.TREASURY_NOT_AVAILABLE)); return; } PageManager pageManager = player.getPageManager(); @@ -766,7 +767,7 @@ public void openTreasuryDepositModal(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Treasury is not available.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.GuiCommon.TREASURY_NOT_AVAILABLE)); return; } var page = new TreasuryDepositModalPage(playerRef, guiManager.getFactionManager().get(), econ, @@ -787,7 +788,7 @@ public void openTreasuryTransferSearch(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Treasury is not available.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.GuiCommon.TREASURY_NOT_AVAILABLE)); return; } var page = new TreasuryTransferSearchPage(playerRef, guiManager.getFactionManager().get(), econ, @@ -809,7 +810,7 @@ public void openTreasuryTransferConfirm(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Treasury is not available.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.GuiCommon.TREASURY_NOT_AVAILABLE)); return; } var page = new TreasuryTransferConfirmPage(playerRef, guiManager.getFactionManager().get(), econ, @@ -830,7 +831,7 @@ public void openTreasurySettings(Player player, Ref ref, try { EconomyManager econ = guiManager.getPlugin().get().getEconomyManager(); if (econ == null) { - player.sendMessage(com.hyperfactions.util.MessageUtil.errorText("Treasury is not available.")); + player.sendMessage(com.hyperfactions.util.MessageUtil.errorText(playerRef, MessageKeys.GuiCommon.TREASURY_NOT_AVAILABLE)); return; } var page = new TreasurySettingsPage(playerRef, guiManager.getFactionManager().get(), econ, guiManager, faction); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java index 2ae1ca72..f067e5ac 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminActivityLogPage.java @@ -64,17 +64,17 @@ private record GlobalLogEntry( ) {} private enum TimeFilter { - HOUR_1("1h", 3600_000L), - HOUR_24("24h", 86400_000L), - DAY_7("7d", 604800_000L), - ALL("All", Long.MAX_VALUE); + HOUR_1(MessageKeys.AdminGui.LOG_TIME_1H, 3600_000L), + HOUR_24(MessageKeys.AdminGui.LOG_TIME_24H, 86400_000L), + DAY_7(MessageKeys.AdminGui.LOG_TIME_7D, 604800_000L), + ALL(MessageKeys.AdminGui.LOG_TIME_ALL, Long.MAX_VALUE); - private final String displayName; + private final String messageKey; private final long millis; - TimeFilter(String displayName, long millis) { - this.displayName = displayName; + TimeFilter(String messageKey, long millis) { + this.messageKey = messageKey; this.millis = millis; } } @@ -144,7 +144,7 @@ private void buildLogList(UICommandBuilder cmd, UIEventBuilder events) { // Time filter dropdown List timeOptions = new ArrayList<>(); for (TimeFilter tf : TimeFilter.values()) { - timeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(tf.displayName), tf.name())); + timeOptions.add(new DropdownEntryInfo(LocalizableString.fromString(HFMessages.get(playerRef, tf.messageKey)), tf.name())); } cmd.set("#TimeDropdown.Entries", timeOptions); cmd.set("#TimeDropdown.Value", timeFilter.name()); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java index 1a0d8c0a..affdaaa3 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionInfoPage.java @@ -191,7 +191,7 @@ public void build(Ref ref, UICommandBuilder cmd, .limit(3) .collect(Collectors.joining(", ")); if (officers.size() > 3) { - officerNames += " +" + (officers.size() - 3) + " more"; + officerNames += " " + HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_INFO_MORE, officers.size() - 3); } cmd.set("#OfficersValue.Text", officerNames); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java index c2074ea7..fe97518a 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminVersionPage.java @@ -80,9 +80,10 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#FactionsVersion.Text", "v" + HyperFactions.VERSION); String serverVersion = ManifestUtil.getVersion(); - cmd.set("#ServerVersion.Text", serverVersion != null ? serverVersion : "Unknown"); + cmd.set("#ServerVersion.Text", serverVersion != null ? serverVersion : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); - cmd.set("#JavaVersion.Text", System.getProperty("java.version", "Unknown")); + String javaVersion = System.getProperty("java.version"); + cmd.set("#JavaVersion.Text", javaVersion != null ? javaVersion : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN)); // --- Permissions --- setStatus(cmd, "#HyperPermsStatus", HyperPermsIntegration.isAvailable(), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_ACTIVE), HFMessages.get(playerRef, MessageKeys.AdminGui.VER_NOT_FOUND)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java index 314910ad..6f61361d 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java @@ -528,7 +528,7 @@ private void handleCreate(Player player, Ref ref, Store 0) { - player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_CLAIMED, "#44cc44", claimed, (circle ? "circular" : "square"), radius)); + player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_CLAIMED, "#44cc44", claimed, HFMessages.get(playerRef, circle ? MessageKeys.AdminGui.SHAPE_CIRCULAR : MessageKeys.AdminGui.SHAPE_SQUARE), radius)); newZone = zoneManager.getZoneById(newZone.id()); } else { player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.WIZ_RADIUS_NO_CLAIMS, MessageUtil.COLOR_GOLD)); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java index b021ab8f..e24c79bb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/ZoneChangeTypeModalPage.java @@ -188,7 +188,7 @@ private void handleTypeChange(Player player, Ref ref, Store 0) { long intervalMs = ConfigManager.get().getUpkeepIntervalHours() * 3600_000L; long remaining = Math.max(0, (fEcon.lastUpkeepTimestamp() + intervalMs) - System.currentTimeMillis()); - cmd.set("#PerCycleLabel.Text", "in " + com.hyperfactions.economy.UpkeepProcessor.formatDuration(remaining)); + cmd.set("#PerCycleLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.UPKEEP_IN, com.hyperfactions.economy.UpkeepProcessor.formatDuration(remaining))); } else { cmd.set("#PerCycleLabel.Text", HFMessages.get(playerRef, MessageKeys.DashboardGui.BILLABLE_CHUNKS, billableChunks)); } diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index f5a06a60..f8b559cb 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -828,6 +828,7 @@ public static final class DashboardGui { public static final String NO_HOME_HINT = "hyperfactions_gui.dashboard.no_home_hint"; public static final String CHAT_MODE_SET = "hyperfactions_gui.dashboard.chat_mode_set"; public static final String CLAIM_SUCCESS = "hyperfactions_gui.dashboard.claim_success"; + public static final String UPKEEP_IN = "hyperfactions_gui.dashboard.upkeep_in"; private DashboardGui() {} } @@ -845,6 +846,8 @@ public static final class GuiCommon { public static final String PREV = "hyperfactions_gui.common.prev"; public static final String NEXT = "hyperfactions_gui.common.next"; + public static final String TREASURY_NOT_AVAILABLE = "hyperfactions_gui.common.treasury_not_available"; + private GuiCommon() {} } @@ -1782,6 +1785,14 @@ public static final class AdminGui { public static final String PLR_KICKED_SUCCESS = "hyperfactions_admin.playerinfo.kicked_success"; public static final String PLR_KICKED_LEADER = "hyperfactions_admin.playerinfo.kicked_leader"; public static final String PLR_DISBANDED_KICK = "hyperfactions_admin.playerinfo.disbanded_kick"; + public static final String ECON_NOT_ENABLED = "hyperfactions_admin.gui.econ_not_enabled"; + public static final String GUI_INFO_MORE = "hyperfactions_admin.gui.info_more"; + public static final String LOG_TIME_1H = "hyperfactions_admin.gui.log_time_1h"; + public static final String LOG_TIME_24H = "hyperfactions_admin.gui.log_time_24h"; + public static final String LOG_TIME_7D = "hyperfactions_admin.gui.log_time_7d"; + public static final String LOG_TIME_ALL = "hyperfactions_admin.gui.log_time_all"; + public static final String SHAPE_CIRCULAR = "hyperfactions_admin.gui.shape_circular"; + public static final String SHAPE_SQUARE = "hyperfactions_admin.gui.shape_square"; // Economy public static final String ECON_NO_DATA = "hyperfactions_admin.economy.no_data"; public static final String ECON_AMOUNT_ZERO = "hyperfactions_admin.economy.amount_zero"; @@ -1828,6 +1839,8 @@ public static final class AdminGui { public static final String ZTYPE_ZONE_GONE = "hyperfactions_admin.zone_type.zone_gone"; public static final String ZTYPE_CHANGED = "hyperfactions_admin.zone_type.changed"; public static final String ZTYPE_FAILED = "hyperfactions_admin.zone_type.failed"; + public static final String ZTYPE_FLAGS_RESET = "hyperfactions_admin.zone_type.flags_reset"; + public static final String ZTYPE_FLAGS_KEPT = "hyperfactions_admin.zone_type.flags_kept"; // Zone integration flags public static final String ZINT_ZONE_NOT_FOUND = "hyperfactions_admin.zone_int.zone_not_found"; public static final String ZINT_NO_PLUGIN = "hyperfactions_admin.zone_int.no_plugin"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 01654007..80edb943 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -184,6 +184,8 @@ zone_rename.rename_failed = Failed to rename zone: {0} zone_type.zone_gone = Zone no longer exists. zone_type.changed = [Admin] Changed {0} from {1} to {2} ({3}). zone_type.failed = Failed to change zone type: {0} +zone_type.flags_reset = flags reset +zone_type.flags_kept = flags kept # ========== Zone Integration Flags ========== zone_int.zone_not_found = Zone Not Found @@ -510,6 +512,14 @@ gui.mem_btn_teleport = Teleport gui.mem_btn_promote = Promote gui.mem_btn_demote = Demote gui.mem_btn_kick = Kick +gui.econ_not_enabled = Economy system is not enabled. +gui.info_more = +{0} more +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7d +gui.log_time_all = All +gui.shape_circular = circular +gui.shape_square = square # Faction info labels gui.fac_description = Description diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index aa17cc9a..fa850639 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -155,6 +155,7 @@ dashboard.time_days = {0}d ago dashboard.no_home_hint = Your faction has no home set. Ask an officer to set one. dashboard.chat_mode_set = Chat mode: {0} dashboard.claim_success = Claimed chunk at ({0}, {1}) +dashboard.upkeep_in = in {0} # ========== Faction Main Page ========== main.no_faction = No Faction @@ -176,6 +177,7 @@ common.search = Search: common.sort = Sort: common.prev = < Prev common.next = Next > +common.treasury_not_available = Treasury is not available. # ========== Members Page ========== members.title = Members diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 5dfd1fcc..7c4a9b34 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -184,6 +184,8 @@ zone_rename.rename_failed = No se pudo renombrar la zona: {0} zone_type.zone_gone = La zona ya no existe. zone_type.changed = [Admin] {0} cambiada de {1} a {2} ({3}). zone_type.failed = No se pudo cambiar el tipo de zona: {0} +zone_type.flags_reset = flags reiniciados +zone_type.flags_kept = flags conservados # ========== Flags de Integracion de Zona ========== zone_int.zone_not_found = Zona No Encontrada @@ -510,6 +512,14 @@ gui.mem_btn_teleport = Teletransportar gui.mem_btn_promote = Promover gui.mem_btn_demote = Degradar gui.mem_btn_kick = Expulsar +gui.econ_not_enabled = El sistema de economia no esta habilitado. +gui.info_more = +{0} mas +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7d +gui.log_time_all = Todos +gui.shape_circular = circular +gui.shape_square = cuadrado # Etiquetas de info de faccion gui.fac_description = Descripcion diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index a0ba35f1..ec5bcce6 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -155,6 +155,7 @@ dashboard.time_days = hace {0}d dashboard.no_home_hint = Tu faccion no tiene hogar. Pide a un oficial que lo establezca. dashboard.chat_mode_set = Modo de chat: {0} dashboard.claim_success = Chunk reclamado en ({0}, {1}) +dashboard.upkeep_in = en {0} # ========== Pagina Principal de Faccion ========== main.no_faction = Sin Faccion @@ -176,6 +177,7 @@ common.search = Buscar: common.sort = Orden: common.prev = < Anterior common.next = Siguiente > +common.treasury_not_available = La tesoreria no esta disponible. # ========== Pagina de Miembros ========== members.title = Miembros From 073e8acba1e5a2fc6912a5ffaf541ae27af285b1 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 14:06:41 -0700 Subject: [PATCH 52/76] feat(i18n): localize admin nav bar title and economy entry buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wire cmd.set() for Admin Panel title in AdminNavBarHelper and Adjust/Info button text in AdminEconomyPage entries. Add 3 new MessageKeys constants and en-US/es-ES lang entries. Stage 5 (new player pages) already fully localized — no changes needed. --- .../java/com/hyperfactions/gui/admin/AdminNavBarHelper.java | 5 ++++- .../com/hyperfactions/gui/admin/page/AdminEconomyPage.java | 4 ++++ src/main/java/com/hyperfactions/util/MessageKeys.java | 3 +++ .../Server/Languages/en-US/hyperfactions_admin.lang | 3 +++ .../Server/Languages/es-ES/hyperfactions_admin.lang | 3 +++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java b/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java index 0f208b11..cc0237d9 100644 --- a/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java +++ b/src/main/java/com/hyperfactions/gui/admin/AdminNavBarHelper.java @@ -2,6 +2,8 @@ import com.hyperfactions.gui.GuiManager; import com.hyperfactions.gui.UIPaths; +import com.hyperfactions.util.HFMessages; +import com.hyperfactions.util.MessageKeys; import com.hyperfactions.gui.admin.data.AdminNavAwareData; import com.hyperfactions.gui.shared.NavBarUtil; import com.hypixel.hytale.component.Ref; @@ -49,7 +51,8 @@ public static void setupBar( } // Nav bar is included in UI templates via $Nav.@HyperFactionsAdminNavBar - // We just set up the dynamic content here + // Localize the nav bar title + cmd.set("#AdminNavBarTitleLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NAV_TITLE)); // Create admin nav cards container and build buttons using shared utility cmd.appendInline("#HyperFactionsAdminNavBar #AdminNavBarButtons", "Group #AdminNavCards { LayoutMode: Left; }"); diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java index 32da0bbb..273fc261 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminEconomyPage.java @@ -227,6 +227,10 @@ private void buildFactionList(UICommandBuilder cmd, UIEventBuilder events) { cmd.set(sel + " #Balance.Text", economyManager.formatCurrencyCompact(entry.economy.balance())); cmd.set(sel + " #MemberCount.Text", String.valueOf(entry.faction.getMemberCount())); + // Localize entry buttons + cmd.set(sel + " #AdjustBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_BTN_ADJUST)); + cmd.set(sel + " #ViewBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_ECON_BTN_INFO)); + // Upkeep status indicator if (com.hyperfactions.config.ConfigManager.get().isUpkeepEnabled()) { cmd.set(sel + " #UpkeepDot.Visible", true); diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index f8b559cb..bf9c9a42 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -1694,6 +1694,9 @@ public static final class AdminGui { public static final String MEMBERS_SUFFIX = "hyperfactions_admin.common.members_suffix"; public static final String CLAIMS_SUFFIX = "hyperfactions_admin.common.claims_suffix"; public static final String FACTIONS_SUFFIX = "hyperfactions_admin.common.factions_suffix"; + public static final String NAV_TITLE = "hyperfactions_admin.gui.nav_title"; + public static final String GUI_ECON_BTN_ADJUST = "hyperfactions_admin.gui.econ_btn_adjust"; + public static final String GUI_ECON_BTN_INFO = "hyperfactions_admin.gui.econ_btn_info"; public static final String PLAYERS_SUFFIX = "hyperfactions_admin.common.players_suffix"; public static final String CHUNKS_SUFFIX = "hyperfactions_admin.common.chunks_suffix"; public static final String ENTRIES_SUFFIX = "hyperfactions_admin.common.entries_suffix"; diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 80edb943..40599147 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -520,6 +520,9 @@ gui.log_time_7d = 7d gui.log_time_all = All gui.shape_circular = circular gui.shape_square = square +gui.nav_title = Admin Panel +gui.econ_btn_adjust = Adjust +gui.econ_btn_info = Info # Faction info labels gui.fac_description = Description diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 7c4a9b34..4378eb78 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -520,6 +520,9 @@ gui.log_time_7d = 7d gui.log_time_all = Todos gui.shape_circular = circular gui.shape_square = cuadrado +gui.nav_title = Panel de Admin +gui.econ_btn_adjust = Ajustar +gui.econ_btn_info = Info # Etiquetas de info de faccion gui.fac_description = Descripcion From 3efaa516f53482947536eb14d558113eebb411d0 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 15:32:49 -0700 Subject: [PATCH 53/76] feat(i18n): localize remaining hardcoded fallbacks and format strings Replace all "Unknown", "None", "world", "another zone" fallbacks with localized equivalents across admin and player GUI pages. Localize treasury upkeep cost format ("every Nh") and time-left display strings. --- .../gui/admin/page/AdminFactionMembersPage.java | 2 +- .../gui/admin/page/AdminFactionRelationsPage.java | 10 +++++----- .../hyperfactions/gui/admin/page/AdminPlayersPage.java | 2 +- .../hyperfactions/gui/admin/page/AdminZoneMapPage.java | 4 ++-- .../gui/admin/page/CreateZoneWizardPage.java | 2 +- .../hyperfactions/gui/faction/page/ChunkMapPage.java | 4 ++-- .../gui/faction/page/FactionInvitesPage.java | 2 +- .../gui/faction/page/FactionMembersPage.java | 2 +- .../hyperfactions/gui/faction/page/TreasuryPage.java | 4 ++-- .../gui/newplayer/page/NewPlayerBrowsePage.java | 2 +- .../gui/newplayer/page/NewPlayerMapPage.java | 2 +- src/main/java/com/hyperfactions/util/MessageKeys.java | 5 +++++ .../Server/Languages/en-US/hyperfactions.lang | 1 + .../Server/Languages/en-US/hyperfactions_admin.lang | 1 + .../Server/Languages/en-US/hyperfactions_gui.lang | 2 ++ .../Server/Languages/es-ES/hyperfactions.lang | 1 + .../Server/Languages/es-ES/hyperfactions_admin.lang | 1 + .../Server/Languages/es-ES/hyperfactions_gui.lang | 2 ++ 18 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java index f6e4df09..335aeb96 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionMembersPage.java @@ -238,7 +238,7 @@ public void handleDataEvent(Ref ref, Store store, Admi case "Promote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { FactionRole newRole = member.role() == FactionRole.MEMBER ? FactionRole.OFFICER : FactionRole.LEADER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_PROMOTED, data.memberName != null ? data.memberName : "player", formatRole(newRole))); rebuildList(); } } } } case "Demote" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.MEMBER) { FactionRole newRole = member.role() == FactionRole.LEADER ? FactionRole.OFFICER : FactionRole.MEMBER; factionManager.adminSetMemberRole(factionId, memberUuid, newRole); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_DEMOTED, data.memberName != null ? data.memberName : "player", formatRole(newRole))); rebuildList(); } } } } case "Kick" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } Faction faction = factionManager.getFaction(factionId); if (faction != null) { FactionMember member = faction.getMember(memberUuid); if (member != null && member.role() != FactionRole.LEADER) { factionManager.adminRemoveMember(factionId, memberUuid); player.sendMessage(MessageUtil.adminSuccess(playerRef, MessageKeys.AdminGui.MEM_KICKED, data.memberName != null ? data.memberName : "player")); rebuildList(); } } } } - case "ViewPlayerInfo" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } String memberName = data.memberName != null ? data.memberName : "Unknown"; guiManager.openAdminPlayerInfo(player, ref, store, playerRef, memberUuid, memberName, factionId, AdminPlayerInfoPage.Origin.FACTION_MEMBERS); } } + case "ViewPlayerInfo" -> { if (data.memberUuid != null) { UUID memberUuid = UuidUtil.parseOrNull(data.memberUuid); if (memberUuid == null) { sendUpdate(); return; } String memberName = data.memberName != null ? data.memberName : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); guiManager.openAdminPlayerInfo(player, ref, store, playerRef, memberUuid, memberName, factionId, AdminPlayerInfoPage.Origin.FACTION_MEMBERS); } } default -> sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java index fce9ec1e..788fd702 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminFactionRelationsPage.java @@ -129,7 +129,7 @@ private void buildSetRelationSection(UICommandBuilder cmd, UIEventBuilder events cmd.append("#NeutralList", UIPaths.ADMIN_FACTION_RELATIONS_ENTRY); String idx = "#NeutralList[" + i + "]"; FactionMember leader = other.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); cmd.set(idx + " #FactionName.Text", other.name()); cmd.set(idx + " #LeaderName.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.LEADER_PREFIX, leaderName)); cmd.set(idx + " #DateEstablished.Text", ""); @@ -159,7 +159,7 @@ private List getRelationsOfType(Faction faction, RelationType tar Faction other = factionManager.getFaction(relation.targetFactionId()); if (other != null) { FactionMember leader = other.getLeader(); - String leaderName = leader != null ? leader.username() : "Unknown"; + String leaderName = leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); entries.add(new RelationEntry(other.id(), other.name(), leaderName, relation.since())); } } @@ -189,9 +189,9 @@ public void handleDataEvent(Ref ref, Store store, Admi } switch (data.button) { case "Back" -> guiManager.openAdminFactionInfo(player, ref, store, playerRef, factionId); - case "AdminSetAlly" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ALLY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_ALLY, MessageUtil.COLOR_BLUE, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } - case "AdminSetEnemy" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ENEMY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_SET_ENEMY, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } - case "AdminSetNeutral" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : "Unknown"; RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.NEUTRAL); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_NEUTRAL, "#888888", targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } + case "AdminSetAlly" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ALLY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_ALLY, MessageUtil.COLOR_BLUE, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } + case "AdminSetEnemy" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.ENEMY); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_SET_ENEMY, targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } + case "AdminSetNeutral" -> { if (data.targetFactionId != null) { UUID targetId = UuidUtil.parseOrNull(data.targetFactionId); if (targetId == null) { player.sendMessage(MessageUtil.errorText(playerRef, MessageKeys.AdminGui.INVALID_FACTION)); return; } Faction target = factionManager.getFaction(targetId); String targetName = target != null ? target.name() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); RelationManager.RelationResult result = relationManager.adminSetRelation(factionId, targetId, RelationType.NEUTRAL); if (result == RelationManager.RelationResult.SUCCESS) player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.REL_SET_NEUTRAL, "#888888", targetName)); else player.sendMessage(MessageUtil.adminError(playerRef, MessageKeys.AdminGui.REL_FAILED, result)); refresh(player, ref, store, playerRef); } } default -> sendUpdate(); } } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java index c6345262..2067957a 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayersPage.java @@ -528,7 +528,7 @@ public void handleDataEvent(Ref ref, Store store, sendUpdate(); return; } - String targetName = data.playerName != null ? data.playerName : "Unknown"; + String targetName = data.playerName != null ? data.playerName : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); // Find the player's faction for context UUID factionId = null; for (Faction faction : factionManager.getAllFactions()) { diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java index 21425b8c..40d520bb 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminZoneMapPage.java @@ -121,7 +121,7 @@ public void build(Ref ref, UICommandBuilder cmd, Player player = store.getComponent(ref, Player.getComponentType()); TransformComponent transform = store.getComponent(ref, TransformComponent.getComponentType()); World world = player != null ? player.getWorld() : null; - String worldName = world != null ? world.getName() : "world"; + String worldName = world != null ? world.getName() : HFMessages.get(playerRef, MessageKeys.Common.WORLD_FALLBACK); // Check if player is in the same world as the zone boolean sameWorld = zone.world().equals(worldName); @@ -499,7 +499,7 @@ public void handleDataEvent(Ref ref, Store store, case "OtherZone" -> { Zone otherZone = zoneManager.getZone(zoneWorld, data.chunkX, data.chunkZ); - String zoneName = otherZone != null ? otherZone.name() : "another zone"; + String zoneName = otherZone != null ? otherZone.name() : HFMessages.get(playerRef, MessageKeys.AdminGui.MAP_ANOTHER_ZONE); player.sendMessage(MessageUtil.text(playerRef, MessageKeys.AdminGui.MAP_CHUNK_BELONGS, MessageUtil.COLOR_GOLD, zoneName)); } diff --git a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java index 6f61361d..927c2219 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/CreateZoneWizardPage.java @@ -358,7 +358,7 @@ public void handleDataEvent(Ref ref, Store store, Player player = store.getComponent(ref, Player.getComponentType()); PlayerRef playerRef = store.getComponent(ref, PlayerRef.getComponentType()); World world = player != null ? player.getWorld() : null; - String worldName = world != null ? world.getName() : "world"; + String worldName = world != null ? world.getName() : HFMessages.get(playerRef, MessageKeys.Common.WORLD_FALLBACK); if (player == null || playerRef == null || data.button == null) { sendUpdate(); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java index 55b90c65..c0b70753 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/ChunkMapPage.java @@ -122,7 +122,7 @@ public void build(Ref ref, UICommandBuilder cmd, Player player = store.getComponent(ref, Player.getComponentType()); TransformComponent transform = store.getComponent(ref, TransformComponent.getComponentType()); World world = player != null ? player.getWorld() : null; - String worldName = world != null ? world.getName() : "world"; + String worldName = world != null ? world.getName() : HFMessages.get(playerRef, MessageKeys.Common.WORLD_FALLBACK); int playerChunkX = 0; int playerChunkZ = 0; @@ -545,7 +545,7 @@ public void handleDataEvent(Ref ref, Store store, Faction viewerFaction = factionManager.getPlayerFaction(playerRef.getUuid()); World world = player.getWorld(); - String worldName = world != null ? world.getName() : "world"; + String worldName = world != null ? world.getName() : HFMessages.get(playerRef, MessageKeys.Common.WORLD_FALLBACK); // Handle navigation - use new player nav when no faction if (viewerFaction != null) { diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java index 29c085a9..edf5143b 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionInvitesPage.java @@ -510,7 +510,7 @@ private void handleDeclineRequest(Player player, FactionPageData data) { } JoinRequest request = joinRequestManager.getRequest(faction.id(), targetUuid); - String playerName = request != null ? request.playerName() : "Unknown"; + String playerName = request != null ? request.playerName() : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); joinRequestManager.declineRequest(faction.id(), targetUuid); diff --git a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java index c4e80710..b1e202fa 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/FactionMembersPage.java @@ -496,7 +496,7 @@ public void handleDataEvent(Ref ref, Store store, sendUpdate(); return; } - String targetName = data.target != null ? data.target : "Unknown"; + String targetName = data.target != null ? data.target : HFMessages.get(playerRef, MessageKeys.Common.UNKNOWN); guiManager.openPlayerInfo(player, ref, store, playerRef, uuid, targetName, "members"); } } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java index edb65563..33553af2 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java @@ -191,7 +191,7 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, // Show chunk breakdown String chunkDetail = HFMessages.get(playerRef, MessageKeys.TreasuryGui.CHUNKS_DETAIL, Math.min(freeChunks, claimCount), billableChunks); - String costString = economyManager.formatCurrency(costPerCycle) + " every " + intervalHours + "h"; + String costString = HFMessages.get(playerRef, MessageKeys.TreasuryGui.UPKEEP_COST_FORMAT, economyManager.formatCurrency(costPerCycle), intervalHours); cmd.set("#UpkeepCost.Text", HFMessages.get(playerRef, MessageKeys.TreasuryGui.COST_LABEL, costString)); cmd.set("#UpkeepDetail.Text", chunkDetail); @@ -210,7 +210,7 @@ private void buildUpkeepSection(UICommandBuilder cmd, UIEventBuilder events, cmd.set("#UpkeepBar.Bar.Color", barColor); cmd.set("#UpkeepTimer.Text", remaining < 0 ? HFMessages.get(playerRef, MessageKeys.TreasuryGui.PENDING) - : formatDuration(remaining) + " left"); + : HFMessages.get(playerRef, MessageKeys.TreasuryGui.UPKEEP_TIME_LEFT, formatDuration(remaining))); boolean autoPay = economy != null && economy.upkeepAutoPay(); cmd.set("#AutoPayStatus.Text", autoPay diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java index 2293c969..638063f6 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerBrowsePage.java @@ -236,7 +236,7 @@ private List buildFactionEntryList() { stats.currentPower(), stats.maxPower(), faction.claims().size(), - leader != null ? leader.username() : "None", + leader != null ? leader.username() : HFMessages.get(playerRef, MessageKeys.Common.NONE), faction.open(), faction.description() )); diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java index af27b67f..c3e37e53 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java @@ -115,7 +115,7 @@ public void build(Ref ref, UICommandBuilder cmd, Player player = store.getComponent(ref, Player.getComponentType()); TransformComponent transform = store.getComponent(ref, TransformComponent.getComponentType()); World world = player != null ? player.getWorld() : null; - String worldName = world != null ? world.getName() : "world"; + String worldName = world != null ? world.getName() : HFMessages.get(playerRef, MessageKeys.Common.WORLD_FALLBACK); int playerChunkX = 0; int playerChunkZ = 0; diff --git a/src/main/java/com/hyperfactions/util/MessageKeys.java b/src/main/java/com/hyperfactions/util/MessageKeys.java index bf9c9a42..df0116a3 100644 --- a/src/main/java/com/hyperfactions/util/MessageKeys.java +++ b/src/main/java/com/hyperfactions/util/MessageKeys.java @@ -61,6 +61,7 @@ public static final class Common { public static final String LEAVE = "hyperfactions.common.leave"; public static final String TRANSFER = "hyperfactions.common.transfer"; public static final String DISBAND = "hyperfactions.common.disband"; + public static final String WORLD_FALLBACK = "hyperfactions.common.world_fallback"; private Common() {} } @@ -1310,6 +1311,9 @@ public static final class TreasuryGui { public static final String UPKEEP_SETTINGS = "hyperfactions_gui.treasury.upkeep_settings"; public static final String AUTO_PAY_UPKEEP = "hyperfactions_gui.treasury.auto_pay_upkeep"; public static final String BACK_BTN = "hyperfactions_gui.treasury.back_btn"; + // Upkeep format strings + public static final String UPKEEP_COST_FORMAT = "hyperfactions_gui.treasury.upkeep_cost_format"; + public static final String UPKEEP_TIME_LEFT = "hyperfactions_gui.treasury.upkeep_time_left"; private TreasuryGui() {} } @@ -1953,6 +1957,7 @@ public static final class AdminGui { public static final String MAP_CHUNK_BELONGS = "hyperfactions_admin.map.chunk_belongs"; public static final String MAP_CHUNK_FACTION = "hyperfactions_admin.map.chunk_faction"; public static final String MAP_CHUNK_PROTECTED = "hyperfactions_admin.map.chunk_protected"; + public static final String MAP_ANOTHER_ZONE = "hyperfactions_admin.map.another_zone"; // ========== GUI Label Keys (for .ui hardcoded text localization) ========== diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions.lang b/src/main/resources/Server/Languages/en-US/hyperfactions.lang index c9c9ab92..2fc0c45b 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions.lang @@ -22,6 +22,7 @@ common.back = Back common.leave = Leave common.transfer = Transfer common.disband = Disband +common.world_fallback = world common.yes = Yes common.no = No common.loading = Loading... diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang index 40599147..bb35ea86 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_admin.lang @@ -345,6 +345,7 @@ map.unclaim_failed = Failed to unclaim chunk: {0} map.chunk_belongs = This chunk belongs to {0}. map.chunk_faction = This chunk is claimed by a faction. map.chunk_protected = This chunk is in a protected region. +map.another_zone = another zone # ========== GUI Label Keys (for .ui hardcoded text localization) ========== diff --git a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang index fa850639..9f68570a 100644 --- a/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/en-US/hyperfactions_gui.lang @@ -445,6 +445,8 @@ treasury.no_limit_hint = Set to 0 for no limit treasury.upkeep_settings = UPKEEP SETTINGS treasury.auto_pay_upkeep = Auto-pay upkeep from treasury treasury.back_btn = Back +treasury.upkeep_cost_format = {0} every {1}h +treasury.upkeep_time_left = {0} left treasury.wallet_label = Your wallet: {0} treasury.treasury_label = Treasury balance: {0} treasury.chunks_detail = {0} free + {1} billable chunks diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang index 8f7d943b..0354cca2 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions.lang @@ -22,6 +22,7 @@ common.back = Volver common.leave = Salir common.transfer = Transferir common.disband = Disolver +common.world_fallback = mundo common.yes = Si common.no = No common.loading = Cargando... diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang index 4378eb78..605b811f 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_admin.lang @@ -345,6 +345,7 @@ map.unclaim_failed = No se pudo desreclamar el chunk: {0} map.chunk_belongs = Este chunk pertenece a {0}. map.chunk_faction = Este chunk esta reclamado por una faccion. map.chunk_protected = Este chunk esta en una region protegida. +map.another_zone = otra zona # ========== Claves de Etiquetas GUI (localizacion de texto en .ui) ========== diff --git a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang index ec5bcce6..6a730430 100644 --- a/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang +++ b/src/main/resources/Server/Languages/es-ES/hyperfactions_gui.lang @@ -445,6 +445,8 @@ treasury.no_limit_hint = Usar 0 para sin limite treasury.upkeep_settings = AJUSTES DE MANTENIMIENTO treasury.auto_pay_upkeep = Pago automatico de mantenimiento desde tesoreria treasury.back_btn = Volver +treasury.upkeep_cost_format = {0} cada {1}h +treasury.upkeep_time_left = {0} restante treasury.wallet_label = Tu billetera: {0} treasury.treasury_label = Saldo de tesoreria: {0} treasury.chunks_detail = {0} gratis + {1} chunks facturables From d7078dd73fc0f4a79d0c6c3df61d13ac09b8a2bf Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Wed, 11 Mar 2026 16:56:28 -0700 Subject: [PATCH 54/76] fix(i18n): resolve Spanish truncation, crashes, and missing translations across GUI - Widen label/button widths across admin pages for longer Spanish text: player info (Primera conexion, Ultima conexion, Set/Reset/SetMax buttons), sort labels (Ordenar:) on players/economy/zones/members pages, bypass state label (Desactivado) on dashboard, teleport button and last online label on player entries, lock hints on faction settings and create faction pages - Fix admin player info crash: replace CheckBoxWithLabel @Text (not dynamically settable) with empty checkbox + separate addressable labels for bypass toggles (Sin Perdida de Poder / Sin Decaimiento de Reclamos) - Widen admin player info container 720->780px for button space - Add lock hint Wrap:true and increased height for long Spanish text - Fix treasury column widths to fit Spanish type names (Transferencia) - Fix help table 4-column widths for longer Spanish headers - Add missing NOTE callout to es-ES combat/tagging.md (line count parity) - Remove unsupported mid-text color code from es-ES alliances table - Add i18n cmd.set() calls for new player map page legend labels --- .../gui/admin/page/AdminPlayerInfoPage.java | 6 +-- .../gui/faction/page/TreasuryPage.java | 8 ++-- .../gui/help/page/HelpMainPage.java | 4 +- .../gui/newplayer/page/NewPlayerMapPage.java | 15 ++++-- .../HyperFactions/admin/admin_dashboard.ui | 2 +- .../HyperFactions/admin/admin_economy.ui | 2 +- .../admin/admin_faction_members.ui | 2 +- .../admin/admin_faction_settings.ui | 6 +-- .../HyperFactions/admin/admin_player_entry.ui | 4 +- .../HyperFactions/admin/admin_player_info.ui | 46 +++++++++++-------- .../HyperFactions/admin/admin_players.ui | 2 +- .../Custom/HyperFactions/admin/admin_zones.ui | 2 +- .../HyperFactions/faction/faction_treasury.ui | 8 ++-- .../HyperFactions/faction/player_info.ui | 6 +-- .../HyperFactions/newplayer/create_faction.ui | 6 +-- .../Languages/es-ES/help/combat/tagging.md | 2 + .../es-ES/help/diplomacy/alliances.md | 2 +- 17 files changed, 72 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java index 019edf54..3924803c 100644 --- a/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java +++ b/src/main/java/com/hyperfactions/gui/admin/page/AdminPlayerInfoPage.java @@ -128,10 +128,10 @@ public void build(Ref ref, UICommandBuilder cmd, cmd.set("#KickBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_KICK_FROM_FACTION)); cmd.set("#BackBtn.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_BACK)); - // Localize bypass checkbox labels and no-faction label - cmd.set("#NoLossCheck #CheckBox.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_POWER_LOSS)); - cmd.set("#NoDecayCheck #CheckBox.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_CLAIM_DECAY)); + // Localize no-faction label and bypass checkbox labels cmd.set("#NoFactionLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.NO_FACTION)); + cmd.set("#NoLossLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_POWER_LOSS)); + cmd.set("#NoDecayLabel.Text", HFMessages.get(playerRef, MessageKeys.AdminGui.GUI_PLR_NO_CLAIM_DECAY)); buildContent(cmd, events); } diff --git a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java index 33553af2..e99d095b 100644 --- a/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java +++ b/src/main/java/com/hyperfactions/gui/faction/page/TreasuryPage.java @@ -347,10 +347,10 @@ private void buildTransactionLog(UICommandBuilder cmd, FactionEconomy economy) { cmd.appendInline("#TransactionList", "Group { LayoutMode: Left; Anchor: (Height: 22); Background: (Color: " + bgColor + "); Padding: (Left: 6, Right: 6); " - + "Label { Text: \"" + time + "\"; Style: (FontSize: 10, TextColor: #666666); Anchor: (Width: 100); } " - + "Label { Text: \"" + typeName + "\"; Style: (FontSize: 10, TextColor: " + typeColor + "); Anchor: (Width: 100); } " - + "Label { Text: \"" + actorName + "\"; Style: (FontSize: 10, TextColor: #AAAAAA); Anchor: (Width: 90); } " - + "Label { Text: \"" + amountStr + "\"; Style: (FontSize: 10, TextColor: #FFFFFF); Anchor: (Width: 100); } " + + "Label { Text: \"" + time + "\"; Style: (FontSize: 10, TextColor: #666666); Anchor: (Width: 80); } " + + "Label { Text: \"" + typeName + "\"; Style: (FontSize: 10, TextColor: " + typeColor + "); Anchor: (Width: 155); } " + + "Label { Text: \"" + actorName + "\"; Style: (FontSize: 10, TextColor: #AAAAAA); Anchor: (Width: 75); } " + + "Label { Text: \"" + amountStr + "\"; Style: (FontSize: 10, TextColor: #FFFFFF); Anchor: (Width: 80); } " + "Label { Text: \"" + desc + "\"; Style: (FontSize: 10, TextColor: #555555); FlexWeight: 1; } " + "}"); } diff --git a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java index 1364650e..5958e520 100644 --- a/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java +++ b/src/main/java/com/hyperfactions/gui/help/page/HelpMainPage.java @@ -242,7 +242,7 @@ private void applyCellText(UICommandBuilder cmd, String rowSelector, private static int[] getColumnPixelWidths(int numCols) { return switch (numCols) { case 3 -> new int[]{170, 170, 280}; - case 4 -> new int[]{170, 85, 85, 270}; + case 4 -> new int[]{140, 140, 140, 190}; default -> new int[]{217, 400}; }; } @@ -251,7 +251,7 @@ private static int[] getColumnPixelWidths(int numCols) { private static int[] getColumnFixedWidths(int numCols) { return switch (numCols) { case 3 -> new int[]{170, 170}; - case 4 -> new int[]{170, 85, 85}; + case 4 -> new int[]{140, 140, 140}; default -> new int[]{217}; }; } diff --git a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java index c3e37e53..c04e5576 100644 --- a/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java +++ b/src/main/java/com/hyperfactions/gui/newplayer/page/NewPlayerMapPage.java @@ -136,11 +136,20 @@ public void build(Ref ref, UICommandBuilder cmd, // Setup navigation bar for new players (instead of faction nav bar) NewPlayerNavBarHelper.setupBar(playerRef, PAGE_ID, cmd, events); - // Update position info + // Localize static labels (title, position, legend) + cmd.set("#MapTitle.Text", HFMessages.get(playerRef, MessageKeys.MapGui.TITLE)); cmd.set("#PositionInfo.Text", HFMessages.get(playerRef, MessageKeys.MapGui.POSITION, playerChunkX, playerChunkZ)); - - // Update hint text for read-only mode cmd.set("#ActionHint.Text", HFMessages.get(playerRef, MessageKeys.NewPlayerGui.MAP_HINT)); + cmd.set("#LegendYourLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_YOUR)); + cmd.set("#LegendAllyLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_ALLY)); + cmd.set("#LegendEnemyLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_ENEMY)); + cmd.set("#LegendOtherLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_OTHER)); + if (!terrainEnabled) { + cmd.set("#LegendWildernessLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_WILDERNESS)); + } + cmd.set("#LegendSafeLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_SAFE)); + cmd.set("#LegendWarLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_WAR)); + cmd.set("#LegendYouLabel.Text", HFMessages.get(playerRef, MessageKeys.MapGui.LEGEND_YOU)); // Hide claim/power stats (not relevant for new players) cmd.set("#ClaimStats.Text", ""); diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui index 400d4ce3..3b1a60d1 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_dashboard.ui @@ -263,7 +263,7 @@ $C.@PageOverlay { Label #BypassState { Text: "Off"; Style: (FontSize: 14, TextColor: #FF5555, RenderBold: true, VerticalAlignment: Center); - Anchor: (Width: 80); + Anchor: (Width: 105); } TextButton #ToggleBypassBtn { Text: "Enable"; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui index 4144fa25..1f18e5cb 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_economy.ui @@ -187,7 +187,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 35); + Anchor: (Width: 65); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui index c60d8c1b..76be0d7d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_members.ui @@ -69,7 +69,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 50); + Anchor: (Width: 65); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui index aecdf49e..8e9aa31d 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_faction_settings.ui @@ -281,14 +281,14 @@ $C.@PageOverlay { // Lock hint Group { - Anchor: (Height: 22, Bottom: 6); + Anchor: (Height: 32, Bottom: 6); Background: (Color: #1a1a2a); - Padding: (Left: 8, Right: 8, Top: 0, Bottom: 0); + Padding: (Left: 8, Right: 8, Top: 4, Bottom: 4); LayoutMode: Left; Label #LockHint { Text: "Some options may be locked by the server and won't accept changes."; - Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center); + Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center, Wrap: true); FlexWeight: 1; } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui index d5514d6a..552c6fb8 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_entry.ui @@ -115,7 +115,7 @@ Group { Label #LastOnlineLabel { Text: "Last Online:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 70); + Anchor: (Width: 105); } Label #LastOnline { Text: "Unknown"; @@ -181,7 +181,7 @@ Group { } TextButton #TeleportBtn { Text: "Teleport"; - Anchor: (Height: 24, Width: 80, Right: 6); + Anchor: (Height: 24, Width: 110, Right: 6); Style: $S.@ButtonStyle; } Group { FlexWeight: 1; } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui index 78f7473c..1411f064 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_player_info.ui @@ -9,7 +9,7 @@ $C.@PageOverlay { $Nav.@HyperFactionsAdminNavBar #HyperFactionsAdminNavBar {} $C.@Container { - Anchor: (Width: 720, Height: 600); + Anchor: (Width: 780, Height: 600); #Title { $C.@Title #PageTitle { @@ -59,18 +59,18 @@ $C.@PageOverlay { Label #FirstJoinedLabel { Text: "First joined:"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 68); + Anchor: (Width: 108); } Label #FirstJoinedValue { Text: ""; Style: (FontSize: 9, TextColor: #AAAAAA, VerticalAlignment: Center); - Anchor: (Width: 120); + Anchor: (Width: 100); } Label #LastOnlineLabel { Text: "Last online:"; Style: (FontSize: 9, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 64); + Anchor: (Width: 104); } Label #LastOnlineValue { Text: ""; @@ -320,36 +320,36 @@ $C.@PageOverlay { TextButton #SubFive { Text: "-5"; - Anchor: (Height: 24, Width: 34, Right: 2); + Anchor: (Height: 24, Width: 30, Right: 2); Style: $S.@RedButtonStyle; } TextButton #SubOne { Text: "-1"; - Anchor: (Height: 24, Width: 34, Right: 3); + Anchor: (Height: 24, Width: 30, Right: 2); Style: $S.@RedButtonStyle; } $C.@TextField #PowerInput { - Anchor: (Height: 24, Width: 52, Right: 3); + Anchor: (Height: 24, Width: 46, Right: 2); Style: (FontSize: 11, TextColor: #FFFFFF); } TextButton #AddOne { Text: "+1"; - Anchor: (Height: 24, Width: 34, Right: 2); + Anchor: (Height: 24, Width: 30, Right: 2); Style: $S.@ButtonStyle; } TextButton #AddFive { Text: "+5"; - Anchor: (Height: 24, Width: 34, Right: 3); + Anchor: (Height: 24, Width: 30, Right: 2); Style: $S.@ButtonStyle; } TextButton #SetPowerBtn { Text: "Set"; - Anchor: (Height: 24, Width: 36, Right: 2); + Anchor: (Height: 24, Width: 78, Right: 2); Style: $S.@CyanButtonStyle; } TextButton #ResetPowerBtn { Text: "Reset"; - Anchor: (Height: 24, Width: 44); + Anchor: (Height: 24, Width: 68); Style: $S.@RedButtonStyle; } } @@ -365,17 +365,17 @@ $C.@PageOverlay { Anchor: (Width: 33); } $C.@TextField #MaxPowerInput { - Anchor: (Height: 24, Width: 56, Right: 3); + Anchor: (Height: 24, Width: 50, Right: 2); Style: (FontSize: 11, TextColor: #FFFFFF); } TextButton #SetMaxBtn { Text: "Set Max"; - Anchor: (Height: 24, Width: 58, Right: 2); + Anchor: (Height: 24, Width: 104, Right: 2); Style: $S.@CyanButtonStyle; } TextButton #ResetMaxBtn { Text: "Reset"; - Anchor: (Height: 24, Width: 44); + Anchor: (Height: 24, Width: 68); Style: $S.@RedButtonStyle; } } @@ -422,9 +422,14 @@ $C.@PageOverlay { Anchor: (Height: 26, Bottom: 3); $C.@CheckBoxWithLabel #NoLossCheck { - @Text = "Disable Power Loss"; + @Text = ""; @Checked = false; - Anchor: (Height: 22, Width: 175); + Anchor: (Height: 22, Width: 28); + } + Label #NoLossLabel { + Text: "Disable Power Loss"; + Style: (FontSize: 10, TextColor: #CCCCCC, VerticalAlignment: Center); + FlexWeight: 1; } } @@ -433,9 +438,14 @@ $C.@PageOverlay { Anchor: (Height: 26); $C.@CheckBoxWithLabel #NoDecayCheck { - @Text = "Disable Claim Decay"; + @Text = ""; @Checked = false; - Anchor: (Height: 22, Width: 175); + Anchor: (Height: 22, Width: 28); + } + Label #NoDecayLabel { + Text: "Disable Claim Decay"; + Style: (FontSize: 10, TextColor: #CCCCCC, VerticalAlignment: Center); + FlexWeight: 1; } } } diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui index 80638b8d..b8738828 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_players.ui @@ -55,7 +55,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 35); + Anchor: (Width: 65); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui index 59b763d9..1592afcf 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/admin/admin_zones.ui @@ -74,7 +74,7 @@ $C.@PageOverlay { Label #SortLabel { Text: "Sort:"; Style: (FontSize: 11, TextColor: #888888, VerticalAlignment: Center); - Anchor: (Width: 35); + Anchor: (Width: 65); } DropdownBox #SortDropdown { Style: $C.@DefaultDropdownBoxStyle; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui index 3709479e..bf3338f6 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/faction_treasury.ui @@ -385,22 +385,22 @@ $C.@PageOverlay { Label #ColDateLabel { Text: "Date"; Style: (FontSize: 10, TextColor: #555555); - Anchor: (Width: 100); + Anchor: (Width: 80); } Label #ColTypeLabel { Text: "Type"; Style: (FontSize: 10, TextColor: #555555); - Anchor: (Width: 100); + Anchor: (Width: 155); } Label #ColByLabel { Text: "By"; Style: (FontSize: 10, TextColor: #555555); - Anchor: (Width: 90); + Anchor: (Width: 75); } Label #ColAmountLabel { Text: "Amount"; Style: (FontSize: 10, TextColor: #555555); - Anchor: (Width: 100); + Anchor: (Width: 80); } Label #ColDetailsLabel { Text: "Details"; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui b/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui index 01c05df2..a6b607d0 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/faction/player_info.ui @@ -50,18 +50,18 @@ $C.@PageOverlay { Label #FirstJoinedLabel { Text: "First joined:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 75); + Anchor: (Width: 110); } Label #FirstJoinedValue { Text: ""; Style: (FontSize: 10, TextColor: #AAAAAA, VerticalAlignment: Center); - Anchor: (Width: 130); + Anchor: (Width: 110); } Label #LastOnlineLabel { Text: "Last online:"; Style: (FontSize: 10, TextColor: #666666, VerticalAlignment: Center); - Anchor: (Width: 70); + Anchor: (Width: 100); } Label #LastOnlineValue { Text: ""; diff --git a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui index 1c8b528e..3f9add62 100644 --- a/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui +++ b/src/main/resources/Common/UI/Custom/HyperFactions/newplayer/create_faction.ui @@ -170,14 +170,14 @@ $C.@PageOverlay { // Lock hint Group { - Anchor: (Height: 22, Bottom: 6); + Anchor: (Height: 32, Bottom: 6); Background: (Color: #1a1a2a); - Padding: (Left: 8, Right: 8, Top: 0, Bottom: 0); + Padding: (Left: 8, Right: 8, Top: 4, Bottom: 4); LayoutMode: Left; Label #LockHint { Text: "Some options may be locked by the server and won't accept changes."; - Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center); + Style: (FontSize: 9, TextColor: #555577, VerticalAlignment: Center, Wrap: true); FlexWeight: 1; } } diff --git a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md index b9dc61e5..46b88caf 100644 --- a/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/es-ES/help/combat/tagging.md @@ -24,4 +24,6 @@ Tus objetos caen donde te desconectaste y los enemigos pueden saquearlos. Siempr El temporizador de etiqueta de combate aparece en pantalla cuando entras en combate. Cada nuevo golpe lo reinicia a 15 segundos. Una vez que llega a cero, todas las restricciones se levantan. +>[!NOTE] Estos son valores predeterminados. El administrador de tu servidor puede haber configurado ajustes diferentes. + >[!TIP] Desvincularte y espera a que el temporizador termine si necesitas teletransportarte. diff --git a/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md index a9dfac40..2a89f468 100644 --- a/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/es-ES/help/diplomacy/alliances.md @@ -27,7 +27,7 @@ Cualquier lado puede terminar unilateralmente una alianza restableciendo la rela | Beneficio | Detalles | |-----------|----------| | **Sin fuego amigo** | Los jugadores aliados no pueden danarse entre si (cuando el dano entre aliados esta desactivado) | -| **Visibilidad compartida en mapa** | El territorio aliado se muestra en [#5555FF] azul en el mapa de territorio | +| **Visibilidad compartida en mapa** | El territorio aliado se muestra en azul en el mapa de territorio | | **Interaccion con territorio** | Los aliados pueden usar puertas, asientos y transporte en tu territorio por defecto | | **Chat de aliados** | Usa `/f c` para cambiar al modo de chat de aliados para comunicacion entre facciones | | **Proteccion contra sobrereclamacion** | Los aliados no pueden sobrereclamar el territorio del otro | From 4d152f582f52626fbec8bdb6034318c4cd94dd1e Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:12:45 -0700 Subject: [PATCH 55/76] i18n: add German (de-DE) translations Complete German translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/de-DE/help/combat/death.md | 39 + .../Languages/de-DE/help/combat/protection.md | 28 + .../de-DE/help/combat/spawn_protection.md | 27 + .../Languages/de-DE/help/combat/tagging.md | 29 + .../Languages/de-DE/help/combat/zones.md | 29 + .../de-DE/help/diplomacy/alliances.md | 45 + .../Languages/de-DE/help/diplomacy/enemies.md | 47 + .../de-DE/help/diplomacy/relations.md | 38 + .../Languages/de-DE/help/economy/commands.md | 27 + .../Languages/de-DE/help/economy/funds.md | 42 + .../Languages/de-DE/help/economy/treasury.md | 26 + .../Languages/de-DE/help/economy/upkeep.md | 37 + .../de-DE/help/power_land/claiming.md | 50 + .../de-DE/help/power_land/losing_territory.md | 50 + .../de-DE/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../de-DE/help/quick_ref/all_commands.md | 94 ++ .../de-DE/help/welcome/getting_started.md | 38 + .../de-DE/help/welcome/quick_tips.md | 44 + .../de-DE/help/welcome/what_are_factions.md | 37 + .../de-DE/help/your_faction/creating.md | 38 + .../de-DE/help/your_faction/joining.md | 36 + .../de-DE/help/your_faction/managing.md | 44 + .../de-DE/help/your_faction/roles.md | 44 + .../Server/Languages/de-DE/hyperfactions.lang | 453 +++++++++ .../Languages/de-DE/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/de-DE/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/death.md b/src/main/resources/Server/Languages/de-DE/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/protection.md b/src/main/resources/Server/Languages/de-DE/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md b/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/zones.md b/src/main/resources/Server/Languages/de-DE/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/commands.md b/src/main/resources/Server/Languages/de-DE/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/funds.md b/src/main/resources/Server/Languages/de-DE/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md b/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md b/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md b/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md b/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md b/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions.lang new file mode 100644 index 00000000..66d019a8 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Deutsche Übersetzungen +# Format: key = value (oder key = "quoted value") +# Hinweis: Schlüssel werden automatisch mit "hyperfactions." durch Hytales I18nModule vorangestellt +# Platzhalter: {0}, {1}, etc. + +# ========== Allgemein ========== +common.no_permission = Sie haben keine Berechtigung, das zu tun. +common.not_in_faction = Sie sind in keiner Fraktion. +common.already_in_faction = Sie sind bereits in einer Fraktion. +common.player_not_found = Spieler nicht gefunden. +common.faction_not_found = Fraktion nicht gefunden. +common.player_not_online = Dieser Spieler ist nicht online. +common.must_be_leader = Nur der Fraktionsanführer kann das tun. +common.must_be_officer = Sie müssen ein Offizier oder Anführer sein, um das zu tun. +common.combat_tagged = Sie können das nicht tun, während Sie im Kampf markiert sind. +common.cancel = Abbrechen +common.confirm = Bestätigen +common.save = Speichern +common.close = Schließen +common.clear = Leeren +common.back = Zurück +common.leave = Verlassen +common.transfer = Übertragen +common.disband = Auflösen +common.world_fallback = Welt +common.yes = Ja +common.no = Nein +common.loading = Laden... +common.online = Online +common.offline = Offline +common.enabled = Aktiviert +common.disabled = Deaktiviert +common.none = Keine +common.page = Seite {0} von {1} +common.unknown = Unbekannt +common.error_generic = Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut. +common.gui_fallback = GUI konnte nicht geöffnet werden. Verwenden Sie /f help für Befehle. +common.admin_prefix = [Admin] +common.location_error = Ihr Standort konnte nicht ermittelt werden. +common.world_error = Ihre Welt konnte nicht ermittelt werden. +common.invalid_id = Ungültige Fraktions-ID. +common.na = N/A + +# ========== Befehle - Erstellen ========== +cmd.create.no_permission = Sie haben keine Berechtigung, Fraktionen zu erstellen. +cmd.create.usage = Verwendung: /f create +cmd.create.success = Fraktion '{0}' erstellt! +cmd.create.already_in_named = Sie sind bereits in {0}. +cmd.create.use_leave_first = Verwenden Sie zuerst /f leave, wenn Sie eine neue Fraktion erstellen möchten. +cmd.create.name_taken = Dieser Fraktionsname ist bereits vergeben. +cmd.create.name_too_short = Fraktionsname ist zu kurz. +cmd.create.name_too_long = Fraktionsname ist zu lang. +cmd.create.failed = Fraktion konnte nicht erstellt werden. + +# ========== Befehle - Auflösen ========== +cmd.disband.no_permission = Sie haben keine Berechtigung, Fraktionen aufzulösen. +cmd.disband.not_leader = Nur der Fraktionsanführer kann auflösen. +cmd.disband.confirm_prompt = Sind Sie sicher, dass Sie Ihre Fraktion auflösen möchten? +cmd.disband.confirm_instruction = Geben Sie innerhalb von {0} Sekunden erneut /f disband --text ein, um zu bestätigen. +cmd.disband.success = Ihre Fraktion wurde aufgelöst. +cmd.disband.failed = Fraktion konnte nicht aufgelöst werden. +cmd.disband.cancelled = Vorherige Bestätigung abgebrochen. Geben Sie den Befehl erneut ein, um die Auflösung zu bestätigen. + +# ========== Befehle - Umbenennen ========== +cmd.rename.no_permission = Sie haben keine Berechtigung. +cmd.rename.not_leader = Nur der Anführer kann die Fraktion umbenennen. +cmd.rename.usage = Verwendung: /f rename +cmd.rename.too_short = Name ist zu kurz (min. {0} Zeichen). +cmd.rename.too_long = Name ist zu lang (max. {0} Zeichen). +cmd.rename.name_taken = Dieser Name ist bereits vergeben. +cmd.rename.success = Fraktion umbenannt zu {0}! +cmd.rename.broadcast = {0} hat die Fraktion in {1} umbenannt + +# ========== Befehle - Beschreibung ========== +cmd.desc.no_permission = Sie haben keine Berechtigung. +cmd.desc.not_officer = Sie müssen ein Offizier sein, um die Beschreibung festzulegen. +cmd.desc.set = Fraktionsbeschreibung festgelegt! +cmd.desc.cleared = Fraktionsbeschreibung gelöscht. + +# ========== Befehle - Öffnen / Schließen ========== +cmd.open.no_permission = Sie haben keine Berechtigung. +cmd.open.not_leader = Nur der Anführer kann diese Einstellung ändern. +cmd.open.already_open = Ihre Fraktion ist bereits offen. +cmd.open.success = Ihre Fraktion ist jetzt offen! Jeder kann mit /f join beitreten. +cmd.open.broadcast = {0} hat die Fraktion für öffentlichen Beitritt geöffnet. +cmd.close.no_permission = Sie haben keine Berechtigung. +cmd.close.not_leader = Nur der Anführer kann diese Einstellung ändern. +cmd.close.already_closed = Ihre Fraktion ist bereits geschlossen. +cmd.close.success = Ihre Fraktion ist jetzt nur auf Einladung zugänglich. +cmd.close.broadcast = {0} hat die Fraktion auf Einladung beschränkt. + +# ========== Befehle - Farbe ========== +cmd.color.no_permission = Sie haben keine Berechtigung. +cmd.color.not_officer = Sie müssen ein Offizier sein, um die Farbe zu ändern. +cmd.color.colors_disabled = Fraktionsfarben sind deaktiviert. +cmd.color.usage = Verwendung: /f color +cmd.color.usage_hint = Gültige Codes: 0-9, a-f oder #RRGGBB Hex +cmd.color.invalid = Ungültige Farbe. Verwenden Sie 0-9, a-f oder #RRGGBB. +cmd.color.success = Fraktionsfarbe aktualisiert! + +# ========== Befehle - Beanspruchen ========== +cmd.claim.no_permission = Sie haben keine Berechtigung, Territorium zu beanspruchen. +cmd.claim.already_yours = Ihre Fraktion besitzt diesen Chunk bereits. +cmd.claim.cannot_claim_ally = Sie können verbündetes Territorium nicht beanspruchen. +cmd.claim.already_claimed_hint = Dieser Chunk ist beansprucht. Verwenden Sie /f overclaim, wenn sie plünderbar sind. +cmd.claim.success = Chunk bei {0}, {1} beansprucht! +cmd.claim.not_officer = Sie müssen ein Offizier sein, um Land zu beanspruchen. +cmd.claim.already_claimed = Dieser Chunk ist bereits beansprucht. +cmd.claim.max_claims = Ihre Fraktion hat die maximale Anzahl an Gebietsansprüchen erreicht. Erhalten Sie mehr Macht! +cmd.claim.not_adjacent = Sie müssen angrenzend an bestehendes Territorium beanspruchen. +cmd.claim.world_not_allowed = Beanspruchung ist in dieser Welt nicht erlaubt. +cmd.claim.orbisguard = Dieses Gebiet ist durch OrbisGuard geschützt. +cmd.claim.zone_protected = Dieser Chunk befindet sich in einer SafeZone oder WarZone. +cmd.claim.insufficient_power = Ihre Fraktion hat nicht genug Macht, um mehr Land zu beanspruchen. +cmd.claim.failed = Chunk konnte nicht beansprucht werden. + +# ========== Befehle - Einladen ========== +cmd.invite.no_permission = Sie haben keine Berechtigung, Spieler einzuladen. +cmd.invite.not_officer = Sie müssen ein Offizier sein, um Spieler einzuladen. +cmd.invite.usage = Verwendung: /f invite +cmd.invite.player_not_found = Spieler '{0}' nicht gefunden oder offline. +cmd.invite.target_in_faction = Dieser Spieler ist bereits in einer Fraktion. +cmd.invite.sent = {0} zu Ihrer Fraktion eingeladen. +cmd.invite.received = Sie wurden eingeladen, {0} beizutreten! +cmd.invite.accept_hint = Geben Sie /f accept {0} ein, um beizutreten. + +# ========== Befehle - Annehmen / Beitreten ========== +cmd.join.no_permission = Sie haben keine Berechtigung, Fraktionen beizutreten. +cmd.join.already_in_named = Sie sind bereits in {0}. +cmd.join.use_leave_hint = Verwenden Sie zuerst /f leave, wenn Sie einer anderen Fraktion beitreten möchten. +cmd.join.no_invites = Sie haben keine ausstehenden Einladungen. +cmd.join.faction_not_found = Fraktion '{0}' nicht gefunden. +cmd.join.not_invited = Sie haben keine Einladung von dieser Fraktion. +cmd.join.faction_gone = Diese Fraktion existiert nicht mehr. +cmd.join.success = Sie sind {0} beigetreten! +cmd.join.broadcast = {0} ist der Fraktion beigetreten! +cmd.join.faction_full = Diese Fraktion ist voll. +cmd.join.failed = Beitritt zur Fraktion fehlgeschlagen. + +# ========== Befehle - Rauswerfen ========== +cmd.kick.no_permission = Sie haben keine Berechtigung, Mitglieder rauszuwerfen. +cmd.kick.usage = Verwendung: /f kick +cmd.kick.not_in_your_faction = Spieler '{0}' ist nicht in Ihrer Fraktion. +cmd.kick.success = {0} aus der Fraktion geworfen. +cmd.kick.broadcast = {0} wurde aus der Fraktion geworfen. +cmd.kick.kicked = Sie wurden aus der Fraktion geworfen. +cmd.kick.cannot_kick_higher = Sie haben keine Berechtigung, diesen Spieler rauszuwerfen. +cmd.kick.cannot_kick_leader = Sie können den Fraktionsanführer nicht rauswerfen. +cmd.kick.failed = Spieler konnte nicht rausgeworfen werden. + +# ========== Befehle - Verlassen ========== +cmd.leave.no_permission = Sie haben keine Berechtigung, Fraktionen zu verlassen. +cmd.leave.confirm_prompt = Sind Sie sicher, dass Sie Ihre Fraktion verlassen möchten? +cmd.leave.confirm_instruction = Geben Sie innerhalb von {0} Sekunden erneut /f leave --text ein, um zu bestätigen. +cmd.leave.success = Sie haben Ihre Fraktion verlassen. +cmd.leave.broadcast = {0} hat die Fraktion verlassen. +cmd.leave.failed = Verlassen der Fraktion fehlgeschlagen. +cmd.leave.cancelled = Vorherige Bestätigung abgebrochen. Geben Sie den Befehl erneut ein, um das Verlassen zu bestätigen. + +# ========== Befehle - Befördern / Degradieren / Übertragen ========== +cmd.rank.promote_no_permission = Sie haben keine Berechtigung, Mitglieder zu befördern. +cmd.rank.promote_usage = Verwendung: /f promote +cmd.rank.promoted = {0} zu {1} befördert! +cmd.rank.promote_broadcast = {0} wurde zu {1} befördert! +cmd.rank.already_highest = Weitere Beförderung nicht möglich. Verwenden Sie /f transfer, um den Anführer zu wechseln. +cmd.rank.promote_failed = Beförderung des Spielers fehlgeschlagen. +cmd.rank.demote_no_permission = Sie haben keine Berechtigung, Mitglieder zu degradieren. +cmd.rank.demote_usage = Verwendung: /f demote +cmd.rank.demoted = {0} zu {1} degradiert. +cmd.rank.demote_broadcast = {0} wurde zu {1} degradiert. +cmd.rank.already_lowest = Dieser Spieler ist bereits ein Mitglied. +cmd.rank.demote_failed = Degradierung des Spielers fehlgeschlagen. +cmd.rank.transfer_no_permission = Sie haben keine Berechtigung, die Führung zu übertragen. +cmd.rank.transfer_usage = Verwendung: /f transfer +cmd.rank.player_not_in_faction = Spieler nicht in Ihrer Fraktion gefunden. +cmd.rank.transfer_confirm = Sind Sie sicher, dass Sie die Führung an {0} übertragen möchten? +cmd.rank.transfer_confirm_instruction = Geben Sie innerhalb von {1} Sekunden erneut /f transfer {0} --text ein, um zu bestätigen. +cmd.rank.transferred = Führung an {0} übertragen! +cmd.rank.transfer_broadcast = {0} ist jetzt der Fraktionsanführer! +cmd.rank.transfer_failed = Übertragung der Führung fehlgeschlagen. +cmd.rank.transfer_cancelled = Vorherige Bestätigung abgebrochen. Geben Sie den Befehl erneut ein, um die Übertragung zu bestätigen. + +# ========== Befehle - Freigeben ========== +cmd.unclaim.no_permission = Sie haben keine Berechtigung, Territorium freizugeben. +cmd.unclaim.success = Chunk bei {0}, {1} freigegeben. +cmd.unclaim.not_officer = Sie müssen ein Offizier sein, um Land freizugeben. +cmd.unclaim.chunk_not_claimed = Dieser Chunk ist nicht beansprucht. +cmd.unclaim.not_your_claim = Ihre Fraktion besitzt diesen Chunk nicht. +cmd.unclaim.cannot_unclaim_home = Der Chunk mit dem Fraktionsheim kann nicht freigegeben werden. +cmd.unclaim.would_disconnect = Freigabe nicht möglich — sie würde Ihr Territorium trennen. +cmd.unclaim.failed = Freigabe des Chunks fehlgeschlagen. + +# ========== Befehle - Überbeanspruchen ========== +cmd.overclaim.no_permission = Sie haben keine Berechtigung, Territorium zu überbeanspruchen. +cmd.overclaim.success = Feindliches Territorium überbeansprucht! +cmd.overclaim.not_officer = Sie müssen ein Offizier sein, um zu überbeanspruchen. +cmd.overclaim.not_claimed = Dieser Chunk ist nicht beansprucht. Verwenden Sie /f claim. +cmd.overclaim.own_chunk = Ihre Fraktion besitzt diesen Chunk bereits. +cmd.overclaim.ally = Sie können verbündetes Territorium nicht überbeanspruchen. +cmd.overclaim.target_has_power = Diese Fraktion hat noch genug Macht. +cmd.overclaim.failed = Überbeanspruchung fehlgeschlagen. + +# ========== Befehle - Feststecken ========== +cmd.stuck.no_permission = Sie haben keine Berechtigung, /f stuck zu verwenden. +cmd.stuck.not_stuck = Sie stecken nicht fest — dies ist Wildnis. +cmd.stuck.combat_tagged = Sie können /f stuck nicht im Kampf verwenden! +cmd.stuck.no_safe = Es konnte kein sicherer Ort gefunden werden. +cmd.stuck.teleporting = Teleportation in Sicherheit in {0} Sekunden. Nicht bewegen! + +# ========== Befehle - Heim ========== +cmd.home.no_permission = Sie haben keine Berechtigung, sich zum Fraktionsheim zu teleportieren. +cmd.home.no_home = Ihre Fraktion hat kein Heim festgelegt. +cmd.home.combat_tagged = Sie können sich nicht im Kampf teleportieren! +cmd.home.teleported = Zum Fraktionsheim teleportiert! + +# ========== Befehle - Heim Setzen ========== +cmd.sethome.no_permission = Sie haben keine Berechtigung, das Fraktionsheim festzulegen. +cmd.sethome.world_not_allowed = In dieser Welt kann kein Heim gesetzt werden. +cmd.sethome.not_in_territory = Sie können das Heim nur im Territorium Ihrer Fraktion setzen. +cmd.sethome.set = Fraktionsheim festgelegt! +cmd.sethome.broadcast = {0} hat das Fraktionsheim festgelegt. +cmd.sethome.not_officer = Sie müssen ein Offizier sein, um das Heim festzulegen. +cmd.sethome.failed = Heim konnte nicht festgelegt werden. + +# ========== Befehle - Heim Löschen ========== +cmd.delhome.no_permission = Sie haben keine Berechtigung, das Fraktionsheim zu löschen. +cmd.delhome.no_home = Ihre Fraktion hat kein Heim festgelegt. +cmd.delhome.deleted = Fraktionsheim gelöscht! +cmd.delhome.broadcast = {0} hat das Fraktionsheim gelöscht. +cmd.delhome.not_officer = Sie müssen ein Offizier sein, um das Heim zu löschen. +cmd.delhome.failed = Heim konnte nicht gelöscht werden. + +# ========== Befehle - Beziehung (Verbündeter/Feind/Neutral/Beziehungen) ========== +cmd.relation.ally_no_permission = Sie haben keine Berechtigung, Allianzen zu verwalten. +cmd.relation.ally_usage = Verwendung: /f ally +cmd.relation.ally_sent = Allianzanfrage an {0} gesendet! +cmd.relation.ally_formed = Sie sind jetzt mit {0} verbündet! +cmd.relation.already_ally = Sie sind bereits mit dieser Fraktion verbündet. +cmd.relation.ally_failed = Allianzanfrage konnte nicht gesendet werden. +cmd.relation.enemy_no_permission = Sie haben keine Berechtigung, Feinde zu erklären. +cmd.relation.enemy_usage = Verwendung: /f enemy +cmd.relation.enemy_declared = {0} ist jetzt Ihr Feind! +cmd.relation.already_enemy = Sie sind bereits Feinde mit dieser Fraktion. +cmd.relation.max_enemies = Sie haben die maximale Anzahl an Feinden erreicht. +cmd.relation.enemy_failed = Feind konnte nicht gesetzt werden. +cmd.relation.neutral_no_permission = Sie haben keine Berechtigung, neutrale Beziehungen zu setzen. +cmd.relation.neutral_usage = Verwendung: /f neutral +cmd.relation.neutral_set = Ihre Fraktion ist jetzt neutral mit {0}. +cmd.relation.already_neutral = Sie sind bereits neutral mit dieser Fraktion. +cmd.relation.neutral_failed = Neutral konnte nicht gesetzt werden. +cmd.relation.cannot_self = Sie können sich nicht mit sich selbst verbünden. +cmd.relation.max_allies = Sie haben die maximale Anzahl an Verbündeten erreicht. +cmd.relation.view_no_permission = Sie haben keine Berechtigung, Beziehungen anzuzeigen. +cmd.relation.header = === Fraktionsbeziehungen === +cmd.relation.allies_count = Verbündete ({0}): +cmd.relation.enemies_count = Feinde ({0}): +cmd.relation.list_entry = - {0} + +# ========== Befehle - Chat ========== +cmd.chat.usage = Verwendung: /f c [f|a|off] +cmd.chat.no_permission = Sie haben keine Berechtigung für diesen Chat-Modus. +cmd.chat.mode_set = Chat-Modus auf {0} gesetzt + +# ========== Befehle - Einladungen ========== +cmd.invites.not_officer = Sie müssen ein Offizier sein, um Einladungen zu verwalten. +cmd.invites.header = === Fraktionseinladungen === +cmd.invites.no_pending = Keine ausstehenden Einladungen oder Anfragen. +cmd.invites.outgoing = Ausgehende Einladungen: +cmd.invites.outgoing_entry = {0} (eingeladen von {1}) +cmd.invites.requests = Beitrittsanfragen: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Ihre Einladungen === +cmd.invites.no_invites = Sie haben keine ausstehenden Einladungen. +cmd.invites.invite_entry = {0} - Verwenden Sie /f accept {1} + +# ========== Befehle - Anfrage ========== +cmd.request.no_permission = Sie haben keine Berechtigung, eine Fraktionsmitgliedschaft anzufragen. +cmd.request.already_in_named = Sie sind bereits in {0}. +cmd.request.use_leave_hint = Verwenden Sie zuerst /f leave, wenn Sie einer anderen Fraktion beitreten möchten. +cmd.request.usage = Verwendung: /f request [Nachricht] +cmd.request.faction_open = Diese Fraktion ist offen! Verwenden Sie /f accept {0}, um direkt beizutreten. +cmd.request.already_requested = Sie haben bereits eine ausstehende Anfrage bei dieser Fraktion. +cmd.request.has_invite = Sie wurden von dieser Fraktion eingeladen! Verwenden Sie /f accept {0}, um beizutreten. +cmd.request.sent = Beitrittsanfrage an {0} gesendet! +cmd.request.your_message = Ihre Nachricht: "{0}" +cmd.request.officer_review = Ein Offizier wird Ihre Anfrage prüfen. +cmd.request.officer_notify = {0} hat einen Beitritt zu Ihrer Fraktion angefragt! +cmd.request.officer_review_hint = Verwenden Sie /f gui > Einladungen zur Prüfung. + +# ========== Befehle - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Sie haben keine Berechtigung, Fraktionsinfo anzuzeigen. +cmd.info.faction_not_found = Fraktion '{0}' nicht gefunden. +cmd.info.not_in_faction_hint = Sie sind in keiner Fraktion. Verwenden Sie /f info +cmd.info.leader = Anführer: {0} +cmd.info.members = Mitglieder: {0}/{1} +cmd.info.power = Macht: {0} +cmd.info.claims = Gebietsansprüche: {0} +cmd.info.raidable = PLÜNDERBAR! +cmd.info.allies = Verbündete: {0} +cmd.info.enemies = Feinde: {0} +cmd.info.they_consider = Sie betrachten euch als: {0} +cmd.info.you_consider = Ihr betrachtet sie als: {0} +cmd.info.members_no_permission = Sie haben keine Berechtigung, Fraktionsmitglieder anzuzeigen. +cmd.info.members_header = === {0} Mitglieder ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Sie haben keine Berechtigung, die Fraktionsliste anzuzeigen. +cmd.info.list_empty = Es gibt keine Fraktionen. +cmd.info.list_header = === Fraktionen ({0}) === +cmd.info.list_entry = {0} - {1} Mitglieder, {2} Macht +cmd.info.list_entry_raidable = {0} - {1} Mitglieder, {2} Macht [PLÜNDERBAR] +cmd.info.help_no_permission = Sie haben keine Berechtigung, die Hilfe anzuzeigen. +cmd.info.who_no_permission = Sie haben keine Berechtigung, Spielerinfo anzuzeigen. +cmd.info.who_faction = Fraktion: {0} +cmd.info.who_role = Rolle: {0} +cmd.info.who_joined = Beigetreten: {0} +cmd.info.who_faction_none = Fraktion: Keine +cmd.info.who_power = Macht: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Zuletzt gesehen: {0} +cmd.info.map_no_permission = Sie haben keine Berechtigung, die Karte anzuzeigen. +cmd.info.map_header = === Gebietskarte === +cmd.info.map_legend = Legende: +Du /Eigen /Verbündet /Feind -Wildnis +cmd.info.map_gui_hint = Verwenden Sie /f gui für die interaktive Karte + +# ========== Befehle - Macht ========== +cmd.power.personal = Persönliche Macht: {0}/{1} +cmd.power.faction = Fraktionsmacht: {0}/{1} +cmd.power.death_loss = Todesverlust: {0} +cmd.power.regen = Regenerationsrate: {0}/Std +cmd.power.no_permission = Sie haben keine Berechtigung, Machtinfo anzuzeigen. +cmd.power.header = Macht von {0}: +cmd.power.current = Aktuell: {0} + +# ========== Befehle - Wirtschaft ========== +cmd.economy.balance = Guthaben: {0} +cmd.economy.deposited = {0} in die Fraktionsschatzkammer eingezahlt. +cmd.economy.withdrawn = {0} aus der Fraktionsschatzkammer abgehoben. +cmd.economy.transferred = {0} an {1} überwiesen. +cmd.economy.insufficient = Unzureichendes Guthaben in der Fraktionsschatzkammer. +cmd.economy.invalid_amount = Ungültiger Betrag: {0} +cmd.economy.economy_disabled = Wirtschaft ist deaktiviert. +cmd.economy.balance_no_permission = Sie haben keine Berechtigung, Guthaben anzuzeigen. +cmd.economy.treasury_unavailable = Schatzkammer ist nicht verfügbar. +cmd.economy.balance_display = Schatzkammer von {0}: {1} +cmd.economy.deposit_no_permission = Sie haben keine Berechtigung, einzuzahlen. +cmd.economy.deposit_faction_denied = Sie haben keine Fraktionsberechtigung zum Einzahlen. +cmd.economy.deposit_usage = Verwendung: /f deposit +cmd.economy.amount_positive = Betrag muss positiv sein. +cmd.economy.wallet_insufficient = Sie haben nicht genug Geld. Geldbörse: {0} +cmd.economy.wallet_withdraw_failed = Abhebung von Ihrer Geldbörse fehlgeschlagen. +cmd.economy.deposit_failed = Einzahlung in die Fraktionsschatzkammer fehlgeschlagen. Geld zurückerstattet. +cmd.economy.withdraw_no_permission = Sie haben keine Berechtigung, abzuheben. +cmd.economy.withdraw_faction_denied = Sie haben keine Fraktionsberechtigung zum Abheben. +cmd.economy.withdraw_usage = Verwendung: /f withdraw +cmd.economy.withdraw_limit_denied = Abhebung abgelehnt: {0} +cmd.economy.wallet_deposit_failed = Warnung: Einzahlung in Ihre Geldbörse fehlgeschlagen. Kontaktieren Sie einen Admin. +cmd.economy.withdraw_limit_exceeded = Abhebung abgelehnt: Limit überschritten. +cmd.economy.withdraw_failed = Abhebung fehlgeschlagen: {0} +cmd.economy.transfer_no_permission = Sie haben keine Berechtigung zu überweisen. +cmd.economy.transfer_faction_denied = Sie haben keine Fraktionsberechtigung zum Überweisen. +cmd.economy.transfer_usage = Verwendung: /f money transfer +cmd.economy.transfer_self = Überweisung an die eigene Fraktion nicht möglich. +cmd.economy.transfer_limit_denied = Überweisung abgelehnt: {0} +cmd.economy.transfer_limit_exceeded = Überweisung abgelehnt: Limit überschritten. +cmd.economy.transfer_failed = Überweisung fehlgeschlagen: {0} +cmd.economy.log_no_permission = Sie haben keine Berechtigung, das Transaktionsprotokoll anzuzeigen. +cmd.economy.log_header = Transaktionsprotokoll (Seite {0}/{1}) +cmd.economy.log_empty = Keine Transaktionen gefunden. +cmd.economy.money_help_header = Schatzkammer-Befehle: +cmd.economy.money_help_balance = /f money balance [Fraktion] - Guthaben anzeigen +cmd.economy.money_help_deposit = /f money deposit - In Schatzkammer einzahlen +cmd.economy.money_help_withdraw = /f money withdraw - Von Schatzkammer abheben +cmd.economy.money_help_transfer = /f money transfer - Zwischen Fraktionen überweisen +cmd.economy.money_help_log = /f money log [Seite] [Typ] - Transaktionsverlauf anzeigen + +# ========== Schutz - Aktionsphrasen ========== +protection.action.generic = Sie können das hier nicht tun +protection.action.build = Sie können keine Blöcke bauen oder abbauen +protection.action.interact = Sie können damit nicht interagieren +protection.action.door = Sie können keine Türen benutzen +protection.action.container = Sie können keine Behälter öffnen +protection.action.bench = Sie können keine Werkbänke benutzen +protection.action.processing = Sie können keine Verarbeitungsstationen benutzen +protection.action.seat = Sie können keine Sitzplätze benutzen +protection.action.light = Sie können keine Lichter umschalten +protection.action.teleporter = Sie können keine Teleporter benutzen +protection.action.crate = Sie können keine Kisten benutzen +protection.action.tame = Sie können keine Kreaturen zähmen +protection.action.npc = Sie können nicht mit NPCs interagieren +protection.action.mount = Sie können keine Kreaturen reiten +protection.action.pve = Sie können keine Kreaturen verletzen +protection.action.item_drop = Sie können keine Gegenstände fallen lassen +protection.action.item_pickup = Sie können keine Gegenstände aufheben + +# ========== Schutz - Ablehnungsgründe ========== +protection.denied.safezone = {0} in einer SafeZone. +protection.denied.warzone = {0} in einer WarZone. +protection.denied.enemy_claim = {0} in feindlichem Territorium. +protection.denied.claimed = {0} in beanspruchtem Territorium. +protection.denied.here = {0} hier. +protection.denied.zone = {0} in dieser Zone. +protection.denied.faction_perm = {0} hier. (Fraktionsberechtigung: {1}) +protection.denied.ally_territory = {0} hier. (Verbündetes Territorium) +protection.denied.error = Schutzfehler — Aktion zur Sicherheit blockiert. + +# ========== Schutz - PvP ========== +protection.pvp.safezone = PvP ist in SafeZones deaktiviert. +protection.pvp.same_faction = Sie können Fraktionsmitglieder nicht angreifen. +protection.pvp.ally = Sie können Verbündete nicht angreifen. +protection.pvp.spawn_protected = Dieser Spieler hat Spawn-Schutz. +protection.pvp.territory_disabled = PvP ist in diesem Territorium deaktiviert. +protection.pvp.generic = Sie können diesen Spieler nicht angreifen. + +# ========== Schutz - Kreaturschaden ========== +protection.mob_damage_disabled = Mob-Schaden ist in dieser Zone deaktiviert. +protection.pve_damage_disabled = PvE-Schaden ist in dieser Zone deaktiviert. +protection.pve_territory_denied = Sie können Mobs in diesem Territorium nicht verletzen. + +# ========== Schutz - Kampfmarkierung ========== +protection.combat_tag_command = Sie können diesen Befehl nicht verwenden, während Sie im Kampf markiert sind. + +# ========== Server-Ankündigungen ========== +# Diese werden an alle Online-Spieler für bedeutende Fraktionsereignisse gesendet. +# {0}, {1} = dynamische Werte (Fraktionsnamen, Spielernamen) +server_announce.faction_created = {0} hat die Fraktion {1} gegründet! +server_announce.faction_disbanded = Die Fraktion {0} wurde aufgelöst! +server_announce.leadership_transfer = {0} ist jetzt der Anführer von {1}! +server_announce.overclaim = {0} hat Territorium von {1} überbeansprucht! +server_announce.war_declared = {0} hat {1} den Krieg erklärt! +server_announce.alliance_formed = {0} und {1} sind jetzt Verbündete! +server_announce.alliance_broken = {0} und {1} sind keine Verbündeten mehr! + +# ========== Teleportationssystem ========== +teleport.cooldown_wait = Sie müssen {0} warten, bevor Sie sich erneut teleportieren können. +teleport.warmup_start = Teleportation zum Fraktionsheim in {0} Sekunden... +teleport.combat_cancelled = Teleportation abgebrochen — Sie sind im Kampf! +teleport.success_default = Zum Fraktionsheim teleportiert! +teleport.no_home = Ihre Fraktion hat kein Heim festgelegt. +teleport.world_not_found = Welt nicht gefunden. +teleport.failed = Teleportation fehlgeschlagen. +teleport.countdown = Teleportation in {0} Sekunden... +teleport.countdown_one = Teleportation in 1 Sekunde... +teleport.moved_cancelled = Teleportation abgebrochen — Sie haben sich bewegt! +teleport.damage_cancelled = Teleportation abgebrochen — Sie haben Schaden erlitten! +teleport.mount_teleport_blocked = Sie können sich nicht in diese Zone teleportieren, während Sie reiten. +teleport.mount_entry_blocked = Sie können diese Zone nicht betreten, während Sie reiten. + +# ========== Chat-Anzeige ========== +chat.display.public = Öffentlich +chat.display.faction = Fraktion +chat.display.ally = Verbündete diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang new file mode 100644 index 00000000..23a7d943 --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Deutsche Übersetzungen +# Format: key = value +# Hinweis: Schlüssel werden automatisch mit "hyperfactions_admin." durch Hytales I18nModule vorangestellt + +# ========== Admin-Navigationsleiste ========== +nav.dashboard = Übersicht +nav.actions = Aktionen +nav.factions = Fraktionen +nav.players = Spieler +nav.economy = Wirtschaft +nav.zones = Zonen +nav.config = Konfiguration +nav.backups = Sicherungen +nav.log = Protokoll +nav.updates = Aktualisierungen +nav.help = Hilfe +nav.version = Version + +# ========== Allgemeine Admin-Beschriftungen ========== +common.faction_not_found = Fraktion nicht gefunden +common.no_faction = Keine Fraktion +common.not_set = Nicht festgelegt +common.on = An +common.off = Aus +common.enable = Aktivieren +common.disable = Deaktivieren +common.none_paren = (Keine) +common.invalid_faction = Ungültige Fraktion. +common.leader_prefix = Anführer: {0} +common.members_suffix = {0} Mitglieder +common.claims_suffix = {0} Gebiete +common.factions_suffix = {0} Fraktionen +common.players_suffix = {0} Spieler +common.chunks_suffix = {0} Chunks +common.entries_suffix = {0} Einträge +common.found_suffix = {0} gefunden +common.power_format = {0}/{1} Macht +common.raidable = Plünderbar +common.protected = Geschützt +common.no_description = Keine Beschreibung festgelegt. +common.officers_more = +{0} weitere +common.custom_max = (benutzerdefiniertes Max.) +common.default_max = (Standard-Max.) +common.now = Jetzt +common.ago_suffix = vor {0} +common.just_now = gerade eben +common.no_membership_history = Kein Mitgliedschaftsverlauf + +# ========== Admin-Übersicht ========== +dashboard.factions_prefix = Fraktionen: {0} +dashboard.members_prefix = Mitglieder gesamt: {0} +dashboard.claims_prefix = Gebiete gesamt: {0} + +# ========== Admin-Aktionen ========== +actions.confirm_reset = Zurücksetzen bestätigen? +actions.confirm_trigger = Auslösung bestätigen? +actions.kd_reset = K/D für {0} Spieler zurückgesetzt. +actions.kd_reset_failed = K/D-Zurücksetzung fehlgeschlagen: {0} +actions.upkeep_unavailable = Unterhaltsprozessor ist nicht verfügbar. +actions.upkeep_triggered = Unterhaltseinzug ausgelöst. +actions.upkeep_failed = Unterhalt fehlgeschlagen: {0} + +# ========== Admin-Auflösung ========== +disband.faction_gone = Fraktion existiert nicht mehr. +disband.success = Fraktion '{0}' wurde aufgelöst. +disband.failed = Auflösung fehlgeschlagen: {0} +disband.no_leader = Fraktion hat keinen Anführer, Auflösung nicht möglich. + +# ========== Admin - Alle Gebiete freigeben ========== +unclaim.removed = [Admin] {0} Gebiete von {1} entfernt. +unclaim.no_claims = {0} hatte keine Gebiete zum Entfernen. + +# ========== Admin-Fraktionsliste ========== +factions.home_not_set = Nicht festgelegt +factions.teleported = Zum Heim von {0} teleportiert. +factions.no_home = Fraktion hat kein Heim festgelegt. +factions.world_not_found = Zielwelt nicht gefunden. + +# ========== Admin-Fraktionsinfo ========== +info.faction_gone = Diese Fraktion existiert nicht mehr. + +# ========== Admin-Fraktionsmitglieder ========== +members.sort_role = Rolle +members.sort_online = Online +members.sort_name = Name +members.sort_power = Macht +members.promoted = [Admin] {0} zu {1} befördert. +members.demoted = [Admin] {0} zu {1} degradiert. +members.kicked = [Admin] {0} aus der Fraktion geworfen. + +# ========== Admin-Fraktionsbeziehungen ========== +relations.allies_header = VERBÜNDETE ({0}) +relations.enemies_header = FEINDE ({0}) +relations.no_allies = Keine Verbündeten. +relations.no_enemies = Keine Feinde. +relations.neutral_count = {0} neutrale Fraktionen +relations.since_today = Seit: heute +relations.since_one_day = Seit: vor 1 Tag +relations.since_days = Seit: vor {0} Tagen +relations.set_ally = [Admin] Gegenseitigen Verbündeten-Status mit {0} gesetzt. +relations.set_enemy = Gegenseitigen Feind-Status mit {0} gesetzt. +relations.set_neutral = [Admin] Gegenseitigen Neutral-Status mit {0} gesetzt. + +# ========== Admin-Fraktionseinstellungen ========== +settings.locked = Diese Einstellung ist durch die Serverkonfiguration gesperrt. +settings.perm_toggled = {0} auf {1} gesetzt. +settings.color_changed = Fraktionsfarbe auf {0} gesetzt. +settings.recruitment_set = Aufnahme auf {0} gesetzt. +settings.no_home = [Admin] Diese Fraktion hat kein Heim festgelegt. +settings.home_cleared = Fraktionsheim für {0} gelöscht. + +# ========== Sortier-Dropdown-Beschriftungen ========== +sort.power = Macht +sort.name = Name +sort.members = Mitglieder +sort.balance = Guthaben + +# ========== Admin-Spieler ========== +players.sort_last_online = Zuletzt online +players.sort_faction = Fraktion +players.sort_online = Online +players.not_online = Spieler ist nicht online. +players.world_not_found = Zielwelt nicht gefunden. +players.teleported = [Admin] Zu {0} teleportiert. + +# ========== Admin-Spielerinfo ========== +playerinfo.disband_faction = Fraktion auflösen +playerinfo.kick_leader = Anführer rauswerfen +playerinfo.enter_valid_number = Geben Sie eine gültige Zahl ein. +playerinfo.enter_valid_positive = Geben Sie eine gültige positive Zahl ein. +playerinfo.faction_gone = Fraktion existiert nicht mehr. +playerinfo.kd_reset = K/D für {0} zurückgesetzt. +playerinfo.kicked_success = {0} aus {1} geworfen. +playerinfo.kicked_leader = Anführer {0} rausgeworfen. Führung an {1} übertragen. +playerinfo.disbanded_kick = [Admin] Fraktion '{0}' aufgelöst (letztes Mitglied rausgeworfen). + +# ========== Admin-Wirtschaft ========== +economy.no_data = Keine Fraktionen mit Wirtschaftsdaten. +economy.amount_zero = Betrag darf nicht null sein. +economy.enter_amount = Bitte geben Sie einen Betrag ein. +economy.invalid_number = Ungültige Zahl: {0} +economy.error = Ein Fehler ist aufgetreten. +economy.balance_negative = Guthaben darf nicht negativ sein. +economy.failed = Fehlgeschlagen: {0} +economy.bulk_complete = Massenanpassung abgeschlossen: {0} {1} an {2} Fraktionen. +economy.bulk_failures = ({0} fehlgeschlagen) + +# ========== Admin-Zonen ========== +zones.not_found = Zone nicht gefunden. +zones.invalid_id = Ungültige Zonen-ID. +zones.deleted = Zone {0} gelöscht. +zones.delete_failed = Zone konnte nicht gelöscht werden: {0} +zones.no_chunks = Keine Chunks +zones.chunks_suffix = {0} ({1} Chunks) + +# ========== Zonenerstellungs-Assistent ========== +wizard.enter_name = Bitte geben Sie einen Zonennamen ein. +wizard.name_too_short = Zonenname muss mindestens {0} Zeichen lang sein. +wizard.name_too_long = Zonenname darf {0} Zeichen nicht überschreiten. +wizard.name_taken = Eine Zone mit diesem Namen existiert bereits. +wizard.radius_range = Radius muss zwischen 1 und {0} liegen. +wizard.create_failed = Zone konnte nicht erstellt werden: {0} +wizard.created_not_found = Zone erstellt, konnte aber nicht gefunden werden. +wizard.created = {0} '{1}' erstellt! +wizard.chunk_claimed = Chunk ({0}, {1}) beansprucht. +wizard.chunk_failed = Aktueller Chunk konnte nicht beansprucht werden: {0} +wizard.radius_claimed = {0} Chunks in einem {1}-Radius von {2} beansprucht. +wizard.radius_no_claims = Keine Chunks konnten beansprucht werden (Gebiet möglicherweise besetzt). +wizard.no_claims = Zone ohne Gebiete erstellt. +wizard.chunks_preview = ~{0} Chunks + +# ========== Zonen-Umbenennung ========== +zone_rename.zone_gone = Zone existiert nicht mehr. +zone_rename.enter_name = Bitte geben Sie einen Zonennamen ein. +zone_rename.too_short = Zonenname muss mindestens {0} Zeichen lang sein. +zone_rename.too_long = Zonenname darf {0} Zeichen nicht überschreiten. +zone_rename.same_name = Das ist bereits der Name dieser Zone. +zone_rename.renamed = [Admin] Zone umbenannt von {0} zu {1}! +zone_rename.name_taken = Eine Zone mit diesem Namen existiert bereits. +zone_rename.invalid_name = Ungültiger Zonenname. +zone_rename.rename_failed = Umbenennung der Zone fehlgeschlagen: {0} + +# ========== Zonen-Typänderung ========== +zone_type.zone_gone = Zone existiert nicht mehr. +zone_type.changed = [Admin] {0} geändert von {1} zu {2} ({3}). +zone_type.failed = Zonentyp konnte nicht geändert werden: {0} +zone_type.flags_reset = Flags zurückgesetzt +zone_type.flags_kept = Flags beibehalten + +# ========== Zonen-Integrations-Flags ========== +zone_int.zone_not_found = Zone nicht gefunden +zone_int.no_plugin = (kein Plugin) +zone_int.default = (Standard) +zone_int.custom = (benutzerdefiniert) + +# Integrations-Flags UI-Beschriftungen +gui.zint_cat_gravestones = Grabsteine +gui.zint_gravestones_desc = Wenn AN, können Nicht-Besitzer Gräber plündern. Besitzer können es immer. +gui.zint_cat_world_map = Weltkarte +gui.zint_world_map_desc = Kartenausblendung für Spieler in dieser Zone überschreiben. Wenn aktiviert, wählen Sie, wer Spieler in dieser Zone sehen kann. +gui.zint_visibility_label = Sichtbarkeitsstufe: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Auf Standard zurücksetzen +gui.zint_back_to_flags = Zurück zu Flags +gui.zint_map_vis_faction = Nur Fraktion +gui.zint_map_vis_ally = Fraktion + Verbündete +gui.zint_map_vis_all = Alle Spieler + +# ========== Aktivitätsprotokoll ========== +log.all_types = Alle Typen +log.no_logs = Keine Aktivitätsprotokolle passend zu den Filtern. + +# ========== Versionsseite ========== +version.active = Aktiv +version.not_found = Nicht gefunden +version.not_detected = Nicht erkannt +version.not_installed = Nicht installiert +version.active_version = Aktiv (v{0}) +version.active_compatible = Aktiv (kompatibel) +version.active_claims_only = Aktiv (nur Gebiete) +version.installed_no_perm = Installiert (kein Berechtigungsanbieter) +version.active_provider = Aktiv ({0}) + +# ========== Admin-Hauptseite ========== +main.reload_hint = Verwenden Sie /f reload, um die Konfiguration neu zu laden. +main.unclaim_hint = Verwenden Sie /f admin unclaim {0}, um alle {1} Chunks freizugeben. + +# ========== Zonen-Flags/Einstellungen ========== +zflags.invalid_flag = Ungültiges Flag. +zflags.zone_not_found = Zone nicht gefunden. +zflags.conflict = (Konflikt) +zflags.mixin = (Mixin) +zflags.reset_int = Integrations-Flags auf Standard zurücksetzen. +zflags.reset_all = Alle Flags auf Standard zurücksetzen. +zflags.reset_failed = Zurücksetzen der Flags fehlgeschlagen: {0} +zflags.back_to_settings = Zurück zu Einstellungen + +# Zonen-Einstellungen UI-Beschriftungen +gui.zset_cat_combat = Kampf +gui.zset_cat_damage = Schaden +gui.zset_cat_death = Tod +gui.zset_cat_building = Bauen +gui.zset_cat_interaction = Interaktion +gui.zset_cat_transport = Transport +gui.zset_cat_items = Gegenstände +gui.zset_cat_spawning = Mob-Spawning +gui.zset_cat_mob_clear = Mob-Bereinigung +gui.zset_children_hint = (Unterelemente gelten nur, wenn übergeordnetes Element AN ist) +gui.zset_reset_defaults = Auf Standard zurücksetzen +gui.zset_integration_flags = Integrations-Flags +gui.zset_back_to_zones = Zurück zu Zonen +gui.zset_chunks = {0} Chunks + +# Zonen-Flag-Anzeigenamen +gui.zflag_pvp_enabled = PvP aktiviert +gui.zflag_friendly_fire = Eigenbeschuss +gui.zflag_friendly_fire_faction = Fraktionsschaden +gui.zflag_friendly_fire_ally = Verbündetenschaden +gui.zflag_projectile_damage = Projektilschaden +gui.zflag_mob_damage = Mob-Schaden erleiden +gui.zflag_pve_damage = Mob-Schaden zufügen +gui.zflag_fall_damage = Fallschaden +gui.zflag_environmental_damage = Umweltschaden +gui.zflag_explosion_damage = Explosionsschaden +gui.zflag_fire_spread = Feuerausbreitung +gui.zflag_keep_inventory = Inventar behalten +gui.zflag_power_loss = Machtverlust +gui.zflag_build_allowed = Bauen erlaubt +gui.zflag_block_place = Blockplatzierung +gui.zflag_hammer_use = Hammernutzung +gui.zflag_builder_tools_use = Bauwerkzeuge +gui.zflag_block_interact = Blockinteraktion +gui.zflag_door_use = Türnutzung +gui.zflag_container_use = Behälternutzung +gui.zflag_bench_use = Werkbanknutzung +gui.zflag_processing_use = Verarbeitungsnutzung +gui.zflag_seat_use = Sitznutzung +gui.zflag_mount_use = Reitnutzung +gui.zflag_light_use = Lichtnutzung +gui.zflag_npc_use = NPC-Interaktion +gui.zflag_crate_pickup = Kiste aufheben +gui.zflag_crate_place = Kiste platzieren +gui.zflag_npc_tame = NPC zähmen +gui.zflag_npc_interact = NPC-Interaktion +gui.zflag_teleporter_use = Teleporternutzung +gui.zflag_portal_use = Portalnutzung +gui.zflag_mount_entry = Reittier betreten +gui.zflag_item_drop = Gegenstand fallen lassen +gui.zflag_item_pickup = Auto-Aufheben +gui.zflag_item_pickup_manual = F-Taste Aufheben +gui.zflag_invincible_items = Unzerstörbare Gegenstände +gui.zflag_mob_spawning = Mob-Spawning +gui.zflag_hostile_mob_spawning = Feindliche Mobs +gui.zflag_passive_mob_spawning = Passive Mobs +gui.zflag_neutral_mob_spawning = Neutrale Mobs +gui.zflag_npc_spawning = NPC-Spawning +gui.zflag_mob_clear = Mob-Bereinigung +gui.zflag_hostile_mob_clear = Feindliche Mobs entfernen +gui.zflag_passive_mob_clear = Passive Mobs entfernen +gui.zflag_neutral_mob_clear = Neutrale Mobs entfernen +gui.zflag_gravestone_access = Andere können Gräber plündern +gui.zflag_show_on_map = Auf Karte anzeigen +gui.zflag_essentials_homes = Heimnutzung +gui.zflag_essentials_warps = Warp-Nutzung +gui.zflag_essentials_kits = Kit-Anspruch + +# ========== Zonen-Eigenschaften ========== +zprop.current_custom = Aktuell: "{0}" (benutzerdefiniert) +zprop.current_default = Aktuell: "{0}" (Standard) +zprop.pvp_disabled = PvP deaktiviert +zprop.pvp_enabled = PvP aktiviert +zprop.name_empty = Name darf nicht leer sein. +zprop.renamed = Zone umbenannt zu "{0}". +zprop.name_taken = Eine Zone mit diesem Namen existiert bereits. +zprop.name_invalid = Ungültiger Name (max. 32 Zeichen). +zprop.rename_failed = Umbenennung fehlgeschlagen: {0} +zprop.upper_empty = Oberer Titel darf nicht leer sein. Verwenden Sie Leeren zum Zurücksetzen. +zprop.upper_set = Oberer Titel festgelegt. +zprop.upper_reset = Oberer Titel auf Standard zurückgesetzt. +zprop.lower_empty = Unterer Titel darf nicht leer sein. Verwenden Sie Leeren zum Zurücksetzen. +zprop.lower_set = Unterer Titel festgelegt. +zprop.lower_reset = Unterer Titel auf Standard zurückgesetzt. + +# ========== Beziehungen Zusätzlich ========== +relations.failed = Fehlgeschlagen: {0} + +# ========== Mitglieder Zusätzlich ========== +members.never = Nie +members.teleported = [Admin] Zu {0} teleportiert. + +# ========== Spielerinfo Zusätzlich ========== +playerinfo.records = {0} Einträge +playerinfo.joined_date = Beigetreten: {0} +playerinfo.current = Aktuell +playerinfo.left_date = Verlassen: {0} + +# ========== Zonenkarte ========== +map.world_warning = WARNUNG: Sie sind in '{0}' — Zone ist in '{1}' +map.position = Ihre Position: Chunk ({0}, {1}) +map.zone_gone = Zone existiert nicht mehr. +map.claimed = Chunk ({0}, {1}) für {2} beansprucht. +map.claim_failed = Chunk konnte nicht beansprucht werden: {0} +map.unclaimed = Chunk ({0}, {1}) von {2} freigegeben. +map.unclaim_failed = Chunk konnte nicht freigegeben werden: {0} +map.chunk_belongs = Dieser Chunk gehört zu {0}. +map.chunk_faction = Dieser Chunk ist von einer Fraktion beansprucht. +map.chunk_protected = Dieser Chunk befindet sich in einem geschützten Bereich. +map.another_zone = einer anderen Zone + +# ========== GUI-Beschriftungsschlüssel (für .ui fest codierte Text-Lokalisierung) ========== + +# Seitentitel +gui.title_dashboard = Admin-Übersicht +gui.title_main = Fraktions-Admin +gui.title_actions = Admin: Serveraktionen +gui.title_factions = Fraktionsverwaltung +gui.title_players = Spielerverwaltung +gui.title_economy = Admin: Serverwirtschaft +gui.title_zones = Zonenverwaltung +gui.title_backups = Sicherungen +gui.title_config = Konfiguration +gui.title_help = Admin-Hilfe +gui.title_updates = Aktualisierungen +gui.title_version = Version und Integrationen +gui.title_activity_log = Admin: Aktivitätsprotokoll +gui.title_player_info = Admin: Spielerinfo +gui.title_faction_info = Admin: Fraktionsinfo +gui.title_faction_settings = Admin: Fraktionseinstellungen +gui.title_faction_members = Admin: Mitglieder +gui.title_faction_relations = Admin: Beziehungen +gui.title_zone_map = Zonenkarten-Editor +gui.title_zone_settings = Admin: Zoneneinstellungen +gui.title_zone_properties = Admin: Zoneneigenschaften +gui.title_bulk_economy = Massen-Schatzkammer-Anpassung +gui.title_economy_adjust = Admin: Wirtschaft + +# Übersicht-Beschriftungen +gui.dash_server_stats = Serverstatistiken +gui.dash_factions = Fraktionen +gui.dash_total_members = Mitglieder gesamt +gui.dash_total_claims = Gebiete gesamt +gui.dash_zones = Zonen +gui.dash_safe_war = Sicher / Krieg +gui.dash_total_power = Macht gesamt +gui.dash_avg_power = Durchschn. Macht/Fraktion +gui.dash_total_economy = Wirtschaft gesamt +gui.dash_wealthiest = Reichste +gui.dash_avg_balance = Durchschn. Guthaben +gui.dash_protection_bypass = Schutzumgehung: + +# Allgemeine Schaltflächen und Beschriftungen +gui.search = Suche: +gui.sort = Sortieren: +gui.prev = < Zurück +gui.next = Weiter > +gui.back = Zurück +gui.done = Fertig +gui.cancel = Abbrechen +gui.apply = Anwenden +gui.set = Setzen +gui.reset = Zurücksetzen +gui.coming_soon = Demnächst +gui.zones_btn = Zonen +gui.reload_btn = Neu laden +gui.all = Alle +gui.safe = Sicher +gui.war = Krieg +gui.create_zone = + Erstellen + +# Aktionsseiten-Beschriftungen +gui.act_combat_stats = Kampfstatistiken +gui.act_combat_desc = Kills und Tode für ALLE Spieler auf dem Server zurücksetzen. Diese Aktion kann nicht rückgängig gemacht werden. +gui.act_reset_kd = Alle K/D zurücksetzen +gui.act_economy = Wirtschaft +gui.act_economy_desc = Geld zu ALLEN Fraktionsschatzkammern auf einmal hinzufügen oder entfernen. +gui.act_bulk_adjust = Massenhinzufügen/-entfernen +gui.act_upkeep_collection = Unterhaltseinzug +gui.act_upkeep_desc = Unterhaltseinzug für alle Fraktionen jetzt manuell auslösen, unabhängig vom geplanten Timer. +gui.act_trigger_upkeep = Unterhalt auslösen + +# Platzhalterseiten-Beschriftungen +gui.backup_heading = Sicherungsverwaltung +gui.backup_desc1 = Fraktionsdaten-Sicherungen erstellen, wiederherstellen und verwalten. +gui.backup_desc2 = Automatische Sicherungen werden im data/backups-Ordner gespeichert. +gui.config_heading = Konfigurationseditor +gui.config_desc1 = HyperFactions-Einstellungen direkt über die GUI konfigurieren. +gui.config_desc2 = Verwenden Sie vorerst /f reload, um Konfigurationsänderungen neu zu laden. +gui.help_heading = Admin-Dokumentation +gui.help_desc1 = Admin-Dokumentation und Befehlsreferenz anzeigen. +gui.help_desc2 = Besuchen Sie das HyperFactions-Wiki für Hilfe. +gui.updates_heading = Update-Center +gui.updates_desc1 = Nach neuen Versionen suchen und Changelogs anzeigen. +gui.updates_desc2 = Besuchen Sie die HyperFactions-Seite für die neuesten Updates. + +# Versionsseiten-Beschriftungen +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = BERECHTIGUNGEN +gui.ver_placeholders = PLATZHALTER +gui.ver_economy_section = WIRTSCHAFT +gui.ver_protection = SCHUTZ +gui.ver_disabled = Deaktiviert + +# Spaltenüberschriften (seitenübergreifend) +gui.col_faction = Fraktion +gui.col_balance = Guthaben +gui.col_members = Mitglieder +gui.col_actions = Aktionen +gui.col_time = Zeit +gui.col_type = Typ +gui.col_message = Nachricht + +# Wirtschaftsseiten-Beschriftungen +gui.econ_total_balance = Gesamtguthaben +gui.econ_factions = Fraktionen +gui.econ_avg_balance = Durchschn. Guthaben +gui.econ_in_grace = In Gnadenfrist +gui.econ_collected = Eingezogen (24h) +gui.econ_next_collection = Nächster Einzug +gui.econ_no_data = Keine Fraktionen mit Wirtschaftsdaten. + +# Aktivitätsprotokoll-Beschriftungen +gui.log_type = Typ: +gui.log_time = Zeit: +gui.log_player = Spieler: +gui.log_no_logs = Keine Aktivitätsprotokolle passend zu den Filtern. + +# Spielerinfo-Beschriftungen +gui.plr_first_joined = Erstmals beigetreten: +gui.plr_last_online = Zuletzt online: +gui.plr_uuid = UUID: +gui.plr_faction = Fraktion: +gui.plr_role = Rolle: +gui.plr_view_faction = Fraktion anzeigen +gui.plr_power = Macht +gui.plr_max_power = Max. Macht +gui.plr_set_power = Setzen +gui.plr_reset_power = Zurücksetzen +gui.plr_set_max = Setzen +gui.plr_reset_max = Zurücksetzen +gui.plr_no_power_loss = Kein Machtverlust +gui.plr_no_claim_decay = Kein Gebietsverfall +gui.plr_kills = Kills +gui.plr_deaths = Tode +gui.plr_kdr = K/D-Verhältnis +gui.plr_reset_kd = K/D zurücksetzen +gui.plr_kick = Rauswerfen +gui.plr_membership_history = Mitgliedschaftsverlauf +gui.plr_no_faction_label = In keiner Fraktion +gui.plr_power_management = Machtverwaltung +gui.plr_combat_stats = Kampfstatistiken +gui.plr_bypass_flags = Umgehungs-Flags +gui.plr_admin_controls = Admin-Steuerung +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Max.: +gui.plr_view = Anzeigen +gui.plr_kick_from_faction = Aus Fraktion werfen +gui.plr_set_max_btn = Max. setzen +gui.plr_combat = Kampf +gui.plr_reason_active = AKTIV +gui.plr_reason_left = VERLASSEN +gui.plr_reason_kicked = RAUSGEWORFEN +gui.plr_reason_disbanded = AUFGELÖST + +# Mitgliedseintrag-Beschriftungen +gui.mem_label_power = Macht: +gui.mem_label_joined = Beigetreten: +gui.mem_label_last_death = Letzter Tod: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teleportieren +gui.mem_btn_promote = Befördern +gui.mem_btn_demote = Degradieren +gui.mem_btn_kick = Rauswerfen +gui.econ_not_enabled = Wirtschaftssystem ist nicht aktiviert. +gui.info_more = +{0} weitere +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7T +gui.log_time_all = Alle +gui.shape_circular = kreisförmig +gui.shape_square = quadratisch +gui.nav_title = Admin-Panel +gui.econ_btn_adjust = Anpassen +gui.econ_btn_info = Info + +# Fraktionsinfo-Beschriftungen +gui.fac_description = Beschreibung +gui.fac_power = Macht +gui.fac_claims = Gebiete +gui.fac_members = Mitglieder +gui.fac_recruitment = Aufnahme +gui.fac_founded = Gegründet +gui.fac_allies = Verbündete +gui.fac_enemies = Feinde +gui.fac_raidable = Plünderbarkeitsstatus +gui.fac_treasury = Schatzkammer +gui.fac_leader = Anführer +gui.fac_officers = Offiziere +gui.fac_view_members = Mitglieder anzeigen +gui.fac_view_relations = Beziehungen anzeigen +gui.fac_view_settings = Einstellungen +gui.fac_disband = Fraktion auflösen +gui.fac_power_management = Machtverwaltung +gui.fac_reset_all_power = Alle Macht zurücksetzen +gui.fac_econ_adjust = Guthaben anpassen +gui.fac_econ_view_log = Transaktionsprotokoll anzeigen +gui.fac_current_max = aktuell / max +gui.fac_claimed_max = beansprucht / max +gui.fac_relations = Beziehungen +gui.fac_ally_enemy = Verbündete / Feinde +gui.fac_status = Status +gui.fac_info = Info +gui.fac_treasury_balance = Schatzkammer-Guthaben +gui.fac_leadership = Führung +gui.fac_leader_label = Anführer: +gui.fac_officers_label = Offiziere: +gui.fac_econ_mgmt = Wirtschaftsverwaltung +gui.fac_danger_zone = Gefahrenzone +gui.fac_view_treasury = Schatzkammer anzeigen + +# Fraktionseinstellungen-Beschriftungen +gui.set_editing = Bearbeitung: +gui.set_general = Allgemeine Einstellungen +gui.set_name = Name +gui.set_tag = Tag +gui.set_description = Beschreibung +gui.set_recruitment = Aufnahme +gui.set_home = Heimstandort +gui.set_clear_home = Heim löschen +gui.set_disband_faction = Fraktion auflösen +gui.set_faction_color = Fraktionsfarbe +gui.set_admin_override = [Admin-Überschreibung] +gui.set_territory_perms = Territorialberechtigungen +gui.set_mob_spawning = Mob-Spawning +gui.set_faction_settings = Fraktionseinstellungen +gui.set_name_label = Name: +gui.set_tag_label = Tag: +gui.set_desc_label = Beschr.: +gui.set_edit = Bearbeiten +gui.set_status_label = Status: +gui.set_location_label = Standort: +gui.set_danger_zone = Gefahrenzone +gui.set_irreversible = Diese Aktion kann nicht rückgängig gemacht werden. +gui.set_lock_hint = Einige Optionen können vom Server gesperrt sein und lassen keine Änderungen zu. +gui.set_appearance = Erscheinung +gui.set_color_label = Farbe: +gui.set_mob_sub = (Unterelemente deaktiviert, wenn Hauptschalter aus ist) +gui.set_back_to_info = Zurück zu Info +gui.set_col_out = Ext +gui.set_col_ally = Verb +gui.set_col_mem = Mit +gui.set_col_off = Off +gui.set_cat_building = BAUEN +gui.set_cat_interaction = INTERAKTION +gui.set_cat_interact_sub = (Unterelemente deaktiviert, wenn Alle aus ist) +gui.set_cat_other = SONSTIGES +gui.set_perm_break = Abbauen +gui.set_perm_place = Platzieren +gui.set_perm_all = Alle +gui.set_perm_door = Tür +gui.set_perm_chest = Truhe +gui.set_perm_bench = Werkbank +gui.set_perm_processing = Verarbeitung +gui.set_perm_seat = Sitz +gui.set_perm_transport = Transport +gui.set_perm_crate_use = Kistennutzung +gui.set_perm_npc_tame = NPC zähmen +gui.set_perm_pve_damage = PvE-Schaden +gui.set_perm_mob_spawning = Mob-Spawning +gui.set_perm_hostile = Feindliche Mobs +gui.set_perm_passive = Passive Mobs +gui.set_perm_neutral = Neutrale Mobs +gui.set_perm_pvp = PvP im Territorium +gui.set_perm_officers_edit = Offiziere können bearbeiten + +# Fraktionsbeziehungen-Beschriftungen +gui.rel_subtitle = Fraktionsbeziehungen verwalten (umgeht Genehmigung) +gui.rel_set_new = Neue Beziehung setzen +gui.rel_btn_ally = Verbündeter +gui.rel_btn_neutral = Neutral +gui.rel_btn_enemy = Feind + +# Zonenseiten-Beschriftungen +gui.zone_sort_name = Name +gui.zone_sort_type = Typ +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = Welt +gui.zone_count_format = {0} {1}Zonen ({2} Chunks) + +# Zonenkarten-Beschriftungen +gui.map_zone_chunk = Zonen-Chunk +gui.map_empty = Leer +gui.map_other_zone = Andere Zone +gui.map_faction_claim = Fraktionsgebiet +gui.map_protected = Geschützt +gui.map_your_pos = Ihre Position +gui.map_click_hint = Klicken zum Beanspruchen/Freigeben von Chunks +gui.map_legend_zone_safe = Diese Zone (Sicher) +gui.map_legend_zone_war = Diese Zone (Krieg) +gui.map_legend_other_safe = Andere SafeZone +gui.map_legend_other_war = Andere WarZone +gui.map_legend_faction = Fraktionsgebiet +gui.map_legend_unclaimed = Unbeansprucht +gui.map_legend_you_here = Sie sind hier +gui.map_action_hint = Linksklick: Für Zone beanspruchen | Rechtsklick: Von Zone freigeben +gui.map_done = Fertig + +# Zoneneigenschaften-Beschriftungen +gui.zprop_general = Allgemein +gui.zprop_zone_name = Zonenname +gui.zprop_zone_type = Zonentyp +gui.zprop_change_type = Typ ändern +gui.zprop_notifications = Benachrichtigungen +gui.zprop_show_entry = Eintrittsbenachrichtigung anzeigen +gui.zprop_upper_title = Oberer Titel +gui.zprop_upper_desc = Oberer Titel (kleiner Text über Zonenname) +gui.zprop_lower_title = Unterer Titel +gui.zprop_lower_desc = Unterer Titel (großer Zonennamen-Text) +gui.zprop_edit_flags = Flags bearbeiten +gui.zprop_back_to_zones = Zurück zu Zonen +gui.save = Speichern +gui.clear = Leeren + +# Massen-Wirtschafts-Beschriftungen +gui.bulk_header = Alle Fraktionsschatzkammern anpassen +gui.bulk_factions_label = Fraktionen: +gui.bulk_total_label = Gesamtguthaben: +gui.bulk_amount_hint = Betrag (positiv zum Hinzufügen, negativ zum Entfernen): +gui.bulk_hint = Dies wird auf jede Fraktion mit Schatzkammer angewendet +gui.bulk_warning_msg = Warnung: Diese Aktion betrifft ALLE Fraktionen und kann nicht rückgängig gemacht werden. +gui.bulk_apply_all = Auf alle anwenden +gui.bulk_operation = Vorgang +gui.bulk_add = Hinzufügen +gui.bulk_remove = Entfernen +gui.bulk_amount = Betrag +gui.bulk_warning = Dies betrifft ALLE Fraktionsschatzkammern. +gui.bulk_preview = Vorschau + +# Wirtschaftsanpassungs-Beschriftungen +gui.ecadj_header = Schatzkammer-Guthaben anpassen +gui.ecadj_faction_label = Fraktion: +gui.ecadj_current_balance = Aktuelles Guthaben: +gui.ecadj_amount_hint = Betrag (positiv zum Hinzufügen, negativ zum Abziehen): +gui.ecadj_preview_hint = Geben Sie eine Zahl ein, um die Änderung vorab anzuzeigen +gui.ecadj_adjustment = Anpassung: +gui.ecadj_set_balance = Guthaben setzen +gui.ecadj_confirm = +/- bestätigen +gui.ecadj_operation = Vorgang +gui.ecadj_add = Hinzufügen +gui.ecadj_remove = Entfernen +gui.ecadj_set_to = Setzen auf +gui.ecadj_amount = Betrag +gui.ecadj_new_balance = Neues Guthaben: + +# Versionsseiten-Integrationsbeschriftungen +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Nativ +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Grabsteine +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Schatzkammer + +# Alle-Gebiete-freigeben-Bestätigungsdialog-Beschriftungen +gui.unclaim_title = Alle Gebiete freigeben +gui.unclaim_confirm_msg1 = Sind Sie sicher, dass Sie alle freigeben möchten +gui.unclaim_confirm_msg2 = von +gui.unclaim_warning = Diese Aktion kann nicht rückgängig gemacht werden! +gui.unclaim_all = Alle freigeben + +# Zonen-Umbenennungsdialog-Beschriftungen +gui.zren_title = Zone umbenennen +gui.zren_current = Aktuell: +gui.zren_new_name = Neuer Name: + +# Zonen-Typänderungsdialog-Beschriftungen +gui.ztype_title = Zonentyp ändern +gui.ztype_zone_label = Zone: +gui.ztype_current = Aktuell: +gui.ztype_will_become = wird zu +gui.ztype_new = Neu: +gui.ztype_warning1 = Verschiedene Zonentypen haben verschiedene Standard-Flag-Werte. +gui.ztype_warning2 = Wählen Sie, wie bestehende Flag-Einstellungen behandelt werden sollen: +gui.ztype_keep_desc = Benutzerdefinierte Überschreibungen beibehalten +gui.ztype_keep_flags = Flags beibehalten +gui.ztype_reset_desc = Neue Typ-Standards verwenden +gui.ztype_reset_flags = Flags zurücksetzen + +# Zonenerstellungs-Assistent-Beschriftungen +gui.czw_title = Zone erstellen +gui.czw_back = < Zurück +gui.czw_create = Zone erstellen +gui.czw_zone_type = Zonentyp +gui.czw_safe_desc = Geschützt, kein PvP +gui.czw_war_desc = Kampf, PvP aktiviert +gui.czw_zone_name = Zonenname +gui.czw_name_desc = Geben Sie einen eindeutigen Namen für die Zone ein +gui.czw_claim_method = Beanspruchungsmethode +gui.czw_method_none_desc = Leere Zone erstellen +gui.czw_method_none = Keine Gebiete +gui.czw_method_single_desc = Ihr aktueller Chunk +gui.czw_method_single = Einzelner Chunk +gui.czw_method_circle_desc = Kreisförmiges Gebiet +gui.czw_method_circle = Kreisradius +gui.czw_method_square_desc = Quadratisches Gebiet +gui.czw_method_square = Quadratradius +gui.czw_method_map_desc = Interaktiver Chunk-Editor +gui.czw_method_map = Gebietskarte verwenden +gui.czw_radius = Radius +gui.czw_custom_radius = Benutzerdefiniert (1-50): +gui.czw_flags = Flags +gui.czw_flags_defaults_desc = Basierend auf Zonentyp +gui.czw_flags_defaults = Standards verwenden +gui.czw_flags_customize_desc = Einstellungen danach öffnen +gui.czw_flags_customize = Anpassen + +# ========== Eintrags-Beschriftungen (Fraktions-/Spieler-/Zonenlisten-Einträge) ========== + +# Fraktionseintrag-Beschriftungen +gui.fac_entry_power = Macht +gui.fac_entry_claims = Gebiete +gui.fac_entry_members = Mitglieder +gui.fac_entry_created = Gegründet: +gui.fac_entry_home = Heim: +gui.fac_entry_tp_home = TP Heim +gui.fac_entry_view_info = Info anzeigen +gui.fac_entry_members_btn = Mitglieder +gui.fac_entry_settings = Einstellungen +gui.fac_entry_unclaim_all = Alle freigeben +gui.fac_entry_disband = Auflösen + +# Spielereintrag-Beschriftungen +gui.plr_entry_role = Rolle: +gui.plr_entry_joined = Beigetreten: +gui.plr_entry_last_online = Zuletzt online: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Macht: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teleportieren +gui.plr_entry_na = N/A +gui.plr_entry_unknown = Unbekannt +gui.plr_entry_ago = vor {0} + +# Zoneneintrag-Beschriftungen +gui.zone_entry_world = Welt: +gui.zone_entry_chunks = Chunks: +gui.zone_entry_bounds = Grenzen: +gui.zone_entry_created = Erstellt: +gui.zone_entry_edit_map = Karte bearbeiten +gui.zone_entry_flags = Flags +gui.zone_entry_settings = Einstellungen +gui.zone_entry_delete = Löschen diff --git a/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang b/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang new file mode 100644 index 00000000..5d4e722d --- /dev/null +++ b/src/main/resources/Server/Languages/de-DE/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Deutsche Übersetzungen +# Format: key = value +# Hinweis: Schlüssel werden automatisch mit "hyperfactions_gui." durch Hytales I18nModule vorangestellt + +# ========== Navigationsleiste ========== +nav.dashboard = Übersicht +nav.chat = Chat +nav.members = Mitglieder +nav.invites = Einladungen +nav.browser = Durchsuchen +nav.map = Karte +nav.leaderboard = Rangliste +nav.relations = Beziehungen +nav.treasury = Schatzkammer +nav.settings = Einstellungen +nav.logs = Protokolle +nav.help = Hilfe +nav.admin = Admin +nav.create = Erstellen + +# ========== Hilfe-Kategorienamen ========== +help.category.welcome = Willkommen +help.category.your_faction = Ihre Fraktion +help.category.power_land = Macht & Land +help.category.diplomacy = Diplomatie +help.category.combat = Kampf & Sicherheit +help.category.economy = Wirtschaft +help.category.quick_ref = Kurzreferenz + +# ========== Admin-Hilfe-Kategorienamen ========== +help.category.admin_overview = Übersicht +help.category.admin_factions = Fraktionen +help.category.admin_zones = Zonen +help.category.admin_power = Macht +help.category.admin_economy = Wirtschaft +help.category.admin_config = Konfiguration +help.category.admin_maintenance = Wartung +help.category.admin_reference = Referenz + +# ========== Hauptmenü ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Meine Fraktion +main_menu.section_get_started = Erste Schritte +main_menu.section_territory = Territorium +main_menu.section_browse = Durchsuchen +main_menu.section_admin = Admin +main_menu.claim_hint = Verwenden Sie /f claim, um Territorium zu beanspruchen. + +# ========== Fraktionsinfo-Seite ========== +faction_info.title = Fraktionsinfo +faction_info.no_description = Keine Beschreibung festgelegt. +faction_info.status_open = Offen +faction_info.status_invite_only = Nur auf Einladung +faction_info.status_raidable = Plünderbar +faction_info.status_protected = Geschützt +faction_info.officers_more = +{0} weitere +faction_info.power_header = Macht +faction_info.claims_header = Gebietsansprüche +faction_info.members_header = Mitglieder +faction_info.relations_header = Beziehungen +faction_info.status_header = Status +faction_info.treasury_header = Schatzkammer +faction_info.current_max = aktuell / max +faction_info.claimed_max = beansprucht / max +faction_info.ally_enemy = Verbündete / Feinde +faction_info.faction_balance = Fraktionsguthaben +faction_info.leader_label = Anführer: +faction_info.officers_label = Offiziere: +faction_info.view_members_btn = Mitglieder anzeigen +faction_info.relations_btn = Beziehungen +faction_info.back_btn = Zurück + +# ========== Umbenennungsdialog ========== +rename.title = Fraktion umbenennen +rename.current_label = Aktuell: +rename.new_name_label = Neuer Name: +rename.no_permission = Sie haben keine Berechtigung, die Fraktion umzubenennen. +rename.enter_name = Bitte geben Sie einen Fraktionsnamen ein. +rename.too_short = Fraktionsname muss mindestens {0} Zeichen lang sein. +rename.too_long = Fraktionsname darf {0} Zeichen nicht überschreiten. +rename.same_name = Das ist bereits der Name Ihrer Fraktion. +rename.name_taken = Eine Fraktion mit diesem Namen existiert bereits. +rename.success = Fraktion umbenannt von {0} zu {1}! + +# ========== Beschreibungsdialog ========== +desc.title = Beschreibung bearbeiten +desc.current_label = Aktuell: +desc.new_desc_label = Neue Beschreibung: +desc.no_permission = Sie haben keine Berechtigung, die Beschreibung zu bearbeiten. +desc.display_none = (Keine) +desc.cleared = Fraktionsbeschreibung gelöscht. +desc.updated = Fraktionsbeschreibung aktualisiert! + +# ========== Tag-Dialog ========== +tag.title = Tag bearbeiten +tag.current_label = Aktuell: +tag.instructions = Tag (1-5 Zeichen, nur Buchstaben und Zahlen): +tag.help_text = Tags erscheinen im Chat und auf der Karte +tag.no_permission = Sie haben keine Berechtigung, den Tag zu bearbeiten. +tag.display_none = (Keiner) +tag.cleared = Fraktionstag gelöscht. +tag.too_short = Tag muss mindestens {0} Zeichen lang sein. +tag.too_long = Tag darf {0} Zeichen nicht überschreiten. +tag.invalid_format = Tag darf nur Buchstaben und Zahlen enthalten. +tag.same_tag = Das ist bereits der Tag Ihrer Fraktion. +tag.tag_taken = Eine Fraktion mit diesem Tag existiert bereits. +tag.success = Fraktionstag auf [{0}] gesetzt! + +# ========== Dashboard-Seite ========== +dashboard.title = Fraktionsübersicht +dashboard.power_label = Macht +dashboard.land_label = Gebietsansprüche +dashboard.members_label = Mitglieder +dashboard.online_label = Online +dashboard.allies_label = Verbündete +dashboard.enemies_label = Feinde +dashboard.relations_label = Beziehungen +dashboard.ally_enemy_label = Verbündete / Feinde +dashboard.status_label = Status +dashboard.invites_label = Einladungen +dashboard.sent_requests_label = gesendet / Anfragen +dashboard.treasury_label = Schatzkammer +dashboard.upkeep_label = Unterhalt +dashboard.per_cycle = pro Zyklus +dashboard.your_wallet = Ihre Geldbörse +dashboard.personal_balance = persönliches Guthaben +dashboard.quick_actions = Schnellaktionen +dashboard.teleport_label = Teleportation +dashboard.territory_label = Territorium +dashboard.channel_label = Kanal +dashboard.membership_label = Mitgliedschaft +dashboard.recent_activity = Letzte Aktivität +dashboard.view_all = Alle anzeigen +dashboard.income_24h = Einnahmen (24h) +dashboard.deposits_transfers_in = Einzahlungen, eingehende Überweisungen +dashboard.expenses_24h = Ausgaben (24h) +dashboard.withdrawals_transfers_out = Abhebungen, ausgehende Überweisungen +dashboard.faction_gone = Ihre Fraktion existiert nicht mehr. +dashboard.available = {0} verfügbar +dashboard.at_risk = Gefährdet! +dashboard.online_count = {0} online +dashboard.status_invite = Einladung +dashboard.in_grace = IN GNADENFRIST +dashboard.billable_chunks = {0} kostenpflichtige Chunks +dashboard.btn_home = Heim +dashboard.btn_set_home = Heim setzen +dashboard.btn_claim = Beanspruchen +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Verlassen +dashboard.no_activity = Keine neuere Aktivität. +dashboard.time_now = jetzt +dashboard.time_minutes = vor {0}m +dashboard.time_hours = vor {0}h +dashboard.time_days = vor {0}T +dashboard.no_home_hint = Ihre Fraktion hat kein Heim. Bitten Sie einen Offizier, eines festzulegen. +dashboard.chat_mode_set = Chat-Modus: {0} +dashboard.claim_success = Chunk bei ({0}, {1}) beansprucht +dashboard.upkeep_in = in {0} + +# ========== Fraktions-Hauptseite ========== +main.no_faction = Keine Fraktion +main.joined = Sie sind der Fraktion beigetreten! +main.join_failed = Beitritt zur Fraktion fehlgeschlagen: {0} +main.invite_declined = Einladung abgelehnt. +main.cooldown = Teleportation auf Abklingzeit! Noch {0}s verbleibend. +main.world_not_found = Teleportation nicht möglich — Welt nicht gefunden. +main.leave_failed = Verlassen fehlgeschlagen: {0} + +# ========== Gemeinsame GUI-Beschriftungen ========== +common.faction_count = {0} Fraktionen +common.leader_label = Anführer: {0} +common.sort_power = Macht +common.sort_members = Mitglieder +common.page_format = {0}/{1} +common.own_faction = (Sie) +common.search = Suche: +common.sort = Sortieren: +common.prev = < Zurück +common.next = Weiter > +common.treasury_not_available = Schatzkammer ist nicht verfügbar. + +# ========== Mitgliederseite ========== +members.title = Mitglieder +members.search_label = Suche: +members.sort_label = Sortieren: +members.prev_btn = < Zurück +members.next_btn = Weiter > +members.count = {0} Mitglieder +members.sort_role = Rolle +members.sort_last_online = Zuletzt online +members.just_now = gerade eben +members.ago = vor {0} +members.never = Nie +members.member_not_found = Mitglied nicht gefunden. +members.promoted = {0} zu {1} befördert. +members.promote_failed = Beförderung fehlgeschlagen: {0} +members.demoted = {0} zu {1} degradiert. +members.demote_failed = Degradierung fehlgeschlagen: {0} +members.kicked = {0} aus der Fraktion geworfen. +members.kick_failed = Rauswurf fehlgeschlagen: {0} +members.label_power = Macht: +members.label_joined = Beigetreten: +members.label_last_death = Letzter Tod: +members.btn_promote = Befördern +members.btn_demote = Degradieren +members.btn_kick = Rauswerfen +members.btn_make_leader = Zum Anführer machen +members.btn_profile = Profil +members.self_label = (Sie) + +# ========== Browser-Seite ========== +browser.title = Fraktionen durchsuchen +browser.search_label = Suche: +browser.sort_label = Sortieren: +browser.prev_btn = < Zurück +browser.next_btn = Weiter > +browser.sort_name = Name +browser.invalid_faction = Ungültige Fraktion. +browser.label_power = Macht +browser.label_claims = Gebietsansprüche +browser.label_members = Mitglieder +browser.label_recruitment = Aufnahme: +browser.label_created = Gegründet: +browser.label_description = Beschreibung: +browser.view_info_btn = Info anzeigen +browser.label_leader = Anführer: +browser.no_description = Keine Beschreibung festgelegt + +# ========== Ranglisten-Seite ========== +leaderboard.title = Fraktionsrangliste +leaderboard.rank_by = Sortieren nach: +leaderboard.col_rank = # +leaderboard.col_faction = Fraktion +leaderboard.col_claims = Gebiete +leaderboard.col_members = Mitglieder +leaderboard.prev_btn = < Zurück +leaderboard.next_btn = Weiter > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territorium +leaderboard.sort_balance = Guthaben + +# ========== Spielerinfo-Seite ========== +playerinfo.title = Spielerinfo +playerinfo.first_joined_label = Erstmals beigetreten: +playerinfo.last_online_label = Zuletzt online: +playerinfo.faction_label = Fraktion: +playerinfo.role_label = Rolle: +playerinfo.joined_label_static = Beigetreten: +playerinfo.not_in_faction = In keiner Fraktion +playerinfo.power_header = Macht +playerinfo.current_max = aktuell / max +playerinfo.combat_header = Kampf +playerinfo.kills_deaths = Kills / Tode +playerinfo.kdr_header = K/D-Verhältnis +playerinfo.membership_history = Mitgliedschaftsverlauf +playerinfo.view_faction_btn = Fraktion anzeigen +playerinfo.back_btn = Zurück +playerinfo.now = Jetzt +playerinfo.history_count = {0} Einträge +playerinfo.joined_label = Beigetreten: {0} +playerinfo.current = Aktuell +playerinfo.left_label = Verlassen: {0} +playerinfo.no_history = Kein Mitgliedschaftsverlauf +playerinfo.faction_gone = Fraktion existiert nicht mehr. +playerinfo.reason_active = AKTIV +playerinfo.reason_left = VERLASSEN +playerinfo.reason_kicked = RAUSGEWORFEN +playerinfo.reason_disbanded = AUFGELÖST + +# ========== Beziehungsseite ========== +relations.title = Beziehungen +relations.tab_relations = Beziehungen +relations.tab_pending = Ausstehend +relations.set_relation_btn = + Beziehung setzen +relations.prev_btn = < Zurück +relations.next_btn = Weiter > +relations.relation_count = {0} Beziehungen +relations.request_count = {0} Anfragen +relations.type_ally = Verbündeter +relations.type_enemy = Feind +relations.type_incoming = Eingehend +relations.type_outgoing = Ausgehend +relations.incoming_request = Eingehende Anfrage +relations.outgoing_request = Ausgehende Anfrage +relations.empty_relations = Noch keine Beziehungen. +relations.empty_relations_hint = Noch keine Beziehungen. Klicken Sie auf + BEZIEHUNG SETZEN, um Verbündete oder Feinde hinzuzufügen. +relations.empty_pending = Keine ausstehenden Allianzanfragen. +relations.today = Heute +relations.one_day_ago = Vor 1 Tag +relations.days_ago = Vor {0} Tagen +relations.now_neutral = Jetzt neutral mit {0}. +relations.now_enemies = Jetzt verfeindet mit {0}! +relations.request_sent = Allianzanfrage an {0} gesendet. +relations.now_allied = Jetzt verbündet mit {0}! +relations.request_declined = Allianzanfrage von {0} abgelehnt. +relations.request_cancelled = Allianzanfrage an {0} abgebrochen. +relations.failed = Fehlgeschlagen: {0} +relations.search_hint = Nach einer Fraktion suchen, um Beziehung zu setzen +relations.no_results = Keine Fraktionen gefunden für '{0}' +relations.power_display = {0} Macht +relations.member_count = {0} Mitglieder +relations.label_members = Mitglieder +relations.label_power = Macht +relations.label_since = Seit: +relations.label_claims = Gebiete: +relations.label_direction = Richtung: +relations.btn_view = Anzeigen +relations.btn_neutral = Neutral +relations.btn_enemy = Feind +relations.btn_ally = Verbündeter +relations.btn_accept = Annehmen +relations.btn_decline = Ablehnen +relations.btn_cancel = Abbrechen + +# ========== Einstellungsseite ========== +settings.title = Fraktionseinstellungen +settings.general = Allgemein +settings.name_label = Name: +settings.tag_label = Tag: +settings.desc_label = Beschr.: +settings.edit_btn = Bearbeiten +settings.recruitment = Aufnahme +settings.status_label = Status: +settings.home_location = Heimstandort +settings.location_label = Standort: +settings.set_home_btn = Heim setzen +settings.teleport_btn = Teleportieren +settings.delete_btn = Löschen +settings.optional_features = Optionale Funktionen +settings.configure_modules = Optionale Module konfigurieren. +settings.modules_btn = Module +settings.danger_zone = Gefahrenzone +settings.irreversible = Diese Aktion kann nicht rückgängig gemacht werden. +settings.disband_btn = Fraktion auflösen +settings.lock_hint = Einige Optionen können vom Server gesperrt sein und lassen keine Änderungen zu. +settings.territory_permissions = Territorialberechtigungen +settings.col_out = Ext +settings.col_ally = Verb +settings.col_mem = Mit +settings.col_off = Off +settings.cat_building = BAUEN +settings.perm_break = Abbauen +settings.perm_place = Platzieren +settings.cat_interaction = INTERAKTION +settings.interaction_hint = (Unterelemente deaktiviert, wenn Alle aus ist) +settings.perm_all = Alle +settings.perm_door = Tür +settings.perm_chest = Truhe +settings.perm_bench = Werkbank +settings.perm_processing = Verarbeitung +settings.perm_seat = Sitz +settings.perm_transport = Transport +settings.cat_other = SONSTIGES +settings.perm_crate = Kistennutzung +settings.perm_npc_tame = NPC zähmen +settings.perm_pve = PvE-Schaden +settings.appearance = Erscheinung +settings.color_label = Farbe: +settings.mob_spawning = Mob-Spawning +settings.mob_spawning_hint = (Unterelemente deaktiviert, wenn Hauptschalter aus ist) +settings.mob_spawning_label = Mob-Spawning +settings.hostile_mobs = Feindliche Mobs +settings.passive_mobs = Passive Mobs +settings.neutral_mobs = Neutrale Mobs +settings.faction_settings = Fraktionseinstellungen +settings.pvp_in_territory = PvP im Territorium +settings.officers_can_edit = Offiziere können bearbeiten +settings.leader_only = Nur Anführer +settings.officers_only = Nur Offiziere und Anführer können Fraktionseinstellungen ändern. +settings.display_none = (Keine) +settings.home_not_set = Nicht festgelegt +settings.no_permission = Sie haben keine Berechtigung, Einstellungen zu ändern. +settings.only_leader_disband = Nur der Anführer kann die Fraktion auflösen. +settings.perm_locked = Diese Einstellung ist vom Server gesperrt. +settings.no_perm_edit = Sie haben keine Berechtigung, Territorialberechtigungen zu bearbeiten. +settings.only_leader_officers = Nur der Anführer kann den Offizierstatus ändern. +settings.pvp_enabled = Aktiviert +settings.pvp_disabled = Deaktiviert +settings.not_in_territory = Sie müssen im Territorium Ihrer Fraktion sein, um das Heim zu setzen. +settings.home_set = Fraktionsheim auf Ihren aktuellen Standort gesetzt! +settings.recruitment_set = Aufnahme auf {0} gesetzt. +settings.home_no_set = Ihre Fraktion hat kein Heim festgelegt. +settings.home_deleted = Fraktionsheim gelöscht! + +# ========== Modulseite ========== +modules.title = Fraktionsmodule +modules.description = Optionale Funktionen zur Verbesserung Ihrer Fraktion +modules.configure_btn = Konfigurieren +modules.back_btn = < Zurück zu Einstellungen +modules.treasury_name = Schatzkammer +modules.treasury_desc = Fraktionsbank & Wirtschaftssystem +modules.raids_name = Überfälle +modules.raids_desc = Geplante Fraktionskämpfe +modules.levels_name = Stufen +modules.levels_desc = Fraktionsfortschritt & XP +modules.war_name = Krieg +modules.war_desc = Formelle Kriegserklärungen +modules.coming_soon = Demnächst +modules.active = Aktiv +modules.view_treasury = Schatzkammer anzeigen +modules.unavailable = Nicht verfügbar +modules.no_economy = Kein Wirtschafts-Plugin erkannt +modules.disabled = Deaktiviert +modules.economy_not_available = Wirtschaftsfunktionen sind auf diesem Server nicht verfügbar + +# ========== Schatzkammer-Seite ========== +treasury.title = Fraktionsschatzkammer +treasury.balance_label = Guthaben +treasury.income_24h = Einnahmen (24h) +treasury.deposits_transfers_in = Einzahlungen, eingehende Überweisungen +treasury.expenses_24h = Ausgaben (24h) +treasury.withdrawals_transfers_out = Abhebungen, ausgehende Überweisungen +treasury.maintenance = UNTERHALT +treasury.runway_label = Laufzeit: +treasury.add_funds = Geld hinzufügen +treasury.deposit_btn = Einzahlen +treasury.take_funds = Geld entnehmen +treasury.withdraw_btn = Abheben +treasury.send_to_faction = An Fraktion senden +treasury.transfer_btn = Überweisen +treasury.treasury_config = Schatzkammer-Einstellungen +treasury.settings_btn = Einstellungen +treasury.recent_transactions = Letzte Transaktionen +treasury.no_transactions = Noch keine Transaktionen +treasury.col_date = Datum +treasury.col_type = Typ +treasury.col_by = Von +treasury.col_amount = Betrag +treasury.col_details = Details +treasury.pay_now_btn = Jetzt bezahlen +treasury.cost_7d = 7T: +treasury.cost_14d = 14T: +treasury.cost_30d = 30T: +treasury.settings_title = Schatzkammer-Einstellungen +treasury.officer_permissions = OFFIZIERSBERECHTIGUNGEN +treasury.allow_withdraw = Offizieren Abhebungen erlauben +treasury.allow_transfer = Offizieren Überweisungen erlauben +treasury.limits_section = ABHEBUNGS- UND ÜBERWEISUNGSLIMITS +treasury.max_per_withdrawal = Max. pro Abhebung: +treasury.max_withdrawals_per = Max. Abhebungen pro Zeitraum: +treasury.max_per_transfer = Max. pro Überweisung: +treasury.max_transfers_per = Max. Überweisungen pro Zeitraum: +treasury.limit_period = Limitzeitraum (Stunden): +treasury.no_limit_hint = Auf 0 setzen für kein Limit +treasury.upkeep_settings = UNTERHALTSEINSTELLUNGEN +treasury.auto_pay_upkeep = Unterhalt automatisch aus der Schatzkammer bezahlen +treasury.back_btn = Zurück +treasury.upkeep_cost_format = {0} alle {1}h +treasury.upkeep_time_left = {0} verbleibend +treasury.wallet_label = Ihre Geldbörse: {0} +treasury.treasury_label = Schatzkammerguthaben: {0} +treasury.chunks_detail = {0} kostenlos + {1} kostenpflichtige Chunks +treasury.cost_label = Kosten: {0} +treasury.pending = Ausstehend +treasury.auto_pay_on = Auto-Zahlung: AN +treasury.auto_pay_off = Auto-Zahlung: AUS +treasury.runway_90_plus = 90+ Tage +treasury.runway_days = {0} Tage +treasury.runway_day = {0} Tag +treasury.runway_less_day = < 1 Tag +treasury.runway_no_funds = Kein Guthaben +treasury.grace_expires = Gnadenfrist endet in: {0} +treasury.missed_payments = Versäumte Zahlungen: {0} +treasury.pay_to_clear = {0} zahlen, um Gnadenfrist aufzuheben +treasury.system = System +treasury.type_deposit = Einzahlung +treasury.type_withdrawal = Abhebung +treasury.type_transfer_in = Eingehende Überweisung +treasury.type_transfer_out = Ausgehende Überweisung +treasury.type_player_transfer = Spielerüberweisung +treasury.type_upkeep = Unterhalt +treasury.type_tax = Steuereinnahmen +treasury.type_war_cost = Kriegskosten +treasury.type_raid_cost = Überfallkosten +treasury.type_spoils = Beute +treasury.type_admin = Admin-Anpassung +treasury.deposit_title = In Schatzkammer einzahlen +treasury.withdraw_title = Aus Schatzkammer abheben +treasury.fee_label = Gebühr ({0}%) +treasury.confirm_deposit = Einzahlung bestätigen +treasury.confirm_withdrawal = Abhebung bestätigen +treasury.from_wallet = {0} aus Geldbörse +treasury.to_wallet = {0} an Geldbörse +treasury.enter_valid_amount = Geben Sie einen gültigen positiven Betrag ein. +treasury.insufficient_wallet = Unzureichendes Geldbörsenguthaben. Benötigt {0}, vorhanden {1}. +treasury.wallet_withdraw_failed = Abhebung von Ihrer Geldbörse fehlgeschlagen. +treasury.deposit_failed_returned = Einzahlung fehlgeschlagen. Geld zurückerstattet. +treasury.deposited = {0} in die Schatzkammer eingezahlt. +treasury.deposited_fee = {0} in die Schatzkammer eingezahlt. (Gebühr: {1}) +treasury.no_withdraw_permission = Sie haben keine Berechtigung zum Abheben. +treasury.withdraw_denied = Abhebung abgelehnt: {0} +treasury.insufficient_treasury = Unzureichendes Guthaben in der Schatzkammer. +treasury.withdraw_limit = Abhebungslimit überschritten. +treasury.withdraw_failed = Abhebung fehlgeschlagen: {0} +treasury.wallet_deposit_warn = Warnung: Einzahlung in Ihre Geldbörse fehlgeschlagen. Kontaktieren Sie einen Admin. +treasury.withdrew = {0} aus der Schatzkammer abgehoben. +treasury.withdrew_fee = {0} aus der Schatzkammer abgehoben. (Gebühr: {1}, erhalten: {2}) +treasury.search_hint = Nach einem Spieler oder einer Fraktion suchen +treasury.no_results = Keine Ergebnisse für '{0}' +treasury.tag_player = [Spieler] +treasury.tag_faction = [Fraktion] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale-Spieler +treasury.no_transfer_permission = Sie haben keine Berechtigung zum Überweisen. +treasury.transfer_denied = Überweisung abgelehnt: {0} +treasury.invalid_target_faction = Ungültige Zielfraktion. +treasury.target_faction_gone = Zielfraktion existiert nicht mehr. +treasury.transfer_failed = Überweisung fehlgeschlagen: {0} +treasury.transfer_failed_returned = Überweisung fehlgeschlagen. Geld zurückerstattet. +treasury.transferred = {0} an {1} überwiesen. +treasury.invalid_target_player = Ungültiger Zielspieler. +treasury.player_transfer_failed = Einzahlung in Spielergeldbörse fehlgeschlagen. Überweisung zurückgerollt. +treasury.leader_only_perms = Nur der Anführer kann Schatzkammer-Berechtigungen ändern. +treasury.leader_only_upkeep = Nur der Anführer kann Unterhaltseinstellungen ändern. +treasury.invalid_limit = Ungültige Zahl in den Limitfeldern. Verwenden Sie 0 für unbegrenzt. + +# ========== Bestätigungsseiten ========== +confirm.disband_title = Fraktion auflösen +confirm.disband_prompt = Sind Sie sicher, dass Sie auflösen möchten +confirm.disband_warning = Diese Aktion kann nicht rückgängig gemacht werden! +confirm.leave_title = Fraktion verlassen +confirm.leave_prompt = Sind Sie sicher, dass Sie verlassen möchten +confirm.leave_warning = Sie verlieren den Zugang zum Fraktionsterritorium. +confirm.leader_leave_title = Als Anführer verlassen +confirm.leader_leave_prompt = Sie verlassen +confirm.transfer_title = Führung übertragen +confirm.transfer_prompt = Sind Sie sicher, dass Sie die Führung übertragen möchten an +confirm.transfer_warning = Sie werden zum Offizier. +confirm.disband_not_leader = Nur der Anführer kann die Fraktion auflösen. +confirm.disbanded = Fraktion '{0}' wurde aufgelöst. +confirm.disband_failed = Auflösung der Fraktion fehlgeschlagen. +confirm.succession_title = Führung wird übertragen an: +confirm.no_members_warning = WARNUNG: Keine weiteren Mitglieder! +confirm.will_disband = Verlassen wird die Fraktion dauerhaft auflösen. +confirm.not_in_faction = Sie sind nicht in dieser Fraktion. +confirm.not_leader_anymore = Sie sind nicht mehr der Anführer. +confirm.no_successor = Kein Nachfolger verfügbar. Verwenden Sie stattdessen Auflösen. +confirm.transfer_failed = Führungsübertragung fehlgeschlagen: {0} +confirm.leader_left = Führung an {0} übertragen. Sie haben {1} verlassen. +confirm.leave_failed = Verlassen der Fraktion fehlgeschlagen: {0} +confirm.leader_cannot_leave = Anführer können nicht verlassen. Übertragen Sie die Führung oder lösen Sie die Fraktion auf. +confirm.left_faction = Sie haben {0} verlassen. +confirm.faction_gone = Fraktion existiert nicht mehr. +confirm.not_leader_transfer = Nur der Anführer kann die Führung übertragen. +confirm.leadership_transferred = Führung an {0} übertragen. + +# ========== Protokollansicht ========== +logs.title = {0} - Aktivitätsprotokolle +logs.entry_count = {0} Einträge +logs.filter_label = Filter: +logs.col_time = Zeit +logs.col_type = Typ +logs.col_message = Nachricht +logs.prev_btn = < Zurück +logs.next_btn = Weiter > +logs.all_types = Alle Typen +logs.no_logs_type = Keine Protokolle dieses Typs. +logs.no_logs = Noch keine Aktivitätsprotokolle. +logs.time_just_now = gerade eben +logs.time_minute = vor {0} Minute +logs.time_minutes = vor {0} Minuten +logs.time_hour = vor {0} Stunde +logs.time_hours = vor {0} Stunden +logs.time_day = vor {0} Tag +logs.time_days = vor {0} Tagen +logs.time_week = vor {0} Woche +logs.time_weeks = vor {0} Wochen +logs.type_member_join = Beitritt +logs.type_member_leave = Austritt +logs.type_member_kick = Rauswurf +logs.type_member_promote = Beförderung +logs.type_member_demote = Degradierung +logs.type_claim = Beanspruchung +logs.type_unclaim = Freigabe +logs.type_overclaim = Überbeanspruchung +logs.type_home_set = Heim gesetzt +logs.type_relation_ally = Verbündeter +logs.type_relation_enemy = Feind +logs.type_relation_neutral = Neutral +logs.type_leader_transfer = Übertragung +logs.type_settings_change = Einstellungen +logs.type_power_change = Macht +logs.type_economy = Wirtschaft +logs.type_admin_power = Admin-Macht + +# Protokollnachricht-Vorlagen (i18n für Aktivitätsprotokoll-Inhalte) +# Spieleraktionen +logs.msg_faction_created = {0} hat die Fraktion gegründet +logs.msg_member_joined = {0} ist der Fraktion beigetreten +logs.msg_member_left = {0} hat die Fraktion verlassen +logs.msg_member_kicked = {0} wurde rausgeworfen +logs.msg_member_promoted = {0} befördert zu {1} +logs.msg_member_demoted = {0} degradiert zu {1} +logs.msg_leader_transferred = Führung an {0} übertragen +logs.msg_leader_left_transfer = {0} ist gegangen, {1} ist jetzt Anführer +logs.msg_relation_set = {0} als {1} gesetzt +# Territorium +logs.msg_claimed = Chunk beansprucht bei {0}, {1} in {2} +logs.msg_unclaimed = Chunk freigegeben bei {0}, {1} in {2} +logs.msg_overclaim_lost = Chunk verloren bei {0}, {1} an {2} +logs.msg_overclaim_taken = Chunk überbeansprucht bei {0}, {1} von {2} +logs.msg_all_unclaimed = Gesamtes Territorium freigegeben +logs.msg_claim_removed_world = Anspruch in '{0}' entfernt (Welt verbietet Beanspruchung) +logs.msg_claims_lost_upkeep = {0} Anspruch/Ansprüche durch Unterhalt verloren ({1} Zahlungen versäumt) +logs.msg_claims_removed_inactive = {0} Ansprüche wegen Inaktivität entfernt ({1} Tage) +# Heim +logs.msg_home_set = Heim festgelegt +logs.msg_home_cleared = Heim gelöscht +logs.msg_home_cleared_world = Heim in '{0}' gelöscht (Welt verbietet Beanspruchung) +# Einstellungen +logs.msg_renamed = Umbenannt von '{0}' zu '{1}' +logs.msg_set_open = Fraktion auf offen gesetzt +logs.msg_set_closed = Fraktion auf nur Einladung gesetzt +logs.msg_desc_set = Beschreibung festgelegt +logs.msg_desc_cleared = Beschreibung gelöscht +logs.msg_color_changed = Farbe geändert zu '{0}' +# Wirtschaft +logs.msg_deposit = Einzahlung: {0} (+{1}) +logs.msg_withdrawal = Abhebung: {0} (-{1}) +logs.msg_upkeep_paid = Unterhalt bezahlt: {0} ({1} kostenpflichtige Chunks) +logs.msg_upkeep_grace_started = Unterhalt fehlgeschlagen: Gnadenfrist begonnen ({0}h) +logs.msg_upkeep_missed = Unterhalt versäumt (Zahlung {0}), Gnadenfrist endet in {1} +logs.msg_upkeep_manual = Unterhalt manuell bezahlt: {0} ({1} kostenpflichtige Chunks, Gnadenfrist aufgehoben) +# Admin-Macht +logs.msg_admin_power_set = Admin hat Macht von {0} auf {1} gesetzt (war {2}) +logs.msg_admin_power_add = Admin hat {0} Macht zu {1} hinzugefügt ({2} -> {3}) +logs.msg_admin_power_remove = Admin hat {0} Macht von {1} entfernt ({2} -> {3}) +logs.msg_admin_power_reset = Admin hat Macht von {0} auf {1} zurückgesetzt (war {2}) +logs.msg_admin_power_adjusted = Admin hat Macht von {0} um {1} angepasst ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin hat Max-Macht von {0} auf {1} gesetzt (war {2}) +logs.msg_admin_maxpower_reset = Admin hat Max-Macht von {0} auf globalen Standard zurückgesetzt ({1}) +logs.msg_admin_powerloss_enabled = Admin hat Machtverlust für {0} aktiviert +logs.msg_admin_powerloss_disabled = Admin hat Machtverlust für {0} deaktiviert +logs.msg_admin_decay_enabled = Admin hat Anspruchsverfall-Ausnahme für {0} aktiviert +logs.msg_admin_decay_disabled = Admin hat Anspruchsverfall-Ausnahme für {0} deaktiviert +logs.msg_admin_kd_reset = Admin hat K/D für {0} zurückgesetzt +logs.msg_admin_power_set_all = Admin hat Macht aller {0} Mitglieder auf {1} gesetzt +logs.msg_admin_power_add_all = Admin hat {0} Macht zu allen {1} Mitgliedern hinzugefügt +logs.msg_admin_power_remove_all = Admin hat {0} Macht von allen {1} Mitgliedern entfernt +logs.msg_admin_power_reset_all = Admin hat Macht für alle {0} Mitglieder zurückgesetzt +logs.msg_admin_power_adjusted_all = Admin hat Macht aller {0} Mitglieder um {1} angepasst +# Admin-Fraktion +logs.msg_admin_kicked = [Admin] {0} wurde rausgeworfen +logs.msg_admin_role_set = [Admin] Rolle von {0} auf {1} gesetzt +logs.msg_admin_leader_kick = [Admin] Führung von {0} an {1} übertragen (Admin-Rauswurf) +logs.msg_admin_econ_added = Admin hinzugefügt: {0} (Guthaben: {1}) +logs.msg_admin_econ_deducted = Admin abgezogen: {0} (Guthaben: {1}) +logs.msg_admin_econ_set = Admin hat Guthaben auf {0} gesetzt (war {1}) +# Import +logs.msg_left_import = {0} ist gegangen (in andere Fraktion importiert) +logs.msg_leader_import_transfer = {0} wurde Anführer (vorheriger Anführer in andere Fraktion importiert) +logs.msg_imported_from = Fraktion importiert von {0} + +# ========== Chat-Seite ========== +chat.title = Fraktionschat +chat.tab_faction = Fraktion +chat.tab_ally = Verbündete +chat.send_btn = Senden +chat.placeholder = Nachricht eingeben... +chat.no_messages = Noch keine Nachrichten. +chat.no_ally_permission = Sie haben keine Berechtigung für den Verbündeten-Chat. +chat.no_permission = Keine Berechtigung. +chat.faction_gone = Ihre Fraktion existiert nicht mehr. +chat.time_now = jetzt +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Einladungsseite ========== +invites.title = Einladungen +invites.tab_outgoing = Ausgehend +invites.tab_requests = Anfragen +invites.prev_btn = < Zurück +invites.next_btn = Weiter > +invites.invite_count = {0} Einladungen +invites.request_count = {0} Anfragen +invites.invited_by = Eingeladen von: {0} +invites.no_message = Keine Nachricht +invites.expires = Läuft ab: {0} +invites.type_outgoing = Ausgehend +invites.type_request = Anfrage +invites.invited_by_label = Eingeladen von: +invites.empty_outgoing = Keine ausgehenden Einladungen. Verwenden Sie /f invite , um jemanden einzuladen. +invites.empty_requests = Keine Beitrittsanfragen. Spieler können mit /f request einen Beitritt anfragen. +invites.invalid_player = Ungültiger Spieler. +invites.cancelled_invite = Einladung an {0} abgebrochen. +invites.player_joined = {0} ist der Fraktion beigetreten! +invites.faction_full = Fraktion ist voll. Anfrage kann nicht angenommen werden. +invites.add_failed = Spieler konnte nicht zur Fraktion hinzugefügt werden. +invites.request_expired = Anfrage nicht gefunden oder abgelaufen. +invites.request_declined = Beitrittsanfrage von {0} abgelehnt. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h +invites.label_message = Nachricht: +invites.btn_cancel = Abbrechen +invites.btn_accept = Annehmen +invites.btn_decline = Ablehnen + +# ========== Kartenseite ========== +map.title = Gebietskarte +map.action_hint = Linksklick: Beanspruchen | Rechtsklick: Freigeben +map.legend_your = Ihr Territorium +map.legend_ally = Verbündetes Territorium +map.legend_enemy = Feindliches Territorium +map.legend_other = Andere Fraktion +map.legend_wilderness = Wildnis +map.legend_safe = SafeZone +map.legend_war = WarZone +map.legend_you = Sie sind hier +map.position = Ihre Position: Chunk ({0}, {1}) +map.legend_protected = Geschützt +map.claim_stats = Gebiete: {0}/{1} ({2} verfügbar) +map.overclaimed = ÜBERBEANSPRUCHT von {0}! +map.power_display = Macht: {0}/{1} +map.join_to_claim = Treten Sie einer Fraktion bei, um zu beanspruchen +map.claim_success = Chunk bei ({0}, {1}) beansprucht! +map.claim_not_in_faction = Sie müssen in einer Fraktion sein, um Territorium zu beanspruchen. +map.claim_not_officer = Nur Offiziere und Anführer können Territorium beanspruchen. +map.claim_already_yours = Sie besitzen diesen Chunk bereits. +map.claim_already_claimed = Dieser Chunk ist bereits von einer anderen Fraktion beansprucht. +map.claim_not_adjacent = Sie können nur Chunks angrenzend an Ihr Territorium beanspruchen. +map.claim_max = Sie haben Ihr maximales Gebietslimit erreicht. +map.claim_world_not_allowed = Beanspruchung ist in dieser Welt nicht erlaubt. +map.claim_orbisguard = Dieses Gebiet ist durch OrbisGuard geschützt. +map.claim_failed = Chunk konnte nicht beansprucht werden. +map.unclaim_success = Chunk bei ({0}, {1}) freigegeben. +map.unclaim_not_in_faction = Sie müssen in einer Fraktion sein. +map.unclaim_not_officer = Nur Offiziere und Anführer können Territorium freigeben. +map.unclaim_not_claimed = Dieser Chunk ist nicht beansprucht. +map.unclaim_not_yours = Dieser Chunk gehört einer anderen Fraktion. +map.unclaim_home = Der Chunk mit Ihrem Fraktionsheim kann nicht freigegeben werden. +map.unclaim_failed = Freigabe des Chunks fehlgeschlagen. +map.overclaim_success = Feindlichen Chunk bei ({0}, {1}) überbeansprucht! +map.overclaim_not_in_faction = Sie müssen in einer Fraktion sein. +map.overclaim_not_officer = Nur Offiziere und Anführer können Territorium überbeanspruchen. +map.overclaim_already_yours = Sie besitzen diesen Chunk bereits. +map.overclaim_ally = Sie können verbündetes Territorium nicht überbeanspruchen. +map.overclaim_has_power = Diese Fraktion hat genug Macht, um ihr Territorium zu verteidigen. +map.overclaim_max = Sie haben Ihr maximales Gebietslimit erreicht. +map.overclaim_failed = Überbeanspruchung des Chunks fehlgeschlagen. +# ========== Fraktion erstellen ========== +create.title = Erstellen Sie Ihre Fraktion +create.section_preview = Vorschau +create.section_basic_info = Grundinfo +create.section_details = Details +create.name_prefix = Name: +create.faction_name_label = Fraktionsname * +create.tag_label = TAG (2-4 Zeichen, automatisch wenn leer) +create.desc_label = Beschreibung (Optional) +create.recruitment_label = Aufnahme +create.section_faction_color = Fraktionsfarbe +create.section_combat = Kampf +create.create_btn = Fraktion erstellen +create.preview_name = Ihr Fraktionsname +create.leader_prefix = Anführer: {0} +create.enter_name = Bitte geben Sie einen Fraktionsnamen ein. +create.name_too_short = Fraktionsname muss mindestens {0} Zeichen lang sein. +create.name_too_long = Fraktionsname darf {0} Zeichen nicht überschreiten. +create.name_taken = Eine Fraktion mit diesem Namen existiert bereits. +create.tag_length = Fraktionstag muss {0}-{1} Zeichen lang sein. +create.tag_format = Fraktionstag darf nur Buchstaben und Zahlen enthalten. +create.desc_too_long = Beschreibung darf {0} Zeichen nicht überschreiten. +create.created = Fraktion {0} erfolgreich erstellt! +create.created_no_dashboard = Fraktion erstellt, aber Übersicht konnte nicht geöffnet werden. +create.invalid_name = Ungültiger Fraktionsname. +create.create_failed = Fraktion konnte nicht erstellt werden. + +# ========== Neue Spieler Seiten ========== +newplayer.browse_title = Fraktionen durchsuchen +newplayer.invites_title = Einladungen & Anfragen +newplayer.map_title = Gebietskarte +newplayer.view_only_badge = Nur-Anzeige-Modus +newplayer.legend_label = Legende: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Fraktion +newplayer.legend_wilderness = Wildnis +newplayer.search_label = Suche: +newplayer.sort_label = Sortieren: +newplayer.prev_btn = < Zurück +newplayer.next_btn = Weiter > +newplayer.pending_count = {0} ausstehend +newplayer.received_header = ERHALTENE EINLADUNGEN ({0}) +newplayer.requests_header = IHRE ANFRAGEN ({0}) +newplayer.no_invites = Keine Einladungen. Durchsuchen Sie Fraktionen, um eine zu finden! +newplayer.no_requests = Keine ausstehenden Anfragen. +newplayer.invited_by = Eingeladen von: {0} +newplayer.member_count = {0} Mitglieder +newplayer.power_count = {0} Macht +newplayer.claim_count = {0} Gebiete +newplayer.awaiting_review = Wartet auf Prüfung +newplayer.expires_in = Läuft ab in {0}h +newplayer.time_just_now = gerade eben +newplayer.time_minutes = vor {0} Min +newplayer.time_hours = vor {0}h +newplayer.time_days = vor {0}T +newplayer.invalid_faction = Ungültige Fraktion. +newplayer.invite_expired = Diese Einladung ist abgelaufen oder wurde widerrufen. +newplayer.faction_gone = Fraktion existiert nicht mehr. +newplayer.joined = Sie sind {0} beigetreten! +newplayer.faction_full = Diese Fraktion ist voll. +newplayer.join_failed = Beitritt zur Fraktion nicht möglich. +newplayer.invite_declined = Einladung abgelehnt. +newplayer.request_cancelled = Anfrage zum Beitritt bei {0} abgebrochen. +newplayer.faction_count = {0} Fraktionen +newplayer.browse_subtitle = Finden Sie Ihr neues Zuhause! +newplayer.sort_power = Macht +newplayer.sort_name = Name +newplayer.sort_members = Mitglieder +newplayer.btn_accept = Annehmen +newplayer.btn_pending = Ausstehend +newplayer.btn_join = Beitreten +newplayer.btn_request = Anfragen +newplayer.invite_only_msg = Diese Fraktion ist nur auf Einladung zugänglich. +newplayer.welcome_hint = Willkommen! Verwenden Sie /f, um das Fraktionsmenü zu öffnen. +newplayer.faction_open_hint = Diese Fraktion ist offen! Klicken Sie stattdessen auf BEITRETEN. +newplayer.already_requested = Sie haben bereits eine ausstehende Anfrage bei dieser Fraktion. +newplayer.has_invite_hint = Sie haben eine Einladung von dieser Fraktion! Klicken Sie stattdessen auf ANNEHMEN. +newplayer.request_sent = Beitrittsanfrage an {0} gesendet! +newplayer.officer_review = Ein Offizier wird Ihre Anfrage prüfen. +newplayer.map_hint = Nur Anzeige — Treten Sie einer Fraktion bei, um Territorium zu beanspruchen! + +# Spielereinstellungen +nav.player_settings = Spieler +player_settings.title = Spielereinstellungen +player_settings.language_section = Sprache +player_settings.auto_detect = Automatisch vom Client erkennen +player_settings.auto_detect_desc = Verwendet die Spracheinstellung Ihres Spielclients +player_settings.language_label = Sprache +player_settings.notifications_section = Benachrichtigungen +player_settings.territory_alerts = Gebietsbenachrichtigungen +player_settings.territory_alerts_desc = Benachrichtigungen beim Betreten/Verlassen von Territorien anzeigen +player_settings.death_announcements = Todesankündigungen +player_settings.death_announcements_desc = Todesort-Ankündigungen von Fraktionsmitgliedern empfangen +player_settings.power_notifications = Machtänderungen +player_settings.power_notifications_desc = Nachrichten anzeigen, wenn sich Ihre Macht ändert +player_settings.language_changed = Sprache geändert zu {0} +player_settings.pref_enabled = {0} aktiviert +player_settings.pref_disabled = {0} deaktiviert + +# ========== Hilfeseiten ========== +help.center_title = Hilfezentrum +help.getting_started_title = Erste Schritte +help.what_are_factions_title = Was sind Fraktionen? +help.what_are_factions_1 = Fraktionen sind von Spielern erstellte Gruppen, die zusammenarbeiten, +help.what_are_factions_2 = um Territorium zu beanspruchen, Basen zu bauen und zu konkurrieren. +help.what_are_factions_bullet_1 = - Geschütztes Territorium zum Bauen +help.what_are_factions_bullet_2 = - Teammitglieder zum Spielen +help.what_are_factions_bullet_3 = - Zugang zu Fraktionschat und Funktionen +help.joining_title = Einer Fraktion beitreten +help.joining_desc = Es gibt mehrere Möglichkeiten, einer Fraktion beizutreten: +help.joining_bullet_1 = - Durchsuchen - Offene Fraktionen finden und BEITRETEN klicken +help.joining_bullet_2 = - Einladungen - Einladungen von Offizieren annehmen +help.joining_bullet_3 = - Anfragen - Bei Fraktionen auf Einladung anfragen +help.creating_title = Eine Fraktion gründen +help.creating_desc = Gehen Sie zum Erstellen-Tab, um Ihre eigene Fraktion zu gründen. +help.creating_bullet_1 = - Mitglieder einladen und verwalten +help.creating_bullet_2 = - Territorium beanspruchen und schützen +help.commands_title = Schnellbefehle +help.cmd_f = /f - Fraktionsmenü öffnen +help.cmd_f_list = /f list - Alle Fraktionen auflisten +help.cmd_f_join = /f join - Einer offenen Fraktion beitreten +help.cmd_f_create = /f create - Eine neue Fraktion gründen +help.cmd_f_help = /f help - Vollständige Befehlsliste +help.tip = Tipp: Durchsuchen Sie Fraktionen, um eine Gruppe zu finden, die zu Ihnen passt! From 334be6da4fa19ca29406aa16e24f0ac5a4fa9b88 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:12:49 -0700 Subject: [PATCH 56/76] i18n: add French (fr-FR) translations Complete French translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/fr-FR/help/combat/death.md | 39 + .../Languages/fr-FR/help/combat/protection.md | 28 + .../fr-FR/help/combat/spawn_protection.md | 27 + .../Languages/fr-FR/help/combat/tagging.md | 29 + .../Languages/fr-FR/help/combat/zones.md | 29 + .../fr-FR/help/diplomacy/alliances.md | 45 + .../Languages/fr-FR/help/diplomacy/enemies.md | 47 + .../fr-FR/help/diplomacy/relations.md | 38 + .../Languages/fr-FR/help/economy/commands.md | 27 + .../Languages/fr-FR/help/economy/funds.md | 42 + .../Languages/fr-FR/help/economy/treasury.md | 26 + .../Languages/fr-FR/help/economy/upkeep.md | 37 + .../fr-FR/help/power_land/claiming.md | 50 + .../fr-FR/help/power_land/losing_territory.md | 50 + .../fr-FR/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../fr-FR/help/quick_ref/all_commands.md | 94 ++ .../fr-FR/help/welcome/getting_started.md | 38 + .../fr-FR/help/welcome/quick_tips.md | 44 + .../fr-FR/help/welcome/what_are_factions.md | 37 + .../fr-FR/help/your_faction/creating.md | 38 + .../fr-FR/help/your_faction/joining.md | 36 + .../fr-FR/help/your_faction/managing.md | 44 + .../fr-FR/help/your_faction/roles.md | 44 + .../Server/Languages/fr-FR/hyperfactions.lang | 453 +++++++++ .../Languages/fr-FR/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/fr-FR/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/death.md b/src/main/resources/Server/Languages/fr-FR/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md b/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md b/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md b/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md b/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md b/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md b/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md b/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang new file mode 100644 index 00000000..77ab5767 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Traductions Françaises +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Commun ========== +common.no_permission = Vous n'avez pas la permission de faire cela. +common.not_in_faction = Vous n'appartenez à aucune faction. +common.already_in_faction = Vous appartenez déjà à une faction. +common.player_not_found = Joueur introuvable. +common.faction_not_found = Faction introuvable. +common.player_not_online = Ce joueur n'est pas en ligne. +common.must_be_leader = Seul le chef de la faction peut faire cela. +common.must_be_officer = Vous devez être Officier ou Chef pour faire cela. +common.combat_tagged = Vous ne pouvez pas faire cela en combat. +common.cancel = Annuler +common.confirm = Confirmer +common.save = Sauvegarder +common.close = Fermer +common.clear = Effacer +common.back = Retour +common.leave = Quitter +common.transfer = Transférer +common.disband = Dissoudre +common.world_fallback = monde +common.yes = Oui +common.no = Non +common.loading = Chargement... +common.online = En ligne +common.offline = Hors ligne +common.enabled = Activé +common.disabled = Désactivé +common.none = Aucun +common.page = Page {0} sur {1} +common.unknown = Inconnu +common.error_generic = Une erreur s'est produite. Veuillez réessayer. +common.gui_fallback = Impossible d'accéder à l'interface. Utilisez /f help pour les commandes. +common.admin_prefix = [Admin] +common.location_error = Impossible de déterminer votre position. +common.world_error = Impossible de déterminer votre monde. +common.invalid_id = Identifiant de faction invalide. +common.na = N/A + +# ========== Commandes - Créer ========== +cmd.create.no_permission = Vous n'avez pas la permission de créer des factions. +cmd.create.usage = Utilisation : /f create +cmd.create.success = Faction « {0} » créée ! +cmd.create.already_in_named = Vous appartenez déjà à {0}. +cmd.create.use_leave_first = Utilisez /f leave d'abord si vous souhaitez créer une nouvelle faction. +cmd.create.name_taken = Ce nom de faction est déjà pris. +cmd.create.name_too_short = Le nom de la faction est trop court. +cmd.create.name_too_long = Le nom de la faction est trop long. +cmd.create.failed = Échec de la création de la faction. + +# ========== Commandes - Dissoudre ========== +cmd.disband.no_permission = Vous n'avez pas la permission de dissoudre des factions. +cmd.disband.not_leader = Seul le chef de la faction peut la dissoudre. +cmd.disband.confirm_prompt = Êtes-vous sûr de vouloir dissoudre votre faction ? +cmd.disband.confirm_instruction = Tapez /f disband --text à nouveau dans les {0} secondes pour confirmer. +cmd.disband.success = Votre faction a été dissoute. +cmd.disband.failed = Échec de la dissolution de la faction. +cmd.disband.cancelled = Confirmation précédente annulée. Tapez à nouveau pour confirmer la dissolution. + +# ========== Commandes - Renommer ========== +cmd.rename.no_permission = Vous n'avez pas la permission. +cmd.rename.not_leader = Seul le chef peut renommer la faction. +cmd.rename.usage = Utilisation : /f rename +cmd.rename.too_short = Le nom est trop court (min. {0} caractères). +cmd.rename.too_long = Le nom est trop long (max. {0} caractères). +cmd.rename.name_taken = Ce nom est déjà pris. +cmd.rename.success = Faction renommée en {0} ! +cmd.rename.broadcast = {0} a renommé la faction en {1} + +# ========== Commandes - Description ========== +cmd.desc.no_permission = Vous n'avez pas la permission. +cmd.desc.not_officer = Vous devez être officier pour modifier la description. +cmd.desc.set = Description de la faction définie ! +cmd.desc.cleared = Description de la faction effacée. + +# ========== Commandes - Ouvrir / Fermer ========== +cmd.open.no_permission = Vous n'avez pas la permission. +cmd.open.not_leader = Seul le chef peut modifier ce paramètre. +cmd.open.already_open = Votre faction est déjà ouverte. +cmd.open.success = Votre faction est maintenant ouverte ! N'importe qui peut rejoindre avec /f join. +cmd.open.broadcast = {0} a ouvert la faction au recrutement public. +cmd.close.no_permission = Vous n'avez pas la permission. +cmd.close.not_leader = Seul le chef peut modifier ce paramètre. +cmd.close.already_closed = Votre faction est déjà fermée. +cmd.close.success = Votre faction est maintenant sur invitation uniquement. +cmd.close.broadcast = {0} a fermé la faction au recrutement (sur invitation uniquement). + +# ========== Commandes - Couleur ========== +cmd.color.no_permission = Vous n'avez pas la permission. +cmd.color.not_officer = Vous devez être officier pour changer la couleur. +cmd.color.colors_disabled = Les couleurs de faction sont désactivées. +cmd.color.usage = Utilisation : /f color +cmd.color.usage_hint = Codes valides : 0-9, a-f ou #RRGGBB en hexadécimal +cmd.color.invalid = Couleur invalide. Utilisez 0-9, a-f, ou #RRGGBB. +cmd.color.success = Couleur de la faction mise à jour ! + +# ========== Commandes - Revendiquer ========== +cmd.claim.no_permission = Vous n'avez pas la permission de revendiquer du territoire. +cmd.claim.already_yours = Votre faction possède déjà ce chunk. +cmd.claim.cannot_claim_ally = Vous ne pouvez pas revendiquer le territoire d'un allié. +cmd.claim.already_claimed_hint = Ce chunk est déjà revendiqué. Utilisez /f overclaim s'ils sont vulnérables. +cmd.claim.success = Chunk revendiqué en {0}, {1} ! +cmd.claim.not_officer = Vous devez être officier pour revendiquer des terres. +cmd.claim.already_claimed = Ce chunk est déjà revendiqué. +cmd.claim.max_claims = Votre faction a atteint le maximum de revendications. Gagnez plus de puissance ! +cmd.claim.not_adjacent = Vous devez revendiquer un chunk adjacent à votre territoire existant. +cmd.claim.world_not_allowed = La revendication n'est pas autorisée dans ce monde. +cmd.claim.orbisguard = Cette zone est protégée par OrbisGuard. +cmd.claim.zone_protected = Ce chunk se trouve dans une SafeZone ou une WarZone. +cmd.claim.insufficient_power = Votre faction n'a pas assez de puissance pour revendiquer plus de territoire. +cmd.claim.failed = Échec de la revendication du chunk. + +# ========== Commandes - Inviter ========== +cmd.invite.no_permission = Vous n'avez pas la permission d'inviter des joueurs. +cmd.invite.not_officer = Vous devez être officier pour inviter des joueurs. +cmd.invite.usage = Utilisation : /f invite +cmd.invite.player_not_found = Joueur « {0} » introuvable ou hors ligne. +cmd.invite.target_in_faction = Ce joueur appartient déjà à une faction. +cmd.invite.sent = {0} a été invité dans votre faction. +cmd.invite.received = Vous avez été invité à rejoindre {0} ! +cmd.invite.accept_hint = Tapez /f accept {0} pour rejoindre. + +# ========== Commandes - Accepter / Rejoindre ========== +cmd.join.no_permission = Vous n'avez pas la permission de rejoindre des factions. +cmd.join.already_in_named = Vous appartenez déjà à {0}. +cmd.join.use_leave_hint = Utilisez /f leave d'abord si vous souhaitez rejoindre une autre faction. +cmd.join.no_invites = Vous n'avez aucune invitation en attente. +cmd.join.faction_not_found = Faction « {0} » introuvable. +cmd.join.not_invited = Vous n'avez pas d'invitation de cette faction. +cmd.join.faction_gone = Cette faction n'existe plus. +cmd.join.success = Vous avez rejoint {0} ! +cmd.join.broadcast = {0} a rejoint la faction ! +cmd.join.faction_full = Cette faction est pleine. +cmd.join.failed = Échec pour rejoindre la faction. + +# ========== Commandes - Exclure ========== +cmd.kick.no_permission = Vous n'avez pas la permission d'exclure des membres. +cmd.kick.usage = Utilisation : /f kick +cmd.kick.not_in_your_faction = Le joueur « {0} » n'est pas dans votre faction. +cmd.kick.success = {0} a été exclu de la faction. +cmd.kick.broadcast = {0} a été exclu de la faction. +cmd.kick.kicked = Vous avez été exclu de la faction. +cmd.kick.cannot_kick_higher = Vous n'avez pas la permission d'exclure ce joueur. +cmd.kick.cannot_kick_leader = Vous ne pouvez pas exclure le chef de la faction. +cmd.kick.failed = Échec de l'exclusion du joueur. + +# ========== Commandes - Quitter ========== +cmd.leave.no_permission = Vous n'avez pas la permission de quitter des factions. +cmd.leave.confirm_prompt = Êtes-vous sûr de vouloir quitter votre faction ? +cmd.leave.confirm_instruction = Tapez /f leave --text à nouveau dans les {0} secondes pour confirmer. +cmd.leave.success = Vous avez quitté votre faction. +cmd.leave.broadcast = {0} a quitté la faction. +cmd.leave.failed = Échec pour quitter la faction. +cmd.leave.cancelled = Confirmation précédente annulée. Tapez à nouveau pour confirmer le départ. + +# ========== Commandes - Promouvoir / Rétrograder / Transférer ========== +cmd.rank.promote_no_permission = Vous n'avez pas la permission de promouvoir des membres. +cmd.rank.promote_usage = Utilisation : /f promote +cmd.rank.promoted = {0} promu au rang de {1} ! +cmd.rank.promote_broadcast = {0} a été promu au rang de {1} ! +cmd.rank.already_highest = Promotion impossible. Utilisez /f transfer pour changer de chef. +cmd.rank.promote_failed = Échec de la promotion du joueur. +cmd.rank.demote_no_permission = Vous n'avez pas la permission de rétrograder des membres. +cmd.rank.demote_usage = Utilisation : /f demote +cmd.rank.demoted = {0} rétrogradé au rang de {1}. +cmd.rank.demote_broadcast = {0} a été rétrogradé au rang de {1}. +cmd.rank.already_lowest = Ce joueur est déjà Membre. +cmd.rank.demote_failed = Échec de la rétrogradation du joueur. +cmd.rank.transfer_no_permission = Vous n'avez pas la permission de transférer le commandement. +cmd.rank.transfer_usage = Utilisation : /f transfer +cmd.rank.player_not_in_faction = Joueur introuvable dans votre faction. +cmd.rank.transfer_confirm = Êtes-vous sûr de vouloir transférer le commandement à {0} ? +cmd.rank.transfer_confirm_instruction = Tapez /f transfer {0} --text à nouveau dans les {1} secondes pour confirmer. +cmd.rank.transferred = Commandement transféré à {0} ! +cmd.rank.transfer_broadcast = {0} est maintenant le chef de la faction ! +cmd.rank.transfer_failed = Échec du transfert de commandement. +cmd.rank.transfer_cancelled = Confirmation précédente annulée. Tapez à nouveau pour confirmer le transfert. + +# ========== Commandes - Abandonner ========== +cmd.unclaim.no_permission = Vous n'avez pas la permission d'abandonner du territoire. +cmd.unclaim.success = Chunk abandonné en {0}, {1}. +cmd.unclaim.not_officer = Vous devez être officier pour abandonner des terres. +cmd.unclaim.chunk_not_claimed = Ce chunk n'est pas revendiqué. +cmd.unclaim.not_your_claim = Votre faction ne possède pas ce chunk. +cmd.unclaim.cannot_unclaim_home = Impossible d'abandonner le chunk contenant le foyer de la faction. +cmd.unclaim.would_disconnect = Impossible d'abandonner — cela déconnecterait votre territoire. +cmd.unclaim.failed = Échec de l'abandon du chunk. + +# ========== Commandes - Surrevendiquer ========== +cmd.overclaim.no_permission = Vous n'avez pas la permission de surrevendiquer du territoire. +cmd.overclaim.success = Territoire ennemi surrevendiqué ! +cmd.overclaim.not_officer = Vous devez être officier pour surrevendiquer. +cmd.overclaim.not_claimed = Ce chunk n'est pas revendiqué. Utilisez /f claim. +cmd.overclaim.own_chunk = Votre faction possède déjà ce chunk. +cmd.overclaim.ally = Vous ne pouvez pas surrevendiquer le territoire d'un allié. +cmd.overclaim.target_has_power = Cette faction possède encore assez de puissance. +cmd.overclaim.failed = Échec de la surrevendication. + +# ========== Commandes - Bloqué ========== +cmd.stuck.no_permission = Vous n'avez pas la permission d'utiliser /f stuck. +cmd.stuck.not_stuck = Vous n'êtes pas bloqué — c'est une zone sauvage. +cmd.stuck.combat_tagged = Vous ne pouvez pas utiliser /f stuck en combat ! +cmd.stuck.no_safe = Impossible de trouver un emplacement sûr. +cmd.stuck.teleporting = Téléportation vers un lieu sûr dans {0} secondes. Ne bougez pas ! + +# ========== Commandes - Foyer ========== +cmd.home.no_permission = Vous n'avez pas la permission de vous téléporter au foyer de la faction. +cmd.home.no_home = Votre faction n'a pas de foyer défini. +cmd.home.combat_tagged = Vous ne pouvez pas vous téléporter en combat ! +cmd.home.teleported = Téléporté au foyer de la faction ! + +# ========== Commandes - Définir le Foyer ========== +cmd.sethome.no_permission = Vous n'avez pas la permission de définir le foyer de la faction. +cmd.sethome.world_not_allowed = Impossible de définir le foyer dans ce monde. +cmd.sethome.not_in_territory = Vous ne pouvez définir le foyer que dans le territoire de votre faction. +cmd.sethome.set = Foyer de la faction défini ! +cmd.sethome.broadcast = {0} a défini le foyer de la faction. +cmd.sethome.not_officer = Vous devez être officier pour définir le foyer. +cmd.sethome.failed = Échec de la définition du foyer. + +# ========== Commandes - Supprimer le Foyer ========== +cmd.delhome.no_permission = Vous n'avez pas la permission de supprimer le foyer de la faction. +cmd.delhome.no_home = Votre faction n'a pas de foyer défini. +cmd.delhome.deleted = Foyer de la faction supprimé ! +cmd.delhome.broadcast = {0} a supprimé le foyer de la faction. +cmd.delhome.not_officer = Vous devez être officier pour supprimer le foyer. +cmd.delhome.failed = Échec de la suppression du foyer. + +# ========== Commandes - Relations (Allié/Ennemi/Neutre/Relations) ========== +cmd.relation.ally_no_permission = Vous n'avez pas la permission de gérer les alliances. +cmd.relation.ally_usage = Utilisation : /f ally +cmd.relation.ally_sent = Demande d'alliance envoyée à {0} ! +cmd.relation.ally_formed = Vous êtes maintenant alliés avec {0} ! +cmd.relation.already_ally = Vous êtes déjà alliés avec cette faction. +cmd.relation.ally_failed = Échec de l'envoi de la demande d'alliance. +cmd.relation.enemy_no_permission = Vous n'avez pas la permission de déclarer des ennemis. +cmd.relation.enemy_usage = Utilisation : /f enemy +cmd.relation.enemy_declared = {0} est maintenant votre ennemi ! +cmd.relation.already_enemy = Vous êtes déjà ennemis avec cette faction. +cmd.relation.max_enemies = Vous avez atteint le nombre maximum d'ennemis. +cmd.relation.enemy_failed = Échec de la déclaration d'ennemi. +cmd.relation.neutral_no_permission = Vous n'avez pas la permission de définir des relations neutres. +cmd.relation.neutral_usage = Utilisation : /f neutral +cmd.relation.neutral_set = Votre faction est maintenant neutre avec {0}. +cmd.relation.already_neutral = Vous êtes déjà neutres avec cette faction. +cmd.relation.neutral_failed = Échec de la définition de neutralité. +cmd.relation.cannot_self = Vous ne pouvez pas vous allier avec vous-même. +cmd.relation.max_allies = Vous avez atteint le nombre maximum d'alliés. +cmd.relation.view_no_permission = Vous n'avez pas la permission de voir les relations. +cmd.relation.header = === Relations de la Faction === +cmd.relation.allies_count = Alliés ({0}) : +cmd.relation.enemies_count = Ennemis ({0}) : +cmd.relation.list_entry = - {0} + +# ========== Commandes - Chat ========== +cmd.chat.usage = Utilisation : /f c [f|a|off] +cmd.chat.no_permission = Vous n'avez pas la permission pour ce mode de chat. +cmd.chat.mode_set = Mode de chat défini sur {0} + +# ========== Commandes - Invitations ========== +cmd.invites.not_officer = Vous devez être officier pour gérer les invitations. +cmd.invites.header = === Invitations de la Faction === +cmd.invites.no_pending = Aucune invitation ou demande en attente. +cmd.invites.outgoing = Invitations envoyées : +cmd.invites.outgoing_entry = {0} (invité par {1}) +cmd.invites.requests = Demandes d'adhésion : +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Vos Invitations === +cmd.invites.no_invites = Vous n'avez aucune invitation en attente. +cmd.invites.invite_entry = {0} - Utilisez /f accept {1} + +# ========== Commandes - Demande ========== +cmd.request.no_permission = Vous n'avez pas la permission de demander l'adhésion à une faction. +cmd.request.already_in_named = Vous appartenez déjà à {0}. +cmd.request.use_leave_hint = Utilisez /f leave d'abord si vous souhaitez rejoindre une autre faction. +cmd.request.usage = Utilisation : /f request [message] +cmd.request.faction_open = Cette faction est ouverte ! Utilisez /f accept {0} pour rejoindre directement. +cmd.request.already_requested = Vous avez déjà une demande en attente pour cette faction. +cmd.request.has_invite = Vous avez été invité dans cette faction ! Utilisez /f accept {0} pour rejoindre. +cmd.request.sent = Demande d'adhésion envoyée à {0} ! +cmd.request.your_message = Votre message : « {0} » +cmd.request.officer_review = Un officier examinera votre demande. +cmd.request.officer_notify = {0} a demandé à rejoindre votre faction ! +cmd.request.officer_review_hint = Utilisez /f gui > Invitations pour examiner. + +# ========== Commandes - Informations ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Vous n'avez pas la permission de voir les informations de faction. +cmd.info.faction_not_found = Faction « {0} » introuvable. +cmd.info.not_in_faction_hint = Vous n'appartenez à aucune faction. Utilisez /f info +cmd.info.leader = Chef : {0} +cmd.info.members = Membres : {0}/{1} +cmd.info.power = Puissance : {0} +cmd.info.claims = Revendications : {0} +cmd.info.raidable = VULNÉRABLE ! +cmd.info.allies = Alliés : {0} +cmd.info.enemies = Ennemis : {0} +cmd.info.they_consider = Ils vous considèrent comme : {0} +cmd.info.you_consider = Vous les considérez comme : {0} +cmd.info.members_no_permission = Vous n'avez pas la permission de voir les membres de la faction. +cmd.info.members_header = === Membres de {0} ({1}) === +cmd.info.member_online = [En ligne] +cmd.info.list_no_permission = Vous n'avez pas la permission de voir la liste des factions. +cmd.info.list_empty = Il n'y a aucune faction. +cmd.info.list_header = === Factions ({0}) === +cmd.info.list_entry = {0} - {1} membres, {2} puissance +cmd.info.list_entry_raidable = {0} - {1} membres, {2} puissance [VULNÉRABLE] +cmd.info.help_no_permission = Vous n'avez pas la permission de voir l'aide. +cmd.info.who_no_permission = Vous n'avez pas la permission de voir les infos d'un joueur. +cmd.info.who_faction = Faction : {0} +cmd.info.who_role = Rôle : {0} +cmd.info.who_joined = Rejoint le : {0} +cmd.info.who_faction_none = Faction : Aucune +cmd.info.who_power = Puissance : {0} +cmd.info.who_status = Statut : {0} +cmd.info.who_last_seen = Dernière connexion : {0} +cmd.info.map_no_permission = Vous n'avez pas la permission de voir la carte. +cmd.info.map_header = === Carte du Territoire === +cmd.info.map_legend = Légende : +Vous /Propre /Allié /Ennemi -Sauvage +cmd.info.map_gui_hint = Utilisez /f gui pour la carte interactive + +# ========== Commandes - Puissance ========== +cmd.power.personal = Puissance Personnelle : {0}/{1} +cmd.power.faction = Puissance de la Faction : {0}/{1} +cmd.power.death_loss = Perte à la Mort : {0} +cmd.power.regen = Taux de Régénération : {0}/h +cmd.power.no_permission = Vous n'avez pas la permission de voir les infos de puissance. +cmd.power.header = Puissance de {0} : +cmd.power.current = Actuelle : {0} + +# ========== Commandes - Économie ========== +cmd.economy.balance = Solde : {0} +cmd.economy.deposited = {0} déposé dans la trésorerie de la faction. +cmd.economy.withdrawn = {0} retiré de la trésorerie de la faction. +cmd.economy.transferred = {0} transféré à {1}. +cmd.economy.insufficient = Fonds insuffisants dans la trésorerie de la faction. +cmd.economy.invalid_amount = Montant invalide : {0} +cmd.economy.economy_disabled = L'économie est désactivée. +cmd.economy.balance_no_permission = Vous n'avez pas la permission de voir les soldes. +cmd.economy.treasury_unavailable = La trésorerie n'est pas disponible. +cmd.economy.balance_display = Trésorerie de {0} : {1} +cmd.economy.deposit_no_permission = Vous n'avez pas la permission de déposer. +cmd.economy.deposit_faction_denied = Vous n'avez pas la permission de faction pour déposer. +cmd.economy.deposit_usage = Utilisation : /f deposit +cmd.economy.amount_positive = Le montant doit être positif. +cmd.economy.wallet_insufficient = Vous n'avez pas assez d'argent. Portefeuille : {0} +cmd.economy.wallet_withdraw_failed = Échec du retrait de votre portefeuille. +cmd.economy.deposit_failed = Échec du dépôt dans la trésorerie. Argent restitué. +cmd.economy.withdraw_no_permission = Vous n'avez pas la permission de retirer. +cmd.economy.withdraw_faction_denied = Vous n'avez pas la permission de faction pour retirer. +cmd.economy.withdraw_usage = Utilisation : /f withdraw +cmd.economy.withdraw_limit_denied = Retrait refusé : {0} +cmd.economy.wallet_deposit_failed = Attention : Échec du dépôt dans votre portefeuille. Contactez un administrateur. +cmd.economy.withdraw_limit_exceeded = Retrait refusé : limite dépassée. +cmd.economy.withdraw_failed = Retrait échoué : {0} +cmd.economy.transfer_no_permission = Vous n'avez pas la permission de transférer. +cmd.economy.transfer_faction_denied = Vous n'avez pas la permission de faction pour transférer. +cmd.economy.transfer_usage = Utilisation : /f money transfer +cmd.economy.transfer_self = Impossible de transférer vers votre propre faction. +cmd.economy.transfer_limit_denied = Transfert refusé : {0} +cmd.economy.transfer_limit_exceeded = Transfert refusé : limite dépassée. +cmd.economy.transfer_failed = Transfert échoué : {0} +cmd.economy.log_no_permission = Vous n'avez pas la permission de voir le journal des transactions. +cmd.economy.log_header = Journal des Transactions (page {0}/{1}) +cmd.economy.log_empty = Aucune transaction trouvée. +cmd.economy.money_help_header = Commandes de la Trésorerie : +cmd.economy.money_help_balance = /f money balance [faction] - Voir le solde +cmd.economy.money_help_deposit = /f money deposit - Déposer dans la trésorerie +cmd.economy.money_help_withdraw = /f money withdraw - Retirer de la trésorerie +cmd.economy.money_help_transfer = /f money transfer - Transférer entre factions +cmd.economy.money_help_log = /f money log [page] [type] - Voir l'historique des transactions + +# ========== Protection - Phrases d'Action ========== +protection.action.generic = Vous ne pouvez pas faire cela +protection.action.build = Vous ne pouvez pas construire ni casser de blocs +protection.action.interact = Vous ne pouvez pas interagir avec cela +protection.action.door = Vous ne pouvez pas utiliser les portes +protection.action.container = Vous ne pouvez pas ouvrir les conteneurs +protection.action.bench = Vous ne pouvez pas utiliser les stations d'artisanat +protection.action.processing = Vous ne pouvez pas utiliser les stations de traitement +protection.action.seat = Vous ne pouvez pas utiliser les sièges +protection.action.light = Vous ne pouvez pas allumer/éteindre les lumières +protection.action.teleporter = Vous ne pouvez pas utiliser les téléporteurs +protection.action.crate = Vous ne pouvez pas utiliser les caisses +protection.action.tame = Vous ne pouvez pas apprivoiser les créatures +protection.action.npc = Vous ne pouvez pas interagir avec les PNJ +protection.action.mount = Vous ne pouvez pas monter les créatures +protection.action.pve = Vous ne pouvez pas blesser les créatures +protection.action.item_drop = Vous ne pouvez pas jeter d'objets +protection.action.item_pickup = Vous ne pouvez pas ramasser d'objets + +# ========== Protection - Raisons de Refus ========== +protection.denied.safezone = {0} dans une SafeZone. +protection.denied.warzone = {0} dans une WarZone. +protection.denied.enemy_claim = {0} en territoire ennemi. +protection.denied.claimed = {0} en territoire revendiqué. +protection.denied.here = {0} ici. +protection.denied.zone = {0} dans cette zone. +protection.denied.faction_perm = {0} ici. (Permission de faction : {1}) +protection.denied.ally_territory = {0} ici. (Territoire allié) +protection.denied.error = Erreur de protection — action bloquée par sécurité. + +# ========== Protection - JcJ ========== +protection.pvp.safezone = Le JcJ est désactivé dans les SafeZones. +protection.pvp.same_faction = Vous ne pouvez pas attaquer les membres de votre faction. +protection.pvp.ally = Vous ne pouvez pas attaquer vos alliés. +protection.pvp.spawn_protected = Ce joueur a une protection d'apparition. +protection.pvp.territory_disabled = Le JcJ est désactivé dans ce territoire. +protection.pvp.generic = Vous ne pouvez pas attaquer ce joueur. + +# ========== Protection - Dégâts d'Entité ========== +protection.mob_damage_disabled = Les dégâts de monstres sont désactivés dans cette zone. +protection.pve_damage_disabled = Les dégâts JcE sont désactivés dans cette zone. +protection.pve_territory_denied = Vous ne pouvez pas blesser les monstres dans ce territoire. + +# ========== Protection - Marquage de Combat ========== +protection.combat_tag_command = Vous ne pouvez pas utiliser cette commande en combat. + +# ========== Annonces du Serveur ========== +# Messages diffusés à tous les joueurs en ligne pour les événements de faction importants. +# {0}, {1} = valeurs dynamiques (noms de faction, noms de joueur) +server_announce.faction_created = {0} a fondé la faction {1} ! +server_announce.faction_disbanded = La faction {0} a été dissoute ! +server_announce.leadership_transfer = {0} est maintenant le chef de {1} ! +server_announce.overclaim = {0} a surrevendiqué du territoire de {1} ! +server_announce.war_declared = {0} a déclaré la guerre à {1} ! +server_announce.alliance_formed = {0} et {1} sont maintenant alliés ! +server_announce.alliance_broken = {0} et {1} ne sont plus alliés ! + +# ========== Système de Téléportation ========== +teleport.cooldown_wait = Vous devez attendre {0} avant de vous téléporter à nouveau. +teleport.warmup_start = Téléportation au foyer de la faction dans {0} secondes... +teleport.combat_cancelled = Téléportation annulée — vous êtes en combat ! +teleport.success_default = Téléporté au foyer de la faction ! +teleport.no_home = Votre faction n'a pas de foyer défini. +teleport.world_not_found = Monde introuvable. +teleport.failed = Échec de la téléportation. +teleport.countdown = Téléportation dans {0} secondes... +teleport.countdown_one = Téléportation dans 1 seconde... +teleport.moved_cancelled = Téléportation annulée — vous avez bougé ! +teleport.damage_cancelled = Téléportation annulée — vous avez subi des dégâts ! +teleport.mount_teleport_blocked = Vous ne pouvez pas vous téléporter dans cette zone en étant sur une monture. +teleport.mount_entry_blocked = Vous ne pouvez pas entrer dans cette zone en étant sur une monture. + +# ========== Affichage du Chat ========== +chat.display.public = Public +chat.display.faction = Faction +chat.display.ally = Allié diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang new file mode 100644 index 00000000..ddab89ea --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Traductions Françaises +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Barre de Navigation Admin ========== +nav.dashboard = Tableau de Bord +nav.actions = Actions +nav.factions = Factions +nav.players = Joueurs +nav.economy = Économie +nav.zones = Zones +nav.config = Config +nav.backups = Sauvegardes +nav.log = Journal +nav.updates = Mises à Jour +nav.help = Aide +nav.version = Version + +# ========== Labels Admin Communs ========== +common.faction_not_found = Faction Introuvable +common.no_faction = Pas de Faction +common.not_set = Non défini +common.on = Activé +common.off = Désactivé +common.enable = Activer +common.disable = Désactiver +common.none_paren = (Aucun) +common.invalid_faction = Faction invalide. +common.leader_prefix = Chef : {0} +common.members_suffix = {0} membres +common.claims_suffix = {0} revendications +common.factions_suffix = {0} factions +common.players_suffix = {0} joueurs +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entrées +common.found_suffix = {0} trouvé(s) +common.power_format = {0}/{1} puissance +common.raidable = Vulnérable +common.protected = Protégé +common.no_description = Aucune description définie. +common.officers_more = +{0} de plus +common.custom_max = (max personnalisé) +common.default_max = (max par défaut) +common.now = Maintenant +common.ago_suffix = il y a {0} +common.just_now = à l'instant +common.no_membership_history = Aucun historique d'adhésion + +# ========== Tableau de Bord Admin ========== +dashboard.factions_prefix = Factions : {0} +dashboard.members_prefix = Total Membres : {0} +dashboard.claims_prefix = Total Revendications : {0} + +# ========== Actions Admin ========== +actions.confirm_reset = Confirmer la Réinitialisation ? +actions.confirm_trigger = Confirmer le Déclenchement ? +actions.kd_reset = K/M réinitialisé pour {0} joueurs. +actions.kd_reset_failed = Échec de la réinitialisation K/M : {0} +actions.upkeep_unavailable = Le processeur d'entretien n'est pas disponible. +actions.upkeep_triggered = Collecte d'entretien déclenchée. +actions.upkeep_failed = Échec de l'entretien : {0} + +# ========== Dissolution Admin ========== +disband.faction_gone = La faction n'existe plus. +disband.success = La faction « {0} » a été dissoute. +disband.failed = Échec de la dissolution : {0} +disband.no_leader = La faction n'a pas de chef, dissolution impossible. + +# ========== Abandon Total Admin ========== +unclaim.removed = [Admin] {0} revendications supprimées de {1}. +unclaim.no_claims = {0} n'avait aucune revendication à supprimer. + +# ========== Liste des Factions Admin ========== +factions.home_not_set = Non défini +factions.teleported = Téléporté au foyer de {0}. +factions.no_home = La faction n'a pas de foyer défini. +factions.world_not_found = Monde cible introuvable. + +# ========== Info Faction Admin ========== +info.faction_gone = Cette faction n'existe plus. + +# ========== Membres Faction Admin ========== +members.sort_role = Rôle +members.sort_online = En Ligne +members.sort_name = Nom +members.sort_power = Puissance +members.promoted = [Admin] {0} promu au rang de {1}. +members.demoted = [Admin] {0} rétrogradé au rang de {1}. +members.kicked = [Admin] {0} exclu de la faction. + +# ========== Relations Faction Admin ========== +relations.allies_header = ALLIÉS ({0}) +relations.enemies_header = ENNEMIS ({0}) +relations.no_allies = Aucun allié. +relations.no_enemies = Aucun ennemi. +relations.neutral_count = {0} factions neutres +relations.since_today = Depuis : aujourd'hui +relations.since_one_day = Depuis : il y a 1 jour +relations.since_days = Depuis : il y a {0} jours +relations.set_ally = [Admin] Statut d'alliance mutuelle établi avec {0}. +relations.set_enemy = Statut d'ennemi mutuel établi avec {0}. +relations.set_neutral = [Admin] Statut neutre mutuel établi avec {0}. + +# ========== Paramètres Faction Admin ========== +settings.locked = Ce paramètre est verrouillé par la configuration du serveur. +settings.perm_toggled = {0} défini sur {1}. +settings.color_changed = Couleur de la faction définie sur {0}. +settings.recruitment_set = Recrutement défini sur {0}. +settings.no_home = [Admin] Cette faction n'a pas de foyer défini. +settings.home_cleared = Foyer de la faction effacé pour {0}. + +# ========== Labels du Menu Déroulant de Tri ========== +sort.power = Puissance +sort.name = Nom +sort.members = Membres +sort.balance = Solde + +# ========== Joueurs Admin ========== +players.sort_last_online = Dernière Connexion +players.sort_faction = Faction +players.sort_online = En Ligne +players.not_online = Le joueur n'est pas en ligne. +players.world_not_found = Monde cible introuvable. +players.teleported = [Admin] Téléporté vers {0}. + +# ========== Info Joueur Admin ========== +playerinfo.disband_faction = Dissoudre la Faction +playerinfo.kick_leader = Exclure le Chef +playerinfo.enter_valid_number = Entrez un nombre valide. +playerinfo.enter_valid_positive = Entrez un nombre positif valide. +playerinfo.faction_gone = La faction n'existe plus. +playerinfo.kd_reset = K/M réinitialisé pour {0}. +playerinfo.kicked_success = {0} exclu de {1}. +playerinfo.kicked_leader = Chef {0} exclu. Commandement transféré à {1}. +playerinfo.disbanded_kick = [Admin] Faction « {0} » dissoute (dernier membre exclu). + +# ========== Économie Admin ========== +economy.no_data = Aucune faction avec des données économiques. +economy.amount_zero = Le montant ne peut pas être zéro. +economy.enter_amount = Veuillez entrer un montant. +economy.invalid_number = Nombre invalide : {0} +economy.error = Une erreur s'est produite. +economy.balance_negative = Le solde ne peut pas être négatif. +economy.failed = Échec : {0} +economy.bulk_complete = Ajustement en masse terminé : {0} {1} pour {2} factions. +economy.bulk_failures = ({0} échoué(s)) + +# ========== Zones Admin ========== +zones.not_found = Zone introuvable. +zones.invalid_id = Identifiant de zone invalide. +zones.deleted = Zone {0} supprimée. +zones.delete_failed = Échec de la suppression de la zone : {0} +zones.no_chunks = Aucun chunk +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Assistant de Création de Zone ========== +wizard.enter_name = Veuillez entrer un nom de zone. +wizard.name_too_short = Le nom de la zone doit contenir au moins {0} caractères. +wizard.name_too_long = Le nom de la zone ne peut pas dépasser {0} caractères. +wizard.name_taken = Une zone portant ce nom existe déjà. +wizard.radius_range = Le rayon doit être compris entre 1 et {0}. +wizard.create_failed = Impossible de créer la zone : {0} +wizard.created_not_found = Zone créée mais introuvable. +wizard.created = {0} « {1} » créé(e) ! +wizard.chunk_claimed = Chunk revendiqué ({0}, {1}). +wizard.chunk_failed = Impossible de revendiquer le chunk actuel : {0} +wizard.radius_claimed = {0} chunks revendiqués dans un rayon de {1} autour de {2}. +wizard.radius_no_claims = Aucun chunk n'a pu être revendiqué (la zone est peut-être occupée). +wizard.no_claims = Zone créée sans revendications. +wizard.chunks_preview = ~{0} chunks + +# ========== Renommage de Zone ========== +zone_rename.zone_gone = La zone n'existe plus. +zone_rename.enter_name = Veuillez entrer un nom de zone. +zone_rename.too_short = Le nom de la zone doit contenir au moins {0} caractère. +zone_rename.too_long = Le nom de la zone ne peut pas dépasser {0} caractères. +zone_rename.same_name = C'est déjà le nom de cette zone. +zone_rename.renamed = [Admin] Zone renommée de {0} en {1} ! +zone_rename.name_taken = Une zone portant ce nom existe déjà. +zone_rename.invalid_name = Nom de zone invalide. +zone_rename.rename_failed = Échec du renommage de la zone : {0} + +# ========== Changement de Type de Zone ========== +zone_type.zone_gone = La zone n'existe plus. +zone_type.changed = [Admin] {0} changé de {1} en {2} ({3}). +zone_type.failed = Échec du changement de type de zone : {0} +zone_type.flags_reset = drapeaux réinitialisés +zone_type.flags_kept = drapeaux conservés + +# ========== Drapeaux d'Intégration de Zone ========== +zone_int.zone_not_found = Zone Introuvable +zone_int.no_plugin = (pas de plugin) +zone_int.default = (par défaut) +zone_int.custom = (personnalisé) + +# Labels de l'interface des drapeaux d'intégration +gui.zint_cat_gravestones = Pierres Tombales +gui.zint_gravestones_desc = Quand ACTIVÉ, les non-propriétaires peuvent piller les tombes. Les propriétaires le peuvent toujours. +gui.zint_cat_world_map = Carte du Monde +gui.zint_world_map_desc = Remplacer le masquage de la carte pour les joueurs dans cette zone. Quand activé, sélectionnez qui peut voir les joueurs dans cette zone. +gui.zint_visibility_label = Niveau de Visibilité : +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Réinitialiser par Défaut +gui.zint_back_to_flags = Retour aux Drapeaux +gui.zint_map_vis_faction = Faction Uniquement +gui.zint_map_vis_ally = Faction + Alliés +gui.zint_map_vis_all = Tous les Joueurs + +# ========== Journal d'Activité ========== +log.all_types = Tous les Types +log.no_logs = Aucun journal d'activité correspondant aux filtres. + +# ========== Page de Version ========== +version.active = Actif +version.not_found = Introuvable +version.not_detected = Non Détecté +version.not_installed = Non Installé +version.active_version = Actif (v{0}) +version.active_compatible = Actif (compatible) +version.active_claims_only = Actif (revendications uniquement) +version.installed_no_perm = Installé (pas de fournisseur de permissions) +version.active_provider = Actif ({0}) + +# ========== Page Principale Admin ========== +main.reload_hint = Utilisez /f reload pour recharger la configuration. +main.unclaim_hint = Utilisez /f admin unclaim {0} pour abandonner les {1} chunks. + +# ========== Drapeaux/Paramètres de Zone ========== +zflags.invalid_flag = Drapeau invalide. +zflags.zone_not_found = Zone introuvable. +zflags.conflict = (conflit) +zflags.mixin = (mixin) +zflags.reset_int = Réinitialiser les drapeaux d'intégration par défaut. +zflags.reset_all = Réinitialiser tous les drapeaux par défaut. +zflags.reset_failed = Échec de la réinitialisation des drapeaux : {0} +zflags.back_to_settings = Retour aux Paramètres + +# Labels de l'interface des paramètres de zone +gui.zset_cat_combat = Combat +gui.zset_cat_damage = Dégâts +gui.zset_cat_death = Mort +gui.zset_cat_building = Construction +gui.zset_cat_interaction = Interaction +gui.zset_cat_transport = Transport +gui.zset_cat_items = Objets +gui.zset_cat_spawning = Apparition des Monstres +gui.zset_cat_mob_clear = Nettoyage des Monstres +gui.zset_children_hint = (enfants applicables uniquement quand le parent est ACTIVÉ) +gui.zset_reset_defaults = Réinitialiser par Défaut +gui.zset_integration_flags = Drapeaux d'Intégration +gui.zset_back_to_zones = Retour aux Zones +gui.zset_chunks = {0} chunks + +# Noms d'Affichage des Drapeaux de Zone +gui.zflag_pvp_enabled = JcJ Activé +gui.zflag_friendly_fire = Tir Allié +gui.zflag_friendly_fire_faction = Dégâts de Faction +gui.zflag_friendly_fire_ally = Dégâts entre Alliés +gui.zflag_projectile_damage = Dégâts de Projectile +gui.zflag_mob_damage = Subir Dégâts de Monstres +gui.zflag_pve_damage = Infliger Dégâts aux Monstres +gui.zflag_fall_damage = Dégâts de Chute +gui.zflag_environmental_damage = Dégâts Environnementaux +gui.zflag_explosion_damage = Dégâts d'Explosion +gui.zflag_fire_spread = Propagation du Feu +gui.zflag_keep_inventory = Conserver l'Inventaire +gui.zflag_power_loss = Perte de Puissance +gui.zflag_build_allowed = Construction Autorisée +gui.zflag_block_place = Placement de Blocs +gui.zflag_hammer_use = Utilisation du Marteau +gui.zflag_builder_tools_use = Outils de Construction +gui.zflag_block_interact = Interaction avec les Blocs +gui.zflag_door_use = Utilisation des Portes +gui.zflag_container_use = Utilisation des Conteneurs +gui.zflag_bench_use = Utilisation de l'Établi +gui.zflag_processing_use = Utilisation du Traitement +gui.zflag_seat_use = Utilisation des Sièges +gui.zflag_mount_use = Utilisation des Montures +gui.zflag_light_use = Utilisation des Lumières +gui.zflag_npc_use = Interaction avec les PNJ +gui.zflag_crate_pickup = Ramassage de Caisse +gui.zflag_crate_place = Placement de Caisse +gui.zflag_npc_tame = Apprivoiser PNJ +gui.zflag_npc_interact = Interaction PNJ +gui.zflag_teleporter_use = Utilisation du Téléporteur +gui.zflag_portal_use = Utilisation du Portail +gui.zflag_mount_entry = Accès aux Montures +gui.zflag_item_drop = Lâcher d'Objets +gui.zflag_item_pickup = Ramassage Auto +gui.zflag_item_pickup_manual = Ramassage Touche F +gui.zflag_invincible_items = Objets Invincibles +gui.zflag_mob_spawning = Apparition des Monstres +gui.zflag_hostile_mob_spawning = Monstres Hostiles +gui.zflag_passive_mob_spawning = Monstres Passifs +gui.zflag_neutral_mob_spawning = Monstres Neutres +gui.zflag_npc_spawning = Apparition des PNJ +gui.zflag_mob_clear = Nettoyage des Monstres +gui.zflag_hostile_mob_clear = Nettoyer Monstres Hostiles +gui.zflag_passive_mob_clear = Nettoyer Monstres Passifs +gui.zflag_neutral_mob_clear = Nettoyer Monstres Neutres +gui.zflag_gravestone_access = Autres Pillent les Tombes +gui.zflag_show_on_map = Afficher sur la Carte +gui.zflag_essentials_homes = Utilisation du Foyer +gui.zflag_essentials_warps = Utilisation des Warps +gui.zflag_essentials_kits = Réclamation de Kits + +# ========== Propriétés de Zone ========== +zprop.current_custom = Actuel : « {0} » (personnalisé) +zprop.current_default = Actuel : « {0} » (par défaut) +zprop.pvp_disabled = JcJ Désactivé +zprop.pvp_enabled = JcJ Activé +zprop.name_empty = Le nom ne peut pas être vide. +zprop.renamed = Zone renommée en « {0} ». +zprop.name_taken = Une zone portant ce nom existe déjà. +zprop.name_invalid = Nom invalide (max 32 caractères). +zprop.rename_failed = Échec du renommage : {0} +zprop.upper_empty = Le titre supérieur ne peut pas être vide. Utilisez Effacer pour réinitialiser. +zprop.upper_set = Titre supérieur défini. +zprop.upper_reset = Titre supérieur réinitialisé par défaut. +zprop.lower_empty = Le titre inférieur ne peut pas être vide. Utilisez Effacer pour réinitialiser. +zprop.lower_set = Titre inférieur défini. +zprop.lower_reset = Titre inférieur réinitialisé par défaut. + +# ========== Relations Supplémentaires ========== +relations.failed = Échec : {0} + +# ========== Membres Supplémentaires ========== +members.never = Jamais +members.teleported = [Admin] Téléporté vers {0}. + +# ========== Info Joueur Supplémentaires ========== +playerinfo.records = {0} entrées +playerinfo.joined_date = Rejoint le : {0} +playerinfo.current = Actuel +playerinfo.left_date = Quitté le : {0} + +# ========== Carte de Zone ========== +map.world_warning = ATTENTION : Vous êtes dans « {0} » — la zone est dans « {1} » +map.position = Votre Position : Chunk ({0}, {1}) +map.zone_gone = La zone n'existe plus. +map.claimed = Chunk revendiqué ({0}, {1}) pour {2}. +map.claim_failed = Échec de la revendication du chunk : {0} +map.unclaimed = Chunk abandonné ({0}, {1}) de {2}. +map.unclaim_failed = Échec de l'abandon du chunk : {0} +map.chunk_belongs = Ce chunk appartient à {0}. +map.chunk_faction = Ce chunk est revendiqué par une faction. +map.chunk_protected = Ce chunk se trouve dans une région protégée. +map.another_zone = une autre zone + +# ========== Clés de Labels GUI (pour la localisation du texte en dur dans les .ui) ========== + +# Titres de Page +gui.title_dashboard = Tableau de Bord Admin +gui.title_main = Administration des Factions +gui.title_actions = Admin : Actions Serveur +gui.title_factions = Gestion des Factions +gui.title_players = Gestion des Joueurs +gui.title_economy = Admin : Économie du Serveur +gui.title_zones = Gestion des Zones +gui.title_backups = Sauvegardes +gui.title_config = Configuration +gui.title_help = Aide Admin +gui.title_updates = Mises à Jour +gui.title_version = Version et Intégrations +gui.title_activity_log = Admin : Journal d'Activité +gui.title_player_info = Admin : Info Joueur +gui.title_faction_info = Admin : Info Faction +gui.title_faction_settings = Admin : Paramètres Faction +gui.title_faction_members = Admin : Membres +gui.title_faction_relations = Admin : Relations +gui.title_zone_map = Éditeur de Carte de Zone +gui.title_zone_settings = Admin : Paramètres de Zone +gui.title_zone_properties = Admin : Propriétés de Zone +gui.title_bulk_economy = Ajustement en Masse de la Trésorerie +gui.title_economy_adjust = Admin : Économie + +# Labels du tableau de bord +gui.dash_server_stats = Statistiques du Serveur +gui.dash_factions = Factions +gui.dash_total_members = Total Membres +gui.dash_total_claims = Total Revendications +gui.dash_zones = Zones +gui.dash_safe_war = safe / war +gui.dash_total_power = Puissance Totale +gui.dash_avg_power = Puissance Moy./Faction +gui.dash_total_economy = Économie Totale +gui.dash_wealthiest = Plus Riche +gui.dash_avg_balance = Solde Moyen +gui.dash_protection_bypass = Contournement de Protection : + +# Boutons et labels communs +gui.search = Recherche : +gui.sort = Trier : +gui.prev = < Préc. +gui.next = Suiv. > +gui.back = Retour +gui.done = Terminé +gui.cancel = Annuler +gui.apply = Appliquer +gui.set = Définir +gui.reset = Réinitialiser +gui.coming_soon = Bientôt Disponible +gui.zones_btn = Zones +gui.reload_btn = Recharger +gui.all = Tout +gui.safe = Safe +gui.war = War +gui.create_zone = + Créer + +# Labels de la page d'actions +gui.act_combat_stats = Statistiques de Combat +gui.act_combat_desc = Réinitialiser les éliminations et morts de TOUS les joueurs du serveur. Cette action ne peut pas être annulée. +gui.act_reset_kd = Réinitialiser tous les K/M +gui.act_economy = Économie +gui.act_economy_desc = Ajouter ou retirer de l'argent de TOUTES les trésoreries de faction en une fois. +gui.act_bulk_adjust = Ajout/Retrait en Masse +gui.act_upkeep_collection = Collecte d'Entretien +gui.act_upkeep_desc = Déclencher manuellement la collecte d'entretien pour toutes les factions maintenant, indépendamment du minuteur programmé. +gui.act_trigger_upkeep = Déclencher l'Entretien + +# Labels des pages temporaires +gui.backup_heading = Gestion des Sauvegardes +gui.backup_desc1 = Créer, restaurer et gérer les sauvegardes de données de faction. +gui.backup_desc2 = Les sauvegardes automatiques sont enregistrées dans le dossier data/backups. +gui.config_heading = Éditeur de Configuration +gui.config_desc1 = Configurer les paramètres de HyperFactions directement depuis l'interface. +gui.config_desc2 = Pour l'instant, utilisez /f reload pour recharger les modifications de configuration. +gui.help_heading = Documentation Admin +gui.help_desc1 = Consulter la documentation admin et la référence des commandes. +gui.help_desc2 = Pour de l'aide, visitez le wiki HyperFactions. +gui.updates_heading = Centre de Mises à Jour +gui.updates_desc1 = Vérifier les nouvelles versions et consulter les journaux de modifications. +gui.updates_desc2 = Visitez la page HyperFactions pour les dernières mises à jour. + +# Labels de la page de version +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Serveur Hytale +gui.ver_java = Java +gui.ver_permissions = PERMISSIONS +gui.ver_placeholders = MARQUEURS +gui.ver_economy_section = ÉCONOMIE +gui.ver_protection = PROTECTION +gui.ver_disabled = Désactivé + +# En-têtes de colonnes (partagés entre les pages) +gui.col_faction = Faction +gui.col_balance = Solde +gui.col_members = Membres +gui.col_actions = Actions +gui.col_time = Heure +gui.col_type = Type +gui.col_message = Message + +# Labels de la page économie +gui.econ_total_balance = Solde Total +gui.econ_factions = Factions +gui.econ_avg_balance = Solde Moyen +gui.econ_in_grace = En Sursis +gui.econ_collected = Collecté (24h) +gui.econ_next_collection = Prochaine Collecte +gui.econ_no_data = Aucune faction avec des données économiques. + +# Labels du journal d'activité +gui.log_type = Type : +gui.log_time = Heure : +gui.log_player = Joueur : +gui.log_no_logs = Aucun journal d'activité correspondant aux filtres. + +# Labels d'info joueur +gui.plr_first_joined = Première connexion : +gui.plr_last_online = Dernière connexion : +gui.plr_uuid = UUID : +gui.plr_faction = Faction : +gui.plr_role = Rôle : +gui.plr_view_faction = Voir la Faction +gui.plr_power = Puissance +gui.plr_max_power = Puissance Max +gui.plr_set_power = Définir +gui.plr_reset_power = Réinitialiser +gui.plr_set_max = Définir +gui.plr_reset_max = Réinitialiser +gui.plr_no_power_loss = Pas de Perte de Puissance +gui.plr_no_claim_decay = Pas de Dégradation des Revendications +gui.plr_kills = Éliminations +gui.plr_deaths = Morts +gui.plr_kdr = Ratio K/M +gui.plr_reset_kd = Réinitialiser K/M +gui.plr_kick = Exclure +gui.plr_membership_history = Historique d'Adhésion +gui.plr_no_faction_label = N'appartient à aucune faction +gui.plr_power_management = Gestion de la Puissance +gui.plr_combat_stats = Statistiques de Combat +gui.plr_bypass_flags = Drapeaux de Contournement +gui.plr_admin_controls = Contrôles Admin +gui.plr_kd_subtitle = K / M +gui.plr_max_prefix = Max : +gui.plr_view = Voir +gui.plr_kick_from_faction = Exclure de la Faction +gui.plr_set_max_btn = Définir Max +gui.plr_combat = Combat +gui.plr_reason_active = ACTIF +gui.plr_reason_left = PARTI +gui.plr_reason_kicked = EXCLU +gui.plr_reason_disbanded = DISSOUTE + +# Labels d'entrée de membre +gui.mem_label_power = Puissance : +gui.mem_label_joined = Rejoint le : +gui.mem_label_last_death = Dernière Mort : +gui.mem_label_uuid = UUID : +gui.mem_btn_info = Info +gui.mem_btn_teleport = Téléporter +gui.mem_btn_promote = Promouvoir +gui.mem_btn_demote = Rétrograder +gui.mem_btn_kick = Exclure +gui.econ_not_enabled = Le système économique n'est pas activé. +gui.info_more = +{0} de plus +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7j +gui.log_time_all = Tout +gui.shape_circular = circulaire +gui.shape_square = carré +gui.nav_title = Panneau Admin +gui.econ_btn_adjust = Ajuster +gui.econ_btn_info = Info + +# Labels d'info faction +gui.fac_description = Description +gui.fac_power = Puissance +gui.fac_claims = Revendications +gui.fac_members = Membres +gui.fac_recruitment = Recrutement +gui.fac_founded = Fondée +gui.fac_allies = Alliés +gui.fac_enemies = Ennemis +gui.fac_raidable = Statut de Vulnérabilité +gui.fac_treasury = Trésorerie +gui.fac_leader = Chef +gui.fac_officers = Officiers +gui.fac_view_members = Voir les Membres +gui.fac_view_relations = Voir les Relations +gui.fac_view_settings = Paramètres +gui.fac_disband = Dissoudre la Faction +gui.fac_power_management = Gestion de la Puissance +gui.fac_reset_all_power = Réinitialiser Toute la Puissance +gui.fac_econ_adjust = Ajuster le Solde +gui.fac_econ_view_log = Voir le Journal des Transactions +gui.fac_current_max = actuelle / max +gui.fac_claimed_max = revendiqués / max +gui.fac_relations = Relations +gui.fac_ally_enemy = alliés / ennemis +gui.fac_status = Statut +gui.fac_info = Info +gui.fac_treasury_balance = solde de la trésorerie +gui.fac_leadership = Direction +gui.fac_leader_label = Chef : +gui.fac_officers_label = Officiers : +gui.fac_econ_mgmt = Gestion Économique +gui.fac_danger_zone = Zone de Danger +gui.fac_view_treasury = Voir la Trésorerie + +# Labels des paramètres de faction +gui.set_editing = Modification : +gui.set_general = Paramètres Généraux +gui.set_name = Nom +gui.set_tag = Tag +gui.set_description = Description +gui.set_recruitment = Recrutement +gui.set_home = Emplacement du Foyer +gui.set_clear_home = Effacer le Foyer +gui.set_disband_faction = Dissoudre la Faction +gui.set_faction_color = Couleur de la Faction +gui.set_admin_override = [Remplacement Admin] +gui.set_territory_perms = Permissions du Territoire +gui.set_mob_spawning = Apparition des Monstres +gui.set_faction_settings = Paramètres de Faction +gui.set_name_label = Nom : +gui.set_tag_label = Tag : +gui.set_desc_label = Desc : +gui.set_edit = Modifier +gui.set_status_label = Statut : +gui.set_location_label = Position : +gui.set_danger_zone = Zone de Danger +gui.set_irreversible = Cette action est irréversible. +gui.set_lock_hint = Certaines options peuvent être verrouillées par le serveur et n'accepteront pas de modifications. +gui.set_appearance = Apparence +gui.set_color_label = Couleur : +gui.set_mob_sub = (enfants désactivés quand le principal est désactivé) +gui.set_back_to_info = Retour aux Infos +gui.set_col_out = Ext +gui.set_col_ally = Allié +gui.set_col_mem = Mem +gui.set_col_off = Off +gui.set_cat_building = CONSTRUCTION +gui.set_cat_interaction = INTERACTION +gui.set_cat_interact_sub = (enfants désactivés quand Tout est désactivé) +gui.set_cat_other = AUTRE +gui.set_perm_break = Casser +gui.set_perm_place = Placer +gui.set_perm_all = Tout +gui.set_perm_door = Porte +gui.set_perm_chest = Coffre +gui.set_perm_bench = Établi +gui.set_perm_processing = Traitement +gui.set_perm_seat = Siège +gui.set_perm_transport = Transport +gui.set_perm_crate_use = Utilisation Caisse +gui.set_perm_npc_tame = Apprivoiser PNJ +gui.set_perm_pve_damage = Dégâts JcE +gui.set_perm_mob_spawning = Apparition des Monstres +gui.set_perm_hostile = Monstres Hostiles +gui.set_perm_passive = Monstres Passifs +gui.set_perm_neutral = Monstres Neutres +gui.set_perm_pvp = JcJ dans le Territoire +gui.set_perm_officers_edit = Les officiers peuvent modifier + +# Labels des relations de faction +gui.rel_subtitle = Gérer les relations de faction (contourne l'approbation) +gui.rel_set_new = Définir une Nouvelle Relation +gui.rel_btn_ally = Allié +gui.rel_btn_neutral = Neutre +gui.rel_btn_enemy = Ennemi + +# Labels de la page des zones +gui.zone_sort_name = Nom +gui.zone_sort_type = Type +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = Monde +gui.zone_count_format = {0} {1}zones ({2} chunks) + +# Labels de la carte de zone +gui.map_zone_chunk = Chunk de Zone +gui.map_empty = Vide +gui.map_other_zone = Autre Zone +gui.map_faction_claim = Revendication de Faction +gui.map_protected = Protégé +gui.map_your_pos = Votre Position +gui.map_click_hint = Cliquez pour revendiquer/abandonner des chunks +gui.map_legend_zone_safe = Cette Zone (Safe) +gui.map_legend_zone_war = Cette Zone (War) +gui.map_legend_other_safe = Autre SafeZone +gui.map_legend_other_war = Autre WarZone +gui.map_legend_faction = Revendication de Faction +gui.map_legend_unclaimed = Non Revendiqué +gui.map_legend_you_here = Vous êtes ici +gui.map_action_hint = Clic gauche : Revendiquer pour la zone | Clic droit : Abandonner de la zone +gui.map_done = Terminé + +# Labels des propriétés de zone +gui.zprop_general = Général +gui.zprop_zone_name = Nom de la Zone +gui.zprop_zone_type = Type de Zone +gui.zprop_change_type = Changer le Type +gui.zprop_notifications = Notifications +gui.zprop_show_entry = Afficher la Notification d'Entrée +gui.zprop_upper_title = Titre Supérieur +gui.zprop_upper_desc = Titre Supérieur (petit texte au-dessus du nom de zone) +gui.zprop_lower_title = Titre Inférieur +gui.zprop_lower_desc = Titre Inférieur (grand texte du nom de zone) +gui.zprop_edit_flags = Modifier les Drapeaux +gui.zprop_back_to_zones = Retour aux Zones +gui.save = Sauvegarder +gui.clear = Effacer + +# Labels d'économie en masse +gui.bulk_header = Ajuster Toutes les Trésoreries de Faction +gui.bulk_factions_label = Factions : +gui.bulk_total_label = Solde Total : +gui.bulk_amount_hint = Montant (positif pour ajouter, négatif pour retirer) : +gui.bulk_hint = Ceci s'appliquera à chaque faction possédant une trésorerie +gui.bulk_warning_msg = Attention : Cette action affecte TOUTES les factions et ne peut pas être annulée. +gui.bulk_apply_all = Appliquer à Toutes +gui.bulk_operation = Opération +gui.bulk_add = Ajouter +gui.bulk_remove = Retirer +gui.bulk_amount = Montant +gui.bulk_warning = Ceci affectera TOUTES les trésoreries de faction. +gui.bulk_preview = Aperçu + +# Labels d'ajustement économique +gui.ecadj_header = Ajuster le Solde de la Trésorerie +gui.ecadj_faction_label = Faction : +gui.ecadj_current_balance = Solde Actuel : +gui.ecadj_amount_hint = Montant (positif pour ajouter, négatif pour déduire) : +gui.ecadj_preview_hint = Entrez un nombre pour prévisualiser le changement +gui.ecadj_adjustment = Ajustement : +gui.ecadj_set_balance = Définir le Solde +gui.ecadj_confirm = Confirmer +/- +gui.ecadj_operation = Opération +gui.ecadj_add = Ajouter +gui.ecadj_remove = Retirer +gui.ecadj_set_to = Définir à +gui.ecadj_amount = Montant +gui.ecadj_new_balance = Nouveau Solde : + +# Labels d'intégration de la page de version +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Natif +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Hooks Mixin +gui.ver_gravestones = Pierres Tombales +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Trésorerie + +# Labels de la modale de confirmation d'abandon total +gui.unclaim_title = Abandonner Tout le Territoire +gui.unclaim_confirm_msg1 = Êtes-vous sûr de vouloir abandonner tout +gui.unclaim_confirm_msg2 = de +gui.unclaim_warning = Cette action ne peut pas être annulée ! +gui.unclaim_all = Tout Abandonner + +# Labels de la modale de renommage de zone +gui.zren_title = Renommer la Zone +gui.zren_current = Actuel : +gui.zren_new_name = Nouveau Nom : + +# Labels de la modale de changement de type de zone +gui.ztype_title = Changer le Type de Zone +gui.ztype_zone_label = Zone : +gui.ztype_current = Actuel : +gui.ztype_will_become = deviendra +gui.ztype_new = Nouveau : +gui.ztype_warning1 = Les différents types de zone ont des valeurs de drapeaux par défaut différentes. +gui.ztype_warning2 = Choisissez comment gérer les paramètres de drapeaux existants : +gui.ztype_keep_desc = Conserver les remplacements personnalisés +gui.ztype_keep_flags = Conserver les Drapeaux +gui.ztype_reset_desc = Utiliser les valeurs par défaut du nouveau type +gui.ztype_reset_flags = Réinitialiser les Drapeaux + +# Labels de l'assistant de création de zone +gui.czw_title = Créer une Zone +gui.czw_back = < Retour +gui.czw_create = Créer la Zone +gui.czw_zone_type = Type de Zone +gui.czw_safe_desc = Protégée, pas de JcJ +gui.czw_war_desc = Combat, JcJ activé +gui.czw_zone_name = Nom de la Zone +gui.czw_name_desc = Entrez un nom unique pour la zone +gui.czw_claim_method = Méthode de Revendication +gui.czw_method_none_desc = Créer une zone vide +gui.czw_method_none = Aucune revendication +gui.czw_method_single_desc = Votre chunk actuel +gui.czw_method_single = Chunk unique +gui.czw_method_circle_desc = Zone circulaire +gui.czw_method_circle = Rayon circulaire +gui.czw_method_square_desc = Zone carrée +gui.czw_method_square = Rayon carré +gui.czw_method_map_desc = Éditeur de chunks interactif +gui.czw_method_map = Utiliser la carte de revendication +gui.czw_radius = Rayon +gui.czw_custom_radius = Personnalisé (1-50) : +gui.czw_flags = Drapeaux +gui.czw_flags_defaults_desc = Basés sur le type de zone +gui.czw_flags_defaults = Utiliser les défauts +gui.czw_flags_customize_desc = Ouvrir les paramètres après +gui.czw_flags_customize = Personnaliser + +# ========== Labels d'Entrée (Entrées de liste Faction/Joueur/Zone) ========== + +# Labels d'entrée de faction +gui.fac_entry_power = puissance +gui.fac_entry_claims = revendications +gui.fac_entry_members = membres +gui.fac_entry_created = Créée le : +gui.fac_entry_home = Foyer : +gui.fac_entry_tp_home = TP Foyer +gui.fac_entry_view_info = Voir les Infos +gui.fac_entry_members_btn = Membres +gui.fac_entry_settings = Paramètres +gui.fac_entry_unclaim_all = Tout Abandonner +gui.fac_entry_disband = Dissoudre + +# Labels d'entrée de joueur +gui.plr_entry_role = Rôle : +gui.plr_entry_joined = Rejoint le : +gui.plr_entry_last_online = Dernière Connexion : +gui.plr_entry_kdr = K/M/R : +gui.plr_entry_power = Puissance : +gui.plr_entry_uuid = UUID : +gui.plr_entry_info = Info +gui.plr_entry_teleport = Téléporter +gui.plr_entry_na = N/A +gui.plr_entry_unknown = Inconnu +gui.plr_entry_ago = il y a {0} + +# Labels d'entrée de zone +gui.zone_entry_world = Monde : +gui.zone_entry_chunks = Chunks : +gui.zone_entry_bounds = Limites : +gui.zone_entry_created = Créée le : +gui.zone_entry_edit_map = Modifier la Carte +gui.zone_entry_flags = Drapeaux +gui.zone_entry_settings = Paramètres +gui.zone_entry_delete = Supprimer diff --git a/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang new file mode 100644 index 00000000..fa65adf6 --- /dev/null +++ b/src/main/resources/Server/Languages/fr-FR/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Traductions Françaises +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Barre de Navigation ========== +nav.dashboard = Tableau de Bord +nav.chat = Chat +nav.members = Membres +nav.invites = Invitations +nav.browser = Parcourir +nav.map = Carte +nav.leaderboard = Classement +nav.relations = Relations +nav.treasury = Trésorerie +nav.settings = Paramètres +nav.logs = Journaux +nav.help = Aide +nav.admin = Admin +nav.create = Créer + +# ========== Noms des Catégories d'Aide ========== +help.category.welcome = Bienvenue +help.category.your_faction = Votre Faction +help.category.power_land = Puissance et Territoire +help.category.diplomacy = Diplomatie +help.category.combat = Combat et Sécurité +help.category.economy = Économie +help.category.quick_ref = Référence Rapide + +# ========== Noms des Catégories d'Aide Admin ========== +help.category.admin_overview = Vue d'Ensemble +help.category.admin_factions = Factions +help.category.admin_zones = Zones +help.category.admin_power = Puissance +help.category.admin_economy = Économie +help.category.admin_config = Configuration +help.category.admin_maintenance = Maintenance +help.category.admin_reference = Référence + +# ========== Menu Principal ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Ma Faction +main_menu.section_get_started = Premiers Pas +main_menu.section_territory = Territoire +main_menu.section_browse = Parcourir +main_menu.section_admin = Admin +main_menu.claim_hint = Utilisez /f claim pour revendiquer du territoire. + +# ========== Page d'Info Faction ========== +faction_info.title = Info Faction +faction_info.no_description = Aucune description définie. +faction_info.status_open = Ouvert +faction_info.status_invite_only = Sur Invitation +faction_info.status_raidable = Vulnérable +faction_info.status_protected = Protégé +faction_info.officers_more = +{0} de plus +faction_info.power_header = Puissance +faction_info.claims_header = Revendications +faction_info.members_header = Membres +faction_info.relations_header = Relations +faction_info.status_header = Statut +faction_info.treasury_header = Trésorerie +faction_info.current_max = actuelle / max +faction_info.claimed_max = revendiqués / max +faction_info.ally_enemy = alliés / ennemis +faction_info.faction_balance = solde de la faction +faction_info.leader_label = Chef : +faction_info.officers_label = Officiers : +faction_info.view_members_btn = Voir les Membres +faction_info.relations_btn = Relations +faction_info.back_btn = Retour + +# ========== Modale de Renommage ========== +rename.title = Renommer la Faction +rename.current_label = Actuel : +rename.new_name_label = Nouveau Nom : +rename.no_permission = Vous n'avez pas la permission de renommer la faction. +rename.enter_name = Veuillez entrer un nom de faction. +rename.too_short = Le nom de la faction doit contenir au moins {0} caractères. +rename.too_long = Le nom de la faction ne peut pas dépasser {0} caractères. +rename.same_name = C'est déjà le nom de votre faction. +rename.name_taken = Une faction portant ce nom existe déjà. +rename.success = Faction renommée de {0} en {1} ! + +# ========== Modale de Description ========== +desc.title = Modifier la Description +desc.current_label = Actuelle : +desc.new_desc_label = Nouvelle Description : +desc.no_permission = Vous n'avez pas la permission de modifier la description. +desc.display_none = (Aucune) +desc.cleared = Description de la faction effacée. +desc.updated = Description de la faction mise à jour ! + +# ========== Modale de Tag ========== +tag.title = Modifier le Tag +tag.current_label = Actuel : +tag.instructions = Tag (1-5 caractères, lettres et chiffres uniquement) : +tag.help_text = Les tags apparaissent dans le chat et sur la carte +tag.no_permission = Vous n'avez pas la permission de modifier le tag. +tag.display_none = (Aucun) +tag.cleared = Tag de la faction effacé. +tag.too_short = Le tag doit contenir au moins {0} caractère. +tag.too_long = Le tag ne peut pas dépasser {0} caractères. +tag.invalid_format = Le tag ne peut contenir que des lettres et des chiffres. +tag.same_tag = C'est déjà le tag de votre faction. +tag.tag_taken = Une faction portant ce tag existe déjà. +tag.success = Tag de la faction défini sur [{0}] ! + +# ========== Page du Tableau de Bord ========== +dashboard.title = Tableau de Bord +dashboard.power_label = Puissance +dashboard.land_label = Revendications +dashboard.members_label = Membres +dashboard.online_label = En Ligne +dashboard.allies_label = Alliés +dashboard.enemies_label = Ennemis +dashboard.relations_label = Relations +dashboard.ally_enemy_label = alliés / ennemis +dashboard.status_label = Statut +dashboard.invites_label = Invitations +dashboard.sent_requests_label = envoyées / demandes +dashboard.treasury_label = Trésorerie +dashboard.upkeep_label = Entretien +dashboard.per_cycle = par cycle +dashboard.your_wallet = Votre Portefeuille +dashboard.personal_balance = solde personnel +dashboard.quick_actions = Actions Rapides +dashboard.teleport_label = Téléportation +dashboard.territory_label = Territoire +dashboard.channel_label = Canal +dashboard.membership_label = Adhésion +dashboard.recent_activity = Activité Récente +dashboard.view_all = Tout Voir +dashboard.income_24h = Revenus (24h) +dashboard.deposits_transfers_in = dépôts, transferts entrants +dashboard.expenses_24h = Dépenses (24h) +dashboard.withdrawals_transfers_out = retraits, transferts sortants +dashboard.faction_gone = Votre faction n'existe plus. +dashboard.available = {0} disponible(s) +dashboard.at_risk = En Danger ! +dashboard.online_count = {0} en ligne +dashboard.status_invite = Invitation +dashboard.in_grace = EN SURSIS +dashboard.billable_chunks = {0} chunks facturables +dashboard.btn_home = Foyer +dashboard.btn_set_home = Définir le Foyer +dashboard.btn_claim = Revendiquer +dashboard.chat_prefix = Chat : {0} +dashboard.btn_leave = Quitter +dashboard.no_activity = Aucune activité récente. +dashboard.time_now = maintenant +dashboard.time_minutes = il y a {0}min +dashboard.time_hours = il y a {0}h +dashboard.time_days = il y a {0}j +dashboard.no_home_hint = Votre faction n'a pas de foyer. Demandez à un officier d'en définir un. +dashboard.chat_mode_set = Mode de chat : {0} +dashboard.claim_success = Chunk revendiqué en ({0}, {1}) +dashboard.upkeep_in = dans {0} + +# ========== Page Principale de la Faction ========== +main.no_faction = Pas de Faction +main.joined = Vous avez rejoint la faction ! +main.join_failed = Échec pour rejoindre la faction : {0} +main.invite_declined = Invitation refusée. +main.cooldown = Téléportation en recharge ! {0}s restantes. +main.world_not_found = Impossible de se téléporter — monde introuvable. +main.leave_failed = Échec du départ : {0} + +# ========== Labels GUI Partagés ========== +common.faction_count = {0} factions +common.leader_label = Chef : {0} +common.sort_power = Puissance +common.sort_members = Membres +common.page_format = {0}/{1} +common.own_faction = (Vous) +common.search = Recherche : +common.sort = Trier : +common.prev = < Préc. +common.next = Suiv. > +common.treasury_not_available = La trésorerie n'est pas disponible. + +# ========== Page des Membres ========== +members.title = Membres +members.search_label = Recherche : +members.sort_label = Trier : +members.prev_btn = < Préc. +members.next_btn = Suiv. > +members.count = {0} membres +members.sort_role = Rôle +members.sort_last_online = Dernière Connexion +members.just_now = à l'instant +members.ago = il y a {0} +members.never = Jamais +members.member_not_found = Membre introuvable. +members.promoted = {0} promu au rang de {1}. +members.promote_failed = Échec de la promotion : {0} +members.demoted = {0} rétrogradé au rang de {1}. +members.demote_failed = Échec de la rétrogradation : {0} +members.kicked = {0} exclu de la faction. +members.kick_failed = Échec de l'exclusion : {0} +members.label_power = Puissance : +members.label_joined = Rejoint le : +members.label_last_death = Dernière Mort : +members.btn_promote = Promouvoir +members.btn_demote = Rétrograder +members.btn_kick = Exclure +members.btn_make_leader = Nommer Chef +members.btn_profile = Profil +members.self_label = (Vous) + +# ========== Page de Navigation ========== +browser.title = Parcourir les Factions +browser.search_label = Recherche : +browser.sort_label = Trier : +browser.prev_btn = < Préc. +browser.next_btn = Suiv. > +browser.sort_name = Nom +browser.invalid_faction = Faction invalide. +browser.label_power = puissance +browser.label_claims = revendications +browser.label_members = membres +browser.label_recruitment = Recrutement : +browser.label_created = Créée le : +browser.label_description = Description : +browser.view_info_btn = Voir les Infos +browser.label_leader = Chef : +browser.no_description = Aucune description définie + +# ========== Page du Classement ========== +leaderboard.title = Classement des Factions +leaderboard.rank_by = Classer par : +leaderboard.col_rank = # +leaderboard.col_faction = Faction +leaderboard.col_claims = Revendications +leaderboard.col_members = Membres +leaderboard.prev_btn = < Préc. +leaderboard.next_btn = Suiv. > +leaderboard.sort_kd = K/M +leaderboard.sort_territory = Territoire +leaderboard.sort_balance = Solde + +# ========== Page d'Info Joueur ========== +playerinfo.title = Info Joueur +playerinfo.first_joined_label = Première connexion : +playerinfo.last_online_label = Dernière connexion : +playerinfo.faction_label = Faction : +playerinfo.role_label = Rôle : +playerinfo.joined_label_static = Rejoint le : +playerinfo.not_in_faction = N'appartient à aucune faction +playerinfo.power_header = Puissance +playerinfo.current_max = actuelle / max +playerinfo.combat_header = Combat +playerinfo.kills_deaths = éliminations / morts +playerinfo.kdr_header = Ratio K/M +playerinfo.membership_history = Historique d'Adhésion +playerinfo.view_faction_btn = Voir la Faction +playerinfo.back_btn = Retour +playerinfo.now = Maintenant +playerinfo.history_count = {0} entrées +playerinfo.joined_label = Rejoint le : {0} +playerinfo.current = Actuel +playerinfo.left_label = Quitté le : {0} +playerinfo.no_history = Aucun historique d'adhésion +playerinfo.faction_gone = La faction n'existe plus. +playerinfo.reason_active = ACTIF +playerinfo.reason_left = PARTI +playerinfo.reason_kicked = EXCLU +playerinfo.reason_disbanded = DISSOUTE + +# ========== Page des Relations ========== +relations.title = Relations +relations.tab_relations = Relations +relations.tab_pending = En Attente +relations.set_relation_btn = + Définir Relation +relations.prev_btn = < Préc. +relations.next_btn = Suiv. > +relations.relation_count = {0} relations +relations.request_count = {0} demandes +relations.type_ally = Allié +relations.type_enemy = Ennemi +relations.type_incoming = Entrante +relations.type_outgoing = Sortante +relations.incoming_request = Demande entrante +relations.outgoing_request = Demande sortante +relations.empty_relations = Aucune relation pour l'instant. +relations.empty_relations_hint = Aucune relation pour l'instant. Cliquez sur + DÉFINIR RELATION pour ajouter des alliés ou des ennemis. +relations.empty_pending = Aucune demande d'alliance en attente. +relations.today = Aujourd'hui +relations.one_day_ago = Il y a 1 jour +relations.days_ago = Il y a {0} jours +relations.now_neutral = Maintenant neutre avec {0}. +relations.now_enemies = Maintenant ennemis avec {0} ! +relations.request_sent = Demande d'alliance envoyée à {0}. +relations.now_allied = Maintenant alliés avec {0} ! +relations.request_declined = Demande d'alliance de {0} refusée. +relations.request_cancelled = Demande d'alliance à {0} annulée. +relations.failed = Échec : {0} +relations.search_hint = Rechercher une faction pour définir une relation +relations.no_results = Aucune faction trouvée pour « {0} » +relations.power_display = {0} puissance +relations.member_count = {0} membres +relations.label_members = membres +relations.label_power = puissance +relations.label_since = Depuis : +relations.label_claims = Revendications : +relations.label_direction = Direction : +relations.btn_view = Voir +relations.btn_neutral = Neutre +relations.btn_enemy = Ennemi +relations.btn_ally = Allié +relations.btn_accept = Accepter +relations.btn_decline = Refuser +relations.btn_cancel = Annuler + +# ========== Page des Paramètres ========== +settings.title = Paramètres de la Faction +settings.general = Général +settings.name_label = Nom : +settings.tag_label = Tag : +settings.desc_label = Desc : +settings.edit_btn = Modifier +settings.recruitment = Recrutement +settings.status_label = Statut : +settings.home_location = Emplacement du Foyer +settings.location_label = Position : +settings.set_home_btn = Définir le Foyer +settings.teleport_btn = Téléporter +settings.delete_btn = Supprimer +settings.optional_features = Fonctionnalités Optionnelles +settings.configure_modules = Configurer les modules optionnels. +settings.modules_btn = Modules +settings.danger_zone = Zone de Danger +settings.irreversible = Cette action est irréversible. +settings.disband_btn = Dissoudre la Faction +settings.lock_hint = Certaines options peuvent être verrouillées par le serveur et n'accepteront pas de modifications. +settings.territory_permissions = Permissions du Territoire +settings.col_out = Ext +settings.col_ally = Allié +settings.col_mem = Mem +settings.col_off = Off +settings.cat_building = CONSTRUCTION +settings.perm_break = Casser +settings.perm_place = Placer +settings.cat_interaction = INTERACTION +settings.interaction_hint = (enfants désactivés quand Tout est désactivé) +settings.perm_all = Tout +settings.perm_door = Porte +settings.perm_chest = Coffre +settings.perm_bench = Établi +settings.perm_processing = Traitement +settings.perm_seat = Siège +settings.perm_transport = Transport +settings.cat_other = AUTRE +settings.perm_crate = Utilisation Caisse +settings.perm_npc_tame = Apprivoiser PNJ +settings.perm_pve = Dégâts JcE +settings.appearance = Apparence +settings.color_label = Couleur : +settings.mob_spawning = Apparition des Monstres +settings.mob_spawning_hint = (enfants désactivés quand le principal est désactivé) +settings.mob_spawning_label = Apparition des Monstres +settings.hostile_mobs = Monstres Hostiles +settings.passive_mobs = Monstres Passifs +settings.neutral_mobs = Monstres Neutres +settings.faction_settings = Paramètres de Faction +settings.pvp_in_territory = JcJ dans le Territoire +settings.officers_can_edit = Les officiers peuvent modifier +settings.leader_only = Chef uniquement +settings.officers_only = Seuls les officiers et le chef peuvent modifier les paramètres de la faction. +settings.display_none = (Aucun) +settings.home_not_set = Non défini +settings.no_permission = Vous n'avez pas la permission de modifier les paramètres. +settings.only_leader_disband = Seul le chef peut dissoudre la faction. +settings.perm_locked = Ce paramètre est verrouillé par le serveur. +settings.no_perm_edit = Vous n'avez pas la permission de modifier les permissions du territoire. +settings.only_leader_officers = Seul le chef peut modifier l'accès des officiers. +settings.pvp_enabled = Activé +settings.pvp_disabled = Désactivé +settings.not_in_territory = Vous devez être dans le territoire de votre faction pour définir le foyer. +settings.home_set = Foyer de la faction défini à votre position actuelle ! +settings.recruitment_set = Recrutement défini sur {0}. +settings.home_no_set = Votre faction n'a pas de foyer défini. +settings.home_deleted = Foyer de la faction supprimé ! + +# ========== Page des Modules ========== +modules.title = Modules de la Faction +modules.description = Fonctionnalités optionnelles pour améliorer votre faction +modules.configure_btn = Configurer +modules.back_btn = < Retour aux Paramètres +modules.treasury_name = Trésorerie +modules.treasury_desc = Banque de faction et système économique +modules.raids_name = Raids +modules.raids_desc = Batailles de faction planifiées +modules.levels_name = Niveaux +modules.levels_desc = Progression de faction et XP +modules.war_name = Guerre +modules.war_desc = Déclarations de guerre formelles +modules.coming_soon = Bientôt Disponible +modules.active = Actif +modules.view_treasury = Voir la Trésorerie +modules.unavailable = Indisponible +modules.no_economy = Aucun plugin d'économie détecté +modules.disabled = Désactivé +modules.economy_not_available = Les fonctionnalités économiques ne sont pas disponibles sur ce serveur + +# ========== Page de la Trésorerie ========== +treasury.title = Trésorerie de la Faction +treasury.balance_label = Solde +treasury.income_24h = Revenus (24h) +treasury.deposits_transfers_in = dépôts, transferts entrants +treasury.expenses_24h = Dépenses (24h) +treasury.withdrawals_transfers_out = retraits, transferts sortants +treasury.maintenance = ENTRETIEN +treasury.runway_label = Autonomie : +treasury.add_funds = Ajouter des fonds +treasury.deposit_btn = Déposer +treasury.take_funds = Retirer des fonds +treasury.withdraw_btn = Retirer +treasury.send_to_faction = Envoyer à une faction +treasury.transfer_btn = Transférer +treasury.treasury_config = Configuration de la trésorerie +treasury.settings_btn = Paramètres +treasury.recent_transactions = Transactions Récentes +treasury.no_transactions = Aucune transaction pour l'instant +treasury.col_date = Date +treasury.col_type = Type +treasury.col_by = Par +treasury.col_amount = Montant +treasury.col_details = Détails +treasury.pay_now_btn = Payer Maintenant +treasury.cost_7d = 7j : +treasury.cost_14d = 14j : +treasury.cost_30d = 30j : +treasury.settings_title = Paramètres de la Trésorerie +treasury.officer_permissions = PERMISSIONS DES OFFICIERS +treasury.allow_withdraw = Autoriser les Officiers à Retirer +treasury.allow_transfer = Autoriser les Officiers à Transférer +treasury.limits_section = LIMITES DE RETRAIT ET DE TRANSFERT +treasury.max_per_withdrawal = Maximum par retrait : +treasury.max_withdrawals_per = Maximum de retraits par période : +treasury.max_per_transfer = Maximum par transfert : +treasury.max_transfers_per = Maximum de transferts par période : +treasury.limit_period = Période limite (heures) : +treasury.no_limit_hint = Mettre à 0 pour aucune limite +treasury.upkeep_settings = PARAMÈTRES D'ENTRETIEN +treasury.auto_pay_upkeep = Paiement automatique de l'entretien depuis la trésorerie +treasury.back_btn = Retour +treasury.upkeep_cost_format = {0} toutes les {1}h +treasury.upkeep_time_left = {0} restant(es) +treasury.wallet_label = Votre portefeuille : {0} +treasury.treasury_label = Solde de la trésorerie : {0} +treasury.chunks_detail = {0} gratuit(s) + {1} chunks facturables +treasury.cost_label = Coût : {0} +treasury.pending = En Attente +treasury.auto_pay_on = Paiement auto : ACTIVÉ +treasury.auto_pay_off = Paiement auto : DÉSACTIVÉ +treasury.runway_90_plus = 90+ jours +treasury.runway_days = {0} jours +treasury.runway_day = {0} jour +treasury.runway_less_day = < 1 jour +treasury.runway_no_funds = Aucun fonds +treasury.grace_expires = Le sursis expire dans : {0} +treasury.missed_payments = Paiements manqués : {0} +treasury.pay_to_clear = Payez {0} pour annuler le sursis +treasury.system = Système +treasury.type_deposit = Dépôt +treasury.type_withdrawal = Retrait +treasury.type_transfer_in = Transfert Entrant +treasury.type_transfer_out = Transfert Sortant +treasury.type_player_transfer = Transfert Joueur +treasury.type_upkeep = Entretien +treasury.type_tax = Collecte d'Impôts +treasury.type_war_cost = Coût de Guerre +treasury.type_raid_cost = Coût de Raid +treasury.type_spoils = Butin +treasury.type_admin = Ajustement Admin +treasury.deposit_title = Déposer dans la Trésorerie +treasury.withdraw_title = Retirer de la Trésorerie +treasury.fee_label = Frais ({0}%) +treasury.confirm_deposit = Confirmer le Dépôt +treasury.confirm_withdrawal = Confirmer le Retrait +treasury.from_wallet = {0} depuis le portefeuille +treasury.to_wallet = {0} vers le portefeuille +treasury.enter_valid_amount = Entrez un montant positif valide. +treasury.insufficient_wallet = Fonds insuffisants dans le portefeuille. Besoin de {0}, vous avez {1}. +treasury.wallet_withdraw_failed = Échec du retrait de votre portefeuille. +treasury.deposit_failed_returned = Échec du dépôt. Argent restitué. +treasury.deposited = {0} déposé dans la trésorerie. +treasury.deposited_fee = {0} déposé dans la trésorerie. (frais : {1}) +treasury.no_withdraw_permission = Vous n'avez pas la permission de retirer. +treasury.withdraw_denied = Retrait refusé : {0} +treasury.insufficient_treasury = Fonds insuffisants dans la trésorerie. +treasury.withdraw_limit = Limite de retrait dépassée. +treasury.withdraw_failed = Retrait échoué : {0} +treasury.wallet_deposit_warn = Attention : Échec du dépôt dans votre portefeuille. Contactez un administrateur. +treasury.withdrew = {0} retiré de la trésorerie. +treasury.withdrew_fee = {0} retiré de la trésorerie. (frais : {1}, reçu : {2}) +treasury.search_hint = Rechercher un joueur ou une faction +treasury.no_results = Aucun résultat pour « {0} » +treasury.tag_player = [Joueur] +treasury.tag_faction = [Faction] +treasury.source_online = En Ligne +treasury.source_offline = Hors Ligne +treasury.source_player_db = Joueur Hytale +treasury.no_transfer_permission = Vous n'avez pas la permission de transférer. +treasury.transfer_denied = Transfert refusé : {0} +treasury.invalid_target_faction = Faction cible invalide. +treasury.target_faction_gone = La faction cible n'existe plus. +treasury.transfer_failed = Transfert échoué : {0} +treasury.transfer_failed_returned = Transfert échoué. Fonds restitués. +treasury.transferred = {0} transféré à {1}. +treasury.invalid_target_player = Joueur cible invalide. +treasury.player_transfer_failed = Échec du dépôt dans le portefeuille du joueur. Transfert annulé. +treasury.leader_only_perms = Seul le chef peut modifier les permissions de la trésorerie. +treasury.leader_only_upkeep = Seul le chef peut modifier les paramètres d'entretien. +treasury.invalid_limit = Nombre invalide dans les champs de limite. Utilisez 0 pour illimité. + +# ========== Pages de Confirmation ========== +confirm.disband_title = Dissoudre la Faction +confirm.disband_prompt = Êtes-vous sûr de vouloir dissoudre +confirm.disband_warning = Cette action ne peut pas être annulée ! +confirm.leave_title = Quitter la Faction +confirm.leave_prompt = Êtes-vous sûr de vouloir quitter +confirm.leave_warning = Vous perdrez l'accès au territoire de la faction. +confirm.leader_leave_title = Quitter en tant que Chef +confirm.leader_leave_prompt = Vous quittez +confirm.transfer_title = Transférer le Commandement +confirm.transfer_prompt = Êtes-vous sûr de vouloir transférer le commandement à +confirm.transfer_warning = Vous deviendrez Officier. +confirm.disband_not_leader = Seul le chef peut dissoudre la faction. +confirm.disbanded = La faction « {0} » a été dissoute. +confirm.disband_failed = Échec de la dissolution de la faction. +confirm.succession_title = Le commandement sera transféré à : +confirm.no_members_warning = ATTENTION : Aucun autre membre ! +confirm.will_disband = Quitter dissoudra la faction définitivement. +confirm.not_in_faction = Vous n'êtes pas dans cette faction. +confirm.not_leader_anymore = Vous n'êtes plus le chef. +confirm.no_successor = Aucun successeur disponible. Utilisez la dissolution à la place. +confirm.transfer_failed = Échec du transfert de commandement : {0} +confirm.leader_left = Commandement transféré à {0}. Vous avez quitté {1}. +confirm.leave_failed = Échec du départ de la faction : {0} +confirm.leader_cannot_leave = Les chefs ne peuvent pas quitter. Transférez le commandement ou dissolvez la faction. +confirm.left_faction = Vous avez quitté {0}. +confirm.faction_gone = La faction n'existe plus. +confirm.not_leader_transfer = Seul le chef peut transférer le commandement. +confirm.leadership_transferred = Commandement transféré à {0}. + +# ========== Page des Journaux d'Activité ========== +logs.title = {0} - Journaux d'Activité +logs.entry_count = {0} entrées +logs.filter_label = Filtrer : +logs.col_time = Heure +logs.col_type = Type +logs.col_message = Message +logs.prev_btn = < Préc. +logs.next_btn = Suiv. > +logs.all_types = Tous les Types +logs.no_logs_type = Aucun journal de ce type. +logs.no_logs = Aucun journal d'activité pour l'instant. +logs.time_just_now = à l'instant +logs.time_minute = il y a {0} minute +logs.time_minutes = il y a {0} minutes +logs.time_hour = il y a {0} heure +logs.time_hours = il y a {0} heures +logs.time_day = il y a {0} jour +logs.time_days = il y a {0} jours +logs.time_week = il y a {0} semaine +logs.time_weeks = il y a {0} semaines +logs.type_member_join = Adhésion +logs.type_member_leave = Départ +logs.type_member_kick = Exclusion +logs.type_member_promote = Promotion +logs.type_member_demote = Rétrogradation +logs.type_claim = Revendication +logs.type_unclaim = Abandon +logs.type_overclaim = Surrevendication +logs.type_home_set = Foyer Défini +logs.type_relation_ally = Allié +logs.type_relation_enemy = Ennemi +logs.type_relation_neutral = Neutre +logs.type_leader_transfer = Transfert +logs.type_settings_change = Paramètres +logs.type_power_change = Puissance +logs.type_economy = Économie +logs.type_admin_power = Puissance Admin + +# Modèles de messages de journal (i18n pour le contenu du journal d'activité) +# Actions des joueurs +logs.msg_faction_created = {0} a créé la faction +logs.msg_member_joined = {0} a rejoint la faction +logs.msg_member_left = {0} a quitté la faction +logs.msg_member_kicked = {0} a été exclu +logs.msg_member_promoted = {0} promu au rang de {1} +logs.msg_member_demoted = {0} rétrogradé au rang de {1} +logs.msg_leader_transferred = Commandement transféré à {0} +logs.msg_leader_left_transfer = {0} est parti, {1} est maintenant chef +logs.msg_relation_set = {0} défini comme {1} +# Territoire +logs.msg_claimed = Chunk revendiqué en {0}, {1} dans {2} +logs.msg_unclaimed = Chunk abandonné en {0}, {1} dans {2} +logs.msg_overclaim_lost = Chunk perdu en {0}, {1} au profit de {2} +logs.msg_overclaim_taken = Chunk surrevendiqué en {0}, {1} depuis {2} +logs.msg_all_unclaimed = Tout le territoire abandonné +logs.msg_claim_removed_world = Revendication dans « {0} » supprimée (monde interdisant les revendications) +logs.msg_claims_lost_upkeep = {0} revendication(s) perdue(s) pour défaut d'entretien ({1} paiements manqués) +logs.msg_claims_removed_inactive = {0} revendications supprimées pour inactivité ({1} jours) +# Foyer +logs.msg_home_set = Foyer défini +logs.msg_home_cleared = Foyer effacé +logs.msg_home_cleared_world = Foyer dans « {0} » effacé (monde interdisant les revendications) +# Paramètres +logs.msg_renamed = Renommée de « {0} » en « {1} » +logs.msg_set_open = Faction définie comme ouverte +logs.msg_set_closed = Faction définie comme sur invitation +logs.msg_desc_set = Description définie +logs.msg_desc_cleared = Description effacée +logs.msg_color_changed = Couleur changée en « {0} » +# Économie +logs.msg_deposit = Dépôt : {0} (+{1}) +logs.msg_withdrawal = Retrait : {0} (-{1}) +logs.msg_upkeep_paid = Entretien payé : {0} ({1} chunks facturables) +logs.msg_upkeep_grace_started = Échec de l'entretien : période de sursis commencée ({0}h) +logs.msg_upkeep_missed = Entretien manqué (paiement {0}), le sursis expire dans {1} +logs.msg_upkeep_manual = Entretien payé manuellement : {0} ({1} chunks facturables, sursis annulé) +# Puissance admin +logs.msg_admin_power_set = Admin a défini la puissance de {0} à {1} (était {2}) +logs.msg_admin_power_add = Admin a ajouté {0} de puissance à {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin a retiré {0} de puissance à {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin a réinitialisé la puissance de {0} à {1} (était {2}) +logs.msg_admin_power_adjusted = Admin a ajusté la puissance de {0} de {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin a défini la puissance max de {0} à {1} (était {2}) +logs.msg_admin_maxpower_reset = Admin a réinitialisé la puissance max de {0} au défaut global ({1}) +logs.msg_admin_powerloss_enabled = Admin a activé la perte de puissance pour {0} +logs.msg_admin_powerloss_disabled = Admin a désactivé la perte de puissance pour {0} +logs.msg_admin_decay_enabled = Admin a activé l'exemption de dégradation des revendications pour {0} +logs.msg_admin_decay_disabled = Admin a désactivé l'exemption de dégradation des revendications pour {0} +logs.msg_admin_kd_reset = Admin a réinitialisé le K/M de {0} +logs.msg_admin_power_set_all = Admin a défini la puissance de tous les {0} membres à {1} +logs.msg_admin_power_add_all = Admin a ajouté {0} de puissance à tous les {1} membres +logs.msg_admin_power_remove_all = Admin a retiré {0} de puissance à tous les {1} membres +logs.msg_admin_power_reset_all = Admin a réinitialisé la puissance de tous les {0} membres +logs.msg_admin_power_adjusted_all = Admin a ajusté la puissance de tous les {0} membres de {1} +# Faction admin +logs.msg_admin_kicked = [Admin] {0} a été exclu +logs.msg_admin_role_set = [Admin] Rôle de {0} défini à {1} +logs.msg_admin_leader_kick = [Admin] Commandement transféré de {0} à {1} (exclusion admin) +logs.msg_admin_econ_added = Admin a ajouté : {0} (solde : {1}) +logs.msg_admin_econ_deducted = Admin a déduit : {0} (solde : {1}) +logs.msg_admin_econ_set = Admin a défini le solde à {0} (était {1}) +# Importation +logs.msg_left_import = {0} est parti (importé dans une autre faction) +logs.msg_leader_import_transfer = {0} est devenu chef (ancien chef importé dans une autre faction) +logs.msg_imported_from = Faction importée depuis {0} + +# ========== Page du Chat ========== +chat.title = Chat de la Faction +chat.tab_faction = Faction +chat.tab_ally = Allié +chat.send_btn = Envoyer +chat.placeholder = Écrivez un message... +chat.no_messages = Aucun message pour l'instant. +chat.no_ally_permission = Vous n'avez pas la permission pour le chat allié. +chat.no_permission = Pas de permission. +chat.faction_gone = Votre faction n'existe plus. +chat.time_now = maintenant +chat.time_minutes = {0}min +chat.time_hours = {0}h + +# ========== Page des Invitations ========== +invites.title = Invitations +invites.tab_outgoing = Envoyées +invites.tab_requests = Demandes +invites.prev_btn = < Préc. +invites.next_btn = Suiv. > +invites.invite_count = {0} invitations +invites.request_count = {0} demandes +invites.invited_by = Invité par : {0} +invites.no_message = Aucun message +invites.expires = Expire : {0} +invites.type_outgoing = Envoyée +invites.type_request = Demande +invites.invited_by_label = Invité par : +invites.empty_outgoing = Aucune invitation envoyée. Utilisez /f invite pour inviter quelqu'un. +invites.empty_requests = Aucune demande d'adhésion. Les joueurs peuvent demander à rejoindre avec /f request. +invites.invalid_player = Joueur invalide. +invites.cancelled_invite = Invitation à {0} annulée. +invites.player_joined = {0} a rejoint la faction ! +invites.faction_full = La faction est pleine. Impossible d'accepter la demande. +invites.add_failed = Échec de l'ajout du joueur à la faction. +invites.request_expired = Demande introuvable ou expirée. +invites.request_declined = Demande d'adhésion de {0} refusée. +invites.time_seconds = {0}s +invites.time_minutes = {0}min +invites.time_hours = {0}h +invites.label_message = Message : +invites.btn_cancel = Annuler +invites.btn_accept = Accepter +invites.btn_decline = Refuser + +# ========== Page de la Carte ========== +map.title = Carte du Territoire +map.action_hint = Clic gauche : Revendiquer | Clic droit : Abandonner +map.legend_your = Votre Territoire +map.legend_ally = Territoire Allié +map.legend_enemy = Territoire Ennemi +map.legend_other = Autre Faction +map.legend_wilderness = Zone Sauvage +map.legend_safe = SafeZone +map.legend_war = WarZone +map.legend_you = Vous êtes ici +map.position = Votre Position : Chunk ({0}, {1}) +map.legend_protected = Protégé +map.claim_stats = Revendications : {0}/{1} ({2} disponible(s)) +map.overclaimed = SURREVENDIQUÉ par {0} ! +map.power_display = Puissance : {0}/{1} +map.join_to_claim = Rejoignez une faction pour revendiquer +map.claim_success = Chunk revendiqué en ({0}, {1}) ! +map.claim_not_in_faction = Vous devez appartenir à une faction pour revendiquer du territoire. +map.claim_not_officer = Seuls les officiers et le chef peuvent revendiquer du territoire. +map.claim_already_yours = Vous possédez déjà ce chunk. +map.claim_already_claimed = Ce chunk est déjà revendiqué par une autre faction. +map.claim_not_adjacent = Vous ne pouvez revendiquer que des chunks adjacents à votre territoire. +map.claim_max = Vous avez atteint votre limite maximale de revendications. +map.claim_world_not_allowed = La revendication n'est pas autorisée dans ce monde. +map.claim_orbisguard = Cette zone est protégée par OrbisGuard. +map.claim_failed = Échec de la revendication du chunk. +map.unclaim_success = Chunk abandonné en ({0}, {1}). +map.unclaim_not_in_faction = Vous devez appartenir à une faction. +map.unclaim_not_officer = Seuls les officiers et le chef peuvent abandonner du territoire. +map.unclaim_not_claimed = Ce chunk n'est pas revendiqué. +map.unclaim_not_yours = Ce chunk appartient à une autre faction. +map.unclaim_home = Impossible d'abandonner le chunk contenant le foyer de votre faction. +map.unclaim_failed = Échec de l'abandon du chunk. +map.overclaim_success = Chunk ennemi surrevendiqué en ({0}, {1}) ! +map.overclaim_not_in_faction = Vous devez appartenir à une faction. +map.overclaim_not_officer = Seuls les officiers et le chef peuvent surrevendiquer du territoire. +map.overclaim_already_yours = Vous possédez déjà ce chunk. +map.overclaim_ally = Vous ne pouvez pas surrevendiquer le territoire d'un allié. +map.overclaim_has_power = Cette faction a assez de puissance pour défendre son territoire. +map.overclaim_max = Vous avez atteint votre limite maximale de revendications. +map.overclaim_failed = Échec de la surrevendication du chunk. +# ========== Page de Création de Faction ========== +create.title = Créer Votre Faction +create.section_preview = Aperçu +create.section_basic_info = Informations de Base +create.section_details = Détails +create.name_prefix = Nom : +create.faction_name_label = Nom de la Faction * +create.tag_label = TAG (2-4 car., auto si vide) +create.desc_label = Description (Optionnelle) +create.recruitment_label = Recrutement +create.section_faction_color = Couleur de la Faction +create.section_combat = Combat +create.create_btn = Créer la Faction +create.preview_name = Nom de Votre Faction +create.leader_prefix = Chef : {0} +create.enter_name = Veuillez entrer un nom de faction. +create.name_too_short = Le nom de la faction doit contenir au moins {0} caractères. +create.name_too_long = Le nom de la faction ne peut pas dépasser {0} caractères. +create.name_taken = Une faction portant ce nom existe déjà. +create.tag_length = Le tag de la faction doit contenir {0}-{1} caractères. +create.tag_format = Le tag de la faction ne peut contenir que des lettres et des chiffres. +create.desc_too_long = La description ne peut pas dépasser {0} caractères. +create.created = Faction {0} créée avec succès ! +create.created_no_dashboard = Faction créée mais impossible d'ouvrir le tableau de bord. +create.invalid_name = Nom de faction invalide. +create.create_failed = Impossible de créer la faction. + +# ========== Pages Nouveau Joueur ========== +newplayer.browse_title = Parcourir les Factions +newplayer.invites_title = Invitations et Demandes +newplayer.map_title = Carte du Territoire +newplayer.view_only_badge = Mode Consultation +newplayer.legend_label = Légende : +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Faction +newplayer.legend_wilderness = Zone Sauvage +newplayer.search_label = Recherche : +newplayer.sort_label = Trier : +newplayer.prev_btn = < Préc. +newplayer.next_btn = Suiv. > +newplayer.pending_count = {0} en attente +newplayer.received_header = INVITATIONS REÇUES ({0}) +newplayer.requests_header = VOS DEMANDES ({0}) +newplayer.no_invites = Aucune invitation. Parcourez les factions pour en trouver une ! +newplayer.no_requests = Aucune demande en attente. +newplayer.invited_by = Invité par : {0} +newplayer.member_count = {0} membres +newplayer.power_count = {0} puissance +newplayer.claim_count = {0} revendications +newplayer.awaiting_review = En attente d'examen +newplayer.expires_in = Expire dans {0}h +newplayer.time_just_now = à l'instant +newplayer.time_minutes = il y a {0} min +newplayer.time_hours = il y a {0}h +newplayer.time_days = il y a {0}j +newplayer.invalid_faction = Faction invalide. +newplayer.invite_expired = Cette invitation a expiré ou a été révoquée. +newplayer.faction_gone = La faction n'existe plus. +newplayer.joined = Vous avez rejoint {0} ! +newplayer.faction_full = Cette faction est pleine. +newplayer.join_failed = Impossible de rejoindre la faction. +newplayer.invite_declined = Invitation refusée. +newplayer.request_cancelled = Demande d'adhésion à {0} annulée. +newplayer.faction_count = {0} factions +newplayer.browse_subtitle = Trouvez votre nouveau foyer ! +newplayer.sort_power = Puissance +newplayer.sort_name = Nom +newplayer.sort_members = Membres +newplayer.btn_accept = Accepter +newplayer.btn_pending = En Attente +newplayer.btn_join = Rejoindre +newplayer.btn_request = Demander +newplayer.invite_only_msg = Cette faction est sur invitation uniquement. +newplayer.welcome_hint = Bienvenue ! Utilisez /f pour ouvrir le menu des factions. +newplayer.faction_open_hint = Cette faction est ouverte ! Cliquez sur REJOINDRE à la place. +newplayer.already_requested = Vous avez déjà une demande en attente pour cette faction. +newplayer.has_invite_hint = Vous avez une invitation de cette faction ! Cliquez sur ACCEPTER à la place. +newplayer.request_sent = Demande d'adhésion envoyée à {0} ! +newplayer.officer_review = Un officier examinera votre demande. +newplayer.map_hint = Consultation uniquement - Rejoignez une faction pour revendiquer du territoire ! + +# Paramètres Joueur +nav.player_settings = Joueur +player_settings.title = Paramètres du Joueur +player_settings.language_section = Langue +player_settings.auto_detect = Détection automatique du client +player_settings.auto_detect_desc = Utilise le paramètre de langue de votre client de jeu +player_settings.language_label = Langue +player_settings.notifications_section = Notifications +player_settings.territory_alerts = Alertes de Territoire +player_settings.territory_alerts_desc = Afficher les notifications en entrant/quittant des territoires +player_settings.death_announcements = Annonces de Décès +player_settings.death_announcements_desc = Recevoir les annonces de position de mort des membres de la faction +player_settings.power_notifications = Changements de Puissance +player_settings.power_notifications_desc = Afficher les messages quand votre puissance change +player_settings.language_changed = Langue changée en {0} +player_settings.pref_enabled = {0} activé +player_settings.pref_disabled = {0} désactivé + +# ========== Pages d'Aide ========== +help.center_title = Centre d'Aide +help.getting_started_title = Premiers Pas +help.what_are_factions_title = Qu'est-ce que les Factions ? +help.what_are_factions_1 = Les factions sont des groupes créés par les joueurs qui travaillent ensemble +help.what_are_factions_2 = pour revendiquer du territoire, construire des bases et se mesurer aux autres. +help.what_are_factions_bullet_1 = - Territoire protégé pour construire +help.what_are_factions_bullet_2 = - Des coéquipiers avec qui jouer +help.what_are_factions_bullet_3 = - Accès au chat de faction et aux fonctionnalités +help.joining_title = Rejoindre une Faction +help.joining_desc = Il y a plusieurs façons de rejoindre une faction : +help.joining_bullet_1 = - Parcourir - Trouvez des factions ouvertes et cliquez sur REJOINDRE +help.joining_bullet_2 = - Invitations - Acceptez les invitations des officiers +help.joining_bullet_3 = - Demande - Demandez à rejoindre les factions sur invitation +help.creating_title = Créer une Faction +help.creating_desc = Allez dans l'onglet Créer pour fonder votre propre faction. +help.creating_bullet_1 = - Invitez et gérez des membres +help.creating_bullet_2 = - Revendiquez et protégez du territoire +help.commands_title = Commandes Rapides +help.cmd_f = /f - Ouvrir le menu des factions +help.cmd_f_list = /f list - Lister toutes les factions +help.cmd_f_join = /f join - Rejoindre une faction ouverte +help.cmd_f_create = /f create - Créer une nouvelle faction +help.cmd_f_help = /f help - Liste complète des commandes +help.tip = Astuce : Parcourez les factions pour trouver un groupe qui vous correspond ! From 412dbab5ca0bc266ad13046a6cd5ab4d6651582e Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:12:57 -0700 Subject: [PATCH 57/76] i18n: add Brazilian Portuguese (pt-BR) translations Complete Brazilian Portuguese translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/pt-BR/help/combat/death.md | 39 + .../Languages/pt-BR/help/combat/protection.md | 28 + .../pt-BR/help/combat/spawn_protection.md | 27 + .../Languages/pt-BR/help/combat/tagging.md | 29 + .../Languages/pt-BR/help/combat/zones.md | 29 + .../pt-BR/help/diplomacy/alliances.md | 45 + .../Languages/pt-BR/help/diplomacy/enemies.md | 47 + .../pt-BR/help/diplomacy/relations.md | 38 + .../Languages/pt-BR/help/economy/commands.md | 27 + .../Languages/pt-BR/help/economy/funds.md | 42 + .../Languages/pt-BR/help/economy/treasury.md | 26 + .../Languages/pt-BR/help/economy/upkeep.md | 37 + .../pt-BR/help/power_land/claiming.md | 50 + .../pt-BR/help/power_land/losing_territory.md | 50 + .../pt-BR/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../pt-BR/help/quick_ref/all_commands.md | 94 ++ .../pt-BR/help/welcome/getting_started.md | 38 + .../pt-BR/help/welcome/quick_tips.md | 44 + .../pt-BR/help/welcome/what_are_factions.md | 37 + .../pt-BR/help/your_faction/creating.md | 38 + .../pt-BR/help/your_faction/joining.md | 36 + .../pt-BR/help/your_faction/managing.md | 44 + .../pt-BR/help/your_faction/roles.md | 44 + .../Server/Languages/pt-BR/hyperfactions.lang | 453 +++++++++ .../Languages/pt-BR/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/pt-BR/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/death.md b/src/main/resources/Server/Languages/pt-BR/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md b/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md b/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md b/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md b/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md b/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md b/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md b/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang new file mode 100644 index 00000000..a318ba5d --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Traduções para Português Brasileiro +# Formato: chave = valor (ou chave = "valor entre aspas") +# Nota: As chaves são automaticamente prefixadas com "hyperfactions." pelo I18nModule do Hytale +# Marcadores: {0}, {1}, etc. + +# ========== Comum ========== +common.no_permission = Você não tem permissão para fazer isso. +common.not_in_faction = Você não está em uma facção. +common.already_in_faction = Você já está em uma facção. +common.player_not_found = Jogador não encontrado. +common.faction_not_found = Facção não encontrada. +common.player_not_online = Esse jogador não está online. +common.must_be_leader = Apenas o líder da facção pode fazer isso. +common.must_be_officer = Você precisa ser Oficial ou Líder para fazer isso. +common.combat_tagged = Você não pode fazer isso durante combate. +common.cancel = Cancelar +common.confirm = Confirmar +common.save = Salvar +common.close = Fechar +common.clear = Limpar +common.back = Voltar +common.leave = Sair +common.transfer = Transferir +common.disband = Dissolver +common.world_fallback = mundo +common.yes = Sim +common.no = Não +common.loading = Carregando... +common.online = Online +common.offline = Offline +common.enabled = Ativado +common.disabled = Desativado +common.none = Nenhum +common.page = Página {0} de {1} +common.unknown = Desconhecido +common.error_generic = Algo deu errado. Tente novamente. +common.gui_fallback = Não foi possível acessar a interface. Use /f help para ver os comandos. +common.admin_prefix = [Admin] +common.location_error = Não foi possível determinar sua localização. +common.world_error = Não foi possível determinar seu mundo. +common.invalid_id = ID de facção inválido. +common.na = N/D + +# ========== Comandos - Criar ========== +cmd.create.no_permission = Você não tem permissão para criar facções. +cmd.create.usage = Uso: /f create +cmd.create.success = Facção '{0}' criada! +cmd.create.already_in_named = Você já está em {0}. +cmd.create.use_leave_first = Use /f leave primeiro se quiser criar uma nova facção. +cmd.create.name_taken = Esse nome de facção já está em uso. +cmd.create.name_too_short = O nome da facção é muito curto. +cmd.create.name_too_long = O nome da facção é muito longo. +cmd.create.failed = Falha ao criar a facção. + +# ========== Comandos - Dissolver ========== +cmd.disband.no_permission = Você não tem permissão para dissolver facções. +cmd.disband.not_leader = Apenas o líder da facção pode dissolvê-la. +cmd.disband.confirm_prompt = Tem certeza de que deseja dissolver sua facção? +cmd.disband.confirm_instruction = Digite /f disband --text novamente dentro de {0} segundos para confirmar. +cmd.disband.success = Sua facção foi dissolvida. +cmd.disband.failed = Falha ao dissolver a facção. +cmd.disband.cancelled = Confirmação anterior cancelada. Digite novamente para confirmar a dissolução. + +# ========== Comandos - Renomear ========== +cmd.rename.no_permission = Você não tem permissão. +cmd.rename.not_leader = Apenas o líder pode renomear a facção. +cmd.rename.usage = Uso: /f rename +cmd.rename.too_short = O nome é muito curto (mín. {0} caracteres). +cmd.rename.too_long = O nome é muito longo (máx. {0} caracteres). +cmd.rename.name_taken = Esse nome já está em uso. +cmd.rename.success = Facção renomeada para {0}! +cmd.rename.broadcast = {0} renomeou a facção para {1} + +# ========== Comandos - Descrição ========== +cmd.desc.no_permission = Você não tem permissão. +cmd.desc.not_officer = Você precisa ser oficial para definir a descrição. +cmd.desc.set = Descrição da facção definida! +cmd.desc.cleared = Descrição da facção removida. + +# ========== Comandos - Abrir / Fechar ========== +cmd.open.no_permission = Você não tem permissão. +cmd.open.not_leader = Apenas o líder pode alterar essa configuração. +cmd.open.already_open = Sua facção já está aberta. +cmd.open.success = Sua facção agora está aberta! Qualquer um pode entrar com /f join. +cmd.open.broadcast = {0} abriu a facção para entrada pública. +cmd.close.no_permission = Você não tem permissão. +cmd.close.not_leader = Apenas o líder pode alterar essa configuração. +cmd.close.already_closed = Sua facção já está fechada. +cmd.close.success = Sua facção agora é apenas por convite. +cmd.close.broadcast = {0} fechou a facção para apenas convite. + +# ========== Comandos - Cor ========== +cmd.color.no_permission = Você não tem permissão. +cmd.color.not_officer = Você precisa ser oficial para alterar a cor. +cmd.color.colors_disabled = Cores de facção estão desativadas. +cmd.color.usage = Uso: /f color +cmd.color.usage_hint = Códigos válidos: 0-9, a-f ou #RRGGBB hex +cmd.color.invalid = Cor inválida. Use 0-9, a-f, ou #RRGGBB. +cmd.color.success = Cor da facção atualizada! + +# ========== Comandos - Reivindicar ========== +cmd.claim.no_permission = Você não tem permissão para reivindicar território. +cmd.claim.already_yours = Sua facção já possui este chunk. +cmd.claim.cannot_claim_ally = Você não pode reivindicar território aliado. +cmd.claim.already_claimed_hint = Este chunk já está reivindicado. Use /f overclaim se eles estiverem vulneráveis. +cmd.claim.success = Chunk reivindicado em {0}, {1}! +cmd.claim.not_officer = Você precisa ser oficial para reivindicar território. +cmd.claim.already_claimed = Este chunk já está reivindicado. +cmd.claim.max_claims = Sua facção atingiu o máximo de reivindicações. Consiga mais poder! +cmd.claim.not_adjacent = Você deve reivindicar adjacente ao território existente. +cmd.claim.world_not_allowed = Reivindicações não são permitidas neste mundo. +cmd.claim.orbisguard = Esta área é protegida pelo OrbisGuard. +cmd.claim.zone_protected = Este chunk está em uma SafeZone ou WarZone. +cmd.claim.insufficient_power = Sua facção não tem poder suficiente para reivindicar mais território. +cmd.claim.failed = Falha ao reivindicar chunk. + +# ========== Comandos - Convidar ========== +cmd.invite.no_permission = Você não tem permissão para convidar jogadores. +cmd.invite.not_officer = Você precisa ser oficial para convidar jogadores. +cmd.invite.usage = Uso: /f invite +cmd.invite.player_not_found = Jogador '{0}' não encontrado ou offline. +cmd.invite.target_in_faction = Esse jogador já está em uma facção. +cmd.invite.sent = {0} convidado para sua facção. +cmd.invite.received = Você foi convidado para entrar em {0}! +cmd.invite.accept_hint = Digite /f accept {0} para entrar. + +# ========== Comandos - Aceitar / Entrar ========== +cmd.join.no_permission = Você não tem permissão para entrar em facções. +cmd.join.already_in_named = Você já está em {0}. +cmd.join.use_leave_hint = Use /f leave primeiro se quiser entrar em outra facção. +cmd.join.no_invites = Você não tem convites pendentes. +cmd.join.faction_not_found = Facção '{0}' não encontrada. +cmd.join.not_invited = Você não tem convite dessa facção. +cmd.join.faction_gone = Essa facção não existe mais. +cmd.join.success = Você entrou em {0}! +cmd.join.broadcast = {0} entrou na facção! +cmd.join.faction_full = Essa facção está cheia. +cmd.join.failed = Falha ao entrar na facção. + +# ========== Comandos - Expulsar ========== +cmd.kick.no_permission = Você não tem permissão para expulsar membros. +cmd.kick.usage = Uso: /f kick +cmd.kick.not_in_your_faction = O jogador '{0}' não está na sua facção. +cmd.kick.success = {0} expulso da facção. +cmd.kick.broadcast = {0} foi expulso da facção. +cmd.kick.kicked = Você foi expulso da facção. +cmd.kick.cannot_kick_higher = Você não tem permissão para expulsar esse jogador. +cmd.kick.cannot_kick_leader = Você não pode expulsar o líder da facção. +cmd.kick.failed = Falha ao expulsar jogador. + +# ========== Comandos - Sair ========== +cmd.leave.no_permission = Você não tem permissão para sair de facções. +cmd.leave.confirm_prompt = Tem certeza de que deseja sair da sua facção? +cmd.leave.confirm_instruction = Digite /f leave --text novamente dentro de {0} segundos para confirmar. +cmd.leave.success = Você saiu da sua facção. +cmd.leave.broadcast = {0} saiu da facção. +cmd.leave.failed = Falha ao sair da facção. +cmd.leave.cancelled = Confirmação anterior cancelada. Digite novamente para confirmar a saída. + +# ========== Comandos - Promover / Rebaixar / Transferir ========== +cmd.rank.promote_no_permission = Você não tem permissão para promover membros. +cmd.rank.promote_usage = Uso: /f promote +cmd.rank.promoted = {0} promovido a {1}! +cmd.rank.promote_broadcast = {0} foi promovido a {1}! +cmd.rank.already_highest = Não é possível promover mais. Use /f transfer para mudar o líder. +cmd.rank.promote_failed = Falha ao promover jogador. +cmd.rank.demote_no_permission = Você não tem permissão para rebaixar membros. +cmd.rank.demote_usage = Uso: /f demote +cmd.rank.demoted = {0} rebaixado a {1}. +cmd.rank.demote_broadcast = {0} foi rebaixado a {1}. +cmd.rank.already_lowest = Esse jogador já é Membro. +cmd.rank.demote_failed = Falha ao rebaixar jogador. +cmd.rank.transfer_no_permission = Você não tem permissão para transferir a liderança. +cmd.rank.transfer_usage = Uso: /f transfer +cmd.rank.player_not_in_faction = Jogador não encontrado na sua facção. +cmd.rank.transfer_confirm = Tem certeza de que deseja transferir a liderança para {0}? +cmd.rank.transfer_confirm_instruction = Digite /f transfer {0} --text novamente dentro de {1} segundos para confirmar. +cmd.rank.transferred = Liderança transferida para {0}! +cmd.rank.transfer_broadcast = {0} agora é o líder da facção! +cmd.rank.transfer_failed = Falha ao transferir a liderança. +cmd.rank.transfer_cancelled = Confirmação anterior cancelada. Digite novamente para confirmar a transferência. + +# ========== Comandos - Desreivindicar ========== +cmd.unclaim.no_permission = Você não tem permissão para desreivindicar território. +cmd.unclaim.success = Chunk desreivindicado em {0}, {1}. +cmd.unclaim.not_officer = Você precisa ser oficial para desreivindicar território. +cmd.unclaim.chunk_not_claimed = Este chunk não está reivindicado. +cmd.unclaim.not_your_claim = Sua facção não possui este chunk. +cmd.unclaim.cannot_unclaim_home = Não é possível desreivindicar o chunk com a base da facção. +cmd.unclaim.would_disconnect = Não é possível desreivindicar — isso desconectaria seu território. +cmd.unclaim.failed = Falha ao desreivindicar chunk. + +# ========== Comandos - Conquistar ========== +cmd.overclaim.no_permission = Você não tem permissão para conquistar território. +cmd.overclaim.success = Território inimigo conquistado! +cmd.overclaim.not_officer = Você precisa ser oficial para conquistar território. +cmd.overclaim.not_claimed = Este chunk não está reivindicado. Use /f claim. +cmd.overclaim.own_chunk = Sua facção já possui este chunk. +cmd.overclaim.ally = Você não pode conquistar território aliado. +cmd.overclaim.target_has_power = Essa facção ainda tem poder suficiente. +cmd.overclaim.failed = Falha ao conquistar território. + +# ========== Comandos - Preso ========== +cmd.stuck.no_permission = Você não tem permissão para usar /f stuck. +cmd.stuck.not_stuck = Você não está preso - aqui é território selvagem. +cmd.stuck.combat_tagged = Você não pode usar /f stuck durante combate! +cmd.stuck.no_safe = Não foi possível encontrar um local seguro. +cmd.stuck.teleporting = Teletransportando para segurança em {0} segundos. Não se mova! + +# ========== Comandos - Base ========== +cmd.home.no_permission = Você não tem permissão para teleportar à base da facção. +cmd.home.no_home = Sua facção não tem uma base definida. +cmd.home.combat_tagged = Você não pode teleportar durante combate! +cmd.home.teleported = Teleportado para a base da facção! + +# ========== Comandos - Definir Base ========== +cmd.sethome.no_permission = Você não tem permissão para definir a base da facção. +cmd.sethome.world_not_allowed = Não é possível definir a base neste mundo. +cmd.sethome.not_in_territory = Você só pode definir a base no território da sua facção. +cmd.sethome.set = Base da facção definida! +cmd.sethome.broadcast = {0} definiu a base da facção. +cmd.sethome.not_officer = Você precisa ser oficial para definir a base. +cmd.sethome.failed = Falha ao definir a base. + +# ========== Comandos - Excluir Base ========== +cmd.delhome.no_permission = Você não tem permissão para excluir a base da facção. +cmd.delhome.no_home = Sua facção não tem uma base definida. +cmd.delhome.deleted = Base da facção excluída! +cmd.delhome.broadcast = {0} excluiu a base da facção. +cmd.delhome.not_officer = Você precisa ser oficial para excluir a base. +cmd.delhome.failed = Falha ao excluir a base. + +# ========== Comandos - Relação (Aliado/Inimigo/Neutro/Relações) ========== +cmd.relation.ally_no_permission = Você não tem permissão para gerenciar alianças. +cmd.relation.ally_usage = Uso: /f ally +cmd.relation.ally_sent = Pedido de aliança enviado para {0}! +cmd.relation.ally_formed = Agora vocês são aliados de {0}! +cmd.relation.already_ally = Vocês já são aliados dessa facção. +cmd.relation.ally_failed = Falha ao enviar pedido de aliança. +cmd.relation.enemy_no_permission = Você não tem permissão para declarar inimigos. +cmd.relation.enemy_usage = Uso: /f enemy +cmd.relation.enemy_declared = {0} agora é seu inimigo! +cmd.relation.already_enemy = Vocês já são inimigos dessa facção. +cmd.relation.max_enemies = Você atingiu o número máximo de inimigos. +cmd.relation.enemy_failed = Falha ao definir inimigo. +cmd.relation.neutral_no_permission = Você não tem permissão para definir relações neutras. +cmd.relation.neutral_usage = Uso: /f neutral +cmd.relation.neutral_set = Sua facção agora é neutra com {0}. +cmd.relation.already_neutral = Vocês já são neutros com essa facção. +cmd.relation.neutral_failed = Falha ao definir neutro. +cmd.relation.cannot_self = Você não pode se aliar consigo mesmo. +cmd.relation.max_allies = Você atingiu o número máximo de aliados. +cmd.relation.view_no_permission = Você não tem permissão para ver relações. +cmd.relation.header = === Relações da Facção === +cmd.relation.allies_count = Aliados ({0}): +cmd.relation.enemies_count = Inimigos ({0}): +cmd.relation.list_entry = - {0} + +# ========== Comandos - Chat ========== +cmd.chat.usage = Uso: /f c [f|a|off] +cmd.chat.no_permission = Você não tem permissão para esse modo de chat. +cmd.chat.mode_set = Modo de chat definido para {0} + +# ========== Comandos - Convites ========== +cmd.invites.not_officer = Você precisa ser oficial para gerenciar convites. +cmd.invites.header = === Convites da Facção === +cmd.invites.no_pending = Nenhum convite ou solicitação pendente. +cmd.invites.outgoing = Convites Enviados: +cmd.invites.outgoing_entry = {0} (convidado por {1}) +cmd.invites.requests = Solicitações de Entrada: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Seus Convites === +cmd.invites.no_invites = Você não tem convites pendentes. +cmd.invites.invite_entry = {0} - Use /f accept {1} + +# ========== Comandos - Solicitação ========== +cmd.request.no_permission = Você não tem permissão para solicitar entrada em facções. +cmd.request.already_in_named = Você já está em {0}. +cmd.request.use_leave_hint = Use /f leave primeiro se quiser entrar em outra facção. +cmd.request.usage = Uso: /f request [mensagem] +cmd.request.faction_open = Essa facção está aberta! Use /f accept {0} para entrar diretamente. +cmd.request.already_requested = Você já tem uma solicitação pendente para essa facção. +cmd.request.has_invite = Você foi convidado para essa facção! Use /f accept {0} para entrar. +cmd.request.sent = Solicitação de entrada enviada para {0}! +cmd.request.your_message = Sua mensagem: "{0}" +cmd.request.officer_review = Um oficial irá analisar sua solicitação. +cmd.request.officer_notify = {0} solicitou entrada na sua facção! +cmd.request.officer_review_hint = Use /f gui > Convites para analisar. + +# ========== Comandos - Informações ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Você não tem permissão para ver informações da facção. +cmd.info.faction_not_found = Facção '{0}' não encontrada. +cmd.info.not_in_faction_hint = Você não está em uma facção. Use /f info +cmd.info.leader = Líder: {0} +cmd.info.members = Membros: {0}/{1} +cmd.info.power = Poder: {0} +cmd.info.claims = Reivindicações: {0} +cmd.info.raidable = VULNERÁVEL! +cmd.info.allies = Aliados: {0} +cmd.info.enemies = Inimigos: {0} +cmd.info.they_consider = Eles consideram você: {0} +cmd.info.you_consider = Você os considera: {0} +cmd.info.members_no_permission = Você não tem permissão para ver membros da facção. +cmd.info.members_header = === Membros de {0} ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Você não tem permissão para ver a lista de facções. +cmd.info.list_empty = Não há facções. +cmd.info.list_header = === Facções ({0}) === +cmd.info.list_entry = {0} - {1} membros, {2} poder +cmd.info.list_entry_raidable = {0} - {1} membros, {2} poder [VULNERÁVEL] +cmd.info.help_no_permission = Você não tem permissão para ver a ajuda. +cmd.info.who_no_permission = Você não tem permissão para ver informações do jogador. +cmd.info.who_faction = Facção: {0} +cmd.info.who_role = Cargo: {0} +cmd.info.who_joined = Entrou: {0} +cmd.info.who_faction_none = Facção: Nenhuma +cmd.info.who_power = Poder: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Visto por último: {0} +cmd.info.map_no_permission = Você não tem permissão para ver o mapa. +cmd.info.map_header = === Mapa de Território === +cmd.info.map_legend = Legenda: +Você /Próprio /Aliado /Inimigo -Selvagem +cmd.info.map_gui_hint = Use /f gui para mapa interativo + +# ========== Comandos - Poder ========== +cmd.power.personal = Poder Pessoal: {0}/{1} +cmd.power.faction = Poder da Facção: {0}/{1} +cmd.power.death_loss = Perda por Morte: {0} +cmd.power.regen = Taxa de Regeneração: {0}/hr +cmd.power.no_permission = Você não tem permissão para ver informações de poder. +cmd.power.header = Poder de {0}: +cmd.power.current = Atual: {0} + +# ========== Comandos - Economia ========== +cmd.economy.balance = Saldo: {0} +cmd.economy.deposited = Depositou {0} na tesouraria da facção. +cmd.economy.withdrawn = Sacou {0} da tesouraria da facção. +cmd.economy.transferred = Transferiu {0} para {1}. +cmd.economy.insufficient = Fundos insuficientes na tesouraria da facção. +cmd.economy.invalid_amount = Valor inválido: {0} +cmd.economy.economy_disabled = A economia está desativada. +cmd.economy.balance_no_permission = Você não tem permissão para ver saldos. +cmd.economy.treasury_unavailable = A tesouraria não está disponível. +cmd.economy.balance_display = Tesouraria de {0}: {1} +cmd.economy.deposit_no_permission = Você não tem permissão para depositar. +cmd.economy.deposit_faction_denied = Você não tem permissão da facção para depositar. +cmd.economy.deposit_usage = Uso: /f deposit +cmd.economy.amount_positive = O valor deve ser positivo. +cmd.economy.wallet_insufficient = Você não tem dinheiro suficiente. Carteira: {0} +cmd.economy.wallet_withdraw_failed = Falha ao sacar da sua carteira. +cmd.economy.deposit_failed = Falha ao depositar na tesouraria da facção. Dinheiro devolvido. +cmd.economy.withdraw_no_permission = Você não tem permissão para sacar. +cmd.economy.withdraw_faction_denied = Você não tem permissão da facção para sacar. +cmd.economy.withdraw_usage = Uso: /f withdraw +cmd.economy.withdraw_limit_denied = Saque negado: {0} +cmd.economy.wallet_deposit_failed = Aviso: Falha ao depositar na sua carteira. Contate um admin. +cmd.economy.withdraw_limit_exceeded = Saque negado: limite excedido. +cmd.economy.withdraw_failed = Saque falhou: {0} +cmd.economy.transfer_no_permission = Você não tem permissão para transferir. +cmd.economy.transfer_faction_denied = Você não tem permissão da facção para transferir. +cmd.economy.transfer_usage = Uso: /f money transfer +cmd.economy.transfer_self = Não é possível transferir para sua própria facção. +cmd.economy.transfer_limit_denied = Transferência negada: {0} +cmd.economy.transfer_limit_exceeded = Transferência negada: limite excedido. +cmd.economy.transfer_failed = Transferência falhou: {0} +cmd.economy.log_no_permission = Você não tem permissão para ver o histórico de transações. +cmd.economy.log_header = Histórico de Transações (página {0}/{1}) +cmd.economy.log_empty = Nenhuma transação encontrada. +cmd.economy.money_help_header = Comandos da Tesouraria: +cmd.economy.money_help_balance = /f money balance [facção] - Ver saldo +cmd.economy.money_help_deposit = /f money deposit - Depositar na tesouraria +cmd.economy.money_help_withdraw = /f money withdraw - Sacar da tesouraria +cmd.economy.money_help_transfer = /f money transfer - Transferir entre facções +cmd.economy.money_help_log = /f money log [página] [tipo] - Ver histórico de transações + +# ========== Proteção - Frases de Ação ========== +protection.action.generic = Você não pode fazer isso +protection.action.build = Você não pode construir ou destruir blocos +protection.action.interact = Você não pode interagir com isso +protection.action.door = Você não pode usar portas +protection.action.container = Você não pode abrir contêineres +protection.action.bench = Você não pode usar estações de criação +protection.action.processing = Você não pode usar estações de processamento +protection.action.seat = Você não pode usar assentos +protection.action.light = Você não pode alternar luzes +protection.action.teleporter = Você não pode usar teletransportadores +protection.action.crate = Você não pode usar caixotes +protection.action.tame = Você não pode domesticar criaturas +protection.action.npc = Você não pode interagir com NPCs +protection.action.mount = Você não pode montar criaturas +protection.action.pve = Você não pode causar dano a criaturas +protection.action.item_drop = Você não pode largar itens +protection.action.item_pickup = Você não pode pegar itens + +# ========== Proteção - Motivos de Negação ========== +protection.denied.safezone = {0} em uma SafeZone. +protection.denied.warzone = {0} em uma WarZone. +protection.denied.enemy_claim = {0} em território inimigo. +protection.denied.claimed = {0} em território reivindicado. +protection.denied.here = {0} aqui. +protection.denied.zone = {0} nesta zona. +protection.denied.faction_perm = {0} aqui. (Permissão da facção: {1}) +protection.denied.ally_territory = {0} aqui. (Território aliado) +protection.denied.error = Erro de proteção — ação bloqueada por segurança. + +# ========== Proteção - PvP ========== +protection.pvp.safezone = PvP está desativado em SafeZones. +protection.pvp.same_faction = Você não pode atacar membros da facção. +protection.pvp.ally = Você não pode atacar aliados. +protection.pvp.spawn_protected = Esse jogador tem proteção de spawn. +protection.pvp.territory_disabled = PvP está desativado neste território. +protection.pvp.generic = Você não pode atacar este jogador. + +# ========== Proteção - Dano a Entidades ========== +protection.mob_damage_disabled = Dano de mobs está desativado nesta zona. +protection.pve_damage_disabled = Dano PvE está desativado nesta zona. +protection.pve_territory_denied = Você não pode causar dano a mobs neste território. + +# ========== Proteção - Marca de Combate ========== +protection.combat_tag_command = Você não pode usar esse comando durante combate. + +# ========== Anúncios do Servidor ========== +# Estes são transmitidos para todos os jogadores online em eventos significativos de facção. +# {0}, {1} = valores dinâmicos (nomes de facções, nomes de jogadores) +server_announce.faction_created = {0} fundou a facção {1}! +server_announce.faction_disbanded = A facção {0} foi dissolvida! +server_announce.leadership_transfer = {0} agora é o líder de {1}! +server_announce.overclaim = {0} conquistou território de {1}! +server_announce.war_declared = {0} declarou guerra contra {1}! +server_announce.alliance_formed = {0} e {1} agora são aliados! +server_announce.alliance_broken = {0} e {1} não são mais aliados! + +# ========== Sistema de Teletransporte ========== +teleport.cooldown_wait = Você deve esperar {0} antes de teleportar novamente. +teleport.warmup_start = Teletransportando para a base da facção em {0} segundos... +teleport.combat_cancelled = Teletransporte cancelado - você está em combate! +teleport.success_default = Teleportado para a base da facção! +teleport.no_home = Sua facção não tem uma base definida. +teleport.world_not_found = Mundo não encontrado. +teleport.failed = Teletransporte falhou. +teleport.countdown = Teletransportando em {0} segundos... +teleport.countdown_one = Teletransportando em 1 segundo... +teleport.moved_cancelled = Teletransporte cancelado - você se moveu! +teleport.damage_cancelled = Teletransporte cancelado - você recebeu dano! +teleport.mount_teleport_blocked = Você não pode teleportar para essa zona enquanto montado. +teleport.mount_entry_blocked = Você não pode entrar nesta zona enquanto montado. + +# ========== Exibição do Chat ========== +chat.display.public = Público +chat.display.faction = Facção +chat.display.ally = Aliado diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang new file mode 100644 index 00000000..3188d15f --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Traduções para Português Brasileiro +# Formato: chave = valor +# Nota: As chaves são automaticamente prefixadas com "hyperfactions_admin." pelo I18nModule do Hytale + +# ========== Barra de Navegação Admin ========== +nav.dashboard = Painel +nav.actions = Ações +nav.factions = Facções +nav.players = Jogadores +nav.economy = Economia +nav.zones = Zonas +nav.config = Config +nav.backups = Backups +nav.log = Registro +nav.updates = Atualizações +nav.help = Ajuda +nav.version = Versão + +# ========== Rótulos Comuns Admin ========== +common.faction_not_found = Facção Não Encontrada +common.no_faction = Sem Facção +common.not_set = Não definido +common.on = Ligado +common.off = Desligado +common.enable = Ativar +common.disable = Desativar +common.none_paren = (Nenhum) +common.invalid_faction = Facção inválida. +common.leader_prefix = Líder: {0} +common.members_suffix = {0} membros +common.claims_suffix = {0} reivindicações +common.factions_suffix = {0} facções +common.players_suffix = {0} jogadores +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} entradas +common.found_suffix = {0} encontrados +common.power_format = {0}/{1} poder +common.raidable = Vulnerável +common.protected = Protegida +common.no_description = Sem descrição definida. +common.officers_more = +{0} mais +common.custom_max = (máx personalizado) +common.default_max = (máx padrão) +common.now = Agora +common.ago_suffix = {0} atrás +common.just_now = agora mesmo +common.no_membership_history = Sem histórico de filiação + +# ========== Painel Admin ========== +dashboard.factions_prefix = Facções: {0} +dashboard.members_prefix = Total de Membros: {0} +dashboard.claims_prefix = Total de Reivindicações: {0} + +# ========== Ações Admin ========== +actions.confirm_reset = Confirmar Reset? +actions.confirm_trigger = Confirmar Execução? +actions.kd_reset = K/D resetado para {0} jogadores. +actions.kd_reset_failed = Falha ao resetar K/D: {0} +actions.upkeep_unavailable = O processador de manutenção não está disponível. +actions.upkeep_triggered = Cobrança de manutenção executada. +actions.upkeep_failed = Manutenção falhou: {0} + +# ========== Dissolver Admin ========== +disband.faction_gone = A facção não existe mais. +disband.success = Facção '{0}' foi dissolvida. +disband.failed = Falha ao dissolver: {0} +disband.no_leader = A facção não tem líder, não é possível dissolver. + +# ========== Desreivindicar Tudo Admin ========== +unclaim.removed = [Admin] Removidas {0} reivindicações de {1}. +unclaim.no_claims = {0} não tinha reivindicações para remover. + +# ========== Lista de Facções Admin ========== +factions.home_not_set = Não definida +factions.teleported = Teleportado para a base de {0}. +factions.no_home = A facção não tem base definida. +factions.world_not_found = Mundo alvo não encontrado. + +# ========== Info da Facção Admin ========== +info.faction_gone = Esta facção não existe mais. + +# ========== Membros da Facção Admin ========== +members.sort_role = Cargo +members.sort_online = Online +members.sort_name = Nome +members.sort_power = Poder +members.promoted = [Admin] {0} promovido a {1}. +members.demoted = [Admin] {0} rebaixado a {1}. +members.kicked = [Admin] {0} expulso da facção. + +# ========== Relações da Facção Admin ========== +relations.allies_header = ALIADOS ({0}) +relations.enemies_header = INIMIGOS ({0}) +relations.no_allies = Sem aliados. +relations.no_enemies = Sem inimigos. +relations.neutral_count = {0} facções neutras +relations.since_today = Desde: hoje +relations.since_one_day = Desde: 1 dia atrás +relations.since_days = Desde: {0} dias atrás +relations.set_ally = [Admin] Status de aliança mútua definido com {0}. +relations.set_enemy = Status de inimizade mútua definido com {0}. +relations.set_neutral = [Admin] Status neutro mútuo definido com {0}. + +# ========== Configurações da Facção Admin ========== +settings.locked = Esta configuração está bloqueada pela configuração do servidor. +settings.perm_toggled = {0} definido como {1}. +settings.color_changed = Cor da facção definida como {0}. +settings.recruitment_set = Recrutamento definido como {0}. +settings.no_home = [Admin] Esta facção não tem base definida. +settings.home_cleared = Base da facção removida para {0}. + +# ========== Rótulos do Menu de Ordenação ========== +sort.power = Poder +sort.name = Nome +sort.members = Membros +sort.balance = Saldo + +# ========== Jogadores Admin ========== +players.sort_last_online = Último Online +players.sort_faction = Facção +players.sort_online = Online +players.not_online = O jogador não está online. +players.world_not_found = Mundo alvo não encontrado. +players.teleported = [Admin] Teleportado para {0}. + +# ========== Info do Jogador Admin ========== +playerinfo.disband_faction = Dissolver Facção +playerinfo.kick_leader = Expulsar Líder +playerinfo.enter_valid_number = Insira um número válido. +playerinfo.enter_valid_positive = Insira um número positivo válido. +playerinfo.faction_gone = A facção não existe mais. +playerinfo.kd_reset = K/D resetado para {0}. +playerinfo.kicked_success = {0} expulso de {1}. +playerinfo.kicked_leader = Líder {0} expulso. Liderança transferida para {1}. +playerinfo.disbanded_kick = [Admin] Facção '{0}' dissolvida (último membro expulso). + +# ========== Economia Admin ========== +economy.no_data = Nenhuma facção com dados de economia. +economy.amount_zero = O valor não pode ser zero. +economy.enter_amount = Por favor, insira um valor. +economy.invalid_number = Número inválido: {0} +economy.error = Ocorreu um erro. +economy.balance_negative = O saldo não pode ser negativo. +economy.failed = Falhou: {0} +economy.bulk_complete = Ajuste em massa concluído: {0} {1} para {2} facções. +economy.bulk_failures = ({0} falharam) + +# ========== Zonas Admin ========== +zones.not_found = Zona não encontrada. +zones.invalid_id = ID de zona inválido. +zones.deleted = Zona {0} excluída. +zones.delete_failed = Falha ao excluir zona: {0} +zones.no_chunks = Sem chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Assistente de Criação de Zona ========== +wizard.enter_name = Por favor, insira um nome para a zona. +wizard.name_too_short = O nome da zona deve ter pelo menos {0} caracteres. +wizard.name_too_long = O nome da zona não pode exceder {0} caracteres. +wizard.name_taken = Uma zona com este nome já existe. +wizard.radius_range = O raio deve estar entre 1 e {0}. +wizard.create_failed = Não foi possível criar a zona: {0} +wizard.created_not_found = Zona criada mas não pôde ser encontrada. +wizard.created = {0} '{1}' criada! +wizard.chunk_claimed = Chunk reivindicado ({0}, {1}). +wizard.chunk_failed = Não foi possível reivindicar o chunk atual: {0} +wizard.radius_claimed = {0} chunks reivindicados em um raio de {1} de {2}. +wizard.radius_no_claims = Nenhum chunk pôde ser reivindicado (área pode estar ocupada). +wizard.no_claims = Zona criada sem reivindicações. +wizard.chunks_preview = ~{0} chunks + +# ========== Renomear Zona ========== +zone_rename.zone_gone = A zona não existe mais. +zone_rename.enter_name = Por favor, insira um nome para a zona. +zone_rename.too_short = O nome da zona deve ter pelo menos {0} caractere. +zone_rename.too_long = O nome da zona não pode exceder {0} caracteres. +zone_rename.same_name = Esse já é o nome desta zona. +zone_rename.renamed = [Admin] Zona renomeada de {0} para {1}! +zone_rename.name_taken = Uma zona com esse nome já existe. +zone_rename.invalid_name = Nome de zona inválido. +zone_rename.rename_failed = Falha ao renomear zona: {0} + +# ========== Alterar Tipo de Zona ========== +zone_type.zone_gone = A zona não existe mais. +zone_type.changed = [Admin] {0} alterada de {1} para {2} ({3}). +zone_type.failed = Falha ao alterar tipo da zona: {0} +zone_type.flags_reset = flags resetadas +zone_type.flags_kept = flags mantidas + +# ========== Flags de Integração de Zona ========== +zone_int.zone_not_found = Zona Não Encontrada +zone_int.no_plugin = (sem plugin) +zone_int.default = (padrão) +zone_int.custom = (personalizado) + +# Rótulos de interface das flags de integração +gui.zint_cat_gravestones = Lápides +gui.zint_gravestones_desc = Quando LIGADO, não-donos podem saquear lápides. Donos sempre podem. +gui.zint_cat_world_map = Mapa do Mundo +gui.zint_world_map_desc = Sobrescrever ocultação do mapa para jogadores nesta zona. Quando ativado, selecione quem pode ver jogadores nesta zona. +gui.zint_visibility_label = Nível de Visibilidade: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Restaurar Padrões +gui.zint_back_to_flags = Voltar às Flags +gui.zint_map_vis_faction = Apenas Facção +gui.zint_map_vis_ally = Facção + Aliados +gui.zint_map_vis_all = Todos os Jogadores + +# ========== Registro de Atividades ========== +log.all_types = Todos os Tipos +log.no_logs = Nenhum registro de atividade corresponde aos filtros. + +# ========== Página de Versão ========== +version.active = Ativo +version.not_found = Não Encontrado +version.not_detected = Não Detectado +version.not_installed = Não Instalado +version.active_version = Ativo (v{0}) +version.active_compatible = Ativo (compatível) +version.active_claims_only = Ativo (apenas reivindicações) +version.installed_no_perm = Instalado (sem provedor de permissão) +version.active_provider = Ativo ({0}) + +# ========== Página Principal Admin ========== +main.reload_hint = Use /f reload para recarregar a configuração. +main.unclaim_hint = Use /f admin unclaim {0} para desreivindicar todos os {1} chunks. + +# ========== Flags/Configurações de Zona ========== +zflags.invalid_flag = Flag inválida. +zflags.zone_not_found = Zona não encontrada. +zflags.conflict = (conflito) +zflags.mixin = (mixin) +zflags.reset_int = Restaurar flags de integração para os padrões. +zflags.reset_all = Restaurar todas as flags para os padrões. +zflags.reset_failed = Falha ao restaurar flags: {0} +zflags.back_to_settings = Voltar às Configurações + +# Rótulos de interface das configurações de zona +gui.zset_cat_combat = Combate +gui.zset_cat_damage = Dano +gui.zset_cat_death = Morte +gui.zset_cat_building = Construção +gui.zset_cat_interaction = Interação +gui.zset_cat_transport = Transporte +gui.zset_cat_items = Itens +gui.zset_cat_spawning = Geração de Mobs +gui.zset_cat_mob_clear = Limpeza de Mobs +gui.zset_children_hint = (filhos só se aplicam quando o pai está LIGADO) +gui.zset_reset_defaults = Restaurar Padrões +gui.zset_integration_flags = Flags de Integração +gui.zset_back_to_zones = Voltar às Zonas +gui.zset_chunks = {0} chunks + +# Nomes de Exibição das Flags de Zona +gui.zflag_pvp_enabled = PvP Ativado +gui.zflag_friendly_fire = Fogo Amigo +gui.zflag_friendly_fire_faction = Dano de Facção +gui.zflag_friendly_fire_ally = Dano de Aliado +gui.zflag_projectile_damage = Dano de Projétil +gui.zflag_mob_damage = Receber Dano de Mob +gui.zflag_pve_damage = Causar Dano a Mob +gui.zflag_fall_damage = Dano de Queda +gui.zflag_environmental_damage = Dano Amb. +gui.zflag_explosion_damage = Dano de Explosão +gui.zflag_fire_spread = Propagação de Fogo +gui.zflag_keep_inventory = Manter Inventário +gui.zflag_power_loss = Perda de Poder +gui.zflag_build_allowed = Construção Permitida +gui.zflag_block_place = Colocação de Blocos +gui.zflag_hammer_use = Uso de Martelo +gui.zflag_builder_tools_use = Ferramentas de Construção +gui.zflag_block_interact = Interação com Blocos +gui.zflag_door_use = Uso de Portas +gui.zflag_container_use = Uso de Contêineres +gui.zflag_bench_use = Uso de Bancadas +gui.zflag_processing_use = Uso de Processamento +gui.zflag_seat_use = Uso de Assentos +gui.zflag_mount_use = Uso de Montarias +gui.zflag_light_use = Uso de Luzes +gui.zflag_npc_use = Interação com NPCs +gui.zflag_crate_pickup = Pegar Caixote +gui.zflag_crate_place = Colocar Caixote +gui.zflag_npc_tame = Domesticar NPC +gui.zflag_npc_interact = Interagir com NPC +gui.zflag_teleporter_use = Uso de Teletransportador +gui.zflag_portal_use = Uso de Portal +gui.zflag_mount_entry = Entrada de Montaria +gui.zflag_item_drop = Largar Item +gui.zflag_item_pickup = Coleta Automática +gui.zflag_item_pickup_manual = Coleta por Tecla F +gui.zflag_invincible_items = Itens Invencíveis +gui.zflag_mob_spawning = Geração de Mobs +gui.zflag_hostile_mob_spawning = Mobs Hostis +gui.zflag_passive_mob_spawning = Mobs Passivos +gui.zflag_neutral_mob_spawning = Mobs Neutros +gui.zflag_npc_spawning = Geração de NPCs +gui.zflag_mob_clear = Limpeza de Mobs +gui.zflag_hostile_mob_clear = Limpar Mobs Hostis +gui.zflag_passive_mob_clear = Limpar Mobs Passivos +gui.zflag_neutral_mob_clear = Limpar Mobs Neutros +gui.zflag_gravestone_access = Outros Saqueiam Lápides +gui.zflag_show_on_map = Mostrar no Mapa +gui.zflag_essentials_homes = Uso de Base +gui.zflag_essentials_warps = Uso de Warp +gui.zflag_essentials_kits = Resgatar Kit + +# ========== Propriedades da Zona ========== +zprop.current_custom = Atual: "{0}" (personalizado) +zprop.current_default = Atual: "{0}" (padrão) +zprop.pvp_disabled = PvP Desativado +zprop.pvp_enabled = PvP Ativado +zprop.name_empty = O nome não pode estar vazio. +zprop.renamed = Zona renomeada para "{0}". +zprop.name_taken = Uma zona com esse nome já existe. +zprop.name_invalid = Nome inválido (máx 32 caracteres). +zprop.rename_failed = Falha ao renomear: {0} +zprop.upper_empty = O título superior não pode estar vazio. Use Limpar para restaurar. +zprop.upper_set = Título superior definido. +zprop.upper_reset = Título superior restaurado ao padrão. +zprop.lower_empty = O título inferior não pode estar vazio. Use Limpar para restaurar. +zprop.lower_set = Título inferior definido. +zprop.lower_reset = Título inferior restaurado ao padrão. + +# ========== Relações Adicional ========== +relations.failed = Falhou: {0} + +# ========== Membros Adicional ========== +members.never = Nunca +members.teleported = [Admin] Teleportado para {0}. + +# ========== Info do Jogador Adicional ========== +playerinfo.records = {0} registros +playerinfo.joined_date = Entrou: {0} +playerinfo.current = Atual +playerinfo.left_date = Saiu: {0} + +# ========== Mapa da Zona ========== +map.world_warning = AVISO: Você está em '{0}' - a zona está em '{1}' +map.position = Sua Posição: Chunk ({0}, {1}) +map.zone_gone = A zona não existe mais. +map.claimed = Chunk reivindicado ({0}, {1}) para {2}. +map.claim_failed = Falha ao reivindicar chunk: {0} +map.unclaimed = Chunk desreivindicado ({0}, {1}) de {2}. +map.unclaim_failed = Falha ao desreivindicar chunk: {0} +map.chunk_belongs = Este chunk pertence a {0}. +map.chunk_faction = Este chunk está reivindicado por uma facção. +map.chunk_protected = Este chunk está em uma região protegida. +map.another_zone = outra zona + +# ========== Chaves de Rótulos da Interface (para localização de texto fixo em .ui) ========== + +# Títulos de Páginas +gui.title_dashboard = Painel Admin +gui.title_main = Admin de Facções +gui.title_actions = Admin: Ações do Servidor +gui.title_factions = Gerenciamento de Facções +gui.title_players = Gerenciamento de Jogadores +gui.title_economy = Admin: Economia do Servidor +gui.title_zones = Gerenciamento de Zonas +gui.title_backups = Backups +gui.title_config = Configuração +gui.title_help = Ajuda Admin +gui.title_updates = Atualizações +gui.title_version = Versão e Integrações +gui.title_activity_log = Admin: Registro de Atividades +gui.title_player_info = Admin: Info do Jogador +gui.title_faction_info = Admin: Info da Facção +gui.title_faction_settings = Admin: Config da Facção +gui.title_faction_members = Admin: Membros +gui.title_faction_relations = Admin: Relações +gui.title_zone_map = Editor de Mapa de Zona +gui.title_zone_settings = Admin: Config da Zona +gui.title_zone_properties = Admin: Propriedades da Zona +gui.title_bulk_economy = Ajuste em Massa da Tesouraria +gui.title_economy_adjust = Admin: Economia + +# Rótulos do painel +gui.dash_server_stats = Estatísticas do Servidor +gui.dash_factions = Facções +gui.dash_total_members = Total de Membros +gui.dash_total_claims = Total de Reivindicações +gui.dash_zones = Zonas +gui.dash_safe_war = segura / guerra +gui.dash_total_power = Poder Total +gui.dash_avg_power = Poder Médio/Facção +gui.dash_total_economy = Economia Total +gui.dash_wealthiest = Mais Rica +gui.dash_avg_balance = Saldo Médio +gui.dash_protection_bypass = Ignorar Proteção: + +# Botões e rótulos comuns +gui.search = Buscar: +gui.sort = Ordenar: +gui.prev = < Anterior +gui.next = Próximo > +gui.back = Voltar +gui.done = Concluído +gui.cancel = Cancelar +gui.apply = Aplicar +gui.set = Definir +gui.reset = Resetar +gui.coming_soon = Em Breve +gui.zones_btn = Zonas +gui.reload_btn = Recarregar +gui.all = Todos +gui.safe = Segura +gui.war = Guerra +gui.create_zone = + Criar + +# Rótulos da página de ações +gui.act_combat_stats = Estatísticas de Combate +gui.act_combat_desc = Resetar abates e mortes de TODOS os jogadores no servidor. Esta ação não pode ser desfeita. +gui.act_reset_kd = Resetar Todos os K/D +gui.act_economy = Economia +gui.act_economy_desc = Adicionar ou remover dinheiro de TODAS as tesourarias de facção de uma vez. +gui.act_bulk_adjust = Ajuste em Massa +gui.act_upkeep_collection = Cobrança de Manutenção +gui.act_upkeep_desc = Executar manualmente a cobrança de manutenção para todas as facções agora, independente do temporizador agendado. +gui.act_trigger_upkeep = Executar Manutenção + +# Rótulos de páginas de marcação +gui.backup_heading = Gerenciamento de Backups +gui.backup_desc1 = Criar, restaurar e gerenciar backups de dados de facção. +gui.backup_desc2 = Backups automáticos são salvos na pasta data/backups. +gui.config_heading = Editor de Configuração +gui.config_desc1 = Configurar o HyperFactions diretamente pela interface. +gui.config_desc2 = Por enquanto, use /f reload para recarregar alterações de configuração. +gui.help_heading = Documentação Admin +gui.help_desc1 = Ver documentação admin e referência de comandos. +gui.help_desc2 = Para ajuda, visite a wiki do HyperFactions. +gui.updates_heading = Central de Atualizações +gui.updates_desc1 = Verificar novas versões e ver changelogs. +gui.updates_desc2 = Visite a página do HyperFactions para as últimas atualizações. + +# Rótulos da página de versão +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = PERMISSÕES +gui.ver_placeholders = PLACEHOLDERS +gui.ver_economy_section = ECONOMIA +gui.ver_protection = PROTEÇÃO +gui.ver_disabled = Desativado + +# Cabeçalhos de colunas (compartilhados entre páginas) +gui.col_faction = Facção +gui.col_balance = Saldo +gui.col_members = Membros +gui.col_actions = Ações +gui.col_time = Hora +gui.col_type = Tipo +gui.col_message = Mensagem + +# Rótulos da página de economia +gui.econ_total_balance = Saldo Total +gui.econ_factions = Facções +gui.econ_avg_balance = Saldo Médio +gui.econ_in_grace = Em Carência +gui.econ_collected = Coletado (24h) +gui.econ_next_collection = Próxima Cobrança +gui.econ_no_data = Nenhuma facção com dados de economia. + +# Rótulos do registro de atividades +gui.log_type = Tipo: +gui.log_time = Hora: +gui.log_player = Jogador: +gui.log_no_logs = Nenhum registro de atividade corresponde aos filtros. + +# Rótulos de info do jogador +gui.plr_first_joined = Primeiro acesso: +gui.plr_last_online = Último online: +gui.plr_uuid = UUID: +gui.plr_faction = Facção: +gui.plr_role = Cargo: +gui.plr_view_faction = Ver Facção +gui.plr_power = Poder +gui.plr_max_power = Poder Máximo +gui.plr_set_power = Definir +gui.plr_reset_power = Resetar +gui.plr_set_max = Definir +gui.plr_reset_max = Resetar +gui.plr_no_power_loss = Sem Perda de Poder +gui.plr_no_claim_decay = Sem Decaimento de Reivindicação +gui.plr_kills = Abates +gui.plr_deaths = Mortes +gui.plr_kdr = Razão K/D +gui.plr_reset_kd = Resetar K/D +gui.plr_kick = Expulsar +gui.plr_membership_history = Histórico de Filiação +gui.plr_no_faction_label = Não está em uma facção +gui.plr_power_management = Gerenciamento de Poder +gui.plr_combat_stats = Estatísticas de Combate +gui.plr_bypass_flags = Flags de Bypass +gui.plr_admin_controls = Controles Admin +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Máx: +gui.plr_view = Ver +gui.plr_kick_from_faction = Expulsar da Facção +gui.plr_set_max_btn = Definir Máx +gui.plr_combat = Combate +gui.plr_reason_active = ATIVO +gui.plr_reason_left = SAIU +gui.plr_reason_kicked = EXPULSO +gui.plr_reason_disbanded = DISSOLVIDA + +# Rótulos de entrada de membro +gui.mem_label_power = Poder: +gui.mem_label_joined = Entrou: +gui.mem_label_last_death = Última Morte: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teleportar +gui.mem_btn_promote = Promover +gui.mem_btn_demote = Rebaixar +gui.mem_btn_kick = Expulsar +gui.econ_not_enabled = O sistema de economia não está ativado. +gui.info_more = +{0} mais +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7d +gui.log_time_all = Todos +gui.shape_circular = circular +gui.shape_square = quadrado +gui.nav_title = Painel Admin +gui.econ_btn_adjust = Ajustar +gui.econ_btn_info = Info + +# Rótulos de info da facção +gui.fac_description = Descrição +gui.fac_power = Poder +gui.fac_claims = Reivindicações +gui.fac_members = Membros +gui.fac_recruitment = Recrutamento +gui.fac_founded = Fundada +gui.fac_allies = Aliados +gui.fac_enemies = Inimigos +gui.fac_raidable = Status de Vulnerabilidade +gui.fac_treasury = Tesouraria +gui.fac_leader = Líder +gui.fac_officers = Oficiais +gui.fac_view_members = Ver Membros +gui.fac_view_relations = Ver Relações +gui.fac_view_settings = Configurações +gui.fac_disband = Dissolver Facção +gui.fac_power_management = Gerenciamento de Poder +gui.fac_reset_all_power = Resetar Todo o Poder +gui.fac_econ_adjust = Ajustar Saldo +gui.fac_econ_view_log = Ver Histórico de Transações +gui.fac_current_max = atual / máx +gui.fac_claimed_max = reivindicado / máx +gui.fac_relations = Relações +gui.fac_ally_enemy = aliado / inimigo +gui.fac_status = Status +gui.fac_info = Info +gui.fac_treasury_balance = saldo da tesouraria +gui.fac_leadership = Liderança +gui.fac_leader_label = Líder: +gui.fac_officers_label = Oficiais: +gui.fac_econ_mgmt = Gerenciamento Econômico +gui.fac_danger_zone = Zona de Perigo +gui.fac_view_treasury = Ver Tesouraria + +# Rótulos de configurações da facção +gui.set_editing = Editando: +gui.set_general = Configurações Gerais +gui.set_name = Nome +gui.set_tag = Tag +gui.set_description = Descrição +gui.set_recruitment = Recrutamento +gui.set_home = Localização da Base +gui.set_clear_home = Limpar Base +gui.set_disband_faction = Dissolver Facção +gui.set_faction_color = Cor da Facção +gui.set_admin_override = [Admin Override] +gui.set_territory_perms = Permissões de Território +gui.set_mob_spawning = Geração de Mobs +gui.set_faction_settings = Configurações da Facção +gui.set_name_label = Nome: +gui.set_tag_label = Tag: +gui.set_desc_label = Desc: +gui.set_edit = Editar +gui.set_status_label = Status: +gui.set_location_label = Localização: +gui.set_danger_zone = Zona de Perigo +gui.set_irreversible = Esta ação é irreversível. +gui.set_lock_hint = Algumas opções podem estar bloqueadas pelo servidor e não aceitarão alterações. +gui.set_appearance = Aparência +gui.set_color_label = Cor: +gui.set_mob_sub = (filhos desativados quando o principal está desligado) +gui.set_back_to_info = Voltar à Info +gui.set_col_out = Ext +gui.set_col_ally = Ali +gui.set_col_mem = Mem +gui.set_col_off = Ofi +gui.set_cat_building = CONSTRUÇÃO +gui.set_cat_interaction = INTERAÇÃO +gui.set_cat_interact_sub = (filhos desativados quando Todos está desligado) +gui.set_cat_other = OUTROS +gui.set_perm_break = Destruir +gui.set_perm_place = Colocar +gui.set_perm_all = Todos +gui.set_perm_door = Porta +gui.set_perm_chest = Baú +gui.set_perm_bench = Bancada +gui.set_perm_processing = Processamento +gui.set_perm_seat = Assento +gui.set_perm_transport = Transporte +gui.set_perm_crate_use = Uso de Caixote +gui.set_perm_npc_tame = Domesticar NPC +gui.set_perm_pve_damage = Dano PvE +gui.set_perm_mob_spawning = Geração de Mobs +gui.set_perm_hostile = Mobs Hostis +gui.set_perm_passive = Mobs Passivos +gui.set_perm_neutral = Mobs Neutros +gui.set_perm_pvp = PvP no Território +gui.set_perm_officers_edit = Oficiais podem editar + +# Rótulos de relações da facção +gui.rel_subtitle = Gerenciar relações da facção (ignora aprovação) +gui.rel_set_new = Definir Nova Relação +gui.rel_btn_ally = Aliado +gui.rel_btn_neutral = Neutro +gui.rel_btn_enemy = Inimigo + +# Rótulos da página de zonas +gui.zone_sort_name = Nome +gui.zone_sort_type = Tipo +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = Mundo +gui.zone_count_format = {0} {1}zonas ({2} chunks) + +# Rótulos do mapa de zona +gui.map_zone_chunk = Chunk da Zona +gui.map_empty = Vazio +gui.map_other_zone = Outra Zona +gui.map_faction_claim = Reivindicação de Facção +gui.map_protected = Protegido +gui.map_your_pos = Sua Posição +gui.map_click_hint = Clique para reivindicar/desreivindicar chunks +gui.map_legend_zone_safe = Esta Zona (Segura) +gui.map_legend_zone_war = Esta Zona (Guerra) +gui.map_legend_other_safe = Outra SafeZone +gui.map_legend_other_war = Outra WarZone +gui.map_legend_faction = Reivindicação de Facção +gui.map_legend_unclaimed = Não Reivindicado +gui.map_legend_you_here = Você está aqui +gui.map_action_hint = Clique esquerdo: Reivindicar para zona | Clique direito: Desreivindicar da zona +gui.map_done = Concluído + +# Rótulos de propriedades da zona +gui.zprop_general = Geral +gui.zprop_zone_name = Nome da Zona +gui.zprop_zone_type = Tipo da Zona +gui.zprop_change_type = Alterar Tipo +gui.zprop_notifications = Notificações +gui.zprop_show_entry = Mostrar Notificação de Entrada +gui.zprop_upper_title = Título Superior +gui.zprop_upper_desc = Título Superior (texto pequeno acima do nome da zona) +gui.zprop_lower_title = Título Inferior +gui.zprop_lower_desc = Título Inferior (texto grande do nome da zona) +gui.zprop_edit_flags = Editar Flags +gui.zprop_back_to_zones = Voltar às Zonas +gui.save = Salvar +gui.clear = Limpar + +# Rótulos de economia em massa +gui.bulk_header = Ajustar Todas as Tesourarias de Facção +gui.bulk_factions_label = Facções: +gui.bulk_total_label = Saldo Total: +gui.bulk_amount_hint = Valor (positivo para adicionar, negativo para remover): +gui.bulk_hint = Isso será aplicado a cada facção com tesouraria +gui.bulk_warning_msg = Aviso: Esta ação afeta TODAS as facções e não pode ser desfeita. +gui.bulk_apply_all = Aplicar a Todas +gui.bulk_operation = Operação +gui.bulk_add = Adicionar +gui.bulk_remove = Remover +gui.bulk_amount = Valor +gui.bulk_warning = Isso afetará TODAS as tesourarias de facção. +gui.bulk_preview = Prévia + +# Rótulos de ajuste econômico +gui.ecadj_header = Ajustar Saldo da Tesouraria +gui.ecadj_faction_label = Facção: +gui.ecadj_current_balance = Saldo Atual: +gui.ecadj_amount_hint = Valor (positivo para adicionar, negativo para deduzir): +gui.ecadj_preview_hint = Insira um número para ver a prévia da alteração +gui.ecadj_adjustment = Ajuste: +gui.ecadj_set_balance = Definir Saldo +gui.ecadj_confirm = Confirmar +/- +gui.ecadj_operation = Operação +gui.ecadj_add = Adicionar +gui.ecadj_remove = Remover +gui.ecadj_set_to = Definir Como +gui.ecadj_amount = Valor +gui.ecadj_new_balance = Novo Saldo: + +# Rótulos de integração da página de versão +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Nativo +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Lápides +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Tesouraria + +# Rótulos do modal de desreivindicar tudo +gui.unclaim_title = Desreivindicar Todo o Território +gui.unclaim_confirm_msg1 = Tem certeza de que deseja desreivindicar todo +gui.unclaim_confirm_msg2 = de +gui.unclaim_warning = Esta ação não pode ser desfeita! +gui.unclaim_all = Desreivindicar Tudo + +# Rótulos do modal de renomear zona +gui.zren_title = Renomear Zona +gui.zren_current = Atual: +gui.zren_new_name = Novo Nome: + +# Rótulos do modal de alterar tipo de zona +gui.ztype_title = Alterar Tipo de Zona +gui.ztype_zone_label = Zona: +gui.ztype_current = Atual: +gui.ztype_will_become = se tornará +gui.ztype_new = Novo: +gui.ztype_warning1 = Diferentes tipos de zona têm diferentes valores padrão de flags. +gui.ztype_warning2 = Escolha como lidar com as configurações de flags existentes: +gui.ztype_keep_desc = Manter personalizações +gui.ztype_keep_flags = Manter Flags +gui.ztype_reset_desc = Usar padrões do novo tipo +gui.ztype_reset_flags = Resetar Flags + +# Rótulos do assistente de criação de zona +gui.czw_title = Criar Zona +gui.czw_back = < Voltar +gui.czw_create = Criar Zona +gui.czw_zone_type = Tipo de Zona +gui.czw_safe_desc = Protegida, sem PvP +gui.czw_war_desc = Combate, PvP ativado +gui.czw_zone_name = Nome da Zona +gui.czw_name_desc = Insira um nome único para a zona +gui.czw_claim_method = Método de Reivindicação +gui.czw_method_none_desc = Criar zona vazia +gui.czw_method_none = Sem reivindicações +gui.czw_method_single_desc = Seu chunk atual +gui.czw_method_single = Chunk único +gui.czw_method_circle_desc = Área circular +gui.czw_method_circle = Raio circular +gui.czw_method_square_desc = Área quadrada +gui.czw_method_square = Raio quadrado +gui.czw_method_map_desc = Editor interativo de chunks +gui.czw_method_map = Usar mapa de reivindicação +gui.czw_radius = Raio +gui.czw_custom_radius = Personalizado (1-50): +gui.czw_flags = Flags +gui.czw_flags_defaults_desc = Baseado no tipo de zona +gui.czw_flags_defaults = Usar padrões +gui.czw_flags_customize_desc = Abrir configurações depois +gui.czw_flags_customize = Personalizar + +# ========== Rótulos de Entrada (Entradas de lista de Facção/Jogador/Zona) ========== + +# Rótulos de entrada de facção +gui.fac_entry_power = poder +gui.fac_entry_claims = reivindicações +gui.fac_entry_members = membros +gui.fac_entry_created = Criada: +gui.fac_entry_home = Base: +gui.fac_entry_tp_home = TP Base +gui.fac_entry_view_info = Ver Info +gui.fac_entry_members_btn = Membros +gui.fac_entry_settings = Configurações +gui.fac_entry_unclaim_all = Desreivindicar Tudo +gui.fac_entry_disband = Dissolver + +# Rótulos de entrada de jogador +gui.plr_entry_role = Cargo: +gui.plr_entry_joined = Entrou: +gui.plr_entry_last_online = Último Online: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Poder: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teleportar +gui.plr_entry_na = N/D +gui.plr_entry_unknown = Desconhecido +gui.plr_entry_ago = {0} atrás + +# Rótulos de entrada de zona +gui.zone_entry_world = Mundo: +gui.zone_entry_chunks = Chunks: +gui.zone_entry_bounds = Limites: +gui.zone_entry_created = Criada: +gui.zone_entry_edit_map = Editar Mapa +gui.zone_entry_flags = Flags +gui.zone_entry_settings = Configurações +gui.zone_entry_delete = Excluir diff --git a/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang new file mode 100644 index 00000000..310ab4dd --- /dev/null +++ b/src/main/resources/Server/Languages/pt-BR/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Traduções para Português Brasileiro +# Formato: chave = valor +# Nota: As chaves são automaticamente prefixadas com "hyperfactions_gui." pelo I18nModule do Hytale + +# ========== Barra de Navegação ========== +nav.dashboard = Painel +nav.chat = Chat +nav.members = Membros +nav.invites = Convites +nav.browser = Explorar +nav.map = Mapa +nav.leaderboard = Ranking +nav.relations = Relações +nav.treasury = Tesouraria +nav.settings = Configurações +nav.logs = Registros +nav.help = Ajuda +nav.admin = Admin +nav.create = Criar + +# ========== Nomes de Categorias de Ajuda ========== +help.category.welcome = Bem-vindo +help.category.your_faction = Sua Facção +help.category.power_land = Poder e Território +help.category.diplomacy = Diplomacia +help.category.combat = Combate e Segurança +help.category.economy = Economia +help.category.quick_ref = Referência Rápida + +# ========== Nomes de Categorias de Ajuda Admin ========== +help.category.admin_overview = Visão Geral +help.category.admin_factions = Facções +help.category.admin_zones = Zonas +help.category.admin_power = Poder +help.category.admin_economy = Economia +help.category.admin_config = Configuração +help.category.admin_maintenance = Manutenção +help.category.admin_reference = Referência + +# ========== Menu Principal ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Minha Facção +main_menu.section_get_started = Começar +main_menu.section_territory = Território +main_menu.section_browse = Explorar +main_menu.section_admin = Admin +main_menu.claim_hint = Use /f claim para reivindicar território. + +# ========== Página de Informações da Facção ========== +faction_info.title = Info da Facção +faction_info.no_description = Sem descrição definida. +faction_info.status_open = Aberta +faction_info.status_invite_only = Apenas Convite +faction_info.status_raidable = Vulnerável +faction_info.status_protected = Protegida +faction_info.officers_more = +{0} mais +faction_info.power_header = Poder +faction_info.claims_header = Reivindicações +faction_info.members_header = Membros +faction_info.relations_header = Relações +faction_info.status_header = Status +faction_info.treasury_header = Tesouraria +faction_info.current_max = atual / máx +faction_info.claimed_max = reivindicado / máx +faction_info.ally_enemy = aliado / inimigo +faction_info.faction_balance = saldo da facção +faction_info.leader_label = Líder: +faction_info.officers_label = Oficiais: +faction_info.view_members_btn = Ver Membros +faction_info.relations_btn = Relações +faction_info.back_btn = Voltar + +# ========== Modal de Renomear ========== +rename.title = Renomear Facção +rename.current_label = Atual: +rename.new_name_label = Novo Nome: +rename.no_permission = Você não tem permissão para renomear a facção. +rename.enter_name = Por favor, insira um nome para a facção. +rename.too_short = O nome da facção deve ter pelo menos {0} caracteres. +rename.too_long = O nome da facção não pode exceder {0} caracteres. +rename.same_name = Esse já é o nome da sua facção. +rename.name_taken = Uma facção com esse nome já existe. +rename.success = Facção renomeada de {0} para {1}! + +# ========== Modal de Descrição ========== +desc.title = Editar Descrição +desc.current_label = Atual: +desc.new_desc_label = Nova Descrição: +desc.no_permission = Você não tem permissão para editar a descrição. +desc.display_none = (Nenhuma) +desc.cleared = Descrição da facção removida. +desc.updated = Descrição da facção atualizada! + +# ========== Modal de Tag ========== +tag.title = Editar Tag +tag.current_label = Atual: +tag.instructions = Tag (1-5 caracteres, apenas letras e números): +tag.help_text = Tags aparecem no chat e no mapa +tag.no_permission = Você não tem permissão para editar a tag. +tag.display_none = (Nenhuma) +tag.cleared = Tag da facção removida. +tag.too_short = A tag deve ter pelo menos {0} caractere. +tag.too_long = A tag não pode exceder {0} caracteres. +tag.invalid_format = A tag só pode conter letras e números. +tag.same_tag = Essa já é a tag da sua facção. +tag.tag_taken = Uma facção com essa tag já existe. +tag.success = Tag da facção definida como [{0}]! + +# ========== Página do Painel ========== +dashboard.title = Painel da Facção +dashboard.power_label = Poder +dashboard.land_label = Reivindicações +dashboard.members_label = Membros +dashboard.online_label = Online +dashboard.allies_label = Aliados +dashboard.enemies_label = Inimigos +dashboard.relations_label = Relações +dashboard.ally_enemy_label = aliado / inimigo +dashboard.status_label = Status +dashboard.invites_label = Convites +dashboard.sent_requests_label = enviados / solicitações +dashboard.treasury_label = Tesouraria +dashboard.upkeep_label = Manutenção +dashboard.per_cycle = por ciclo +dashboard.your_wallet = Sua Carteira +dashboard.personal_balance = saldo pessoal +dashboard.quick_actions = Ações Rápidas +dashboard.teleport_label = Teleportar +dashboard.territory_label = Território +dashboard.channel_label = Canal +dashboard.membership_label = Filiação +dashboard.recent_activity = Atividade Recente +dashboard.view_all = Ver Tudo +dashboard.income_24h = Receita (24h) +dashboard.deposits_transfers_in = depósitos, transferências recebidas +dashboard.expenses_24h = Despesas (24h) +dashboard.withdrawals_transfers_out = saques, transferências enviadas +dashboard.faction_gone = Sua facção não existe mais. +dashboard.available = {0} disponíveis +dashboard.at_risk = Em Risco! +dashboard.online_count = {0} online +dashboard.status_invite = Convite +dashboard.in_grace = EM CARÊNCIA +dashboard.billable_chunks = {0} chunks cobráveis +dashboard.btn_home = Base +dashboard.btn_set_home = Definir Base +dashboard.btn_claim = Reivindicar +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Sair +dashboard.no_activity = Nenhuma atividade recente. +dashboard.time_now = agora +dashboard.time_minutes = {0}m atrás +dashboard.time_hours = {0}h atrás +dashboard.time_days = {0}d atrás +dashboard.no_home_hint = Sua facção não tem base definida. Peça a um oficial para definir uma. +dashboard.chat_mode_set = Modo de chat: {0} +dashboard.claim_success = Chunk reivindicado em ({0}, {1}) +dashboard.upkeep_in = em {0} + +# ========== Página Principal da Facção ========== +main.no_faction = Sem Facção +main.joined = Você entrou na facção! +main.join_failed = Falha ao entrar na facção: {0} +main.invite_declined = Convite recusado. +main.cooldown = Teleporte em recarga! {0}s restantes. +main.world_not_found = Não foi possível teleportar - mundo não encontrado. +main.leave_failed = Falha ao sair: {0} + +# ========== Rótulos Compartilhados da Interface ========== +common.faction_count = {0} facções +common.leader_label = Líder: {0} +common.sort_power = Poder +common.sort_members = Membros +common.page_format = {0}/{1} +common.own_faction = (Você) +common.search = Buscar: +common.sort = Ordenar: +common.prev = < Anterior +common.next = Próximo > +common.treasury_not_available = A tesouraria não está disponível. + +# ========== Página de Membros ========== +members.title = Membros +members.search_label = Buscar: +members.sort_label = Ordenar: +members.prev_btn = < Anterior +members.next_btn = Próximo > +members.count = {0} membros +members.sort_role = Cargo +members.sort_last_online = Último Online +members.just_now = agora mesmo +members.ago = {0} atrás +members.never = Nunca +members.member_not_found = Membro não encontrado. +members.promoted = {0} promovido a {1}. +members.promote_failed = Falha ao promover: {0} +members.demoted = {0} rebaixado a {1}. +members.demote_failed = Falha ao rebaixar: {0} +members.kicked = {0} expulso da facção. +members.kick_failed = Falha ao expulsar: {0} +members.label_power = Poder: +members.label_joined = Entrou: +members.label_last_death = Última Morte: +members.btn_promote = Promover +members.btn_demote = Rebaixar +members.btn_kick = Expulsar +members.btn_make_leader = Tornar Líder +members.btn_profile = Perfil +members.self_label = (Você) + +# ========== Página de Exploração ========== +browser.title = Explorar Facções +browser.search_label = Buscar: +browser.sort_label = Ordenar: +browser.prev_btn = < Anterior +browser.next_btn = Próximo > +browser.sort_name = Nome +browser.invalid_faction = Facção inválida. +browser.label_power = poder +browser.label_claims = reivindicações +browser.label_members = membros +browser.label_recruitment = Recrutamento: +browser.label_created = Criada: +browser.label_description = Descrição: +browser.view_info_btn = Ver Info +browser.label_leader = Líder: +browser.no_description = Sem descrição definida + +# ========== Página do Ranking ========== +leaderboard.title = Ranking de Facções +leaderboard.rank_by = Classificar por: +leaderboard.col_rank = # +leaderboard.col_faction = Facção +leaderboard.col_claims = Reivindicações +leaderboard.col_members = Membros +leaderboard.prev_btn = < Anterior +leaderboard.next_btn = Próximo > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Território +leaderboard.sort_balance = Saldo + +# ========== Página de Info do Jogador ========== +playerinfo.title = Info do Jogador +playerinfo.first_joined_label = Primeiro acesso: +playerinfo.last_online_label = Último online: +playerinfo.faction_label = Facção: +playerinfo.role_label = Cargo: +playerinfo.joined_label_static = Entrou: +playerinfo.not_in_faction = Não está em uma facção +playerinfo.power_header = Poder +playerinfo.current_max = atual / máx +playerinfo.combat_header = Combate +playerinfo.kills_deaths = abates / mortes +playerinfo.kdr_header = Razão K/D +playerinfo.membership_history = Histórico de Filiação +playerinfo.view_faction_btn = Ver Facção +playerinfo.back_btn = Voltar +playerinfo.now = Agora +playerinfo.history_count = {0} registros +playerinfo.joined_label = Entrou: {0} +playerinfo.current = Atual +playerinfo.left_label = Saiu: {0} +playerinfo.no_history = Sem histórico de filiação +playerinfo.faction_gone = A facção não existe mais. +playerinfo.reason_active = ATIVO +playerinfo.reason_left = SAIU +playerinfo.reason_kicked = EXPULSO +playerinfo.reason_disbanded = DISSOLVIDA + +# ========== Página de Relações ========== +relations.title = Relações +relations.tab_relations = Relações +relations.tab_pending = Pendentes +relations.set_relation_btn = + Definir Relação +relations.prev_btn = < Anterior +relations.next_btn = Próximo > +relations.relation_count = {0} relações +relations.request_count = {0} solicitações +relations.type_ally = Aliado +relations.type_enemy = Inimigo +relations.type_incoming = Recebida +relations.type_outgoing = Enviada +relations.incoming_request = Solicitação recebida +relations.outgoing_request = Solicitação enviada +relations.empty_relations = Sem relações ainda. +relations.empty_relations_hint = Sem relações ainda. Clique em + DEFINIR RELAÇÃO para adicionar aliados ou inimigos. +relations.empty_pending = Nenhuma solicitação de aliança pendente. +relations.today = Hoje +relations.one_day_ago = 1 dia atrás +relations.days_ago = {0} dias atrás +relations.now_neutral = Agora neutro com {0}. +relations.now_enemies = Agora inimigos de {0}! +relations.request_sent = Solicitação de aliança enviada para {0}. +relations.now_allied = Agora aliados de {0}! +relations.request_declined = Solicitação de aliança de {0} recusada. +relations.request_cancelled = Solicitação de aliança para {0} cancelada. +relations.failed = Falha: {0} +relations.search_hint = Busque uma facção para definir relação +relations.no_results = Nenhuma facção encontrada para '{0}' +relations.power_display = {0} poder +relations.member_count = {0} membros +relations.label_members = membros +relations.label_power = poder +relations.label_since = Desde: +relations.label_claims = Reivindicações: +relations.label_direction = Direção: +relations.btn_view = Ver +relations.btn_neutral = Neutro +relations.btn_enemy = Inimigo +relations.btn_ally = Aliado +relations.btn_accept = Aceitar +relations.btn_decline = Recusar +relations.btn_cancel = Cancelar + +# ========== Página de Configurações ========== +settings.title = Configurações da Facção +settings.general = Geral +settings.name_label = Nome: +settings.tag_label = Tag: +settings.desc_label = Desc: +settings.edit_btn = Editar +settings.recruitment = Recrutamento +settings.status_label = Status: +settings.home_location = Localização da Base +settings.location_label = Localização: +settings.set_home_btn = Definir Base +settings.teleport_btn = Teleportar +settings.delete_btn = Excluir +settings.optional_features = Recursos Opcionais +settings.configure_modules = Configurar módulos opcionais. +settings.modules_btn = Módulos +settings.danger_zone = Zona de Perigo +settings.irreversible = Esta ação é irreversível. +settings.disband_btn = Dissolver Facção +settings.lock_hint = Algumas opções podem estar bloqueadas pelo servidor e não aceitarão alterações. +settings.territory_permissions = Permissões de Território +settings.col_out = Ext +settings.col_ally = Ali +settings.col_mem = Mem +settings.col_off = Ofi +settings.cat_building = CONSTRUÇÃO +settings.perm_break = Destruir +settings.perm_place = Colocar +settings.cat_interaction = INTERAÇÃO +settings.interaction_hint = (filhos desativados quando Todos está desligado) +settings.perm_all = Todos +settings.perm_door = Porta +settings.perm_chest = Baú +settings.perm_bench = Bancada +settings.perm_processing = Processamento +settings.perm_seat = Assento +settings.perm_transport = Transporte +settings.cat_other = OUTROS +settings.perm_crate = Uso de Caixote +settings.perm_npc_tame = Domesticar NPC +settings.perm_pve = Dano PvE +settings.appearance = Aparência +settings.color_label = Cor: +settings.mob_spawning = Geração de Mobs +settings.mob_spawning_hint = (filhos desativados quando o principal está desligado) +settings.mob_spawning_label = Geração de Mobs +settings.hostile_mobs = Mobs Hostis +settings.passive_mobs = Mobs Passivos +settings.neutral_mobs = Mobs Neutros +settings.faction_settings = Configurações da Facção +settings.pvp_in_territory = PvP no Território +settings.officers_can_edit = Oficiais podem editar +settings.leader_only = Apenas o líder +settings.officers_only = Apenas oficiais e líderes podem alterar as configurações da facção. +settings.display_none = (Nenhuma) +settings.home_not_set = Não definida +settings.no_permission = Você não tem permissão para alterar as configurações. +settings.only_leader_disband = Apenas o líder pode dissolver a facção. +settings.perm_locked = Esta configuração está bloqueada pelo servidor. +settings.no_perm_edit = Você não tem permissão para editar permissões de território. +settings.only_leader_officers = Apenas o líder pode alterar o acesso dos oficiais. +settings.pvp_enabled = Ativado +settings.pvp_disabled = Desativado +settings.not_in_territory = Você deve estar no território da sua facção para definir a base. +settings.home_set = Base da facção definida na sua localização atual! +settings.recruitment_set = Recrutamento definido como {0}. +settings.home_no_set = Sua facção não tem uma base definida. +settings.home_deleted = Base da facção excluída! + +# ========== Página de Módulos ========== +modules.title = Módulos da Facção +modules.description = Recursos opcionais para melhorar sua facção +modules.configure_btn = Configurar +modules.back_btn = < Voltar às Configurações +modules.treasury_name = Tesouraria +modules.treasury_desc = Banco da facção e sistema econômico +modules.raids_name = Raides +modules.raids_desc = Batalhas agendadas entre facções +modules.levels_name = Níveis +modules.levels_desc = Progressão da facção e XP +modules.war_name = Guerra +modules.war_desc = Declarações formais de guerra +modules.coming_soon = Em Breve +modules.active = Ativo +modules.view_treasury = Ver Tesouraria +modules.unavailable = Indisponível +modules.no_economy = Nenhum plugin de economia detectado +modules.disabled = Desativado +modules.economy_not_available = Recursos de economia não estão disponíveis neste servidor + +# ========== Página da Tesouraria ========== +treasury.title = Tesouraria da Facção +treasury.balance_label = Saldo +treasury.income_24h = Receita (24h) +treasury.deposits_transfers_in = depósitos, transferências recebidas +treasury.expenses_24h = Despesas (24h) +treasury.withdrawals_transfers_out = saques, transferências enviadas +treasury.maintenance = MANUTENÇÃO +treasury.runway_label = Reserva: +treasury.add_funds = Adicionar fundos +treasury.deposit_btn = Depositar +treasury.take_funds = Retirar fundos +treasury.withdraw_btn = Sacar +treasury.send_to_faction = Enviar para facção +treasury.transfer_btn = Transferir +treasury.treasury_config = Config da tesouraria +treasury.settings_btn = Configurações +treasury.recent_transactions = Transações Recentes +treasury.no_transactions = Nenhuma transação ainda +treasury.col_date = Data +treasury.col_type = Tipo +treasury.col_by = Por +treasury.col_amount = Valor +treasury.col_details = Detalhes +treasury.pay_now_btn = Pagar Agora +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Configurações da Tesouraria +treasury.officer_permissions = PERMISSÕES DE OFICIAIS +treasury.allow_withdraw = Permitir que Oficiais Saquem +treasury.allow_transfer = Permitir que Oficiais Transfiram +treasury.limits_section = LIMITES DE SAQUE E TRANSFERÊNCIA +treasury.max_per_withdrawal = Máximo por saque: +treasury.max_withdrawals_per = Máximo de saques por período: +treasury.max_per_transfer = Máximo por transferência: +treasury.max_transfers_per = Máximo de transferências por período: +treasury.limit_period = Período limite (horas): +treasury.no_limit_hint = Defina 0 para sem limite +treasury.upkeep_settings = CONFIGURAÇÕES DE MANUTENÇÃO +treasury.auto_pay_upkeep = Pagar manutenção automaticamente da tesouraria +treasury.back_btn = Voltar +treasury.upkeep_cost_format = {0} a cada {1}h +treasury.upkeep_time_left = {0} restante +treasury.wallet_label = Sua carteira: {0} +treasury.treasury_label = Saldo da tesouraria: {0} +treasury.chunks_detail = {0} gratuitos + {1} chunks cobráveis +treasury.cost_label = Custo: {0} +treasury.pending = Pendente +treasury.auto_pay_on = Pagamento automático: LIGADO +treasury.auto_pay_off = Pagamento automático: DESLIGADO +treasury.runway_90_plus = 90+ dias +treasury.runway_days = {0} dias +treasury.runway_day = {0} dia +treasury.runway_less_day = < 1 dia +treasury.runway_no_funds = Sem fundos +treasury.grace_expires = Carência expira em: {0} +treasury.missed_payments = Pagamentos perdidos: {0} +treasury.pay_to_clear = Pague {0} para encerrar a carência +treasury.system = Sistema +treasury.type_deposit = Depósito +treasury.type_withdrawal = Saque +treasury.type_transfer_in = Transferência Recebida +treasury.type_transfer_out = Transferência Enviada +treasury.type_player_transfer = Transferência de Jogador +treasury.type_upkeep = Manutenção +treasury.type_tax = Cobrança de Imposto +treasury.type_war_cost = Custo de Guerra +treasury.type_raid_cost = Custo de Raide +treasury.type_spoils = Espólios +treasury.type_admin = Ajuste Admin +treasury.deposit_title = Depositar na Tesouraria +treasury.withdraw_title = Sacar da Tesouraria +treasury.fee_label = Taxa ({0}%) +treasury.confirm_deposit = Confirmar Depósito +treasury.confirm_withdrawal = Confirmar Saque +treasury.from_wallet = {0} da carteira +treasury.to_wallet = {0} para carteira +treasury.enter_valid_amount = Insira um valor positivo válido. +treasury.insufficient_wallet = Fundos insuficientes na carteira. Necessário {0}, disponível {1}. +treasury.wallet_withdraw_failed = Falha ao sacar da sua carteira. +treasury.deposit_failed_returned = Falha ao depositar. Dinheiro devolvido. +treasury.deposited = Depositou {0} na tesouraria. +treasury.deposited_fee = Depositou {0} na tesouraria. (taxa: {1}) +treasury.no_withdraw_permission = Você não tem permissão para sacar. +treasury.withdraw_denied = Saque negado: {0} +treasury.insufficient_treasury = Fundos insuficientes na tesouraria. +treasury.withdraw_limit = Limite de saque excedido. +treasury.withdraw_failed = Saque falhou: {0} +treasury.wallet_deposit_warn = Aviso: Falha ao depositar na sua carteira. Contate um admin. +treasury.withdrew = Sacou {0} da tesouraria. +treasury.withdrew_fee = Sacou {0} da tesouraria. (taxa: {1}, recebido: {2}) +treasury.search_hint = Buscar por jogador ou facção +treasury.no_results = Nenhum resultado para '{0}' +treasury.tag_player = [Jogador] +treasury.tag_faction = [Facção] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Jogador Hytale +treasury.no_transfer_permission = Você não tem permissão para transferir. +treasury.transfer_denied = Transferência negada: {0} +treasury.invalid_target_faction = Facção alvo inválida. +treasury.target_faction_gone = A facção alvo não existe mais. +treasury.transfer_failed = Transferência falhou: {0} +treasury.transfer_failed_returned = Transferência falhou. Fundos devolvidos. +treasury.transferred = Transferiu {0} para {1}. +treasury.invalid_target_player = Jogador alvo inválido. +treasury.player_transfer_failed = Falha ao depositar na carteira do jogador. Transferência revertida. +treasury.leader_only_perms = Apenas o líder pode alterar permissões da tesouraria. +treasury.leader_only_upkeep = Apenas o líder pode alterar configurações de manutenção. +treasury.invalid_limit = Número inválido nos campos de limite. Use 0 para ilimitado. + +# ========== Páginas de Confirmação ========== +confirm.disband_title = Dissolver Facção +confirm.disband_prompt = Tem certeza de que deseja dissolver +confirm.disband_warning = Esta ação não pode ser desfeita! +confirm.leave_title = Sair da Facção +confirm.leave_prompt = Tem certeza de que deseja sair de +confirm.leave_warning = Você perderá acesso ao território da facção. +confirm.leader_leave_title = Sair como Líder +confirm.leader_leave_prompt = Você está saindo de +confirm.transfer_title = Transferir Liderança +confirm.transfer_prompt = Tem certeza de que deseja transferir a liderança para +confirm.transfer_warning = Você se tornará Oficial. +confirm.disband_not_leader = Apenas o líder pode dissolver a facção. +confirm.disbanded = Facção '{0}' foi dissolvida. +confirm.disband_failed = Falha ao dissolver a facção. +confirm.succession_title = A liderança será transferida para: +confirm.no_members_warning = AVISO: Nenhum outro membro! +confirm.will_disband = Sair irá dissolver a facção permanentemente. +confirm.not_in_faction = Você não está nesta facção. +confirm.not_leader_anymore = Você não é mais o líder. +confirm.no_successor = Nenhum sucessor disponível. Use dissolver no lugar. +confirm.transfer_failed = Falha ao transferir liderança: {0} +confirm.leader_left = Liderança transferida para {0}. Você saiu de {1}. +confirm.leave_failed = Falha ao sair da facção: {0} +confirm.leader_cannot_leave = Líderes não podem sair. Transfira a liderança ou dissolva a facção. +confirm.left_faction = Você saiu de {0}. +confirm.faction_gone = A facção não existe mais. +confirm.not_leader_transfer = Apenas o líder pode transferir a liderança. +confirm.leadership_transferred = Liderança transferida para {0}. + +# ========== Página de Visualização de Registros ========== +logs.title = {0} - Registro de Atividades +logs.entry_count = {0} entradas +logs.filter_label = Filtrar: +logs.col_time = Hora +logs.col_type = Tipo +logs.col_message = Mensagem +logs.prev_btn = < Anterior +logs.next_btn = Próximo > +logs.all_types = Todos os Tipos +logs.no_logs_type = Nenhum registro deste tipo. +logs.no_logs = Nenhum registro de atividade ainda. +logs.time_just_now = agora mesmo +logs.time_minute = {0} minuto atrás +logs.time_minutes = {0} minutos atrás +logs.time_hour = {0} hora atrás +logs.time_hours = {0} horas atrás +logs.time_day = {0} dia atrás +logs.time_days = {0} dias atrás +logs.time_week = {0} semana atrás +logs.time_weeks = {0} semanas atrás +logs.type_member_join = Entrada +logs.type_member_leave = Saída +logs.type_member_kick = Expulsão +logs.type_member_promote = Promoção +logs.type_member_demote = Rebaixamento +logs.type_claim = Reivindicação +logs.type_unclaim = Desreivindicação +logs.type_overclaim = Conquista +logs.type_home_set = Base Definida +logs.type_relation_ally = Aliado +logs.type_relation_enemy = Inimigo +logs.type_relation_neutral = Neutro +logs.type_leader_transfer = Transferência +logs.type_settings_change = Configurações +logs.type_power_change = Poder +logs.type_economy = Economia +logs.type_admin_power = Poder Admin + +# Modelos de mensagens de registro (i18n para conteúdo do registro de atividades) +# Ações de jogadores +logs.msg_faction_created = {0} criou a facção +logs.msg_member_joined = {0} entrou na facção +logs.msg_member_left = {0} saiu da facção +logs.msg_member_kicked = {0} foi expulso +logs.msg_member_promoted = {0} promovido a {1} +logs.msg_member_demoted = {0} rebaixado a {1} +logs.msg_leader_transferred = Liderança transferida para {0} +logs.msg_leader_left_transfer = {0} saiu, {1} agora é líder +logs.msg_relation_set = Definiu {0} como {1} +# Território +logs.msg_claimed = Chunk reivindicado em {0}, {1} em {2} +logs.msg_unclaimed = Chunk desreivindicado em {0}, {1} em {2} +logs.msg_overclaim_lost = Chunk perdido em {0}, {1} para {2} +logs.msg_overclaim_taken = Chunk conquistado em {0}, {1} de {2} +logs.msg_all_unclaimed = Todo o território desreivindicado +logs.msg_claim_removed_world = Reivindicação em '{0}' removida (mundo não permite reivindicações) +logs.msg_claims_lost_upkeep = Perdeu {0} reivindicação(ões) por manutenção (perdeu {1} pagamentos) +logs.msg_claims_removed_inactive = {0} reivindicações removidas por inatividade ({1} dias) +# Base +logs.msg_home_set = Base definida +logs.msg_home_cleared = Base removida +logs.msg_home_cleared_world = Base em '{0}' removida (mundo não permite reivindicações) +# Configurações +logs.msg_renamed = Renomeada de '{0}' para '{1}' +logs.msg_set_open = Facção definida como aberta +logs.msg_set_closed = Facção definida como apenas convite +logs.msg_desc_set = Descrição definida +logs.msg_desc_cleared = Descrição removida +logs.msg_color_changed = Cor alterada para '{0}' +# Economia +logs.msg_deposit = Depósito: {0} (+{1}) +logs.msg_withdrawal = Saque: {0} (-{1}) +logs.msg_upkeep_paid = Manutenção paga: {0} ({1} chunks cobráveis) +logs.msg_upkeep_grace_started = Manutenção falhou: período de carência iniciado ({0}h) +logs.msg_upkeep_missed = Manutenção perdida (pagamento {0}), carência expira em {1} +logs.msg_upkeep_manual = Manutenção paga manualmente: {0} ({1} chunks cobráveis, carência encerrada) +# Poder admin +logs.msg_admin_power_set = Admin definiu o poder de {0} para {1} (era {2}) +logs.msg_admin_power_add = Admin adicionou {0} poder a {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin removeu {0} poder de {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin resetou o poder de {0} para {1} (era {2}) +logs.msg_admin_power_adjusted = Admin ajustou o poder de {0} em {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin definiu o poder máximo de {0} para {1} (era {2}) +logs.msg_admin_maxpower_reset = Admin resetou o poder máximo de {0} para o padrão global ({1}) +logs.msg_admin_powerloss_enabled = Admin ativou perda de poder para {0} +logs.msg_admin_powerloss_disabled = Admin desativou perda de poder para {0} +logs.msg_admin_decay_enabled = Admin ativou isenção de decaimento de reivindicações para {0} +logs.msg_admin_decay_disabled = Admin desativou isenção de decaimento de reivindicações para {0} +logs.msg_admin_kd_reset = Admin resetou K/D de {0} +logs.msg_admin_power_set_all = Admin definiu o poder de todos os {0} membros para {1} +logs.msg_admin_power_add_all = Admin adicionou {0} poder a todos os {1} membros +logs.msg_admin_power_remove_all = Admin removeu {0} poder de todos os {1} membros +logs.msg_admin_power_reset_all = Admin resetou o poder de todos os {0} membros +logs.msg_admin_power_adjusted_all = Admin ajustou o poder de todos os {0} membros em {1} +# Admin facção +logs.msg_admin_kicked = [Admin] {0} foi expulso +logs.msg_admin_role_set = [Admin] Cargo de {0} definido como {1} +logs.msg_admin_leader_kick = [Admin] Liderança transferida de {0} para {1} (expulsão admin) +logs.msg_admin_econ_added = Admin adicionou: {0} (saldo: {1}) +logs.msg_admin_econ_deducted = Admin deduziu: {0} (saldo: {1}) +logs.msg_admin_econ_set = Admin definiu o saldo para {0} (era {1}) +# Importação +logs.msg_left_import = {0} saiu (importado para outra facção) +logs.msg_leader_import_transfer = {0} se tornou líder (líder anterior importado para outra facção) +logs.msg_imported_from = Facção importada de {0} + +# ========== Página de Chat ========== +chat.title = Chat da Facção +chat.tab_faction = Facção +chat.tab_ally = Aliado +chat.send_btn = Enviar +chat.placeholder = Digite uma mensagem... +chat.no_messages = Nenhuma mensagem ainda. +chat.no_ally_permission = Você não tem permissão para o chat de aliados. +chat.no_permission = Sem permissão. +chat.faction_gone = Sua facção não existe mais. +chat.time_now = agora +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Página de Convites ========== +invites.title = Convites +invites.tab_outgoing = Enviados +invites.tab_requests = Solicitações +invites.prev_btn = < Anterior +invites.next_btn = Próximo > +invites.invite_count = {0} convites +invites.request_count = {0} solicitações +invites.invited_by = Convidado por: {0} +invites.no_message = Sem mensagem +invites.expires = Expira: {0} +invites.type_outgoing = Enviado +invites.type_request = Solicitação +invites.invited_by_label = Convidado por: +invites.empty_outgoing = Nenhum convite enviado. Use /f invite para convidar alguém. +invites.empty_requests = Nenhuma solicitação de entrada. Jogadores podem solicitar entrada com /f request. +invites.invalid_player = Jogador inválido. +invites.cancelled_invite = Convite para {0} cancelado. +invites.player_joined = {0} entrou na facção! +invites.faction_full = A facção está cheia. Não é possível aceitar a solicitação. +invites.add_failed = Falha ao adicionar jogador à facção. +invites.request_expired = Solicitação não encontrada ou expirada. +invites.request_declined = Solicitação de entrada de {0} recusada. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h +invites.label_message = Mensagem: +invites.btn_cancel = Cancelar +invites.btn_accept = Aceitar +invites.btn_decline = Recusar + +# ========== Página do Mapa ========== +map.title = Mapa de Território +map.action_hint = Clique esquerdo: Reivindicar | Clique direito: Desreivindicar +map.legend_your = Seu Território +map.legend_ally = Território Aliado +map.legend_enemy = Território Inimigo +map.legend_other = Outra Facção +map.legend_wilderness = Selvagem +map.legend_safe = Safe Zone +map.legend_war = War Zone +map.legend_you = Você está aqui +map.position = Sua Posição: Chunk ({0}, {1}) +map.legend_protected = Protegido +map.claim_stats = Reivindicações: {0}/{1} ({2} Disponíveis) +map.overclaimed = CONQUISTADO por {0}! +map.power_display = Poder: {0}/{1} +map.join_to_claim = Entre em uma facção para reivindicar +map.claim_success = Chunk reivindicado em ({0}, {1})! +map.claim_not_in_faction = Você precisa estar em uma facção para reivindicar território. +map.claim_not_officer = Apenas oficiais e líderes podem reivindicar território. +map.claim_already_yours = Você já possui este chunk. +map.claim_already_claimed = Este chunk já está reivindicado por outra facção. +map.claim_not_adjacent = Você só pode reivindicar chunks adjacentes ao seu território. +map.claim_max = Você atingiu o limite máximo de reivindicações. +map.claim_world_not_allowed = Reivindicações não são permitidas neste mundo. +map.claim_orbisguard = Esta área é protegida pelo OrbisGuard. +map.claim_failed = Falha ao reivindicar chunk. +map.unclaim_success = Chunk desreivindicado em ({0}, {1}). +map.unclaim_not_in_faction = Você precisa estar em uma facção. +map.unclaim_not_officer = Apenas oficiais e líderes podem desreivindicar território. +map.unclaim_not_claimed = Este chunk não está reivindicado. +map.unclaim_not_yours = Este chunk pertence a outra facção. +map.unclaim_home = Não é possível desreivindicar o chunk que contém a base da facção. +map.unclaim_failed = Falha ao desreivindicar chunk. +map.overclaim_success = Chunk inimigo conquistado em ({0}, {1})! +map.overclaim_not_in_faction = Você precisa estar em uma facção. +map.overclaim_not_officer = Apenas oficiais e líderes podem conquistar território. +map.overclaim_already_yours = Você já possui este chunk. +map.overclaim_ally = Você não pode conquistar território aliado. +map.overclaim_has_power = Esta facção tem poder suficiente para defender seu território. +map.overclaim_max = Você atingiu o limite máximo de reivindicações. +map.overclaim_failed = Falha ao conquistar chunk. +# ========== Página de Criação de Facção ========== +create.title = Crie Sua Facção +create.section_preview = Prévia +create.section_basic_info = Informações Básicas +create.section_details = Detalhes +create.name_prefix = Nome: +create.faction_name_label = Nome da Facção * +create.tag_label = TAG (2-4 caracteres, automática se vazio) +create.desc_label = Descrição (Opcional) +create.recruitment_label = Recrutamento +create.section_faction_color = Cor da Facção +create.section_combat = Combate +create.create_btn = Criar Facção +create.preview_name = Nome da Sua Facção +create.leader_prefix = Líder: {0} +create.enter_name = Por favor, insira um nome para a facção. +create.name_too_short = O nome da facção deve ter pelo menos {0} caracteres. +create.name_too_long = O nome da facção não pode exceder {0} caracteres. +create.name_taken = Uma facção com este nome já existe. +create.tag_length = A tag da facção deve ter {0}-{1} caracteres. +create.tag_format = A tag da facção só pode conter letras e números. +create.desc_too_long = A descrição não pode exceder {0} caracteres. +create.created = Facção {0} criada com sucesso! +create.created_no_dashboard = Facção criada mas não foi possível abrir o painel. +create.invalid_name = Nome de facção inválido. +create.create_failed = Não foi possível criar a facção. + +# ========== Páginas de Novo Jogador ========== +newplayer.browse_title = Explorar Facções +newplayer.invites_title = Convites e Solicitações +newplayer.map_title = Mapa de Território +newplayer.view_only_badge = Modo Visualização +newplayer.legend_label = Legenda: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Facção +newplayer.legend_wilderness = Selvagem +newplayer.search_label = Buscar: +newplayer.sort_label = Ordenar: +newplayer.prev_btn = < Anterior +newplayer.next_btn = Próximo > +newplayer.pending_count = {0} pendentes +newplayer.received_header = CONVITES RECEBIDOS ({0}) +newplayer.requests_header = SUAS SOLICITAÇÕES ({0}) +newplayer.no_invites = Sem convites. Explore as facções para encontrar uma! +newplayer.no_requests = Nenhuma solicitação pendente. +newplayer.invited_by = Convidado por: {0} +newplayer.member_count = {0} membros +newplayer.power_count = {0} poder +newplayer.claim_count = {0} reivindicações +newplayer.awaiting_review = Aguardando análise +newplayer.expires_in = Expira em {0}h +newplayer.time_just_now = agora mesmo +newplayer.time_minutes = {0} min atrás +newplayer.time_hours = {0}h atrás +newplayer.time_days = {0}d atrás +newplayer.invalid_faction = Facção inválida. +newplayer.invite_expired = Este convite expirou ou foi revogado. +newplayer.faction_gone = A facção não existe mais. +newplayer.joined = Você entrou em {0}! +newplayer.faction_full = Esta facção está cheia. +newplayer.join_failed = Não foi possível entrar na facção. +newplayer.invite_declined = Convite recusado. +newplayer.request_cancelled = Solicitação para entrar em {0} cancelada. +newplayer.faction_count = {0} facções +newplayer.browse_subtitle = Encontre seu novo lar! +newplayer.sort_power = Poder +newplayer.sort_name = Nome +newplayer.sort_members = Membros +newplayer.btn_accept = Aceitar +newplayer.btn_pending = Pendente +newplayer.btn_join = Entrar +newplayer.btn_request = Solicitar +newplayer.invite_only_msg = Esta facção é apenas por convite. +newplayer.welcome_hint = Bem-vindo! Use /f para abrir o menu de facções. +newplayer.faction_open_hint = Esta facção está aberta! Clique em ENTRAR. +newplayer.already_requested = Você já tem uma solicitação pendente para esta facção. +newplayer.has_invite_hint = Você tem um convite desta facção! Clique em ACEITAR. +newplayer.request_sent = Solicitação de entrada enviada para {0}! +newplayer.officer_review = Um oficial irá analisar sua solicitação. +newplayer.map_hint = Modo Visualização - Entre em uma facção para reivindicar território! + +# Configurações do Jogador +nav.player_settings = Jogador +player_settings.title = Configurações do Jogador +player_settings.language_section = Idioma +player_settings.auto_detect = Detectar automaticamente do cliente +player_settings.auto_detect_desc = Usa a configuração de idioma do seu cliente de jogo +player_settings.language_label = Idioma +player_settings.notifications_section = Notificações +player_settings.territory_alerts = Alertas de Território +player_settings.territory_alerts_desc = Mostrar notificações ao entrar/sair de territórios +player_settings.death_announcements = Anúncios de Morte +player_settings.death_announcements_desc = Receber anúncios de localização de morte de membros da facção +player_settings.power_notifications = Alterações de Poder +player_settings.power_notifications_desc = Mostrar mensagens quando seu poder muda +player_settings.language_changed = Idioma alterado para {0} +player_settings.pref_enabled = {0} ativado +player_settings.pref_disabled = {0} desativado + +# ========== Páginas de Ajuda ========== +help.center_title = Central de Ajuda +help.getting_started_title = Primeiros Passos +help.what_are_factions_title = O Que São Facções? +help.what_are_factions_1 = Facções são grupos criados por jogadores que trabalham juntos +help.what_are_factions_2 = para reivindicar território, construir bases e competir. +help.what_are_factions_bullet_1 = - Território protegido para construção +help.what_are_factions_bullet_2 = - Companheiros de equipe para jogar +help.what_are_factions_bullet_3 = - Acesso ao chat da facção e recursos +help.joining_title = Entrando em uma Facção +help.joining_desc = Existem várias maneiras de entrar em uma facção: +help.joining_bullet_1 = - Explorar - Encontre facções abertas e clique ENTRAR +help.joining_bullet_2 = - Convites - Aceite convites de oficiais +help.joining_bullet_3 = - Solicitar - Peça para entrar em facções por convite +help.creating_title = Criando uma Facção +help.creating_desc = Vá à aba Criar para iniciar sua própria facção. +help.creating_bullet_1 = - Convide e gerencie membros +help.creating_bullet_2 = - Reivindique e proteja território +help.commands_title = Comandos Rápidos +help.cmd_f = /f - Abrir menu de facções +help.cmd_f_list = /f list - Listar todas as facções +help.cmd_f_join = /f join - Entrar em uma facção aberta +help.cmd_f_create = /f create - Criar uma nova facção +help.cmd_f_help = /f help - Lista completa de comandos +help.tip = Dica: Explore as facções para encontrar um grupo ideal para você! From 28a362abb3e229ecaf068a7e5839d3b04864e066 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:01 -0700 Subject: [PATCH 58/76] i18n: add Simplified Chinese (zh-CN) translations Complete Simplified Chinese translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/zh-CN/help/combat/death.md | 39 + .../Languages/zh-CN/help/combat/protection.md | 28 + .../zh-CN/help/combat/spawn_protection.md | 27 + .../Languages/zh-CN/help/combat/tagging.md | 29 + .../Languages/zh-CN/help/combat/zones.md | 29 + .../zh-CN/help/diplomacy/alliances.md | 45 + .../Languages/zh-CN/help/diplomacy/enemies.md | 47 + .../zh-CN/help/diplomacy/relations.md | 38 + .../Languages/zh-CN/help/economy/commands.md | 27 + .../Languages/zh-CN/help/economy/funds.md | 42 + .../Languages/zh-CN/help/economy/treasury.md | 26 + .../Languages/zh-CN/help/economy/upkeep.md | 37 + .../zh-CN/help/power_land/claiming.md | 50 + .../zh-CN/help/power_land/losing_territory.md | 50 + .../zh-CN/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../zh-CN/help/quick_ref/all_commands.md | 94 ++ .../zh-CN/help/welcome/getting_started.md | 38 + .../zh-CN/help/welcome/quick_tips.md | 44 + .../zh-CN/help/welcome/what_are_factions.md | 37 + .../zh-CN/help/your_faction/creating.md | 38 + .../zh-CN/help/your_faction/joining.md | 36 + .../zh-CN/help/your_faction/managing.md | 44 + .../zh-CN/help/your_faction/roles.md | 44 + .../Server/Languages/zh-CN/hyperfactions.lang | 453 +++++++++ .../Languages/zh-CN/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/zh-CN/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/death.md b/src/main/resources/Server/Languages/zh-CN/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md b/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md b/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md b/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md b/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md b/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md b/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md b/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang new file mode 100644 index 00000000..31bd9189 --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - 简体中文翻译 +# 格式: key = value (或 key = "quoted value") +# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions." 前缀 +# 占位符: {0}, {1}, 等 + +# ========== 通用 ========== +common.no_permission = 你没有权限执行此操作。 +common.not_in_faction = 你不在任何派系中。 +common.already_in_faction = 你已经在一个派系中了。 +common.player_not_found = 未找到该玩家。 +common.faction_not_found = 未找到该派系。 +common.player_not_online = 该玩家不在线。 +common.must_be_leader = 只有派系领袖才能执行此操作。 +common.must_be_officer = 你必须是官员或领袖才能执行此操作。 +common.combat_tagged = 战斗标记期间无法执行此操作。 +common.cancel = 取消 +common.confirm = 确认 +common.save = 保存 +common.close = 关闭 +common.clear = 清除 +common.back = 返回 +common.leave = 离开 +common.transfer = 转让 +common.disband = 解散 +common.world_fallback = 世界 +common.yes = 是 +common.no = 否 +common.loading = 加载中... +common.online = 在线 +common.offline = 离线 +common.enabled = 已启用 +common.disabled = 已禁用 +common.none = 无 +common.page = 第 {0} 页,共 {1} 页 +common.unknown = 未知 +common.error_generic = 出了点问题,请重试。 +common.gui_fallback = 无法访问界面。请使用 /f help 查看命令。 +common.admin_prefix = [Admin] +common.location_error = 无法确定你的位置。 +common.world_error = 无法确定你所在的世界。 +common.invalid_id = 无效的派系 ID。 +common.na = N/A + +# ========== 命令 - 创建 ========== +cmd.create.no_permission = 你没有权限创建派系。 +cmd.create.usage = 用法: /f create <名称> +cmd.create.success = 派系 '{0}' 已创建! +cmd.create.already_in_named = 你已经在 {0} 中了。 +cmd.create.use_leave_first = 如果你想创建新派系,请先使用 /f leave 离开当前派系。 +cmd.create.name_taken = 该派系名称已被使用。 +cmd.create.name_too_short = 派系名称太短。 +cmd.create.name_too_long = 派系名称太长。 +cmd.create.failed = 创建派系失败。 + +# ========== 命令 - 解散 ========== +cmd.disband.no_permission = 你没有权限解散派系。 +cmd.disband.not_leader = 只有派系领袖才能解散派系。 +cmd.disband.confirm_prompt = 你确定要解散你的派系吗? +cmd.disband.confirm_instruction = 在 {0} 秒内再次输入 /f disband --text 以确认。 +cmd.disband.success = 你的派系已被解散。 +cmd.disband.failed = 解散派系失败。 +cmd.disband.cancelled = 之前的确认已取消。再次输入以确认解散。 + +# ========== 命令 - 重命名 ========== +cmd.rename.no_permission = 你没有权限。 +cmd.rename.not_leader = 只有领袖才能重命名派系。 +cmd.rename.usage = 用法: /f rename <名称> +cmd.rename.too_short = 名称太短(最少 {0} 个字符)。 +cmd.rename.too_long = 名称太长(最多 {0} 个字符)。 +cmd.rename.name_taken = 该名称已被使用。 +cmd.rename.success = 派系已重命名为 {0}! +cmd.rename.broadcast = {0} 将派系重命名为 {1} + +# ========== 命令 - 描述 ========== +cmd.desc.no_permission = 你没有权限。 +cmd.desc.not_officer = 你必须是官员才能设置描述。 +cmd.desc.set = 派系描述已设置! +cmd.desc.cleared = 派系描述已清除。 + +# ========== 命令 - 开放 / 关闭 ========== +cmd.open.no_permission = 你没有权限。 +cmd.open.not_leader = 只有领袖才能更改此设置。 +cmd.open.already_open = 你的派系已经是开放的。 +cmd.open.success = 你的派系现在是开放的!任何人都可以通过 /f join 加入。 +cmd.open.broadcast = {0} 将派系开放为公开加入。 +cmd.close.no_permission = 你没有权限。 +cmd.close.not_leader = 只有领袖才能更改此设置。 +cmd.close.already_closed = 你的派系已经是仅限邀请的。 +cmd.close.success = 你的派系现在仅限邀请加入。 +cmd.close.broadcast = {0} 将派系设置为仅限邀请。 + +# ========== 命令 - 颜色 ========== +cmd.color.no_permission = 你没有权限。 +cmd.color.not_officer = 你必须是官员才能更改颜色。 +cmd.color.colors_disabled = 派系颜色功能已禁用。 +cmd.color.usage = 用法: /f color <代码|#hex> +cmd.color.usage_hint = 有效代码: 0-9, a-f 或 #RRGGBB 十六进制 +cmd.color.invalid = 无效颜色。请使用 0-9, a-f 或 #RRGGBB。 +cmd.color.success = 派系颜色已更新! + +# ========== 命令 - 领地占领 ========== +cmd.claim.no_permission = 你没有权限占领领地。 +cmd.claim.already_yours = 你的派系已经拥有此区块。 +cmd.claim.cannot_claim_ally = 你不能占领盟友的领地。 +cmd.claim.already_claimed_hint = 此区块已被占领。如果对方可被突袭,请使用 /f overclaim。 +cmd.claim.success = 已占领区块 {0}, {1}! +cmd.claim.not_officer = 你必须是官员才能占领领地。 +cmd.claim.already_claimed = 此区块已被占领。 +cmd.claim.max_claims = 你的派系已达到最大领地数量。获取更多力量吧! +cmd.claim.not_adjacent = 你必须占领与现有领地相邻的区块。 +cmd.claim.world_not_allowed = 此世界不允许占领领地。 +cmd.claim.orbisguard = 此区域受 OrbisGuard 保护。 +cmd.claim.zone_protected = 此区块位于安全区或战争区内。 +cmd.claim.insufficient_power = 你的派系没有足够的力量来占领更多领地。 +cmd.claim.failed = 占领区块失败。 + +# ========== 命令 - 邀请 ========== +cmd.invite.no_permission = 你没有权限邀请玩家。 +cmd.invite.not_officer = 你必须是官员才能邀请玩家。 +cmd.invite.usage = 用法: /f invite <玩家> +cmd.invite.player_not_found = 未找到玩家 '{0}' 或该玩家不在线。 +cmd.invite.target_in_faction = 该玩家已在一个派系中。 +cmd.invite.sent = 已邀请 {0} 加入你的派系。 +cmd.invite.received = 你已被邀请加入 {0}! +cmd.invite.accept_hint = 输入 /f accept {0} 加入。 + +# ========== 命令 - 接受 / 加入 ========== +cmd.join.no_permission = 你没有权限加入派系。 +cmd.join.already_in_named = 你已经在 {0} 中了。 +cmd.join.use_leave_hint = 如果你想加入其他派系,请先使用 /f leave。 +cmd.join.no_invites = 你没有待处理的邀请。 +cmd.join.faction_not_found = 未找到派系 '{0}'。 +cmd.join.not_invited = 你没有来自该派系的邀请。 +cmd.join.faction_gone = 该派系已不存在。 +cmd.join.success = 你已加入 {0}! +cmd.join.broadcast = {0} 已加入派系! +cmd.join.faction_full = 该派系已满员。 +cmd.join.failed = 加入派系失败。 + +# ========== 命令 - 踢出 ========== +cmd.kick.no_permission = 你没有权限踢出成员。 +cmd.kick.usage = 用法: /f kick <玩家> +cmd.kick.not_in_your_faction = 玩家 '{0}' 不在你的派系中。 +cmd.kick.success = 已将 {0} 踢出派系。 +cmd.kick.broadcast = {0} 已被踢出派系。 +cmd.kick.kicked = 你已被踢出派系。 +cmd.kick.cannot_kick_higher = 你没有权限踢出该玩家。 +cmd.kick.cannot_kick_leader = 你不能踢出派系领袖。 +cmd.kick.failed = 踢出玩家失败。 + +# ========== 命令 - 离开 ========== +cmd.leave.no_permission = 你没有权限离开派系。 +cmd.leave.confirm_prompt = 你确定要离开你的派系吗? +cmd.leave.confirm_instruction = 在 {0} 秒内再次输入 /f leave --text 以确认。 +cmd.leave.success = 你已离开你的派系。 +cmd.leave.broadcast = {0} 已离开派系。 +cmd.leave.failed = 离开派系失败。 +cmd.leave.cancelled = 之前的确认已取消。再次输入以确认离开。 + +# ========== 命令 - 晋升 / 降职 / 转让 ========== +cmd.rank.promote_no_permission = 你没有权限晋升成员。 +cmd.rank.promote_usage = 用法: /f promote <玩家> +cmd.rank.promoted = 已将 {0} 晋升为 {1}! +cmd.rank.promote_broadcast = {0} 已被晋升为 {1}! +cmd.rank.already_highest = 无法继续晋升。使用 /f transfer 来更换领袖。 +cmd.rank.promote_failed = 晋升玩家失败。 +cmd.rank.demote_no_permission = 你没有权限降职成员。 +cmd.rank.demote_usage = 用法: /f demote <玩家> +cmd.rank.demoted = 已将 {0} 降职为 {1}。 +cmd.rank.demote_broadcast = {0} 已被降职为 {1}。 +cmd.rank.already_lowest = 该玩家已经是成员了。 +cmd.rank.demote_failed = 降职玩家失败。 +cmd.rank.transfer_no_permission = 你没有权限转让领导权。 +cmd.rank.transfer_usage = 用法: /f transfer <玩家> +cmd.rank.player_not_in_faction = 在你的派系中未找到该玩家。 +cmd.rank.transfer_confirm = 你确定要将领导权转让给 {0} 吗? +cmd.rank.transfer_confirm_instruction = 在 {1} 秒内再次输入 /f transfer {0} --text 以确认。 +cmd.rank.transferred = 已将领导权转让给 {0}! +cmd.rank.transfer_broadcast = {0} 现在是派系领袖了! +cmd.rank.transfer_failed = 转让领导权失败。 +cmd.rank.transfer_cancelled = 之前的确认已取消。再次输入以确认转让。 + +# ========== 命令 - 放弃领地 ========== +cmd.unclaim.no_permission = 你没有权限放弃领地。 +cmd.unclaim.success = 已放弃区块 {0}, {1}。 +cmd.unclaim.not_officer = 你必须是官员才能放弃领地。 +cmd.unclaim.chunk_not_claimed = 此区块未被占领。 +cmd.unclaim.not_your_claim = 你的派系不拥有此区块。 +cmd.unclaim.cannot_unclaim_home = 无法放弃包含派系据点的区块。 +cmd.unclaim.would_disconnect = 无法放弃 - 这将使你的领地断开连接。 +cmd.unclaim.failed = 放弃区块失败。 + +# ========== 命令 - 强占 ========== +cmd.overclaim.no_permission = 你没有权限强占领地。 +cmd.overclaim.success = 成功强占敌方领地! +cmd.overclaim.not_officer = 你必须是官员才能强占。 +cmd.overclaim.not_claimed = 此区块未被占领。请使用 /f claim。 +cmd.overclaim.own_chunk = 你的派系已经拥有此区块。 +cmd.overclaim.ally = 你不能强占盟友的领地。 +cmd.overclaim.target_has_power = 该派系仍有足够的力量。 +cmd.overclaim.failed = 强占失败。 + +# ========== 命令 - 脱困 ========== +cmd.stuck.no_permission = 你没有权限使用 /f stuck。 +cmd.stuck.not_stuck = 你并未被困 - 这里是荒野。 +cmd.stuck.combat_tagged = 战斗中无法使用 /f stuck! +cmd.stuck.no_safe = 找不到安全的位置。 +cmd.stuck.teleporting = 将在 {0} 秒后传送到安全位置。请不要移动! + +# ========== 命令 - 据点 ========== +cmd.home.no_permission = 你没有权限传送到派系据点。 +cmd.home.no_home = 你的派系尚未设置据点。 +cmd.home.combat_tagged = 战斗中无法传送! +cmd.home.teleported = 已传送到派系据点! + +# ========== 命令 - 设置据点 ========== +cmd.sethome.no_permission = 你没有权限设置派系据点。 +cmd.sethome.world_not_allowed = 无法在此世界设置据点。 +cmd.sethome.not_in_territory = 你只能在派系领地内设置据点。 +cmd.sethome.set = 派系据点已设置! +cmd.sethome.broadcast = {0} 设置了派系据点。 +cmd.sethome.not_officer = 你必须是官员才能设置据点。 +cmd.sethome.failed = 设置据点失败。 + +# ========== 命令 - 删除据点 ========== +cmd.delhome.no_permission = 你没有权限删除派系据点。 +cmd.delhome.no_home = 你的派系尚未设置据点。 +cmd.delhome.deleted = 派系据点已删除! +cmd.delhome.broadcast = {0} 删除了派系据点。 +cmd.delhome.not_officer = 你必须是官员才能删除据点。 +cmd.delhome.failed = 删除据点失败。 + +# ========== 命令 - 关系(盟友/敌人/中立/关系) ========== +cmd.relation.ally_no_permission = 你没有权限管理同盟。 +cmd.relation.ally_usage = 用法: /f ally <派系> +cmd.relation.ally_sent = 已向 {0} 发送结盟请求! +cmd.relation.ally_formed = 你现在与 {0} 结为盟友了! +cmd.relation.already_ally = 你已经与该派系结盟了。 +cmd.relation.ally_failed = 发送结盟请求失败。 +cmd.relation.enemy_no_permission = 你没有权限宣布敌对。 +cmd.relation.enemy_usage = 用法: /f enemy <派系> +cmd.relation.enemy_declared = {0} 现在是你的敌人了! +cmd.relation.already_enemy = 你已经与该派系处于敌对状态。 +cmd.relation.max_enemies = 你已达到最大敌对派系数量。 +cmd.relation.enemy_failed = 设置敌对失败。 +cmd.relation.neutral_no_permission = 你没有权限设置中立关系。 +cmd.relation.neutral_usage = 用法: /f neutral <派系> +cmd.relation.neutral_set = 你的派系现在与 {0} 处于中立关系。 +cmd.relation.already_neutral = 你已经与该派系处于中立关系。 +cmd.relation.neutral_failed = 设置中立失败。 +cmd.relation.cannot_self = 你不能与自己结盟。 +cmd.relation.max_allies = 你已达到最大盟友数量。 +cmd.relation.view_no_permission = 你没有权限查看关系。 +cmd.relation.header = === 派系关系 === +cmd.relation.allies_count = 盟友 ({0}): +cmd.relation.enemies_count = 敌人 ({0}): +cmd.relation.list_entry = - {0} + +# ========== 命令 - 聊天 ========== +cmd.chat.usage = 用法: /f c [f|a|off] +cmd.chat.no_permission = 你没有权限使用该聊天模式。 +cmd.chat.mode_set = 聊天模式已设为 {0} + +# ========== 命令 - 邀请管理 ========== +cmd.invites.not_officer = 你必须是官员才能管理邀请。 +cmd.invites.header = === 派系邀请 === +cmd.invites.no_pending = 没有待处理的邀请或请求。 +cmd.invites.outgoing = 发出的邀请: +cmd.invites.outgoing_entry = {0}(由 {1} 邀请) +cmd.invites.requests = 加入请求: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === 你的邀请 === +cmd.invites.no_invites = 你没有待处理的邀请。 +cmd.invites.invite_entry = {0} - 使用 /f accept {1} + +# ========== 命令 - 申请 ========== +cmd.request.no_permission = 你没有权限申请加入派系。 +cmd.request.already_in_named = 你已经在 {0} 中了。 +cmd.request.use_leave_hint = 如果你想加入其他派系,请先使用 /f leave。 +cmd.request.usage = 用法: /f request <派系> [留言] +cmd.request.faction_open = 该派系是开放的!使用 /f accept {0} 直接加入。 +cmd.request.already_requested = 你已经向该派系提交了待处理的请求。 +cmd.request.has_invite = 你已被该派系邀请!使用 /f accept {0} 加入。 +cmd.request.sent = 已向 {0} 发送加入请求! +cmd.request.your_message = 你的留言: "{0}" +cmd.request.officer_review = 一名官员将审核你的请求。 +cmd.request.officer_notify = {0} 已申请加入你的派系! +cmd.request.officer_review_hint = 使用 /f gui > 邀请 来审核。 + +# ========== 命令 - 信息 ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = 你没有权限查看派系信息。 +cmd.info.faction_not_found = 未找到派系 '{0}'。 +cmd.info.not_in_faction_hint = 你不在任何派系中。请使用 /f info <派系> +cmd.info.leader = 领袖: {0} +cmd.info.members = 成员: {0}/{1} +cmd.info.power = 力量: {0} +cmd.info.claims = 领地: {0} +cmd.info.raidable = 可被突袭! +cmd.info.allies = 盟友: {0} +cmd.info.enemies = 敌人: {0} +cmd.info.they_consider = 他们对你的态度: {0} +cmd.info.you_consider = 你对他们的态度: {0} +cmd.info.members_no_permission = 你没有权限查看派系成员。 +cmd.info.members_header = === {0} 成员 ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = 你没有权限查看派系列表。 +cmd.info.list_empty = 当前没有派系。 +cmd.info.list_header = === 派系列表 ({0}) === +cmd.info.list_entry = {0} - {1} 名成员, {2} 力量 +cmd.info.list_entry_raidable = {0} - {1} 名成员, {2} 力量 [可被突袭] +cmd.info.help_no_permission = 你没有权限查看帮助。 +cmd.info.who_no_permission = 你没有权限查看玩家信息。 +cmd.info.who_faction = 派系: {0} +cmd.info.who_role = 职位: {0} +cmd.info.who_joined = 加入时间: {0} +cmd.info.who_faction_none = 派系: 无 +cmd.info.who_power = 力量: {0} +cmd.info.who_status = 状态: {0} +cmd.info.who_last_seen = 最后在线: {0} +cmd.info.map_no_permission = 你没有权限查看地图。 +cmd.info.map_header = === 领地地图 === +cmd.info.map_legend = 图例: +你 /己方 /盟友 /敌人 -荒野 +cmd.info.map_gui_hint = 使用 /f gui 查看交互式地图 + +# ========== 命令 - 力量 ========== +cmd.power.personal = 个人力量: {0}/{1} +cmd.power.faction = 派系力量: {0}/{1} +cmd.power.death_loss = 死亡损失: {0} +cmd.power.regen = 恢复速率: {0}/小时 +cmd.power.no_permission = 你没有权限查看力量信息。 +cmd.power.header = {0} 的力量: +cmd.power.current = 当前: {0} + +# ========== 命令 - 经济 ========== +cmd.economy.balance = 余额: {0} +cmd.economy.deposited = 已向派系金库存入 {0}。 +cmd.economy.withdrawn = 已从派系金库取出 {0}。 +cmd.economy.transferred = 已向 {1} 转账 {0}。 +cmd.economy.insufficient = 派系金库资金不足。 +cmd.economy.invalid_amount = 无效金额: {0} +cmd.economy.economy_disabled = 经济系统已禁用。 +cmd.economy.balance_no_permission = 你没有权限查看余额。 +cmd.economy.treasury_unavailable = 金库不可用。 +cmd.economy.balance_display = {0} 的金库: {1} +cmd.economy.deposit_no_permission = 你没有权限存款。 +cmd.economy.deposit_faction_denied = 你没有派系存款权限。 +cmd.economy.deposit_usage = 用法: /f deposit <金额> +cmd.economy.amount_positive = 金额必须为正数。 +cmd.economy.wallet_insufficient = 你的钱不够。钱包余额: {0} +cmd.economy.wallet_withdraw_failed = 从钱包扣款失败。 +cmd.economy.deposit_failed = 向派系金库存款失败。资金已退还。 +cmd.economy.withdraw_no_permission = 你没有权限取款。 +cmd.economy.withdraw_faction_denied = 你没有派系取款权限。 +cmd.economy.withdraw_usage = 用法: /f withdraw <金额> +cmd.economy.withdraw_limit_denied = 取款被拒: {0} +cmd.economy.wallet_deposit_failed = 警告: 向你的钱包存款失败。请联系管理员。 +cmd.economy.withdraw_limit_exceeded = 取款被拒: 超出限额。 +cmd.economy.withdraw_failed = 取款失败: {0} +cmd.economy.transfer_no_permission = 你没有权限转账。 +cmd.economy.transfer_faction_denied = 你没有派系转账权限。 +cmd.economy.transfer_usage = 用法: /f money transfer <派系> <金额> +cmd.economy.transfer_self = 无法向自己的派系转账。 +cmd.economy.transfer_limit_denied = 转账被拒: {0} +cmd.economy.transfer_limit_exceeded = 转账被拒: 超出限额。 +cmd.economy.transfer_failed = 转账失败: {0} +cmd.economy.log_no_permission = 你没有权限查看交易记录。 +cmd.economy.log_header = 交易记录(第 {0}/{1} 页) +cmd.economy.log_empty = 未找到交易记录。 +cmd.economy.money_help_header = 金库命令: +cmd.economy.money_help_balance = /f money balance [派系] - 查看余额 +cmd.economy.money_help_deposit = /f money deposit <金额> - 存入金库 +cmd.economy.money_help_withdraw = /f money withdraw <金额> - 从金库取出 +cmd.economy.money_help_transfer = /f money transfer <派系> <金额> - 派系间转账 +cmd.economy.money_help_log = /f money log [页码] [类型] - 查看交易历史 + +# ========== 保护 - 动作短语 ========== +protection.action.generic = 你不能这样做 +protection.action.build = 你不能建造或破坏方块 +protection.action.interact = 你不能与此互动 +protection.action.door = 你不能使用门 +protection.action.container = 你不能打开容器 +protection.action.bench = 你不能使用工作台 +protection.action.processing = 你不能使用加工站 +protection.action.seat = 你不能使用座位 +protection.action.light = 你不能切换灯光 +protection.action.teleporter = 你不能使用传送器 +protection.action.crate = 你不能使用板条箱 +protection.action.tame = 你不能驯服生物 +protection.action.npc = 你不能与 NPC 互动 +protection.action.mount = 你不能骑乘生物 +protection.action.pve = 你不能伤害生物 +protection.action.item_drop = 你不能丢弃物品 +protection.action.item_pickup = 你不能拾取物品 + +# ========== 保护 - 拒绝原因 ========== +protection.denied.safezone = {0}在 SafeZone 中。 +protection.denied.warzone = {0}在 WarZone 中。 +protection.denied.enemy_claim = {0}在敌方领地中。 +protection.denied.claimed = {0}在已占领的领地中。 +protection.denied.here = {0}在此处。 +protection.denied.zone = {0}在此区域中。 +protection.denied.faction_perm = {0}在此处。(派系权限: {1}) +protection.denied.ally_territory = {0}在此处。(盟友领地) +protection.denied.error = 保护错误 - 为安全起见,操作已被阻止。 + +# ========== 保护 - PvP ========== +protection.pvp.safezone = SafeZone 中禁止 PvP。 +protection.pvp.same_faction = 你不能攻击派系成员。 +protection.pvp.ally = 你不能攻击盟友。 +protection.pvp.spawn_protected = 该玩家有出生保护。 +protection.pvp.territory_disabled = 此领地中禁止 PvP。 +protection.pvp.generic = 你不能攻击此玩家。 + +# ========== 保护 - 实体伤害 ========== +protection.mob_damage_disabled = 此区域中怪物伤害已禁用。 +protection.pve_damage_disabled = 此区域中 PvE 伤害已禁用。 +protection.pve_territory_denied = 你不能在此领地中伤害生物。 + +# ========== 保护 - 战斗标记 ========== +protection.combat_tag_command = 战斗标记期间不能使用该命令。 + +# ========== 服务器公告 ========== +# 当发生重大派系事件时,这些消息会广播给所有在线玩家。 +# {0}, {1} = 动态值(派系名称、玩家名称) +server_announce.faction_created = {0} 创建了派系 {1}! +server_announce.faction_disbanded = 派系 {0} 已被解散! +server_announce.leadership_transfer = {0} 现在是 {1} 的领袖了! +server_announce.overclaim = {0} 强占了 {1} 的领地! +server_announce.war_declared = {0} 向 {1} 宣战了! +server_announce.alliance_formed = {0} 和 {1} 现在是盟友了! +server_announce.alliance_broken = {0} 和 {1} 不再是盟友了! + +# ========== 传送系统 ========== +teleport.cooldown_wait = 你必须等待 {0} 才能再次传送。 +teleport.warmup_start = 将在 {0} 秒后传送到派系据点... +teleport.combat_cancelled = 传送已取消 - 你正处于战斗中! +teleport.success_default = 已传送到派系据点! +teleport.no_home = 你的派系尚未设置据点。 +teleport.world_not_found = 未找到世界。 +teleport.failed = 传送失败。 +teleport.countdown = 将在 {0} 秒后传送... +teleport.countdown_one = 将在 1 秒后传送... +teleport.moved_cancelled = 传送已取消 - 你移动了! +teleport.damage_cancelled = 传送已取消 - 你受到了伤害! +teleport.mount_teleport_blocked = 骑乘状态下无法传送到该区域。 +teleport.mount_entry_blocked = 骑乘状态下无法进入此区域。 + +# ========== 聊天显示 ========== +chat.display.public = 公共 +chat.display.faction = 派系 +chat.display.ally = 盟友 diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang new file mode 100644 index 00000000..4212784a --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions 管理界面 - 简体中文翻译 +# 格式: key = value +# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions_admin." 前缀 + +# ========== 管理导航栏 ========== +nav.dashboard = 仪表盘 +nav.actions = 操作 +nav.factions = 派系 +nav.players = 玩家 +nav.economy = 经济 +nav.zones = 区域 +nav.config = 配置 +nav.backups = 备份 +nav.log = 日志 +nav.updates = 更新 +nav.help = 帮助 +nav.version = 版本 + +# ========== 通用管理标签 ========== +common.faction_not_found = 未找到派系 +common.no_faction = 无派系 +common.not_set = 未设置 +common.on = 开 +common.off = 关 +common.enable = 启用 +common.disable = 禁用 +common.none_paren = (无) +common.invalid_faction = 无效的派系。 +common.leader_prefix = 领袖: {0} +common.members_suffix = {0} 名成员 +common.claims_suffix = {0} 块领地 +common.factions_suffix = {0} 个派系 +common.players_suffix = {0} 名玩家 +common.chunks_suffix = {0} 个区块 +common.entries_suffix = {0} 条记录 +common.found_suffix = 找到 {0} 个 +common.power_format = {0}/{1} 力量 +common.raidable = 可被突袭 +common.protected = 受保护 +common.no_description = 尚未设置描述。 +common.officers_more = +{0} 更多 +common.custom_max = (自定义上限) +common.default_max = (默认上限) +common.now = 现在 +common.ago_suffix = {0}前 +common.just_now = 刚刚 +common.no_membership_history = 暂无加入历史 + +# ========== 管理仪表盘 ========== +dashboard.factions_prefix = 派系: {0} +dashboard.members_prefix = 总成员: {0} +dashboard.claims_prefix = 总领地: {0} + +# ========== 管理操作 ========== +actions.confirm_reset = 确认重置? +actions.confirm_trigger = 确认触发? +actions.kd_reset = 已重置 {0} 名玩家的 K/D。 +actions.kd_reset_failed = 重置 K/D 失败: {0} +actions.upkeep_unavailable = 维护费处理器不可用。 +actions.upkeep_triggered = 已触发维护费收取。 +actions.upkeep_failed = 维护费收取失败: {0} + +# ========== 管理解散 ========== +disband.faction_gone = 该派系已不存在。 +disband.success = 派系 '{0}' 已被解散。 +disband.failed = 解散失败: {0} +disband.no_leader = 派系没有领袖,无法解散。 + +# ========== 管理放弃所有领地 ========== +unclaim.removed = [Admin] 已移除 {1} 的 {0} 块领地。 +unclaim.no_claims = {0} 没有可移除的领地。 + +# ========== 管理派系列表 ========== +factions.home_not_set = 未设置 +factions.teleported = 已传送到 {0} 的据点。 +factions.no_home = 该派系未设置据点。 +factions.world_not_found = 未找到目标世界。 + +# ========== 管理派系信息 ========== +info.faction_gone = 该派系已不存在。 + +# ========== 管理派系成员 ========== +members.sort_role = 职位 +members.sort_online = 在线 +members.sort_name = 名称 +members.sort_power = 力量 +members.promoted = [Admin] 已将 {0} 晋升为 {1}。 +members.demoted = [Admin] 已将 {0} 降职为 {1}。 +members.kicked = [Admin] 已将 {0} 踢出派系。 + +# ========== 管理派系关系 ========== +relations.allies_header = 盟友 ({0}) +relations.enemies_header = 敌人 ({0}) +relations.no_allies = 没有盟友。 +relations.no_enemies = 没有敌人。 +relations.neutral_count = {0} 个中立派系 +relations.since_today = 起始: 今天 +relations.since_one_day = 起始: 1 天前 +relations.since_days = 起始: {0} 天前 +relations.set_ally = [Admin] 已与 {0} 设置互相结盟状态。 +relations.set_enemy = 已与 {0} 设置互相敌对状态。 +relations.set_neutral = [Admin] 已与 {0} 设置互相中立状态。 + +# ========== 管理派系设置 ========== +settings.locked = 此设置已被服务器配置锁定。 +settings.perm_toggled = 已将 {0} 设为 {1}。 +settings.color_changed = 派系颜色已设为 {0}。 +settings.recruitment_set = 招募方式已设为 {0}。 +settings.no_home = [Admin] 该派系未设置据点。 +settings.home_cleared = 已清除 {0} 的派系据点。 + +# ========== 排序下拉标签 ========== +sort.power = 力量 +sort.name = 名称 +sort.members = 成员 +sort.balance = 余额 + +# ========== 管理玩家 ========== +players.sort_last_online = 最后在线 +players.sort_faction = 派系 +players.sort_online = 在线 +players.not_online = 该玩家不在线。 +players.world_not_found = 未找到目标世界。 +players.teleported = [Admin] 已传送到 {0}。 + +# ========== 管理玩家信息 ========== +playerinfo.disband_faction = 解散派系 +playerinfo.kick_leader = 踢出领袖 +playerinfo.enter_valid_number = 请输入有效的数字。 +playerinfo.enter_valid_positive = 请输入有效的正数。 +playerinfo.faction_gone = 该派系已不存在。 +playerinfo.kd_reset = 已重置 {0} 的 K/D。 +playerinfo.kicked_success = 已将 {0} 从 {1} 踢出。 +playerinfo.kicked_leader = 已踢出领袖 {0}。领导权已转交给 {1}。 +playerinfo.disbanded_kick = [Admin] 派系 '{0}' 已解散(最后一名成员被踢出)。 + +# ========== 管理经济 ========== +economy.no_data = 没有拥有经济数据的派系。 +economy.amount_zero = 金额不能为零。 +economy.enter_amount = 请输入金额。 +economy.invalid_number = 无效的数字: {0} +economy.error = 发生错误。 +economy.balance_negative = 余额不能为负数。 +economy.failed = 失败: {0} +economy.bulk_complete = 批量调整完成: 向 {2} 个派系 {0} {1}。 +economy.bulk_failures = ({0} 个失败) + +# ========== 管理区域 ========== +zones.not_found = 未找到区域。 +zones.invalid_id = 无效的区域 ID。 +zones.deleted = 区域 {0} 已删除。 +zones.delete_failed = 删除区域失败: {0} +zones.no_chunks = 无区块 +zones.chunks_suffix = {0}({1} 个区块) + +# ========== 区域创建向导 ========== +wizard.enter_name = 请输入区域名称。 +wizard.name_too_short = 区域名称至少需要 {0} 个字符。 +wizard.name_too_long = 区域名称不能超过 {0} 个字符。 +wizard.name_taken = 已有同名区域存在。 +wizard.radius_range = 半径必须在 1 到 {0} 之间。 +wizard.create_failed = 无法创建区域: {0} +wizard.created_not_found = 区域已创建但无法找到。 +wizard.created = 已创建 {0} '{1}'! +wizard.chunk_claimed = 已占领区块 ({0}, {1})。 +wizard.chunk_failed = 无法占领当前区块: {0} +wizard.radius_claimed = 已在 {2} 的 {1} 半径内占领了 {0} 个区块。 +wizard.radius_no_claims = 无法占领任何区块(区域可能已被占用)。 +wizard.no_claims = 区域已创建,无领地。 +wizard.chunks_preview = 约 {0} 个区块 + +# ========== 区域重命名 ========== +zone_rename.zone_gone = 该区域已不存在。 +zone_rename.enter_name = 请输入区域名称。 +zone_rename.too_short = 区域名称至少需要 {0} 个字符。 +zone_rename.too_long = 区域名称不能超过 {0} 个字符。 +zone_rename.same_name = 这已经是此区域的名称了。 +zone_rename.renamed = [Admin] 区域已从 {0} 重命名为 {1}! +zone_rename.name_taken = 已有同名区域存在。 +zone_rename.invalid_name = 无效的区域名称。 +zone_rename.rename_failed = 重命名区域失败: {0} + +# ========== 区域类型更改 ========== +zone_type.zone_gone = 该区域已不存在。 +zone_type.changed = [Admin] 已将 {0} 从 {1} 更改为 {2}({3})。 +zone_type.failed = 更改区域类型失败: {0} +zone_type.flags_reset = 标志已重置 +zone_type.flags_kept = 标志已保留 + +# ========== 区域集成标志 ========== +zone_int.zone_not_found = 未找到区域 +zone_int.no_plugin = (无插件) +zone_int.default = (默认) +zone_int.custom = (自定义) + +# 集成标志界面标签 +gui.zint_cat_gravestones = 墓碑 +gui.zint_gravestones_desc = 开启时,非所有者可以拾取墓碑物品。所有者始终可以。 +gui.zint_cat_world_map = 世界地图 +gui.zint_world_map_desc = 覆盖此区域内玩家的地图隐藏设置。启用后,选择谁可以看到此区域内的玩家。 +gui.zint_visibility_label = 可见性级别: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = 恢复默认 +gui.zint_back_to_flags = 返回标志 +gui.zint_map_vis_faction = 仅派系 +gui.zint_map_vis_ally = 派系 + 盟友 +gui.zint_map_vis_all = 所有玩家 + +# ========== 活动日志 ========== +log.all_types = 所有类型 +log.no_logs = 没有匹配筛选条件的活动日志。 + +# ========== 版本页面 ========== +version.active = 已激活 +version.not_found = 未找到 +version.not_detected = 未检测到 +version.not_installed = 未安装 +version.active_version = 已激活 (v{0}) +version.active_compatible = 已激活(兼容) +version.active_claims_only = 已激活(仅领地) +version.installed_no_perm = 已安装(无权限提供者) +version.active_provider = 已激活({0}) + +# ========== 管理主页面 ========== +main.reload_hint = 使用 /f reload 重新加载配置。 +main.unclaim_hint = 使用 /f admin unclaim {0} 放弃所有 {1} 个区块。 + +# ========== 区域标志/设置 ========== +zflags.invalid_flag = 无效的标志。 +zflags.zone_not_found = 未找到区域。 +zflags.conflict = (冲突) +zflags.mixin = (混入) +zflags.reset_int = 将集成标志恢复为默认值。 +zflags.reset_all = 将所有标志恢复为默认值。 +zflags.reset_failed = 重置标志失败: {0} +zflags.back_to_settings = 返回设置 + +# 区域设置界面标签 +gui.zset_cat_combat = 战斗 +gui.zset_cat_damage = 伤害 +gui.zset_cat_death = 死亡 +gui.zset_cat_building = 建筑 +gui.zset_cat_interaction = 互动 +gui.zset_cat_transport = 传送 +gui.zset_cat_items = 物品 +gui.zset_cat_spawning = 怪物生成 +gui.zset_cat_mob_clear = 怪物清除 +gui.zset_children_hint = (子项仅在父项开启时生效) +gui.zset_reset_defaults = 恢复默认 +gui.zset_integration_flags = 集成标志 +gui.zset_back_to_zones = 返回区域 +gui.zset_chunks = {0} 个区块 + +# 区域标志显示名称 +gui.zflag_pvp_enabled = PvP 已启用 +gui.zflag_friendly_fire = 友军伤害 +gui.zflag_friendly_fire_faction = 派系伤害 +gui.zflag_friendly_fire_ally = 盟友伤害 +gui.zflag_projectile_damage = 投射物伤害 +gui.zflag_mob_damage = 承受怪物伤害 +gui.zflag_pve_damage = 对怪物造成伤害 +gui.zflag_fall_damage = 坠落伤害 +gui.zflag_environmental_damage = 环境伤害 +gui.zflag_explosion_damage = 爆炸伤害 +gui.zflag_fire_spread = 火焰蔓延 +gui.zflag_keep_inventory = 保留物品栏 +gui.zflag_power_loss = 力量损失 +gui.zflag_build_allowed = 允许建筑 +gui.zflag_block_place = 方块放置 +gui.zflag_hammer_use = 锤子使用 +gui.zflag_builder_tools_use = 建筑工具 +gui.zflag_block_interact = 方块互动 +gui.zflag_door_use = 门的使用 +gui.zflag_container_use = 容器使用 +gui.zflag_bench_use = 工作台使用 +gui.zflag_processing_use = 加工站使用 +gui.zflag_seat_use = 座位使用 +gui.zflag_mount_use = 坐骑使用 +gui.zflag_light_use = 灯光使用 +gui.zflag_npc_use = NPC 互动 +gui.zflag_crate_pickup = 板条箱拾取 +gui.zflag_crate_place = 板条箱放置 +gui.zflag_npc_tame = NPC 驯服 +gui.zflag_npc_interact = NPC 互动 +gui.zflag_teleporter_use = 传送器使用 +gui.zflag_portal_use = 传送门使用 +gui.zflag_mount_entry = 坐骑进入 +gui.zflag_item_drop = 物品丢弃 +gui.zflag_item_pickup = 自动拾取 +gui.zflag_item_pickup_manual = F键拾取 +gui.zflag_invincible_items = 物品无敌 +gui.zflag_mob_spawning = 怪物生成 +gui.zflag_hostile_mob_spawning = 敌对怪物 +gui.zflag_passive_mob_spawning = 被动怪物 +gui.zflag_neutral_mob_spawning = 中立怪物 +gui.zflag_npc_spawning = NPC 生成 +gui.zflag_mob_clear = 怪物清除 +gui.zflag_hostile_mob_clear = 清除敌对怪物 +gui.zflag_passive_mob_clear = 清除被动怪物 +gui.zflag_neutral_mob_clear = 清除中立怪物 +gui.zflag_gravestone_access = 他人拾取墓碑 +gui.zflag_show_on_map = 在地图上显示 +gui.zflag_essentials_homes = 据点使用 +gui.zflag_essentials_warps = 传送点使用 +gui.zflag_essentials_kits = 礼包领取 + +# ========== 区域属性 ========== +zprop.current_custom = 当前: "{0}"(自定义) +zprop.current_default = 当前: "{0}"(默认) +zprop.pvp_disabled = PvP 已禁用 +zprop.pvp_enabled = PvP 已启用 +zprop.name_empty = 名称不能为空。 +zprop.renamed = 区域已重命名为 "{0}"。 +zprop.name_taken = 已有同名区域存在。 +zprop.name_invalid = 无效的名称(最多 32 个字符)。 +zprop.rename_failed = 重命名失败: {0} +zprop.upper_empty = 上方标题不能为空。使用清除来重置。 +zprop.upper_set = 上方标题已设置。 +zprop.upper_reset = 上方标题已恢复默认。 +zprop.lower_empty = 下方标题不能为空。使用清除来重置。 +zprop.lower_set = 下方标题已设置。 +zprop.lower_reset = 下方标题已恢复默认。 + +# ========== 关系附加 ========== +relations.failed = 失败: {0} + +# ========== 成员附加 ========== +members.never = 从未 +members.teleported = [Admin] 已传送到 {0}。 + +# ========== 玩家信息附加 ========== +playerinfo.records = {0} 条记录 +playerinfo.joined_date = 加入: {0} +playerinfo.current = 当前 +playerinfo.left_date = 离开: {0} + +# ========== 区域地图 ========== +map.world_warning = 警告: 你在 '{0}' 中 - 区域在 '{1}' 中 +map.position = 你的位置: 区块 ({0}, {1}) +map.zone_gone = 该区域已不存在。 +map.claimed = 已为 {2} 占领区块 ({0}, {1})。 +map.claim_failed = 占领区块失败: {0} +map.unclaimed = 已从 {2} 放弃区块 ({0}, {1})。 +map.unclaim_failed = 放弃区块失败: {0} +map.chunk_belongs = 此区块属于 {0}。 +map.chunk_faction = 此区块已被一个派系占领。 +map.chunk_protected = 此区块在受保护的区域中。 +map.another_zone = 另一个区域 + +# ========== 界面标签键(用于 .ui 硬编码文本的本地化) ========== + +# 页面标题 +gui.title_dashboard = 管理仪表盘 +gui.title_main = 派系管理 +gui.title_actions = 管理: 服务器操作 +gui.title_factions = 派系管理 +gui.title_players = 玩家管理 +gui.title_economy = 管理: 服务器经济 +gui.title_zones = 区域管理 +gui.title_backups = 备份 +gui.title_config = 配置 +gui.title_help = 管理帮助 +gui.title_updates = 更新 +gui.title_version = 版本与集成 +gui.title_activity_log = 管理: 活动日志 +gui.title_player_info = 管理: 玩家信息 +gui.title_faction_info = 管理: 派系信息 +gui.title_faction_settings = 管理: 派系设置 +gui.title_faction_members = 管理: 成员 +gui.title_faction_relations = 管理: 关系 +gui.title_zone_map = 区域地图编辑器 +gui.title_zone_settings = 管理: 区域设置 +gui.title_zone_properties = 管理: 区域属性 +gui.title_bulk_economy = 批量金库调整 +gui.title_economy_adjust = 管理: 经济 + +# 仪表盘标签 +gui.dash_server_stats = 服务器统计 +gui.dash_factions = 派系 +gui.dash_total_members = 总成员 +gui.dash_total_claims = 总领地 +gui.dash_zones = 区域 +gui.dash_safe_war = 安全 / 战争 +gui.dash_total_power = 总力量 +gui.dash_avg_power = 平均力量/派系 +gui.dash_total_economy = 总经济 +gui.dash_wealthiest = 最富有 +gui.dash_avg_balance = 平均余额 +gui.dash_protection_bypass = 保护绕过: + +# 通用按钮和标签 +gui.search = 搜索: +gui.sort = 排序: +gui.prev = < 上一页 +gui.next = 下一页 > +gui.back = 返回 +gui.done = 完成 +gui.cancel = 取消 +gui.apply = 应用 +gui.set = 设置 +gui.reset = 重置 +gui.coming_soon = 即将推出 +gui.zones_btn = 区域 +gui.reload_btn = 重新加载 +gui.all = 全部 +gui.safe = 安全 +gui.war = 战争 +gui.create_zone = + 创建 + +# 操作页面标签 +gui.act_combat_stats = 战斗统计 +gui.act_combat_desc = 重置服务器上所有玩家的击杀和死亡数据。此操作不可撤销。 +gui.act_reset_kd = 重置所有 K/D +gui.act_economy = 经济 +gui.act_economy_desc = 一次性向所有派系金库添加或移除资金。 +gui.act_bulk_adjust = 批量增减 +gui.act_upkeep_collection = 维护费收取 +gui.act_upkeep_desc = 立即手动触发所有派系的维护费收取,无论定时计划如何。 +gui.act_trigger_upkeep = 触发维护费 + +# 占位页面标签 +gui.backup_heading = 备份管理 +gui.backup_desc1 = 创建、恢复和管理派系数据备份。 +gui.backup_desc2 = 自动备份保存在 data/backups 文件夹中。 +gui.config_heading = 配置编辑器 +gui.config_desc1 = 直接从界面配置 HyperFactions 设置。 +gui.config_desc2 = 目前请使用 /f reload 重新加载配置更改。 +gui.help_heading = 管理文档 +gui.help_desc1 = 查看管理文档和命令参考。 +gui.help_desc2 = 如需帮助,请访问 HyperFactions 维基。 +gui.updates_heading = 更新中心 +gui.updates_desc1 = 检查新版本和查看更新日志。 +gui.updates_desc2 = 访问 HyperFactions 页面获取最新更新。 + +# 版本页面标签 +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = 权限 +gui.ver_placeholders = 占位符 +gui.ver_economy_section = 经济 +gui.ver_protection = 保护 +gui.ver_disabled = 已禁用 + +# 列标题(跨页面共享) +gui.col_faction = 派系 +gui.col_balance = 余额 +gui.col_members = 成员 +gui.col_actions = 操作 +gui.col_time = 时间 +gui.col_type = 类型 +gui.col_message = 消息 + +# 经济页面标签 +gui.econ_total_balance = 总余额 +gui.econ_factions = 派系 +gui.econ_avg_balance = 平均余额 +gui.econ_in_grace = 宽限期中 +gui.econ_collected = 已收取 (24h) +gui.econ_next_collection = 下次收取 +gui.econ_no_data = 没有拥有经济数据的派系。 + +# 活动日志标签 +gui.log_type = 类型: +gui.log_time = 时间: +gui.log_player = 玩家: +gui.log_no_logs = 没有匹配筛选条件的活动日志。 + +# 玩家信息标签 +gui.plr_first_joined = 首次加入: +gui.plr_last_online = 最后在线: +gui.plr_uuid = UUID: +gui.plr_faction = 派系: +gui.plr_role = 职位: +gui.plr_view_faction = 查看派系 +gui.plr_power = 力量 +gui.plr_max_power = 最大力量 +gui.plr_set_power = 设置 +gui.plr_reset_power = 重置 +gui.plr_set_max = 设置 +gui.plr_reset_max = 重置 +gui.plr_no_power_loss = 无力量损失 +gui.plr_no_claim_decay = 无领地衰减 +gui.plr_kills = 击杀 +gui.plr_deaths = 死亡 +gui.plr_kdr = K/D 比率 +gui.plr_reset_kd = 重置 K/D +gui.plr_kick = 踢出 +gui.plr_membership_history = 加入历史 +gui.plr_no_faction_label = 不在任何派系中 +gui.plr_power_management = 力量管理 +gui.plr_combat_stats = 战斗统计 +gui.plr_bypass_flags = 绕过标志 +gui.plr_admin_controls = 管理控制 +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = 最大: +gui.plr_view = 查看 +gui.plr_kick_from_faction = 从派系踢出 +gui.plr_set_max_btn = 设置上限 +gui.plr_combat = 战斗 +gui.plr_reason_active = 活跃 +gui.plr_reason_left = 已离开 +gui.plr_reason_kicked = 被踢出 +gui.plr_reason_disbanded = 已解散 + +# 成员条目标签 +gui.mem_label_power = 力量: +gui.mem_label_joined = 加入时间: +gui.mem_label_last_death = 上次死亡: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = 信息 +gui.mem_btn_teleport = 传送 +gui.mem_btn_promote = 晋升 +gui.mem_btn_demote = 降职 +gui.mem_btn_kick = 踢出 +gui.econ_not_enabled = 经济系统未启用。 +gui.info_more = +{0} 更多 +gui.log_time_1h = 1小时 +gui.log_time_24h = 24小时 +gui.log_time_7d = 7天 +gui.log_time_all = 全部 +gui.shape_circular = 圆形 +gui.shape_square = 方形 +gui.nav_title = 管理面板 +gui.econ_btn_adjust = 调整 +gui.econ_btn_info = 信息 + +# 派系信息标签 +gui.fac_description = 描述 +gui.fac_power = 力量 +gui.fac_claims = 领地 +gui.fac_members = 成员 +gui.fac_recruitment = 招募 +gui.fac_founded = 创建时间 +gui.fac_allies = 盟友 +gui.fac_enemies = 敌人 +gui.fac_raidable = 突袭状态 +gui.fac_treasury = 金库 +gui.fac_leader = 领袖 +gui.fac_officers = 官员 +gui.fac_view_members = 查看成员 +gui.fac_view_relations = 查看关系 +gui.fac_view_settings = 设置 +gui.fac_disband = 解散派系 +gui.fac_power_management = 力量管理 +gui.fac_reset_all_power = 重置所有力量 +gui.fac_econ_adjust = 调整余额 +gui.fac_econ_view_log = 查看交易记录 +gui.fac_current_max = 当前 / 最大 +gui.fac_claimed_max = 已占 / 最大 +gui.fac_relations = 关系 +gui.fac_ally_enemy = 盟友 / 敌人 +gui.fac_status = 状态 +gui.fac_info = 信息 +gui.fac_treasury_balance = 金库余额 +gui.fac_leadership = 领导层 +gui.fac_leader_label = 领袖: +gui.fac_officers_label = 官员: +gui.fac_econ_mgmt = 经济管理 +gui.fac_danger_zone = 危险区域 +gui.fac_view_treasury = 查看金库 + +# 派系设置标签 +gui.set_editing = 编辑: +gui.set_general = 常规设置 +gui.set_name = 名称 +gui.set_tag = 标签 +gui.set_description = 描述 +gui.set_recruitment = 招募 +gui.set_home = 据点位置 +gui.set_clear_home = 清除据点 +gui.set_disband_faction = 解散派系 +gui.set_faction_color = 派系颜色 +gui.set_admin_override = [管理员覆盖] +gui.set_territory_perms = 领地权限 +gui.set_mob_spawning = 怪物生成 +gui.set_faction_settings = 派系设置 +gui.set_name_label = 名称: +gui.set_tag_label = 标签: +gui.set_desc_label = 描述: +gui.set_edit = 编辑 +gui.set_status_label = 状态: +gui.set_location_label = 位置: +gui.set_danger_zone = 危险区域 +gui.set_irreversible = 此操作不可撤销。 +gui.set_lock_hint = 某些选项可能被服务器锁定,不接受更改。 +gui.set_appearance = 外观 +gui.set_color_label = 颜色: +gui.set_mob_sub = (关闭主开关时子项禁用) +gui.set_back_to_info = 返回信息 +gui.set_col_out = 外人 +gui.set_col_ally = 盟友 +gui.set_col_mem = 成员 +gui.set_col_off = 官员 +gui.set_cat_building = 建筑 +gui.set_cat_interaction = 互动 +gui.set_cat_interact_sub = (关闭"全部"时子项禁用) +gui.set_cat_other = 其他 +gui.set_perm_break = 破坏 +gui.set_perm_place = 放置 +gui.set_perm_all = 全部 +gui.set_perm_door = 门 +gui.set_perm_chest = 箱子 +gui.set_perm_bench = 工作台 +gui.set_perm_processing = 加工站 +gui.set_perm_seat = 座位 +gui.set_perm_transport = 传送 +gui.set_perm_crate_use = 板条箱使用 +gui.set_perm_npc_tame = NPC 驯服 +gui.set_perm_pve_damage = PvE 伤害 +gui.set_perm_mob_spawning = 怪物生成 +gui.set_perm_hostile = 敌对怪物 +gui.set_perm_passive = 被动怪物 +gui.set_perm_neutral = 中立怪物 +gui.set_perm_pvp = 领地内 PvP +gui.set_perm_officers_edit = 官员可编辑 + +# 派系关系标签 +gui.rel_subtitle = 管理派系关系(绕过审批) +gui.rel_set_new = 设置新关系 +gui.rel_btn_ally = 结盟 +gui.rel_btn_neutral = 中立 +gui.rel_btn_enemy = 敌对 + +# 区域页面标签 +gui.zone_sort_name = 名称 +gui.zone_sort_type = 类型 +gui.zone_sort_chunks = 区块 +gui.zone_sort_world = 世界 +gui.zone_count_format = {0} 个{1}区域({2} 个区块) + +# 区域地图标签 +gui.map_zone_chunk = 区域区块 +gui.map_empty = 空白 +gui.map_other_zone = 其他区域 +gui.map_faction_claim = 派系领地 +gui.map_protected = 受保护 +gui.map_your_pos = 你的位置 +gui.map_click_hint = 点击以占领/放弃区块 +gui.map_legend_zone_safe = 此区域(安全) +gui.map_legend_zone_war = 此区域(战争) +gui.map_legend_other_safe = 其他 SafeZone +gui.map_legend_other_war = 其他 WarZone +gui.map_legend_faction = 派系领地 +gui.map_legend_unclaimed = 未占领 +gui.map_legend_you_here = 你在这里 +gui.map_action_hint = 左键: 为区域占领 | 右键: 从区域放弃 +gui.map_done = 完成 + +# 区域属性标签 +gui.zprop_general = 常规 +gui.zprop_zone_name = 区域名称 +gui.zprop_zone_type = 区域类型 +gui.zprop_change_type = 更改类型 +gui.zprop_notifications = 通知 +gui.zprop_show_entry = 显示进入通知 +gui.zprop_upper_title = 上方标题 +gui.zprop_upper_desc = 上方标题(区域名称上方的小字) +gui.zprop_lower_title = 下方标题 +gui.zprop_lower_desc = 下方标题(区域名称大字) +gui.zprop_edit_flags = 编辑标志 +gui.zprop_back_to_zones = 返回区域 +gui.save = 保存 +gui.clear = 清除 + +# 批量经济标签 +gui.bulk_header = 调整所有派系金库 +gui.bulk_factions_label = 派系: +gui.bulk_total_label = 总余额: +gui.bulk_amount_hint = 金额(正数为增加,负数为减少): +gui.bulk_hint = 这将应用于每个拥有金库的派系 +gui.bulk_warning_msg = 警告: 此操作影响所有派系,且不可撤销。 +gui.bulk_apply_all = 应用到全部 +gui.bulk_operation = 操作 +gui.bulk_add = 增加 +gui.bulk_remove = 减少 +gui.bulk_amount = 金额 +gui.bulk_warning = 这将影响所有派系的金库。 +gui.bulk_preview = 预览 + +# 经济调整标签 +gui.ecadj_header = 调整金库余额 +gui.ecadj_faction_label = 派系: +gui.ecadj_current_balance = 当前余额: +gui.ecadj_amount_hint = 金额(正数为增加,负数为扣除): +gui.ecadj_preview_hint = 输入数字以预览变化 +gui.ecadj_adjustment = 调整: +gui.ecadj_set_balance = 设置余额 +gui.ecadj_confirm = 确认 +/- +gui.ecadj_operation = 操作 +gui.ecadj_add = 增加 +gui.ecadj_remove = 减少 +gui.ecadj_set_to = 设为 +gui.ecadj_amount = 金额 +gui.ecadj_new_balance = 新余额: + +# 版本页面集成标签 +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale 原生 +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = 墓碑 +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = 金库 + +# 放弃所有领地确认弹窗标签 +gui.unclaim_title = 放弃所有领地 +gui.unclaim_confirm_msg1 = 你确定要放弃所有 +gui.unclaim_confirm_msg2 = 来自 +gui.unclaim_warning = 此操作不可撤销! +gui.unclaim_all = 放弃全部 + +# 区域重命名弹窗标签 +gui.zren_title = 重命名区域 +gui.zren_current = 当前: +gui.zren_new_name = 新名称: + +# 区域类型更改弹窗标签 +gui.ztype_title = 更改区域类型 +gui.ztype_zone_label = 区域: +gui.ztype_current = 当前: +gui.ztype_will_become = 将变为 +gui.ztype_new = 新类型: +gui.ztype_warning1 = 不同的区域类型有不同的默认标志值。 +gui.ztype_warning2 = 选择如何处理现有的标志设置: +gui.ztype_keep_desc = 保留自定义覆盖 +gui.ztype_keep_flags = 保留标志 +gui.ztype_reset_desc = 使用新类型的默认值 +gui.ztype_reset_flags = 重置标志 + +# 创建区域向导标签 +gui.czw_title = 创建区域 +gui.czw_back = < 返回 +gui.czw_create = 创建区域 +gui.czw_zone_type = 区域类型 +gui.czw_safe_desc = 受保护,无 PvP +gui.czw_war_desc = 战斗区,PvP 启用 +gui.czw_zone_name = 区域名称 +gui.czw_name_desc = 输入区域的唯一名称 +gui.czw_claim_method = 占领方式 +gui.czw_method_none_desc = 创建空区域 +gui.czw_method_none = 无领地 +gui.czw_method_single_desc = 你当前所在的区块 +gui.czw_method_single = 单个区块 +gui.czw_method_circle_desc = 圆形区域 +gui.czw_method_circle = 圆形半径 +gui.czw_method_square_desc = 方形区域 +gui.czw_method_square = 方形半径 +gui.czw_method_map_desc = 交互式区块编辑器 +gui.czw_method_map = 使用地图占领 +gui.czw_radius = 半径 +gui.czw_custom_radius = 自定义 (1-50): +gui.czw_flags = 标志 +gui.czw_flags_defaults_desc = 基于区域类型 +gui.czw_flags_defaults = 使用默认值 +gui.czw_flags_customize_desc = 创建后打开设置 +gui.czw_flags_customize = 自定义 + +# ========== 条目标签(派系/玩家/区域列表条目) ========== + +# 派系条目标签 +gui.fac_entry_power = 力量 +gui.fac_entry_claims = 领地 +gui.fac_entry_members = 成员 +gui.fac_entry_created = 创建时间: +gui.fac_entry_home = 据点: +gui.fac_entry_tp_home = 传送据点 +gui.fac_entry_view_info = 查看信息 +gui.fac_entry_members_btn = 成员 +gui.fac_entry_settings = 设置 +gui.fac_entry_unclaim_all = 放弃全部 +gui.fac_entry_disband = 解散 + +# 玩家条目标签 +gui.plr_entry_role = 职位: +gui.plr_entry_joined = 加入时间: +gui.plr_entry_last_online = 最后在线: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = 力量: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = 信息 +gui.plr_entry_teleport = 传送 +gui.plr_entry_na = N/A +gui.plr_entry_unknown = 未知 +gui.plr_entry_ago = {0}前 + +# 区域条目标签 +gui.zone_entry_world = 世界: +gui.zone_entry_chunks = 区块: +gui.zone_entry_bounds = 范围: +gui.zone_entry_created = 创建时间: +gui.zone_entry_edit_map = 编辑地图 +gui.zone_entry_flags = 标志 +gui.zone_entry_settings = 设置 +gui.zone_entry_delete = 删除 diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang new file mode 100644 index 00000000..7627addb --- /dev/null +++ b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - 简体中文翻译 +# 格式: key = value +# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions_gui." 前缀 + +# ========== 导航栏 ========== +nav.dashboard = 仪表盘 +nav.chat = 聊天 +nav.members = 成员 +nav.invites = 邀请 +nav.browser = 浏览 +nav.map = 地图 +nav.leaderboard = 排行榜 +nav.relations = 关系 +nav.treasury = 金库 +nav.settings = 设置 +nav.logs = 日志 +nav.help = 帮助 +nav.admin = 管理 +nav.create = 创建 + +# ========== 帮助分类名称 ========== +help.category.welcome = 欢迎 +help.category.your_faction = 你的派系 +help.category.power_land = 力量与领地 +help.category.diplomacy = 外交 +help.category.combat = 战斗与安全 +help.category.economy = 经济 +help.category.quick_ref = 快速参考 + +# ========== 管理帮助分类名称 ========== +help.category.admin_overview = 概览 +help.category.admin_factions = 派系 +help.category.admin_zones = 区域 +help.category.admin_power = 力量 +help.category.admin_economy = 经济 +help.category.admin_config = 配置 +help.category.admin_maintenance = 维护 +help.category.admin_reference = 参考 + +# ========== 主菜单 ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = 我的派系 +main_menu.section_get_started = 开始 +main_menu.section_territory = 领地 +main_menu.section_browse = 浏览 +main_menu.section_admin = 管理 +main_menu.claim_hint = 使用 /f claim 来占领领地。 + +# ========== 派系信息页面 ========== +faction_info.title = 派系信息 +faction_info.no_description = 尚未设置描述。 +faction_info.status_open = 开放 +faction_info.status_invite_only = 仅限邀请 +faction_info.status_raidable = 可被突袭 +faction_info.status_protected = 受保护 +faction_info.officers_more = +{0} 更多 +faction_info.power_header = 力量 +faction_info.claims_header = 领地 +faction_info.members_header = 成员 +faction_info.relations_header = 关系 +faction_info.status_header = 状态 +faction_info.treasury_header = 金库 +faction_info.current_max = 当前 / 最大 +faction_info.claimed_max = 已占 / 最大 +faction_info.ally_enemy = 盟友 / 敌人 +faction_info.faction_balance = 派系余额 +faction_info.leader_label = 领袖: +faction_info.officers_label = 官员: +faction_info.view_members_btn = 查看成员 +faction_info.relations_btn = 关系 +faction_info.back_btn = 返回 + +# ========== 重命名弹窗 ========== +rename.title = 重命名派系 +rename.current_label = 当前: +rename.new_name_label = 新名称: +rename.no_permission = 你没有权限重命名派系。 +rename.enter_name = 请输入派系名称。 +rename.too_short = 派系名称至少需要 {0} 个字符。 +rename.too_long = 派系名称不能超过 {0} 个字符。 +rename.same_name = 这已经是你派系的名称了。 +rename.name_taken = 已有同名派系存在。 +rename.success = 派系已从 {0} 重命名为 {1}! + +# ========== 描述弹窗 ========== +desc.title = 编辑描述 +desc.current_label = 当前: +desc.new_desc_label = 新描述: +desc.no_permission = 你没有权限编辑描述。 +desc.display_none = (无) +desc.cleared = 派系描述已清除。 +desc.updated = 派系描述已更新! + +# ========== 标签弹窗 ========== +tag.title = 编辑标签 +tag.current_label = 当前: +tag.instructions = 标签(1-5个字符,仅限字母和数字): +tag.help_text = 标签会显示在聊天和地图中 +tag.no_permission = 你没有权限编辑标签。 +tag.display_none = (无) +tag.cleared = 派系标签已清除。 +tag.too_short = 标签至少需要 {0} 个字符。 +tag.too_long = 标签不能超过 {0} 个字符。 +tag.invalid_format = 标签只能包含字母和数字。 +tag.same_tag = 这已经是你派系的标签了。 +tag.tag_taken = 已有同名标签的派系存在。 +tag.success = 派系标签已设置为 [{0}]! + +# ========== 仪表盘页面 ========== +dashboard.title = 派系仪表盘 +dashboard.power_label = 力量 +dashboard.land_label = 领地 +dashboard.members_label = 成员 +dashboard.online_label = 在线 +dashboard.allies_label = 盟友 +dashboard.enemies_label = 敌人 +dashboard.relations_label = 关系 +dashboard.ally_enemy_label = 盟友 / 敌人 +dashboard.status_label = 状态 +dashboard.invites_label = 邀请 +dashboard.sent_requests_label = 已发 / 请求 +dashboard.treasury_label = 金库 +dashboard.upkeep_label = 维护费 +dashboard.per_cycle = 每周期 +dashboard.your_wallet = 你的钱包 +dashboard.personal_balance = 个人余额 +dashboard.quick_actions = 快捷操作 +dashboard.teleport_label = 传送 +dashboard.territory_label = 领地 +dashboard.channel_label = 频道 +dashboard.membership_label = 成员身份 +dashboard.recent_activity = 近期活动 +dashboard.view_all = 查看全部 +dashboard.income_24h = 收入 (24h) +dashboard.deposits_transfers_in = 存入、转入 +dashboard.expenses_24h = 支出 (24h) +dashboard.withdrawals_transfers_out = 取出、转出 +dashboard.faction_gone = 你的派系已不存在。 +dashboard.available = {0} 可用 +dashboard.at_risk = 危险! +dashboard.online_count = {0} 在线 +dashboard.status_invite = 邀请 +dashboard.in_grace = 宽限期中 +dashboard.billable_chunks = {0} 个计费区块 +dashboard.btn_home = 据点 +dashboard.btn_set_home = 设置据点 +dashboard.btn_claim = 占领 +dashboard.chat_prefix = 聊天: {0} +dashboard.btn_leave = 离开 +dashboard.no_activity = 暂无近期活动。 +dashboard.time_now = 刚刚 +dashboard.time_minutes = {0}分钟前 +dashboard.time_hours = {0}小时前 +dashboard.time_days = {0}天前 +dashboard.no_home_hint = 你的派系尚未设置据点。请让官员设置一个。 +dashboard.chat_mode_set = 聊天模式: {0} +dashboard.claim_success = 已占领区块 ({0}, {1}) +dashboard.upkeep_in = {0} 后 + +# ========== 派系主页面 ========== +main.no_faction = 无派系 +main.joined = 你已加入派系! +main.join_failed = 加入派系失败: {0} +main.invite_declined = 邀请已拒绝。 +main.cooldown = 传送冷却中!剩余 {0} 秒。 +main.world_not_found = 无法传送 - 未找到世界。 +main.leave_failed = 离开失败: {0} + +# ========== 共享界面标签 ========== +common.faction_count = {0} 个派系 +common.leader_label = 领袖: {0} +common.sort_power = 力量 +common.sort_members = 成员 +common.page_format = {0}/{1} +common.own_faction = (你的) +common.search = 搜索: +common.sort = 排序: +common.prev = < 上一页 +common.next = 下一页 > +common.treasury_not_available = 金库不可用。 + +# ========== 成员页面 ========== +members.title = 成员 +members.search_label = 搜索: +members.sort_label = 排序: +members.prev_btn = < 上一页 +members.next_btn = 下一页 > +members.count = {0} 名成员 +members.sort_role = 职位 +members.sort_last_online = 最后在线 +members.just_now = 刚刚 +members.ago = {0}前 +members.never = 从未 +members.member_not_found = 未找到成员。 +members.promoted = 已将 {0} 晋升为 {1}。 +members.promote_failed = 晋升失败: {0} +members.demoted = 已将 {0} 降职为 {1}。 +members.demote_failed = 降职失败: {0} +members.kicked = 已将 {0} 踢出派系。 +members.kick_failed = 踢出失败: {0} +members.label_power = 力量: +members.label_joined = 加入时间: +members.label_last_death = 上次死亡: +members.btn_promote = 晋升 +members.btn_demote = 降职 +members.btn_kick = 踢出 +members.btn_make_leader = 设为领袖 +members.btn_profile = 个人资料 +members.self_label = (你) + +# ========== 浏览页面 ========== +browser.title = 浏览派系 +browser.search_label = 搜索: +browser.sort_label = 排序: +browser.prev_btn = < 上一页 +browser.next_btn = 下一页 > +browser.sort_name = 名称 +browser.invalid_faction = 无效的派系。 +browser.label_power = 力量 +browser.label_claims = 领地 +browser.label_members = 成员 +browser.label_recruitment = 招募方式: +browser.label_created = 创建时间: +browser.label_description = 描述: +browser.view_info_btn = 查看信息 +browser.label_leader = 领袖: +browser.no_description = 尚未设置描述 + +# ========== 排行榜页面 ========== +leaderboard.title = 派系排行榜 +leaderboard.rank_by = 排名依据: +leaderboard.col_rank = # +leaderboard.col_faction = 派系 +leaderboard.col_claims = 领地 +leaderboard.col_members = 成员 +leaderboard.prev_btn = < 上一页 +leaderboard.next_btn = 下一页 > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = 领地 +leaderboard.sort_balance = 余额 + +# ========== 玩家信息页面 ========== +playerinfo.title = 玩家信息 +playerinfo.first_joined_label = 首次加入: +playerinfo.last_online_label = 最后在线: +playerinfo.faction_label = 派系: +playerinfo.role_label = 职位: +playerinfo.joined_label_static = 加入时间: +playerinfo.not_in_faction = 不在任何派系中 +playerinfo.power_header = 力量 +playerinfo.current_max = 当前 / 最大 +playerinfo.combat_header = 战斗 +playerinfo.kills_deaths = 击杀 / 死亡 +playerinfo.kdr_header = K/D 比率 +playerinfo.membership_history = 加入历史 +playerinfo.view_faction_btn = 查看派系 +playerinfo.back_btn = 返回 +playerinfo.now = 当前 +playerinfo.history_count = {0} 条记录 +playerinfo.joined_label = 加入: {0} +playerinfo.current = 当前 +playerinfo.left_label = 离开: {0} +playerinfo.no_history = 暂无加入历史 +playerinfo.faction_gone = 该派系已不存在。 +playerinfo.reason_active = 活跃 +playerinfo.reason_left = 已离开 +playerinfo.reason_kicked = 被踢出 +playerinfo.reason_disbanded = 已解散 + +# ========== 关系页面 ========== +relations.title = 关系 +relations.tab_relations = 关系 +relations.tab_pending = 待处理 +relations.set_relation_btn = + 设置关系 +relations.prev_btn = < 上一页 +relations.next_btn = 下一页 > +relations.relation_count = {0} 个关系 +relations.request_count = {0} 个请求 +relations.type_ally = 盟友 +relations.type_enemy = 敌人 +relations.type_incoming = 收到的 +relations.type_outgoing = 发出的 +relations.incoming_request = 收到的请求 +relations.outgoing_request = 发出的请求 +relations.empty_relations = 暂无关系。 +relations.empty_relations_hint = 暂无关系。点击 + 设置关系 来添加盟友或敌人。 +relations.empty_pending = 暂无待处理的结盟请求。 +relations.today = 今天 +relations.one_day_ago = 1 天前 +relations.days_ago = {0} 天前 +relations.now_neutral = 现在与 {0} 处于中立关系。 +relations.now_enemies = 现在与 {0} 处于敌对关系! +relations.request_sent = 已向 {0} 发送结盟请求。 +relations.now_allied = 现在与 {0} 结为盟友! +relations.request_declined = 已拒绝来自 {0} 的结盟请求。 +relations.request_cancelled = 已取消发给 {0} 的结盟请求。 +relations.failed = 失败: {0} +relations.search_hint = 搜索要设置关系的派系 +relations.no_results = 未找到匹配 '{0}' 的派系 +relations.power_display = {0} 力量 +relations.member_count = {0} 名成员 +relations.label_members = 成员 +relations.label_power = 力量 +relations.label_since = 起始: +relations.label_claims = 领地: +relations.label_direction = 方向: +relations.btn_view = 查看 +relations.btn_neutral = 中立 +relations.btn_enemy = 敌对 +relations.btn_ally = 结盟 +relations.btn_accept = 接受 +relations.btn_decline = 拒绝 +relations.btn_cancel = 取消 + +# ========== 设置页面 ========== +settings.title = 派系设置 +settings.general = 常规 +settings.name_label = 名称: +settings.tag_label = 标签: +settings.desc_label = 描述: +settings.edit_btn = 编辑 +settings.recruitment = 招募 +settings.status_label = 状态: +settings.home_location = 据点位置 +settings.location_label = 位置: +settings.set_home_btn = 设置据点 +settings.teleport_btn = 传送 +settings.delete_btn = 删除 +settings.optional_features = 可选功能 +settings.configure_modules = 配置可选模块。 +settings.modules_btn = 模块 +settings.danger_zone = 危险区域 +settings.irreversible = 此操作不可撤销。 +settings.disband_btn = 解散派系 +settings.lock_hint = 某些选项可能被服务器锁定,不接受更改。 +settings.territory_permissions = 领地权限 +settings.col_out = 外人 +settings.col_ally = 盟友 +settings.col_mem = 成员 +settings.col_off = 官员 +settings.cat_building = 建筑 +settings.perm_break = 破坏 +settings.perm_place = 放置 +settings.cat_interaction = 互动 +settings.interaction_hint = (关闭"全部"时子项禁用) +settings.perm_all = 全部 +settings.perm_door = 门 +settings.perm_chest = 箱子 +settings.perm_bench = 工作台 +settings.perm_processing = 加工站 +settings.perm_seat = 座位 +settings.perm_transport = 传送 +settings.cat_other = 其他 +settings.perm_crate = 板条箱使用 +settings.perm_npc_tame = NPC 驯服 +settings.perm_pve = PvE 伤害 +settings.appearance = 外观 +settings.color_label = 颜色: +settings.mob_spawning = 怪物生成 +settings.mob_spawning_hint = (关闭主开关时子项禁用) +settings.mob_spawning_label = 怪物生成 +settings.hostile_mobs = 敌对怪物 +settings.passive_mobs = 被动怪物 +settings.neutral_mobs = 中立怪物 +settings.faction_settings = 派系设置 +settings.pvp_in_territory = 领地内 PvP +settings.officers_can_edit = 官员可编辑 +settings.leader_only = 仅限领袖 +settings.officers_only = 只有官员和领袖才能更改派系设置。 +settings.display_none = (无) +settings.home_not_set = 未设置 +settings.no_permission = 你没有权限更改设置。 +settings.only_leader_disband = 只有领袖才能解散派系。 +settings.perm_locked = 此设置已被服务器锁定。 +settings.no_perm_edit = 你没有权限编辑领地权限。 +settings.only_leader_officers = 只有领袖才能更改官员权限。 +settings.pvp_enabled = 已启用 +settings.pvp_disabled = 已禁用 +settings.not_in_territory = 你必须在派系领地内才能设置据点。 +settings.home_set = 派系据点已设置为你的当前位置! +settings.recruitment_set = 招募方式已设置为 {0}。 +settings.home_no_set = 你的派系尚未设置据点。 +settings.home_deleted = 派系据点已删除! + +# ========== 模块页面 ========== +modules.title = 派系模块 +modules.description = 增强你派系的可选功能 +modules.configure_btn = 配置 +modules.back_btn = < 返回设置 +modules.treasury_name = 金库 +modules.treasury_desc = 派系银行和经济系统 +modules.raids_name = 突袭 +modules.raids_desc = 计划中的派系战役 +modules.levels_name = 等级 +modules.levels_desc = 派系进度与经验 +modules.war_name = 战争 +modules.war_desc = 正式宣战 +modules.coming_soon = 即将推出 +modules.active = 已激活 +modules.view_treasury = 查看金库 +modules.unavailable = 不可用 +modules.no_economy = 未检测到经济插件 +modules.disabled = 已禁用 +modules.economy_not_available = 此服务器不支持经济功能 + +# ========== 金库页面 ========== +treasury.title = 派系金库 +treasury.balance_label = 余额 +treasury.income_24h = 收入 (24h) +treasury.deposits_transfers_in = 存入、转入 +treasury.expenses_24h = 支出 (24h) +treasury.withdrawals_transfers_out = 取出、转出 +treasury.maintenance = 维护费 +treasury.runway_label = 可维持: +treasury.add_funds = 存入资金 +treasury.deposit_btn = 存款 +treasury.take_funds = 取出资金 +treasury.withdraw_btn = 取款 +treasury.send_to_faction = 转给派系 +treasury.transfer_btn = 转账 +treasury.treasury_config = 金库配置 +treasury.settings_btn = 设置 +treasury.recent_transactions = 近期交易 +treasury.no_transactions = 暂无交易记录 +treasury.col_date = 日期 +treasury.col_type = 类型 +treasury.col_by = 操作人 +treasury.col_amount = 金额 +treasury.col_details = 详情 +treasury.pay_now_btn = 立即支付 +treasury.cost_7d = 7天: +treasury.cost_14d = 14天: +treasury.cost_30d = 30天: +treasury.settings_title = 金库设置 +treasury.officer_permissions = 官员权限 +treasury.allow_withdraw = 允许官员取款 +treasury.allow_transfer = 允许官员转账 +treasury.limits_section = 取款和转账限额 +treasury.max_per_withdrawal = 每次取款上限: +treasury.max_withdrawals_per = 每周期最大取款次数: +treasury.max_per_transfer = 每次转账上限: +treasury.max_transfers_per = 每周期最大转账次数: +treasury.limit_period = 限额周期(小时): +treasury.no_limit_hint = 设为 0 表示无限制 +treasury.upkeep_settings = 维护费设置 +treasury.auto_pay_upkeep = 自动从金库支付维护费 +treasury.back_btn = 返回 +treasury.upkeep_cost_format = {0} 每 {1} 小时 +treasury.upkeep_time_left = 剩余 {0} +treasury.wallet_label = 你的钱包: {0} +treasury.treasury_label = 金库余额: {0} +treasury.chunks_detail = {0} 免费 + {1} 计费区块 +treasury.cost_label = 费用: {0} +treasury.pending = 待处理 +treasury.auto_pay_on = 自动支付: 开 +treasury.auto_pay_off = 自动支付: 关 +treasury.runway_90_plus = 90 天以上 +treasury.runway_days = {0} 天 +treasury.runway_day = {0} 天 +treasury.runway_less_day = 不足 1 天 +treasury.runway_no_funds = 无资金 +treasury.grace_expires = 宽限期到期: {0} +treasury.missed_payments = 未付款次数: {0} +treasury.pay_to_clear = 支付 {0} 以解除宽限期 +treasury.system = 系统 +treasury.type_deposit = 存款 +treasury.type_withdrawal = 取款 +treasury.type_transfer_in = 转入 +treasury.type_transfer_out = 转出 +treasury.type_player_transfer = 玩家转账 +treasury.type_upkeep = 维护费 +treasury.type_tax = 税收 +treasury.type_war_cost = 战争费用 +treasury.type_raid_cost = 突袭费用 +treasury.type_spoils = 战利品 +treasury.type_admin = 管理员调整 +treasury.deposit_title = 存入金库 +treasury.withdraw_title = 从金库取出 +treasury.fee_label = 手续费 ({0}%) +treasury.confirm_deposit = 确认存款 +treasury.confirm_withdrawal = 确认取款 +treasury.from_wallet = 从钱包扣除 {0} +treasury.to_wallet = 存入钱包 {0} +treasury.enter_valid_amount = 请输入有效的正数金额。 +treasury.insufficient_wallet = 钱包余额不足。需要 {0},现有 {1}。 +treasury.wallet_withdraw_failed = 从钱包扣款失败。 +treasury.deposit_failed_returned = 存款失败。资金已退还。 +treasury.deposited = 已向金库存入 {0}。 +treasury.deposited_fee = 已向金库存入 {0}。(手续费: {1}) +treasury.no_withdraw_permission = 你没有权限取款。 +treasury.withdraw_denied = 取款被拒: {0} +treasury.insufficient_treasury = 金库资金不足。 +treasury.withdraw_limit = 取款超出限额。 +treasury.withdraw_failed = 取款失败: {0} +treasury.wallet_deposit_warn = 警告: 向你的钱包存款失败。请联系管理员。 +treasury.withdrew = 已从金库取出 {0}。 +treasury.withdrew_fee = 已从金库取出 {0}。(手续费: {1},实收: {2}) +treasury.search_hint = 搜索玩家或派系 +treasury.no_results = 未找到 '{0}' 的结果 +treasury.tag_player = [玩家] +treasury.tag_faction = [派系] +treasury.source_online = 在线 +treasury.source_offline = 离线 +treasury.source_player_db = Hytale 玩家 +treasury.no_transfer_permission = 你没有权限转账。 +treasury.transfer_denied = 转账被拒: {0} +treasury.invalid_target_faction = 无效的目标派系。 +treasury.target_faction_gone = 目标派系已不存在。 +treasury.transfer_failed = 转账失败: {0} +treasury.transfer_failed_returned = 转账失败。资金已退还。 +treasury.transferred = 已向 {1} 转账 {0}。 +treasury.invalid_target_player = 无效的目标玩家。 +treasury.player_transfer_failed = 向玩家钱包存款失败。转账已回滚。 +treasury.leader_only_perms = 只有领袖才能更改金库权限。 +treasury.leader_only_upkeep = 只有领袖才能更改维护费设置。 +treasury.invalid_limit = 限额字段中的数字无效。设为 0 表示无限制。 + +# ========== 确认页面 ========== +confirm.disband_title = 解散派系 +confirm.disband_prompt = 你确定要解散 +confirm.disband_warning = 此操作不可撤销! +confirm.leave_title = 离开派系 +confirm.leave_prompt = 你确定要离开 +confirm.leave_warning = 你将失去对派系领地的访问权。 +confirm.leader_leave_title = 以领袖身份离开 +confirm.leader_leave_prompt = 你正在离开 +confirm.transfer_title = 转让领导权 +confirm.transfer_prompt = 你确定要将领导权转让给 +confirm.transfer_warning = 你将变为官员。 +confirm.disband_not_leader = 只有领袖才能解散派系。 +confirm.disbanded = 派系 '{0}' 已被解散。 +confirm.disband_failed = 解散派系失败。 +confirm.succession_title = 领导权将转交给: +confirm.no_members_warning = 警告: 没有其他成员! +confirm.will_disband = 离开将永久解散该派系。 +confirm.not_in_faction = 你不在此派系中。 +confirm.not_leader_anymore = 你不再是领袖了。 +confirm.no_successor = 没有可用的继任者。请改用解散。 +confirm.transfer_failed = 转让领导权失败: {0} +confirm.leader_left = 领导权已转交给 {0}。你已离开 {1}。 +confirm.leave_failed = 离开派系失败: {0} +confirm.leader_cannot_leave = 领袖不能直接离开。请先转让领导权或解散派系。 +confirm.left_faction = 你已离开 {0}。 +confirm.faction_gone = 该派系已不存在。 +confirm.not_leader_transfer = 只有领袖才能转让领导权。 +confirm.leadership_transferred = 领导权已转交给 {0}。 + +# ========== 日志查看页面 ========== +logs.title = {0} - 活动日志 +logs.entry_count = {0} 条记录 +logs.filter_label = 筛选: +logs.col_time = 时间 +logs.col_type = 类型 +logs.col_message = 消息 +logs.prev_btn = < 上一页 +logs.next_btn = 下一页 > +logs.all_types = 所有类型 +logs.no_logs_type = 没有此类型的日志。 +logs.no_logs = 暂无活动日志。 +logs.time_just_now = 刚刚 +logs.time_minute = {0} 分钟前 +logs.time_minutes = {0} 分钟前 +logs.time_hour = {0} 小时前 +logs.time_hours = {0} 小时前 +logs.time_day = {0} 天前 +logs.time_days = {0} 天前 +logs.time_week = {0} 周前 +logs.time_weeks = {0} 周前 +logs.type_member_join = 加入 +logs.type_member_leave = 离开 +logs.type_member_kick = 踢出 +logs.type_member_promote = 晋升 +logs.type_member_demote = 降职 +logs.type_claim = 占领 +logs.type_unclaim = 放弃 +logs.type_overclaim = 强占 +logs.type_home_set = 设置据点 +logs.type_relation_ally = 盟友 +logs.type_relation_enemy = 敌人 +logs.type_relation_neutral = 中立 +logs.type_leader_transfer = 转让 +logs.type_settings_change = 设置 +logs.type_power_change = 力量 +logs.type_economy = 经济 +logs.type_admin_power = 管理员力量 + +# 日志消息模板(活动日志内容的国际化) +# 玩家操作 +logs.msg_faction_created = {0} 创建了派系 +logs.msg_member_joined = {0} 加入了派系 +logs.msg_member_left = {0} 离开了派系 +logs.msg_member_kicked = {0} 被踢出 +logs.msg_member_promoted = {0} 被晋升为 {1} +logs.msg_member_demoted = {0} 被降职为 {1} +logs.msg_leader_transferred = 领导权已转交给 {0} +logs.msg_leader_left_transfer = {0} 离开了,{1} 成为新领袖 +logs.msg_relation_set = 将 {0} 设为 {1} +# 领地 +logs.msg_claimed = 在 {2} 占领了区块 {0}, {1} +logs.msg_unclaimed = 在 {2} 放弃了区块 {0}, {1} +logs.msg_overclaim_lost = 失去了位于 {0}, {1} 的区块,被 {2} 强占 +logs.msg_overclaim_taken = 强占了 {2} 位于 {0}, {1} 的区块 +logs.msg_all_unclaimed = 所有领地已放弃 +logs.msg_claim_removed_world = '{0}' 中的领地已移除(该世界不允许占领) +logs.msg_claims_lost_upkeep = 因维护费丢失了 {0} 块领地(错过 {1} 次付款) +logs.msg_claims_removed_inactive = 因不活跃({1} 天)移除了 {0} 块领地 +# 据点 +logs.msg_home_set = 据点已设置 +logs.msg_home_cleared = 据点已清除 +logs.msg_home_cleared_world = '{0}' 中的据点已清除(该世界不允许占领) +# 设置 +logs.msg_renamed = 从 '{0}' 重命名为 '{1}' +logs.msg_set_open = 派系设置为开放 +logs.msg_set_closed = 派系设置为仅限邀请 +logs.msg_desc_set = 描述已设置 +logs.msg_desc_cleared = 描述已清除 +logs.msg_color_changed = 颜色更改为 '{0}' +# 经济 +logs.msg_deposit = 存款: {0} (+{1}) +logs.msg_withdrawal = 取款: {0} (-{1}) +logs.msg_upkeep_paid = 维护费已支付: {0}({1} 个计费区块) +logs.msg_upkeep_grace_started = 维护费支付失败: 宽限期开始({0}小时) +logs.msg_upkeep_missed = 维护费未付(第 {0} 次),宽限期将在 {1} 后到期 +logs.msg_upkeep_manual = 手动支付维护费: {0}({1} 个计费区块,宽限期已解除) +# 管理员力量 +logs.msg_admin_power_set = 管理员将 {0} 的力量设为 {1}(原为 {2}) +logs.msg_admin_power_add = 管理员为 {1} 增加了 {0} 力量({2} -> {3}) +logs.msg_admin_power_remove = 管理员从 {1} 扣除了 {0} 力量({2} -> {3}) +logs.msg_admin_power_reset = 管理员重置了 {0} 的力量为 {1}(原为 {2}) +logs.msg_admin_power_adjusted = 管理员调整了 {0} 的力量 {1}({2} -> {3}) +logs.msg_admin_maxpower_set = 管理员将 {0} 的最大力量设为 {1}(原为 {2}) +logs.msg_admin_maxpower_reset = 管理员将 {0} 的最大力量重置为全局默认值({1}) +logs.msg_admin_powerloss_enabled = 管理员启用了 {0} 的力量损失 +logs.msg_admin_powerloss_disabled = 管理员禁用了 {0} 的力量损失 +logs.msg_admin_decay_enabled = 管理员为 {0} 启用了领地衰减豁免 +logs.msg_admin_decay_disabled = 管理员为 {0} 禁用了领地衰减豁免 +logs.msg_admin_kd_reset = 管理员重置了 {0} 的 K/D +logs.msg_admin_power_set_all = 管理员将所有 {0} 名成员的力量设为 {1} +logs.msg_admin_power_add_all = 管理员为所有 {1} 名成员增加了 {0} 力量 +logs.msg_admin_power_remove_all = 管理员从所有 {1} 名成员扣除了 {0} 力量 +logs.msg_admin_power_reset_all = 管理员重置了所有 {0} 名成员的力量 +logs.msg_admin_power_adjusted_all = 管理员调整了所有 {0} 名成员的力量 {1} +# 管理员派系操作 +logs.msg_admin_kicked = [Admin] {0} 被踢出 +logs.msg_admin_role_set = [Admin] {0} 的职位设为 {1} +logs.msg_admin_leader_kick = [Admin] 领导权从 {0} 转交给 {1}(管理员踢出) +logs.msg_admin_econ_added = 管理员增加: {0}(余额: {1}) +logs.msg_admin_econ_deducted = 管理员扣除: {0}(余额: {1}) +logs.msg_admin_econ_set = 管理员将余额设为 {0}(原为 {1}) +# 导入 +logs.msg_left_import = {0} 离开了(已导入到另一个派系) +logs.msg_leader_import_transfer = {0} 成为领袖(前领袖已导入到另一个派系) +logs.msg_imported_from = 派系从 {0} 导入 + +# ========== 聊天页面 ========== +chat.title = 派系聊天 +chat.tab_faction = 派系 +chat.tab_ally = 盟友 +chat.send_btn = 发送 +chat.placeholder = 输入消息... +chat.no_messages = 暂无消息。 +chat.no_ally_permission = 你没有权限使用盟友聊天。 +chat.no_permission = 没有权限。 +chat.faction_gone = 你的派系已不存在。 +chat.time_now = 刚刚 +chat.time_minutes = {0}分 +chat.time_hours = {0}时 + +# ========== 邀请页面 ========== +invites.title = 邀请 +invites.tab_outgoing = 发出的 +invites.tab_requests = 请求 +invites.prev_btn = < 上一页 +invites.next_btn = 下一页 > +invites.invite_count = {0} 个邀请 +invites.request_count = {0} 个请求 +invites.invited_by = 邀请人: {0} +invites.no_message = 无留言 +invites.expires = 到期: {0} +invites.type_outgoing = 发出的 +invites.type_request = 请求 +invites.invited_by_label = 邀请人: +invites.empty_outgoing = 没有发出的邀请。使用 /f invite <玩家> 邀请他人。 +invites.empty_requests = 没有加入请求。玩家可通过 /f request 申请加入。 +invites.invalid_player = 无效的玩家。 +invites.cancelled_invite = 已取消对 {0} 的邀请。 +invites.player_joined = {0} 已加入派系! +invites.faction_full = 派系已满员。无法接受请求。 +invites.add_failed = 将玩家加入派系失败。 +invites.request_expired = 请求未找到或已过期。 +invites.request_declined = 已拒绝 {0} 的加入请求。 +invites.time_seconds = {0}秒 +invites.time_minutes = {0}分 +invites.time_hours = {0}时 +invites.label_message = 留言: +invites.btn_cancel = 取消 +invites.btn_accept = 接受 +invites.btn_decline = 拒绝 + +# ========== 地图页面 ========== +map.title = 领地地图 +map.action_hint = 左键: 占领 | 右键: 放弃 +map.legend_your = 你的领地 +map.legend_ally = 盟友领地 +map.legend_enemy = 敌方领地 +map.legend_other = 其他派系 +map.legend_wilderness = 荒野 +map.legend_safe = 安全区 +map.legend_war = 战争区 +map.legend_you = 你在这里 +map.position = 你的位置: 区块 ({0}, {1}) +map.legend_protected = 受保护 +map.claim_stats = 领地: {0}/{1}(可用 {2}) +map.overclaimed = 被 {0} 强占了! +map.power_display = 力量: {0}/{1} +map.join_to_claim = 加入一个派系来占领领地 +map.claim_success = 已占领区块 ({0}, {1})! +map.claim_not_in_faction = 你必须在一个派系中才能占领领地。 +map.claim_not_officer = 只有官员和领袖才能占领领地。 +map.claim_already_yours = 你已经拥有此区块。 +map.claim_already_claimed = 此区块已被其他派系占领。 +map.claim_not_adjacent = 你只能占领与你领地相邻的区块。 +map.claim_max = 你已达到最大领地上限。 +map.claim_world_not_allowed = 此世界不允许占领领地。 +map.claim_orbisguard = 此区域受 OrbisGuard 保护。 +map.claim_failed = 占领区块失败。 +map.unclaim_success = 已放弃区块 ({0}, {1})。 +map.unclaim_not_in_faction = 你必须在一个派系中。 +map.unclaim_not_officer = 只有官员和领袖才能放弃领地。 +map.unclaim_not_claimed = 此区块未被占领。 +map.unclaim_not_yours = 此区块属于其他派系。 +map.unclaim_home = 无法放弃包含派系据点的区块。 +map.unclaim_failed = 放弃区块失败。 +map.overclaim_success = 成功强占敌方区块 ({0}, {1})! +map.overclaim_not_in_faction = 你必须在一个派系中。 +map.overclaim_not_officer = 只有官员和领袖才能强占领地。 +map.overclaim_already_yours = 你已经拥有此区块。 +map.overclaim_ally = 你不能强占盟友的领地。 +map.overclaim_has_power = 该派系有足够的力量保卫其领地。 +map.overclaim_max = 你已达到最大领地上限。 +map.overclaim_failed = 强占区块失败。 +# ========== 创建派系页面 ========== +create.title = 创建你的派系 +create.section_preview = 预览 +create.section_basic_info = 基本信息 +create.section_details = 详细信息 +create.name_prefix = 名称: +create.faction_name_label = 派系名称 * +create.tag_label = 标签(2-4个字符,留空自动生成) +create.desc_label = 描述(可选) +create.recruitment_label = 招募方式 +create.section_faction_color = 派系颜色 +create.section_combat = 战斗 +create.create_btn = 创建派系 +create.preview_name = 你的派系名称 +create.leader_prefix = 领袖: {0} +create.enter_name = 请输入派系名称。 +create.name_too_short = 派系名称至少需要 {0} 个字符。 +create.name_too_long = 派系名称不能超过 {0} 个字符。 +create.name_taken = 已有同名派系存在。 +create.tag_length = 派系标签必须为 {0}-{1} 个字符。 +create.tag_format = 派系标签只能包含字母和数字。 +create.desc_too_long = 描述不能超过 {0} 个字符。 +create.created = 派系 {0} 创建成功! +create.created_no_dashboard = 派系已创建,但无法打开仪表盘。 +create.invalid_name = 无效的派系名称。 +create.create_failed = 无法创建派系。 + +# ========== 新玩家页面 ========== +newplayer.browse_title = 浏览派系 +newplayer.invites_title = 邀请与请求 +newplayer.map_title = 领地地图 +newplayer.view_only_badge = 仅供查看模式 +newplayer.legend_label = 图例: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = 派系 +newplayer.legend_wilderness = 荒野 +newplayer.search_label = 搜索: +newplayer.sort_label = 排序: +newplayer.prev_btn = < 上一页 +newplayer.next_btn = 下一页 > +newplayer.pending_count = {0} 个待处理 +newplayer.received_header = 收到的邀请 ({0}) +newplayer.requests_header = 你的请求 ({0}) +newplayer.no_invites = 暂无邀请。浏览派系来找到一个吧! +newplayer.no_requests = 暂无待处理的请求。 +newplayer.invited_by = 邀请人: {0} +newplayer.member_count = {0} 名成员 +newplayer.power_count = {0} 力量 +newplayer.claim_count = {0} 块领地 +newplayer.awaiting_review = 等待审核 +newplayer.expires_in = {0} 小时后到期 +newplayer.time_just_now = 刚刚 +newplayer.time_minutes = {0} 分钟前 +newplayer.time_hours = {0} 小时前 +newplayer.time_days = {0} 天前 +newplayer.invalid_faction = 无效的派系。 +newplayer.invite_expired = 此邀请已过期或已被撤销。 +newplayer.faction_gone = 该派系已不存在。 +newplayer.joined = 你已加入 {0}! +newplayer.faction_full = 该派系已满员。 +newplayer.join_failed = 无法加入派系。 +newplayer.invite_declined = 邀请已拒绝。 +newplayer.request_cancelled = 已取消加入 {0} 的请求。 +newplayer.faction_count = {0} 个派系 +newplayer.browse_subtitle = 找到你的新家! +newplayer.sort_power = 力量 +newplayer.sort_name = 名称 +newplayer.sort_members = 成员 +newplayer.btn_accept = 接受 +newplayer.btn_pending = 待处理 +newplayer.btn_join = 加入 +newplayer.btn_request = 申请 +newplayer.invite_only_msg = 该派系仅限邀请加入。 +newplayer.welcome_hint = 欢迎!使用 /f 打开派系菜单。 +newplayer.faction_open_hint = 该派系是开放的!请直接点击加入。 +newplayer.already_requested = 你已经向该派系提交了待处理的请求。 +newplayer.has_invite_hint = 你已收到该派系的邀请!请点击接受。 +newplayer.request_sent = 已向 {0} 发送加入请求! +newplayer.officer_review = 一名官员将审核你的请求。 +newplayer.map_hint = 仅供查看 - 加入一个派系来占领领地! + +# 玩家设置 +nav.player_settings = 玩家 +player_settings.title = 玩家设置 +player_settings.language_section = 语言 +player_settings.auto_detect = 从客户端自动检测 +player_settings.auto_detect_desc = 使用你的游戏客户端语言设置 +player_settings.language_label = 语言 +player_settings.notifications_section = 通知 +player_settings.territory_alerts = 领地提醒 +player_settings.territory_alerts_desc = 进入/离开领地时显示通知 +player_settings.death_announcements = 死亡广播 +player_settings.death_announcements_desc = 接收派系成员死亡位置的公告 +player_settings.power_notifications = 力量变化 +player_settings.power_notifications_desc = 力量变化时显示消息 +player_settings.language_changed = 语言已更改为 {0} +player_settings.pref_enabled = {0} 已启用 +player_settings.pref_disabled = {0} 已禁用 + +# ========== 帮助页面 ========== +help.center_title = 帮助中心 +help.getting_started_title = 快速入门 +help.what_are_factions_title = 什么是派系? +help.what_are_factions_1 = 派系是由玩家创建的团体,大家一起合作 +help.what_are_factions_2 = 占领领地、建设基地并参与竞争。 +help.what_are_factions_bullet_1 = - 受保护的领地用于建设 +help.what_are_factions_bullet_2 = - 一起游玩的队友 +help.what_are_factions_bullet_3 = - 使用派系聊天和功能 +help.joining_title = 加入派系 +help.joining_desc = 有以下几种方式加入派系: +help.joining_bullet_1 = - 浏览 - 找到开放的派系并点击加入 +help.joining_bullet_2 = - 邀请 - 接受官员的邀请 +help.joining_bullet_3 = - 申请 - 向仅限邀请的派系提交申请 +help.creating_title = 创建派系 +help.creating_desc = 前往创建标签页来创建你自己的派系。 +help.creating_bullet_1 = - 邀请和管理成员 +help.creating_bullet_2 = - 占领和保护领地 +help.commands_title = 快捷命令 +help.cmd_f = /f - 打开派系菜单 +help.cmd_f_list = /f list - 列出所有派系 +help.cmd_f_join = /f join <名称> - 加入开放派系 +help.cmd_f_create = /f create <名称> - 创建新派系 +help.cmd_f_help = /f help - 完整命令列表 +help.tip = 提示: 浏览派系来找到适合你的团队! From 89b153d70e67e314e35f7426005ab9a503ba6e48 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:06 -0700 Subject: [PATCH 59/76] i18n: add Japanese (ja-JP) translations Complete Japanese translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/ja-JP/help/combat/death.md | 39 + .../Languages/ja-JP/help/combat/protection.md | 28 + .../ja-JP/help/combat/spawn_protection.md | 27 + .../Languages/ja-JP/help/combat/tagging.md | 29 + .../Languages/ja-JP/help/combat/zones.md | 29 + .../ja-JP/help/diplomacy/alliances.md | 45 + .../Languages/ja-JP/help/diplomacy/enemies.md | 47 + .../ja-JP/help/diplomacy/relations.md | 38 + .../Languages/ja-JP/help/economy/commands.md | 27 + .../Languages/ja-JP/help/economy/funds.md | 42 + .../Languages/ja-JP/help/economy/treasury.md | 26 + .../Languages/ja-JP/help/economy/upkeep.md | 37 + .../ja-JP/help/power_land/claiming.md | 50 + .../ja-JP/help/power_land/losing_territory.md | 50 + .../ja-JP/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../ja-JP/help/quick_ref/all_commands.md | 94 ++ .../ja-JP/help/welcome/getting_started.md | 38 + .../ja-JP/help/welcome/quick_tips.md | 44 + .../ja-JP/help/welcome/what_are_factions.md | 37 + .../ja-JP/help/your_faction/creating.md | 38 + .../ja-JP/help/your_faction/joining.md | 36 + .../ja-JP/help/your_faction/managing.md | 44 + .../ja-JP/help/your_faction/roles.md | 44 + .../Server/Languages/ja-JP/hyperfactions.lang | 453 +++++++++ .../Languages/ja-JP/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/ja-JP/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/death.md b/src/main/resources/Server/Languages/ja-JP/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md b/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md b/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md b/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md b/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md b/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md b/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md b/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang new file mode 100644 index 00000000..6c8d184d --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - 日本語翻訳 +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== 共通 ========== +common.no_permission = その操作を行う権限がありません。 +common.not_in_faction = 派閥に所属していません。 +common.already_in_faction = すでに派閥に所属しています。 +common.player_not_found = プレイヤーが見つかりません。 +common.faction_not_found = 派閥が見つかりません。 +common.player_not_online = そのプレイヤーはオンラインではありません。 +common.must_be_leader = リーダーのみがその操作を行えます。 +common.must_be_officer = 幹部またはリーダーのみがその操作を行えます。 +common.combat_tagged = 戦闘中はその操作を行えません。 +common.cancel = キャンセル +common.confirm = 確認 +common.save = 保存 +common.close = 閉じる +common.clear = クリア +common.back = 戻る +common.leave = 脱退 +common.transfer = 譲渡 +common.disband = 解散 +common.world_fallback = ワールド +common.yes = はい +common.no = いいえ +common.loading = 読み込み中... +common.online = オンライン +common.offline = オフライン +common.enabled = 有効 +common.disabled = 無効 +common.none = なし +common.page = ページ {0} / {1} +common.unknown = 不明 +common.error_generic = エラーが発生しました。もう一度お試しください。 +common.gui_fallback = GUIにアクセスできませんでした。コマンドは /f help をご利用ください。 +common.admin_prefix = [Admin] +common.location_error = 現在地を特定できませんでした。 +common.world_error = ワールドを特定できませんでした。 +common.invalid_id = 無効な派閥IDです。 +common.na = N/A + +# ========== コマンド - 作成 ========== +cmd.create.no_permission = 派閥を作成する権限がありません。 +cmd.create.usage = 使い方: /f create <名前> +cmd.create.success = 派閥「{0}」を作成しました! +cmd.create.already_in_named = すでに {0} に所属しています。 +cmd.create.use_leave_first = 新しい派閥を作成するには、まず /f leave で脱退してください。 +cmd.create.name_taken = その派閥名はすでに使用されています。 +cmd.create.name_too_short = 派閥名が短すぎます。 +cmd.create.name_too_long = 派閥名が長すぎます。 +cmd.create.failed = 派閥の作成に失敗しました。 + +# ========== コマンド - 解散 ========== +cmd.disband.no_permission = 派閥を解散する権限がありません。 +cmd.disband.not_leader = リーダーのみが派閥を解散できます。 +cmd.disband.confirm_prompt = 本当に派閥を解散しますか? +cmd.disband.confirm_instruction = {0}秒以内に /f disband --text をもう一度入力して確認してください。 +cmd.disband.success = 派閥が解散されました。 +cmd.disband.failed = 派閥の解散に失敗しました。 +cmd.disband.cancelled = 前回の確認がキャンセルされました。もう一度入力して解散を確認してください。 + +# ========== コマンド - 名前変更 ========== +cmd.rename.no_permission = 権限がありません。 +cmd.rename.not_leader = リーダーのみが派閥名を変更できます。 +cmd.rename.usage = 使い方: /f rename <名前> +cmd.rename.too_short = 名前が短すぎます(最小{0}文字)。 +cmd.rename.too_long = 名前が長すぎます(最大{0}文字)。 +cmd.rename.name_taken = その名前はすでに使用されています。 +cmd.rename.success = 派閥名を {0} に変更しました! +cmd.rename.broadcast = {0} が派閥名を {1} に変更しました + +# ========== コマンド - 説明 ========== +cmd.desc.no_permission = 権限がありません。 +cmd.desc.not_officer = 説明を設定するには幹部である必要があります。 +cmd.desc.set = 派閥の説明を設定しました! +cmd.desc.cleared = 派閥の説明をクリアしました。 + +# ========== コマンド - 公開 / 非公開 ========== +cmd.open.no_permission = 権限がありません。 +cmd.open.not_leader = リーダーのみがこの設定を変更できます。 +cmd.open.already_open = 派閥はすでに公開されています。 +cmd.open.success = 派閥が公開されました!誰でも /f join で参加できます。 +cmd.open.broadcast = {0} が派閥を公開参加に変更しました。 +cmd.close.no_permission = 権限がありません。 +cmd.close.not_leader = リーダーのみがこの設定を変更できます。 +cmd.close.already_closed = 派閥はすでに招待制です。 +cmd.close.success = 派閥が招待制になりました。 +cmd.close.broadcast = {0} が派閥を招待制に変更しました。 + +# ========== コマンド - カラー ========== +cmd.color.no_permission = 権限がありません。 +cmd.color.not_officer = カラーを変更するには幹部である必要があります。 +cmd.color.colors_disabled = 派閥カラーは無効になっています。 +cmd.color.usage = 使い方: /f color <コード|#hex> +cmd.color.usage_hint = 有効なコード: 0-9, a-f または #RRGGBB hex +cmd.color.invalid = 無効なカラーです。0-9, a-f, または #RRGGBB を使用してください。 +cmd.color.success = 派閥カラーを更新しました! + +# ========== コマンド - 領地確保 ========== +cmd.claim.no_permission = テリトリーを確保する権限がありません。 +cmd.claim.already_yours = このチャンクはすでに派閥の領地です。 +cmd.claim.cannot_claim_ally = 同盟のテリトリーは確保できません。 +cmd.claim.already_claimed_hint = このチャンクは確保済みです。相手が略奪可能な場合は /f overclaim を使用してください。 +cmd.claim.success = チャンク {0}, {1} を確保しました! +cmd.claim.not_officer = 領地を確保するには幹部である必要があります。 +cmd.claim.already_claimed = このチャンクはすでに確保されています。 +cmd.claim.max_claims = 派閥の最大領地数に達しました。パワーを増やしましょう! +cmd.claim.not_adjacent = 既存のテリトリーに隣接するチャンクのみ確保できます。 +cmd.claim.world_not_allowed = このワールドでは領地確保が許可されていません。 +cmd.claim.orbisguard = このエリアは OrbisGuard によって保護されています。 +cmd.claim.zone_protected = このチャンクは SafeZone または WarZone 内にあります。 +cmd.claim.insufficient_power = 派閥のパワーが不足しており、これ以上領地を確保できません。 +cmd.claim.failed = チャンクの確保に失敗しました。 + +# ========== コマンド - 招待 ========== +cmd.invite.no_permission = プレイヤーを招待する権限がありません。 +cmd.invite.not_officer = プレイヤーを招待するには幹部である必要があります。 +cmd.invite.usage = 使い方: /f invite <プレイヤー> +cmd.invite.player_not_found = プレイヤー「{0}」が見つからないかオフラインです。 +cmd.invite.target_in_faction = そのプレイヤーはすでに派閥に所属しています。 +cmd.invite.sent = {0} を派閥に招待しました。 +cmd.invite.received = {0} への参加招待を受け取りました! +cmd.invite.accept_hint = /f accept {0} と入力して参加してください。 + +# ========== コマンド - 承諾 / 参加 ========== +cmd.join.no_permission = 派閥に参加する権限がありません。 +cmd.join.already_in_named = すでに {0} に所属しています。 +cmd.join.use_leave_hint = 別の派閥に参加するには、まず /f leave で脱退してください。 +cmd.join.no_invites = 保留中の招待はありません。 +cmd.join.faction_not_found = 派閥「{0}」が見つかりません。 +cmd.join.not_invited = その派閥からの招待はありません。 +cmd.join.faction_gone = その派閥はもう存在しません。 +cmd.join.success = {0} に参加しました! +cmd.join.broadcast = {0} が派閥に参加しました! +cmd.join.faction_full = その派閥は満員です。 +cmd.join.failed = 派閥への参加に失敗しました。 + +# ========== コマンド - キック ========== +cmd.kick.no_permission = メンバーをキックする権限がありません。 +cmd.kick.usage = 使い方: /f kick <プレイヤー> +cmd.kick.not_in_your_faction = プレイヤー「{0}」はあなたの派閥のメンバーではありません。 +cmd.kick.success = {0} を派閥からキックしました。 +cmd.kick.broadcast = {0} が派閥からキックされました。 +cmd.kick.kicked = 派閥からキックされました。 +cmd.kick.cannot_kick_higher = そのプレイヤーをキックする権限がありません。 +cmd.kick.cannot_kick_leader = 派閥のリーダーをキックすることはできません。 +cmd.kick.failed = プレイヤーのキックに失敗しました。 + +# ========== コマンド - 脱退 ========== +cmd.leave.no_permission = 派閥を脱退する権限がありません。 +cmd.leave.confirm_prompt = 本当に派閥を脱退しますか? +cmd.leave.confirm_instruction = {0}秒以内に /f leave --text をもう一度入力して確認してください。 +cmd.leave.success = 派閥を脱退しました。 +cmd.leave.broadcast = {0} が派閥を脱退しました。 +cmd.leave.failed = 派閥の脱退に失敗しました。 +cmd.leave.cancelled = 前回の確認がキャンセルされました。もう一度入力して脱退を確認してください。 + +# ========== コマンド - 昇格 / 降格 / 譲渡 ========== +cmd.rank.promote_no_permission = メンバーを昇格する権限がありません。 +cmd.rank.promote_usage = 使い方: /f promote <プレイヤー> +cmd.rank.promoted = {0} を {1} に昇格しました! +cmd.rank.promote_broadcast = {0} が {1} に昇格しました! +cmd.rank.already_highest = これ以上昇格できません。リーダーを変更するには /f transfer を使用してください。 +cmd.rank.promote_failed = プレイヤーの昇格に失敗しました。 +cmd.rank.demote_no_permission = メンバーを降格する権限がありません。 +cmd.rank.demote_usage = 使い方: /f demote <プレイヤー> +cmd.rank.demoted = {0} を {1} に降格しました。 +cmd.rank.demote_broadcast = {0} が {1} に降格されました。 +cmd.rank.already_lowest = そのプレイヤーはすでにメンバーです。 +cmd.rank.demote_failed = プレイヤーの降格に失敗しました。 +cmd.rank.transfer_no_permission = リーダーシップを譲渡する権限がありません。 +cmd.rank.transfer_usage = 使い方: /f transfer <プレイヤー> +cmd.rank.player_not_in_faction = 派閥内にそのプレイヤーが見つかりません。 +cmd.rank.transfer_confirm = 本当に {0} にリーダーシップを譲渡しますか? +cmd.rank.transfer_confirm_instruction = {1}秒以内に /f transfer {0} --text をもう一度入力して確認してください。 +cmd.rank.transferred = {0} にリーダーシップを譲渡しました! +cmd.rank.transfer_broadcast = {0} が新しい派閥リーダーになりました! +cmd.rank.transfer_failed = リーダーシップの譲渡に失敗しました。 +cmd.rank.transfer_cancelled = 前回の確認がキャンセルされました。もう一度入力して譲渡を確認してください。 + +# ========== コマンド - 領地放棄 ========== +cmd.unclaim.no_permission = テリトリーを放棄する権限がありません。 +cmd.unclaim.success = チャンク {0}, {1} を放棄しました。 +cmd.unclaim.not_officer = 領地を放棄するには幹部である必要があります。 +cmd.unclaim.chunk_not_claimed = このチャンクは確保されていません。 +cmd.unclaim.not_your_claim = このチャンクは派閥の領地ではありません。 +cmd.unclaim.cannot_unclaim_home = 派閥ホームのあるチャンクは放棄できません。 +cmd.unclaim.would_disconnect = 放棄できません — テリトリーが分断されます。 +cmd.unclaim.failed = チャンクの放棄に失敗しました。 + +# ========== コマンド - 強制確保 ========== +cmd.overclaim.no_permission = テリトリーを強制確保する権限がありません。 +cmd.overclaim.success = 敵のテリトリーを強制確保しました! +cmd.overclaim.not_officer = 強制確保するには幹部である必要があります。 +cmd.overclaim.not_claimed = このチャンクは確保されていません。/f claim を使用してください。 +cmd.overclaim.own_chunk = このチャンクはすでに派閥の領地です。 +cmd.overclaim.ally = 同盟のテリトリーは強制確保できません。 +cmd.overclaim.target_has_power = この派閥はまだ十分なパワーを持っています。 +cmd.overclaim.failed = 強制確保に失敗しました。 + +# ========== コマンド - スタック ========== +cmd.stuck.no_permission = /f stuck を使用する権限がありません。 +cmd.stuck.not_stuck = スタックしていません - ここは荒野です。 +cmd.stuck.combat_tagged = 戦闘中は /f stuck を使用できません! +cmd.stuck.no_safe = 安全な場所が見つかりませんでした。 +cmd.stuck.teleporting = {0}秒後に安全な場所にテレポートします。動かないでください! + +# ========== コマンド - ホーム ========== +cmd.home.no_permission = 派閥ホームにテレポートする権限がありません。 +cmd.home.no_home = 派閥ホームが設定されていません。 +cmd.home.combat_tagged = 戦闘中はテレポートできません! +cmd.home.teleported = 派閥ホームにテレポートしました! + +# ========== コマンド - ホーム設定 ========== +cmd.sethome.no_permission = 派閥ホームを設定する権限がありません。 +cmd.sethome.world_not_allowed = このワールドではホームを設定できません。 +cmd.sethome.not_in_territory = 派閥のテリトリー内でのみホームを設定できます。 +cmd.sethome.set = 派閥ホームを設定しました! +cmd.sethome.broadcast = {0} が派閥ホームを設定しました。 +cmd.sethome.not_officer = ホームを設定するには幹部である必要があります。 +cmd.sethome.failed = ホームの設定に失敗しました。 + +# ========== コマンド - ホーム削除 ========== +cmd.delhome.no_permission = 派閥ホームを削除する権限がありません。 +cmd.delhome.no_home = 派閥ホームが設定されていません。 +cmd.delhome.deleted = 派閥ホームを削除しました! +cmd.delhome.broadcast = {0} が派閥ホームを削除しました。 +cmd.delhome.not_officer = ホームを削除するには幹部である必要があります。 +cmd.delhome.failed = ホームの削除に失敗しました。 + +# ========== コマンド - 関係(同盟/敵/中立/関係一覧) ========== +cmd.relation.ally_no_permission = 同盟を管理する権限がありません。 +cmd.relation.ally_usage = 使い方: /f ally <派閥> +cmd.relation.ally_sent = {0} に同盟リクエストを送信しました! +cmd.relation.ally_formed = {0} と同盟を結びました! +cmd.relation.already_ally = すでにその派閥と同盟を結んでいます。 +cmd.relation.ally_failed = 同盟リクエストの送信に失敗しました。 +cmd.relation.enemy_no_permission = 敵対宣言を行う権限がありません。 +cmd.relation.enemy_usage = 使い方: /f enemy <派閥> +cmd.relation.enemy_declared = {0} が敵になりました! +cmd.relation.already_enemy = すでにその派閥と敵対しています。 +cmd.relation.max_enemies = 敵の最大数に達しました。 +cmd.relation.enemy_failed = 敵対の設定に失敗しました。 +cmd.relation.neutral_no_permission = 中立関係を設定する権限がありません。 +cmd.relation.neutral_usage = 使い方: /f neutral <派閥> +cmd.relation.neutral_set = {0} と中立になりました。 +cmd.relation.already_neutral = すでにその派閥と中立です。 +cmd.relation.neutral_failed = 中立の設定に失敗しました。 +cmd.relation.cannot_self = 自分の派閥と同盟を結ぶことはできません。 +cmd.relation.max_allies = 同盟の最大数に達しました。 +cmd.relation.view_no_permission = 関係を表示する権限がありません。 +cmd.relation.header = === 派閥関係 === +cmd.relation.allies_count = 同盟 ({0}): +cmd.relation.enemies_count = 敵 ({0}): +cmd.relation.list_entry = - {0} + +# ========== コマンド - チャット ========== +cmd.chat.usage = 使い方: /f c [f|a|off] +cmd.chat.no_permission = そのチャットモードの権限がありません。 +cmd.chat.mode_set = チャットモードを {0} に設定しました + +# ========== コマンド - 招待管理 ========== +cmd.invites.not_officer = 招待を管理するには幹部である必要があります。 +cmd.invites.header = === 派閥招待 === +cmd.invites.no_pending = 保留中の招待やリクエストはありません。 +cmd.invites.outgoing = 送信済み招待: +cmd.invites.outgoing_entry = {0} ({1} が招待) +cmd.invites.requests = 参加リクエスト: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === あなたの招待 === +cmd.invites.no_invites = 保留中の招待はありません。 +cmd.invites.invite_entry = {0} - /f accept {1} で参加 + +# ========== コマンド - リクエスト ========== +cmd.request.no_permission = 派閥への参加リクエストを送信する権限がありません。 +cmd.request.already_in_named = すでに {0} に所属しています。 +cmd.request.use_leave_hint = 別の派閥に参加するには、まず /f leave で脱退してください。 +cmd.request.usage = 使い方: /f request <派閥> [メッセージ] +cmd.request.faction_open = その派閥は公開されています! /f accept {0} で直接参加できます。 +cmd.request.already_requested = すでにその派閥にリクエストを送信済みです。 +cmd.request.has_invite = その派閥から招待されています! /f accept {0} で参加してください。 +cmd.request.sent = {0} に参加リクエストを送信しました! +cmd.request.your_message = メッセージ: 「{0}」 +cmd.request.officer_review = 幹部がリクエストを確認します。 +cmd.request.officer_notify = {0} が派閥への参加をリクエストしました! +cmd.request.officer_review_hint = /f gui > 招待 で確認してください。 + +# ========== コマンド - 情報 ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = 派閥情報を表示する権限がありません。 +cmd.info.faction_not_found = 派閥「{0}」が見つかりません。 +cmd.info.not_in_faction_hint = 派閥に所属していません。/f info <派閥> を使用してください +cmd.info.leader = リーダー: {0} +cmd.info.members = メンバー: {0}/{1} +cmd.info.power = パワー: {0} +cmd.info.claims = 領地: {0} +cmd.info.raidable = 略奪可能! +cmd.info.allies = 同盟: {0} +cmd.info.enemies = 敵: {0} +cmd.info.they_consider = 相手からの評価: {0} +cmd.info.you_consider = こちらからの評価: {0} +cmd.info.members_no_permission = 派閥メンバーを表示する権限がありません。 +cmd.info.members_header = === {0} メンバー ({1}) === +cmd.info.member_online = [オンライン] +cmd.info.list_no_permission = 派閥一覧を表示する権限がありません。 +cmd.info.list_empty = 派閥はありません。 +cmd.info.list_header = === 派閥一覧 ({0}) === +cmd.info.list_entry = {0} - {1} メンバー, {2} パワー +cmd.info.list_entry_raidable = {0} - {1} メンバー, {2} パワー [略奪可能] +cmd.info.help_no_permission = ヘルプを表示する権限がありません。 +cmd.info.who_no_permission = プレイヤー情報を表示する権限がありません。 +cmd.info.who_faction = 派閥: {0} +cmd.info.who_role = 役職: {0} +cmd.info.who_joined = 参加日: {0} +cmd.info.who_faction_none = 派閥: なし +cmd.info.who_power = パワー: {0} +cmd.info.who_status = 状態: {0} +cmd.info.who_last_seen = 最終ログイン: {0} +cmd.info.map_no_permission = マップを表示する権限がありません。 +cmd.info.map_header = === テリトリーマップ === +cmd.info.map_legend = 凡例: +自分 /所有 /同盟 /敵 -荒野 +cmd.info.map_gui_hint = インタラクティブマップは /f gui をご利用ください + +# ========== コマンド - パワー ========== +cmd.power.personal = 個人パワー: {0}/{1} +cmd.power.faction = 派閥パワー: {0}/{1} +cmd.power.death_loss = 死亡時パワー減少: {0} +cmd.power.regen = 回復速度: {0}/時間 +cmd.power.no_permission = パワー情報を表示する権限がありません。 +cmd.power.header = {0} のパワー: +cmd.power.current = 現在: {0} + +# ========== コマンド - 経済 ========== +cmd.economy.balance = 残高: {0} +cmd.economy.deposited = {0} を派閥の資金庫に入金しました。 +cmd.economy.withdrawn = {0} を派閥の資金庫から出金しました。 +cmd.economy.transferred = {0} を {1} に送金しました。 +cmd.economy.insufficient = 派閥の資金庫に十分な資金がありません。 +cmd.economy.invalid_amount = 無効な金額: {0} +cmd.economy.economy_disabled = 経済機能は無効になっています。 +cmd.economy.balance_no_permission = 残高を表示する権限がありません。 +cmd.economy.treasury_unavailable = 資金庫は利用できません。 +cmd.economy.balance_display = {0} の資金庫: {1} +cmd.economy.deposit_no_permission = 入金する権限がありません。 +cmd.economy.deposit_faction_denied = 入金する派閥権限がありません。 +cmd.economy.deposit_usage = 使い方: /f deposit <金額> +cmd.economy.amount_positive = 金額は正の値である必要があります。 +cmd.economy.wallet_insufficient = 所持金が不足しています。ウォレット: {0} +cmd.economy.wallet_withdraw_failed = ウォレットからの引き出しに失敗しました。 +cmd.economy.deposit_failed = 派閥資金庫への入金に失敗しました。資金は返還されました。 +cmd.economy.withdraw_no_permission = 出金する権限がありません。 +cmd.economy.withdraw_faction_denied = 出金する派閥権限がありません。 +cmd.economy.withdraw_usage = 使い方: /f withdraw <金額> +cmd.economy.withdraw_limit_denied = 出金が拒否されました: {0} +cmd.economy.wallet_deposit_failed = 警告: ウォレットへの入金に失敗しました。管理者にお問い合わせください。 +cmd.economy.withdraw_limit_exceeded = 出金が拒否されました: 上限を超過しています。 +cmd.economy.withdraw_failed = 出金に失敗しました: {0} +cmd.economy.transfer_no_permission = 送金する権限がありません。 +cmd.economy.transfer_faction_denied = 送金する派閥権限がありません。 +cmd.economy.transfer_usage = 使い方: /f money transfer <派閥> <金額> +cmd.economy.transfer_self = 自分の派閥には送金できません。 +cmd.economy.transfer_limit_denied = 送金が拒否されました: {0} +cmd.economy.transfer_limit_exceeded = 送金が拒否されました: 上限を超過しています。 +cmd.economy.transfer_failed = 送金に失敗しました: {0} +cmd.economy.log_no_permission = 取引履歴を表示する権限がありません。 +cmd.economy.log_header = 取引履歴 (ページ {0}/{1}) +cmd.economy.log_empty = 取引が見つかりません。 +cmd.economy.money_help_header = 資金庫コマンド: +cmd.economy.money_help_balance = /f money balance [派閥] - 残高を確認 +cmd.economy.money_help_deposit = /f money deposit <金額> - 資金庫に入金 +cmd.economy.money_help_withdraw = /f money withdraw <金額> - 資金庫から出金 +cmd.economy.money_help_transfer = /f money transfer <派閥> <金額> - 派閥間で送金 +cmd.economy.money_help_log = /f money log [ページ] [種類] - 取引履歴を表示 + +# ========== 保護 - アクションフレーズ ========== +protection.action.generic = その操作はできません +protection.action.build = ブロックの設置や破壊はできません +protection.action.interact = それとインタラクトできません +protection.action.door = ドアを使用できません +protection.action.container = コンテナを開けません +protection.action.bench = 作業台を使用できません +protection.action.processing = 加工台を使用できません +protection.action.seat = 座席を使用できません +protection.action.light = 照明を切り替えできません +protection.action.teleporter = テレポーターを使用できません +protection.action.crate = クレートを使用できません +protection.action.tame = クリーチャーをテイムできません +protection.action.npc = NPCとインタラクトできません +protection.action.mount = クリーチャーに騎乗できません +protection.action.pve = クリーチャーにダメージを与えられません +protection.action.item_drop = アイテムをドロップできません +protection.action.item_pickup = アイテムを拾えません + +# ========== 保護 - 拒否理由 ========== +protection.denied.safezone = SafeZone では{0}。 +protection.denied.warzone = WarZone では{0}。 +protection.denied.enemy_claim = 敵のテリトリーでは{0}。 +protection.denied.claimed = 確保済みテリトリーでは{0}。 +protection.denied.here = ここでは{0}。 +protection.denied.zone = このゾーンでは{0}。 +protection.denied.faction_perm = ここでは{0}。(派閥権限: {1}) +protection.denied.ally_territory = ここでは{0}。(同盟テリトリー) +protection.denied.error = 保護エラー — 安全のため操作がブロックされました。 + +# ========== 保護 - PvP ========== +protection.pvp.safezone = SafeZone では PvP が無効です。 +protection.pvp.same_faction = 派閥メンバーを攻撃することはできません。 +protection.pvp.ally = 同盟を攻撃することはできません。 +protection.pvp.spawn_protected = そのプレイヤーはスポーン保護中です。 +protection.pvp.territory_disabled = このテリトリーでは PvP が無効です。 +protection.pvp.generic = このプレイヤーを攻撃することはできません。 + +# ========== 保護 - エンティティダメージ ========== +protection.mob_damage_disabled = このゾーンではモブダメージが無効です。 +protection.pve_damage_disabled = このゾーンでは PvE ダメージが無効です。 +protection.pve_territory_denied = このテリトリーではモブにダメージを与えられません。 + +# ========== 保護 - 戦闘タグ ========== +protection.combat_tag_command = 戦闘タグ中はそのコマンドを使用できません。 + +# ========== サーバーアナウンス ========== +# 重要な派閥イベント時にオンラインの全プレイヤーに配信されます。 +# {0}, {1} = 動的な値(派閥名、プレイヤー名) +server_announce.faction_created = {0} が派閥 {1} を設立しました! +server_announce.faction_disbanded = 派閥 {0} が解散しました! +server_announce.leadership_transfer = {0} が {1} の新しいリーダーになりました! +server_announce.overclaim = {0} が {1} のテリトリーを強制確保しました! +server_announce.war_declared = {0} が {1} に宣戦布告しました! +server_announce.alliance_formed = {0} と {1} が同盟を結びました! +server_announce.alliance_broken = {0} と {1} の同盟が解消されました! + +# ========== テレポートシステム ========== +teleport.cooldown_wait = テレポートするには {0} 待つ必要があります。 +teleport.warmup_start = {0}秒後に派閥ホームにテレポートします... +teleport.combat_cancelled = テレポートがキャンセルされました - 戦闘中です! +teleport.success_default = 派閥ホームにテレポートしました! +teleport.no_home = 派閥ホームが設定されていません。 +teleport.world_not_found = ワールドが見つかりません。 +teleport.failed = テレポートに失敗しました。 +teleport.countdown = {0}秒後にテレポートします... +teleport.countdown_one = 1秒後にテレポートします... +teleport.moved_cancelled = テレポートがキャンセルされました - 移動しました! +teleport.damage_cancelled = テレポートがキャンセルされました - ダメージを受けました! +teleport.mount_teleport_blocked = 騎乗中はそのゾーンにテレポートできません。 +teleport.mount_entry_blocked = 騎乗中はこのゾーンに入れません。 + +# ========== チャット表示 ========== +chat.display.public = 公開 +chat.display.faction = 派閥 +chat.display.ally = 同盟 diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang new file mode 100644 index 00000000..adf28344 --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - 日本語翻訳 +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== 管理者ナビゲーションバー ========== +nav.dashboard = ダッシュボード +nav.actions = アクション +nav.factions = 派閥 +nav.players = プレイヤー +nav.economy = 経済 +nav.zones = ゾーン +nav.config = 設定 +nav.backups = バックアップ +nav.log = ログ +nav.updates = アップデート +nav.help = ヘルプ +nav.version = バージョン + +# ========== 共通管理者ラベル ========== +common.faction_not_found = 派閥が見つかりません +common.no_faction = 派閥なし +common.not_set = 未設定 +common.on = オン +common.off = オフ +common.enable = 有効化 +common.disable = 無効化 +common.none_paren = (なし) +common.invalid_faction = 無効な派閥です。 +common.leader_prefix = リーダー: {0} +common.members_suffix = {0} メンバー +common.claims_suffix = {0} 領地 +common.factions_suffix = {0} 派閥 +common.players_suffix = {0} プレイヤー +common.chunks_suffix = {0} チャンク +common.entries_suffix = {0} 件 +common.found_suffix = {0} 件見つかりました +common.power_format = {0}/{1} パワー +common.raidable = 略奪可能 +common.protected = 保護中 +common.no_description = 説明が設定されていません。 +common.officers_more = 他{0}名 +common.custom_max = (カスタム最大値) +common.default_max = (デフォルト最大値) +common.now = 現在 +common.ago_suffix = {0}前 +common.just_now = たった今 +common.no_membership_history = 所属履歴はありません + +# ========== 管理者ダッシュボード ========== +dashboard.factions_prefix = 派閥: {0} +dashboard.members_prefix = 総メンバー: {0} +dashboard.claims_prefix = 総領地: {0} + +# ========== 管理者アクション ========== +actions.confirm_reset = リセットしますか? +actions.confirm_trigger = 実行しますか? +actions.kd_reset = {0} プレイヤーのK/Dをリセットしました。 +actions.kd_reset_failed = K/Dのリセットに失敗しました: {0} +actions.upkeep_unavailable = 維持費プロセッサーが利用できません。 +actions.upkeep_triggered = 維持費の徴収を実行しました。 +actions.upkeep_failed = 維持費の徴収に失敗しました: {0} + +# ========== 管理者 - 解散 ========== +disband.faction_gone = 派閥はもう存在しません。 +disband.success = 派閥「{0}」が解散されました。 +disband.failed = 解散に失敗しました: {0} +disband.no_leader = 派閥にリーダーがいないため、解散できません。 + +# ========== 管理者 - 全領地放棄 ========== +unclaim.removed = [Admin] {1} から {0} 件の領地を削除しました。 +unclaim.no_claims = {0} には削除する領地がありませんでした。 + +# ========== 管理者 - 派閥一覧 ========== +factions.home_not_set = 未設定 +factions.teleported = {0} のホームにテレポートしました。 +factions.no_home = 派閥ホームが設定されていません。 +factions.world_not_found = テレポート先のワールドが見つかりません。 + +# ========== 管理者 - 派閥情報 ========== +info.faction_gone = この派閥はもう存在しません。 + +# ========== 管理者 - 派閥メンバー ========== +members.sort_role = 役職 +members.sort_online = オンライン +members.sort_name = 名前 +members.sort_power = パワー +members.promoted = [Admin] {0} を {1} に昇格しました。 +members.demoted = [Admin] {0} を {1} に降格しました。 +members.kicked = [Admin] {0} を派閥からキックしました。 + +# ========== 管理者 - 派閥関係 ========== +relations.allies_header = 同盟 ({0}) +relations.enemies_header = 敵 ({0}) +relations.no_allies = 同盟はありません。 +relations.no_enemies = 敵はありません。 +relations.neutral_count = {0} 中立派閥 +relations.since_today = 開始日: 今日 +relations.since_one_day = 開始日: 1日前 +relations.since_days = 開始日: {0}日前 +relations.set_ally = [Admin] {0} と相互同盟を設定しました。 +relations.set_enemy = {0} と相互敵対を設定しました。 +relations.set_neutral = [Admin] {0} と相互中立を設定しました。 + +# ========== 管理者 - 派閥設定 ========== +settings.locked = この設定はサーバー設定によりロックされています。 +settings.perm_toggled = {0} を {1} に設定しました。 +settings.color_changed = 派閥カラーを {0} に設定しました。 +settings.recruitment_set = 募集を {0} に設定しました。 +settings.no_home = [Admin] この派閥にはホームが設定されていません。 +settings.home_cleared = {0} の派閥ホームをクリアしました。 + +# ========== ソートドロップダウンラベル ========== +sort.power = パワー +sort.name = 名前 +sort.members = メンバー +sort.balance = 残高 + +# ========== 管理者 - プレイヤー ========== +players.sort_last_online = 最終ログイン +players.sort_faction = 派閥 +players.sort_online = オンライン +players.not_online = プレイヤーはオンラインではありません。 +players.world_not_found = テレポート先のワールドが見つかりません。 +players.teleported = [Admin] {0} にテレポートしました。 + +# ========== 管理者 - プレイヤー情報 ========== +playerinfo.disband_faction = 派閥を解散 +playerinfo.kick_leader = リーダーをキック +playerinfo.enter_valid_number = 有効な数値を入力してください。 +playerinfo.enter_valid_positive = 有効な正の数値を入力してください。 +playerinfo.faction_gone = 派閥はもう存在しません。 +playerinfo.kd_reset = {0} のK/Dをリセットしました。 +playerinfo.kicked_success = {0} を {1} からキックしました。 +playerinfo.kicked_leader = リーダー {0} をキックしました。リーダーシップが {1} に移行されました。 +playerinfo.disbanded_kick = [Admin] 派閥「{0}」が解散されました(最後のメンバーがキック)。 + +# ========== 管理者 - 経済 ========== +economy.no_data = 経済データのある派閥はありません。 +economy.amount_zero = 金額はゼロにできません。 +economy.enter_amount = 金額を入力してください。 +economy.invalid_number = 無効な数値: {0} +economy.error = エラーが発生しました。 +economy.balance_negative = 残高はマイナスにできません。 +economy.failed = 失敗しました: {0} +economy.bulk_complete = 一括調整完了: {2} 派閥に {0} を {1}。 +economy.bulk_failures = ({0} 件失敗) + +# ========== 管理者 - ゾーン ========== +zones.not_found = ゾーンが見つかりません。 +zones.invalid_id = 無効なゾーンIDです。 +zones.deleted = ゾーン {0} を削除しました。 +zones.delete_failed = ゾーンの削除に失敗しました: {0} +zones.no_chunks = チャンクなし +zones.chunks_suffix = {0}({1} チャンク) + +# ========== ゾーン作成ウィザード ========== +wizard.enter_name = ゾーン名を入力してください。 +wizard.name_too_short = ゾーン名は{0}文字以上である必要があります。 +wizard.name_too_long = ゾーン名は{0}文字以内である必要があります。 +wizard.name_taken = その名前のゾーンはすでに存在します。 +wizard.radius_range = 半径は1から{0}の間である必要があります。 +wizard.create_failed = ゾーンを作成できませんでした: {0} +wizard.created_not_found = ゾーンを作成しましたが、見つかりませんでした。 +wizard.created = {0}「{1}」を作成しました! +wizard.chunk_claimed = チャンク ({0}, {1}) を確保しました。 +wizard.chunk_failed = 現在のチャンクを確保できませんでした: {0} +wizard.radius_claimed = {2} を中心に半径 {1} で {0} チャンクを確保しました。 +wizard.radius_no_claims = チャンクを確保できませんでした(エリアが占有されている可能性があります)。 +wizard.no_claims = ゾーンは領地なしで作成されました。 +wizard.chunks_preview = 約{0}チャンク + +# ========== ゾーン名変更 ========== +zone_rename.zone_gone = ゾーンはもう存在しません。 +zone_rename.enter_name = ゾーン名を入力してください。 +zone_rename.too_short = ゾーン名は{0}文字以上である必要があります。 +zone_rename.too_long = ゾーン名は{0}文字以内である必要があります。 +zone_rename.same_name = それはすでに現在のゾーン名です。 +zone_rename.renamed = [Admin] ゾーン名を {0} から {1} に変更しました! +zone_rename.name_taken = その名前のゾーンはすでに存在します。 +zone_rename.invalid_name = 無効なゾーン名です。 +zone_rename.rename_failed = ゾーンの名前変更に失敗しました: {0} + +# ========== ゾーンタイプ変更 ========== +zone_type.zone_gone = ゾーンはもう存在しません。 +zone_type.changed = [Admin] {0} を {1} から {2} に変更しました({3})。 +zone_type.failed = ゾーンタイプの変更に失敗しました: {0} +zone_type.flags_reset = フラグをリセット +zone_type.flags_kept = フラグを保持 + +# ========== ゾーン連携フラグ ========== +zone_int.zone_not_found = ゾーンが見つかりません +zone_int.no_plugin = (プラグインなし) +zone_int.default = (デフォルト) +zone_int.custom = (カスタム) + +# 連携フラグUIラベル +gui.zint_cat_gravestones = 墓石 +gui.zint_gravestones_desc = オンの場合、非所有者が墓を略奪できます。所有者は常に略奪可能です。 +gui.zint_cat_world_map = ワールドマップ +gui.zint_world_map_desc = このゾーン内のプレイヤーのマップ非表示を上書きします。有効にすると、このゾーン内のプレイヤーを表示する対象を選択します。 +gui.zint_visibility_label = 表示レベル: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = デフォルトにリセット +gui.zint_back_to_flags = フラグに戻る +gui.zint_map_vis_faction = 派閥のみ +gui.zint_map_vis_ally = 派閥+同盟 +gui.zint_map_vis_all = 全プレイヤー + +# ========== アクティビティログ ========== +log.all_types = すべての種類 +log.no_logs = フィルターに一致するアクティビティログはありません。 + +# ========== バージョンページ ========== +version.active = アクティブ +version.not_found = 見つかりません +version.not_detected = 検出されません +version.not_installed = インストールされていません +version.active_version = アクティブ (v{0}) +version.active_compatible = アクティブ(互換) +version.active_claims_only = アクティブ(領地のみ) +version.installed_no_perm = インストール済み(権限プロバイダーなし) +version.active_provider = アクティブ ({0}) + +# ========== 管理者メインページ ========== +main.reload_hint = /f reload で設定をリロードします。 +main.unclaim_hint = /f admin unclaim {0} で全 {1} チャンクを放棄します。 + +# ========== ゾーンフラグ/設定 ========== +zflags.invalid_flag = 無効なフラグです。 +zflags.zone_not_found = ゾーンが見つかりません。 +zflags.conflict = (競合) +zflags.mixin = (Mixin) +zflags.reset_int = 連携フラグをデフォルトにリセットします。 +zflags.reset_all = すべてのフラグをデフォルトにリセットします。 +zflags.reset_failed = フラグのリセットに失敗しました: {0} +zflags.back_to_settings = 設定に戻る + +# ゾーン設定UIラベル +gui.zset_cat_combat = 戦闘 +gui.zset_cat_damage = ダメージ +gui.zset_cat_death = 死亡 +gui.zset_cat_building = 建築 +gui.zset_cat_interaction = インタラクション +gui.zset_cat_transport = 輸送 +gui.zset_cat_items = アイテム +gui.zset_cat_spawning = モブスポーン +gui.zset_cat_mob_clear = モブクリア +gui.zset_children_hint = (子項目は親がオンの場合のみ適用) +gui.zset_reset_defaults = デフォルトにリセット +gui.zset_integration_flags = 連携フラグ +gui.zset_back_to_zones = ゾーンに戻る +gui.zset_chunks = {0} チャンク + +# ゾーンフラグ表示名 +gui.zflag_pvp_enabled = PvP有効 +gui.zflag_friendly_fire = フレンドリーファイア +gui.zflag_friendly_fire_faction = 派閥ダメージ +gui.zflag_friendly_fire_ally = 同盟ダメージ +gui.zflag_projectile_damage = 飛び道具ダメージ +gui.zflag_mob_damage = モブからのダメージ +gui.zflag_pve_damage = モブへのダメージ +gui.zflag_fall_damage = 落下ダメージ +gui.zflag_environmental_damage = 環境ダメージ +gui.zflag_explosion_damage = 爆発ダメージ +gui.zflag_fire_spread = 火の延焼 +gui.zflag_keep_inventory = インベントリ保持 +gui.zflag_power_loss = パワー減少 +gui.zflag_build_allowed = 建築許可 +gui.zflag_block_place = ブロック設置 +gui.zflag_hammer_use = ハンマー使用 +gui.zflag_builder_tools_use = ビルダーツール +gui.zflag_block_interact = ブロックインタラクション +gui.zflag_door_use = ドア使用 +gui.zflag_container_use = コンテナ使用 +gui.zflag_bench_use = 作業台使用 +gui.zflag_processing_use = 加工台使用 +gui.zflag_seat_use = 座席使用 +gui.zflag_mount_use = 騎乗使用 +gui.zflag_light_use = 照明使用 +gui.zflag_npc_use = NPCインタラクション +gui.zflag_crate_pickup = クレート拾得 +gui.zflag_crate_place = クレート設置 +gui.zflag_npc_tame = NPCテイム +gui.zflag_npc_interact = NPCインタラクト +gui.zflag_teleporter_use = テレポーター使用 +gui.zflag_portal_use = ポータル使用 +gui.zflag_mount_entry = 騎乗進入 +gui.zflag_item_drop = アイテムドロップ +gui.zflag_item_pickup = 自動拾得 +gui.zflag_item_pickup_manual = Fキー拾得 +gui.zflag_invincible_items = アイテム無敵 +gui.zflag_mob_spawning = モブスポーン +gui.zflag_hostile_mob_spawning = 敵対モブ +gui.zflag_passive_mob_spawning = 友好モブ +gui.zflag_neutral_mob_spawning = 中立モブ +gui.zflag_npc_spawning = NPCスポーン +gui.zflag_mob_clear = モブクリア +gui.zflag_hostile_mob_clear = 敵対モブクリア +gui.zflag_passive_mob_clear = 友好モブクリア +gui.zflag_neutral_mob_clear = 中立モブクリア +gui.zflag_gravestone_access = 他者の墓略奪 +gui.zflag_show_on_map = マップに表示 +gui.zflag_essentials_homes = ホーム使用 +gui.zflag_essentials_warps = ワープ使用 +gui.zflag_essentials_kits = キット取得 + +# ========== ゾーンプロパティ ========== +zprop.current_custom = 現在: 「{0}」(カスタム) +zprop.current_default = 現在: 「{0}」(デフォルト) +zprop.pvp_disabled = PvP無効 +zprop.pvp_enabled = PvP有効 +zprop.name_empty = 名前を空にすることはできません。 +zprop.renamed = ゾーン名を「{0}」に変更しました。 +zprop.name_taken = その名前のゾーンはすでに存在します。 +zprop.name_invalid = 無効な名前です(最大32文字)。 +zprop.rename_failed = 名前の変更に失敗しました: {0} +zprop.upper_empty = 上部タイトルを空にすることはできません。クリアでリセットしてください。 +zprop.upper_set = 上部タイトルを設定しました。 +zprop.upper_reset = 上部タイトルをデフォルトにリセットしました。 +zprop.lower_empty = 下部タイトルを空にすることはできません。クリアでリセットしてください。 +zprop.lower_set = 下部タイトルを設定しました。 +zprop.lower_reset = 下部タイトルをデフォルトにリセットしました。 + +# ========== 関係 追加 ========== +relations.failed = 失敗しました: {0} + +# ========== メンバー 追加 ========== +members.never = なし +members.teleported = [Admin] {0} にテレポートしました。 + +# ========== プレイヤー情報 追加 ========== +playerinfo.records = {0} 件 +playerinfo.joined_date = 参加: {0} +playerinfo.current = 現在 +playerinfo.left_date = 脱退: {0} + +# ========== ゾーンマップ ========== +map.world_warning = 警告: あなたは「{0}」にいますが、ゾーンは「{1}」にあります +map.position = 現在地: チャンク ({0}, {1}) +map.zone_gone = ゾーンはもう存在しません。 +map.claimed = {2} のチャンク ({0}, {1}) を確保しました。 +map.claim_failed = チャンクの確保に失敗しました: {0} +map.unclaimed = {2} のチャンク ({0}, {1}) を放棄しました。 +map.unclaim_failed = チャンクの放棄に失敗しました: {0} +map.chunk_belongs = このチャンクは {0} に属しています。 +map.chunk_faction = このチャンクは派閥に確保されています。 +map.chunk_protected = このチャンクは保護リージョン内にあります。 +map.another_zone = 別のゾーン + +# ========== GUIラベルキー(.uiハードコードテキストのローカライズ用) ========== + +# ページタイトル +gui.title_dashboard = 管理者ダッシュボード +gui.title_main = 派閥管理 +gui.title_actions = 管理: サーバーアクション +gui.title_factions = 派閥管理 +gui.title_players = プレイヤー管理 +gui.title_economy = 管理: サーバー経済 +gui.title_zones = ゾーン管理 +gui.title_backups = バックアップ +gui.title_config = 設定 +gui.title_help = 管理者ヘルプ +gui.title_updates = アップデート +gui.title_version = バージョンと連携 +gui.title_activity_log = 管理: アクティビティログ +gui.title_player_info = 管理: プレイヤー情報 +gui.title_faction_info = 管理: 派閥情報 +gui.title_faction_settings = 管理: 派閥設定 +gui.title_faction_members = 管理: メンバー +gui.title_faction_relations = 管理: 関係 +gui.title_zone_map = ゾーンマップエディタ +gui.title_zone_settings = 管理: ゾーン設定 +gui.title_zone_properties = 管理: ゾーンプロパティ +gui.title_bulk_economy = 一括資金庫調整 +gui.title_economy_adjust = 管理: 経済 + +# ダッシュボードラベル +gui.dash_server_stats = サーバー統計 +gui.dash_factions = 派閥 +gui.dash_total_members = 総メンバー +gui.dash_total_claims = 総領地 +gui.dash_zones = ゾーン +gui.dash_safe_war = 安全 / 戦闘 +gui.dash_total_power = 総パワー +gui.dash_avg_power = 平均パワー/派閥 +gui.dash_total_economy = 総経済 +gui.dash_wealthiest = 最高資産 +gui.dash_avg_balance = 平均残高 +gui.dash_protection_bypass = 保護バイパス: + +# 共通ボタンとラベル +gui.search = 検索: +gui.sort = ソート: +gui.prev = < 前へ +gui.next = 次へ > +gui.back = 戻る +gui.done = 完了 +gui.cancel = キャンセル +gui.apply = 適用 +gui.set = 設定 +gui.reset = リセット +gui.coming_soon = 近日公開 +gui.zones_btn = ゾーン +gui.reload_btn = リロード +gui.all = すべて +gui.safe = 安全 +gui.war = 戦闘 +gui.create_zone = + 作成 + +# アクションページラベル +gui.act_combat_stats = 戦闘統計 +gui.act_combat_desc = サーバー上の全プレイヤーのキルとデスをリセットします。この操作は取り消せません。 +gui.act_reset_kd = 全K/Dをリセット +gui.act_economy = 経済 +gui.act_economy_desc = 全派閥の資金庫に一括で資金を追加または削除します。 +gui.act_bulk_adjust = 一括追加/削除 +gui.act_upkeep_collection = 維持費徴収 +gui.act_upkeep_desc = スケジュールされたタイマーに関係なく、今すぐ全派閥の維持費徴収を手動実行します。 +gui.act_trigger_upkeep = 維持費を徴収 + +# プレースホルダーページラベル +gui.backup_heading = バックアップ管理 +gui.backup_desc1 = 派閥データのバックアップを作成、復元、管理します。 +gui.backup_desc2 = 自動バックアップは data/backups フォルダに保存されます。 +gui.config_heading = 設定エディタ +gui.config_desc1 = GUIから直接 HyperFactions の設定を構成します。 +gui.config_desc2 = 現在は /f reload で設定変更をリロードしてください。 +gui.help_heading = 管理者ドキュメント +gui.help_desc1 = 管理者ドキュメントとコマンドリファレンスを表示します。 +gui.help_desc2 = ヘルプについては HyperFactions wiki をご覧ください。 +gui.updates_heading = アップデートセンター +gui.updates_desc1 = 新バージョンの確認と変更履歴を表示します。 +gui.updates_desc2 = 最新のアップデートは HyperFactions ページをご覧ください。 + +# バージョンページラベル +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = 権限 +gui.ver_placeholders = プレースホルダー +gui.ver_economy_section = 経済 +gui.ver_protection = 保護 +gui.ver_disabled = 無効 + +# 列ヘッダー(ページ間共有) +gui.col_faction = 派閥 +gui.col_balance = 残高 +gui.col_members = メンバー +gui.col_actions = アクション +gui.col_time = 時間 +gui.col_type = 種類 +gui.col_message = メッセージ + +# 経済ページラベル +gui.econ_total_balance = 総残高 +gui.econ_factions = 派閥 +gui.econ_avg_balance = 平均残高 +gui.econ_in_grace = 猶予中 +gui.econ_collected = 徴収済み (24時間) +gui.econ_next_collection = 次回徴収 +gui.econ_no_data = 経済データのある派閥はありません。 + +# アクティビティログラベル +gui.log_type = 種類: +gui.log_time = 時間: +gui.log_player = プレイヤー: +gui.log_no_logs = フィルターに一致するアクティビティログはありません。 + +# プレイヤー情報ラベル +gui.plr_first_joined = 初回参加: +gui.plr_last_online = 最終ログイン: +gui.plr_uuid = UUID: +gui.plr_faction = 派閥: +gui.plr_role = 役職: +gui.plr_view_faction = 派閥を表示 +gui.plr_power = パワー +gui.plr_max_power = 最大パワー +gui.plr_set_power = 設定 +gui.plr_reset_power = リセット +gui.plr_set_max = 設定 +gui.plr_reset_max = リセット +gui.plr_no_power_loss = パワー減少なし +gui.plr_no_claim_decay = 領地減衰なし +gui.plr_kills = キル +gui.plr_deaths = デス +gui.plr_kdr = K/D比率 +gui.plr_reset_kd = K/Dリセット +gui.plr_kick = キック +gui.plr_membership_history = 所属履歴 +gui.plr_no_faction_label = 派閥に所属していません +gui.plr_power_management = パワー管理 +gui.plr_combat_stats = 戦闘統計 +gui.plr_bypass_flags = バイパスフラグ +gui.plr_admin_controls = 管理者コントロール +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = 最大: +gui.plr_view = 表示 +gui.plr_kick_from_faction = 派閥からキック +gui.plr_set_max_btn = 最大値設定 +gui.plr_combat = 戦闘 +gui.plr_reason_active = アクティブ +gui.plr_reason_left = 脱退 +gui.plr_reason_kicked = キック +gui.plr_reason_disbanded = 解散 + +# メンバーエントリラベル +gui.mem_label_power = パワー: +gui.mem_label_joined = 参加日: +gui.mem_label_last_death = 最終死亡: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = 情報 +gui.mem_btn_teleport = テレポート +gui.mem_btn_promote = 昇格 +gui.mem_btn_demote = 降格 +gui.mem_btn_kick = キック +gui.econ_not_enabled = 経済システムが有効になっていません。 +gui.info_more = 他{0}名 +gui.log_time_1h = 1時間 +gui.log_time_24h = 24時間 +gui.log_time_7d = 7日 +gui.log_time_all = すべて +gui.shape_circular = 円形 +gui.shape_square = 四角形 +gui.nav_title = 管理パネル +gui.econ_btn_adjust = 調整 +gui.econ_btn_info = 情報 + +# 派閥情報ラベル +gui.fac_description = 説明 +gui.fac_power = パワー +gui.fac_claims = 領地 +gui.fac_members = メンバー +gui.fac_recruitment = 募集 +gui.fac_founded = 設立日 +gui.fac_allies = 同盟 +gui.fac_enemies = 敵 +gui.fac_raidable = 略奪可能状態 +gui.fac_treasury = 資金庫 +gui.fac_leader = リーダー +gui.fac_officers = 幹部 +gui.fac_view_members = メンバーを表示 +gui.fac_view_relations = 関係を表示 +gui.fac_view_settings = 設定 +gui.fac_disband = 派閥を解散 +gui.fac_power_management = パワー管理 +gui.fac_reset_all_power = 全パワーをリセット +gui.fac_econ_adjust = 残高を調整 +gui.fac_econ_view_log = 取引履歴を表示 +gui.fac_current_max = 現在 / 最大 +gui.fac_claimed_max = 確保済 / 最大 +gui.fac_relations = 関係 +gui.fac_ally_enemy = 同盟 / 敵 +gui.fac_status = ステータス +gui.fac_info = 情報 +gui.fac_treasury_balance = 資金庫残高 +gui.fac_leadership = リーダーシップ +gui.fac_leader_label = リーダー: +gui.fac_officers_label = 幹部: +gui.fac_econ_mgmt = 経済管理 +gui.fac_danger_zone = 危険ゾーン +gui.fac_view_treasury = 資金庫を表示 + +# 派閥設定ラベル +gui.set_editing = 編集中: +gui.set_general = 一般設定 +gui.set_name = 名前 +gui.set_tag = タグ +gui.set_description = 説明 +gui.set_recruitment = 募集 +gui.set_home = ホームの場所 +gui.set_clear_home = ホームをクリア +gui.set_disband_faction = 派閥を解散 +gui.set_faction_color = 派閥カラー +gui.set_admin_override = [管理者オーバーライド] +gui.set_territory_perms = テリトリー権限 +gui.set_mob_spawning = モブスポーン +gui.set_faction_settings = 派閥設定 +gui.set_name_label = 名前: +gui.set_tag_label = タグ: +gui.set_desc_label = 説明: +gui.set_edit = 編集 +gui.set_status_label = ステータス: +gui.set_location_label = 場所: +gui.set_danger_zone = 危険ゾーン +gui.set_irreversible = この操作は取り消せません。 +gui.set_lock_hint = 一部のオプションはサーバーによってロックされており、変更できない場合があります。 +gui.set_appearance = 外観 +gui.set_color_label = カラー: +gui.set_mob_sub = (マスターがオフの場合、子項目は無効になります) +gui.set_back_to_info = 情報に戻る +gui.set_col_out = 外部 +gui.set_col_ally = 同盟 +gui.set_col_mem = メンバー +gui.set_col_off = 幹部 +gui.set_cat_building = 建築 +gui.set_cat_interaction = インタラクション +gui.set_cat_interact_sub = (「全て」がオフの場合、子項目は無効になります) +gui.set_cat_other = その他 +gui.set_perm_break = 破壊 +gui.set_perm_place = 設置 +gui.set_perm_all = 全て +gui.set_perm_door = ドア +gui.set_perm_chest = チェスト +gui.set_perm_bench = 作業台 +gui.set_perm_processing = 加工台 +gui.set_perm_seat = 座席 +gui.set_perm_transport = 輸送 +gui.set_perm_crate_use = クレート使用 +gui.set_perm_npc_tame = NPCテイム +gui.set_perm_pve_damage = PvEダメージ +gui.set_perm_mob_spawning = モブスポーン +gui.set_perm_hostile = 敵対モブ +gui.set_perm_passive = 友好モブ +gui.set_perm_neutral = 中立モブ +gui.set_perm_pvp = テリトリー内PvP +gui.set_perm_officers_edit = 幹部が編集可能 + +# 派閥関係ラベル +gui.rel_subtitle = 派閥関係を管理(承認をバイパス) +gui.rel_set_new = 新しい関係を設定 +gui.rel_btn_ally = 同盟 +gui.rel_btn_neutral = 中立 +gui.rel_btn_enemy = 敵 + +# ゾーンページラベル +gui.zone_sort_name = 名前 +gui.zone_sort_type = タイプ +gui.zone_sort_chunks = チャンク +gui.zone_sort_world = ワールド +gui.zone_count_format = {0} {1}ゾーン({2} チャンク) + +# ゾーンマップラベル +gui.map_zone_chunk = ゾーンチャンク +gui.map_empty = 空き +gui.map_other_zone = 他のゾーン +gui.map_faction_claim = 派閥領地 +gui.map_protected = 保護中 +gui.map_your_pos = 現在地 +gui.map_click_hint = クリックでチャンクを確保/放棄 +gui.map_legend_zone_safe = このゾーン(安全) +gui.map_legend_zone_war = このゾーン(戦闘) +gui.map_legend_other_safe = 他のSafeZone +gui.map_legend_other_war = 他のWarZone +gui.map_legend_faction = 派閥領地 +gui.map_legend_unclaimed = 未確保 +gui.map_legend_you_here = 現在地 +gui.map_action_hint = 左クリック: ゾーンに確保 | 右クリック: ゾーンから放棄 +gui.map_done = 完了 + +# ゾーンプロパティラベル +gui.zprop_general = 一般 +gui.zprop_zone_name = ゾーン名 +gui.zprop_zone_type = ゾーンタイプ +gui.zprop_change_type = タイプ変更 +gui.zprop_notifications = 通知 +gui.zprop_show_entry = 入場通知を表示 +gui.zprop_upper_title = 上部タイトル +gui.zprop_upper_desc = 上部タイトル(ゾーン名の上の小さなテキスト) +gui.zprop_lower_title = 下部タイトル +gui.zprop_lower_desc = 下部タイトル(大きなゾーン名テキスト) +gui.zprop_edit_flags = フラグを編集 +gui.zprop_back_to_zones = ゾーンに戻る +gui.save = 保存 +gui.clear = クリア + +# 一括経済ラベル +gui.bulk_header = 全派閥の資金庫を調整 +gui.bulk_factions_label = 派閥: +gui.bulk_total_label = 総残高: +gui.bulk_amount_hint = 金額(正で追加、負で削除): +gui.bulk_hint = 資金庫を持つすべての派閥に適用されます +gui.bulk_warning_msg = 警告: この操作は全派閥に影響し、取り消すことはできません。 +gui.bulk_apply_all = すべてに適用 +gui.bulk_operation = 操作 +gui.bulk_add = 追加 +gui.bulk_remove = 削除 +gui.bulk_amount = 金額 +gui.bulk_warning = 全派閥の資金庫に影響します。 +gui.bulk_preview = プレビュー + +# 経済調整ラベル +gui.ecadj_header = 資金庫残高を調整 +gui.ecadj_faction_label = 派閥: +gui.ecadj_current_balance = 現在の残高: +gui.ecadj_amount_hint = 金額(正で追加、負で差し引き): +gui.ecadj_preview_hint = 変更をプレビューするには数値を入力してください +gui.ecadj_adjustment = 調整: +gui.ecadj_set_balance = 残高を設定 +gui.ecadj_confirm = +/- を確認 +gui.ecadj_operation = 操作 +gui.ecadj_add = 追加 +gui.ecadj_remove = 削除 +gui.ecadj_set_to = に設定 +gui.ecadj_amount = 金額 +gui.ecadj_new_balance = 新しい残高: + +# バージョンページ連携ラベル +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Gravestones +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = 資金庫 + +# 全領地放棄確認モーダルラベル +gui.unclaim_title = すべてのテリトリーを放棄 +gui.unclaim_confirm_msg1 = 本当にすべての領地を放棄しますか +gui.unclaim_confirm_msg2 = から +gui.unclaim_warning = この操作は取り消せません! +gui.unclaim_all = すべて放棄 + +# ゾーン名変更モーダルラベル +gui.zren_title = ゾーン名変更 +gui.zren_current = 現在: +gui.zren_new_name = 新しい名前: + +# ゾーンタイプ変更モーダルラベル +gui.ztype_title = ゾーンタイプ変更 +gui.ztype_zone_label = ゾーン: +gui.ztype_current = 現在: +gui.ztype_will_become = に変更 +gui.ztype_new = 新規: +gui.ztype_warning1 = ゾーンタイプが異なると、デフォルトのフラグ値も異なります。 +gui.ztype_warning2 = 既存のフラグ設定の扱いを選択してください: +gui.ztype_keep_desc = カスタムオーバーライドを保持 +gui.ztype_keep_flags = フラグを保持 +gui.ztype_reset_desc = 新しいタイプのデフォルトを使用 +gui.ztype_reset_flags = フラグをリセット + +# ゾーン作成ウィザードラベル +gui.czw_title = ゾーンを作成 +gui.czw_back = < 戻る +gui.czw_create = ゾーンを作成 +gui.czw_zone_type = ゾーンタイプ +gui.czw_safe_desc = 保護あり、PvPなし +gui.czw_war_desc = 戦闘あり、PvP有効 +gui.czw_zone_name = ゾーン名 +gui.czw_name_desc = ゾーンの一意な名前を入力してください +gui.czw_claim_method = 確保方法 +gui.czw_method_none_desc = 空のゾーンを作成 +gui.czw_method_none = 領地なし +gui.czw_method_single_desc = 現在のチャンク +gui.czw_method_single = 単一チャンク +gui.czw_method_circle_desc = 円形エリア +gui.czw_method_circle = 円形半径 +gui.czw_method_square_desc = 四角形エリア +gui.czw_method_square = 四角形半径 +gui.czw_method_map_desc = インタラクティブチャンクエディタ +gui.czw_method_map = クレームマップを使用 +gui.czw_radius = 半径 +gui.czw_custom_radius = カスタム (1-50): +gui.czw_flags = フラグ +gui.czw_flags_defaults_desc = ゾーンタイプに基づく +gui.czw_flags_defaults = デフォルトを使用 +gui.czw_flags_customize_desc = 作成後に設定を開く +gui.czw_flags_customize = カスタマイズ + +# ========== エントリラベル(派閥/プレイヤー/ゾーンリスト) ========== + +# 派閥エントリラベル +gui.fac_entry_power = パワー +gui.fac_entry_claims = 領地 +gui.fac_entry_members = メンバー +gui.fac_entry_created = 設立日: +gui.fac_entry_home = ホーム: +gui.fac_entry_tp_home = ホームにTP +gui.fac_entry_view_info = 情報を見る +gui.fac_entry_members_btn = メンバー +gui.fac_entry_settings = 設定 +gui.fac_entry_unclaim_all = すべて放棄 +gui.fac_entry_disband = 解散 + +# プレイヤーエントリラベル +gui.plr_entry_role = 役職: +gui.plr_entry_joined = 参加日: +gui.plr_entry_last_online = 最終ログイン: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = パワー: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = 情報 +gui.plr_entry_teleport = テレポート +gui.plr_entry_na = N/A +gui.plr_entry_unknown = 不明 +gui.plr_entry_ago = {0}前 + +# ゾーンエントリラベル +gui.zone_entry_world = ワールド: +gui.zone_entry_chunks = チャンク: +gui.zone_entry_bounds = 範囲: +gui.zone_entry_created = 作成日: +gui.zone_entry_edit_map = マップを編集 +gui.zone_entry_flags = フラグ +gui.zone_entry_settings = 設定 +gui.zone_entry_delete = 削除 diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang new file mode 100644 index 00000000..67dfaeca --- /dev/null +++ b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - 日本語翻訳 +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== ナビゲーションバー ========== +nav.dashboard = ダッシュボード +nav.chat = チャット +nav.members = メンバー +nav.invites = 招待 +nav.browser = 検索 +nav.map = マップ +nav.leaderboard = ランキング +nav.relations = 関係 +nav.treasury = 資金庫 +nav.settings = 設定 +nav.logs = ログ +nav.help = ヘルプ +nav.admin = 管理 +nav.create = 作成 + +# ========== ヘルプカテゴリ名 ========== +help.category.welcome = ようこそ +help.category.your_faction = あなたの派閥 +help.category.power_land = パワーと領地 +help.category.diplomacy = 外交 +help.category.combat = 戦闘と安全 +help.category.economy = 経済 +help.category.quick_ref = クイックリファレンス + +# ========== 管理者ヘルプカテゴリ名 ========== +help.category.admin_overview = 概要 +help.category.admin_factions = 派閥 +help.category.admin_zones = ゾーン +help.category.admin_power = パワー +help.category.admin_economy = 経済 +help.category.admin_config = 設定 +help.category.admin_maintenance = メンテナンス +help.category.admin_reference = リファレンス + +# ========== メインメニュー ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = マイ派閥 +main_menu.section_get_started = はじめに +main_menu.section_territory = テリトリー +main_menu.section_browse = 検索 +main_menu.section_admin = 管理 +main_menu.claim_hint = /f claim でテリトリーを確保できます。 + +# ========== 派閥情報ページ ========== +faction_info.title = 派閥情報 +faction_info.no_description = 説明が設定されていません。 +faction_info.status_open = 公開 +faction_info.status_invite_only = 招待制 +faction_info.status_raidable = 略奪可能 +faction_info.status_protected = 保護中 +faction_info.officers_more = 他{0}名 +faction_info.power_header = パワー +faction_info.claims_header = 領地 +faction_info.members_header = メンバー +faction_info.relations_header = 関係 +faction_info.status_header = ステータス +faction_info.treasury_header = 資金庫 +faction_info.current_max = 現在 / 最大 +faction_info.claimed_max = 確保済 / 最大 +faction_info.ally_enemy = 同盟 / 敵 +faction_info.faction_balance = 派閥残高 +faction_info.leader_label = リーダー: +faction_info.officers_label = 幹部: +faction_info.view_members_btn = メンバー一覧 +faction_info.relations_btn = 関係 +faction_info.back_btn = 戻る + +# ========== 名前変更モーダル ========== +rename.title = 派閥名変更 +rename.current_label = 現在: +rename.new_name_label = 新しい名前: +rename.no_permission = 派閥名を変更する権限がありません。 +rename.enter_name = 派閥名を入力してください。 +rename.too_short = 派閥名は{0}文字以上である必要があります。 +rename.too_long = 派閥名は{0}文字以内である必要があります。 +rename.same_name = それはすでに現在の派閥名です。 +rename.name_taken = その名前の派閥はすでに存在します。 +rename.success = 派閥名を {0} から {1} に変更しました! + +# ========== 説明モーダル ========== +desc.title = 説明を編集 +desc.current_label = 現在: +desc.new_desc_label = 新しい説明: +desc.no_permission = 説明を編集する権限がありません。 +desc.display_none = (なし) +desc.cleared = 派閥の説明をクリアしました。 +desc.updated = 派閥の説明を更新しました! + +# ========== タグモーダル ========== +tag.title = タグを編集 +tag.current_label = 現在: +tag.instructions = タグ(1-5文字、英数字のみ): +tag.help_text = タグはチャットやマップに表示されます +tag.no_permission = タグを編集する権限がありません。 +tag.display_none = (なし) +tag.cleared = 派閥タグをクリアしました。 +tag.too_short = タグは{0}文字以上である必要があります。 +tag.too_long = タグは{0}文字以内である必要があります。 +tag.invalid_format = タグには英数字のみ使用できます。 +tag.same_tag = それはすでに現在のタグです。 +tag.tag_taken = そのタグの派閥はすでに存在します。 +tag.success = 派閥タグを [{0}] に設定しました! + +# ========== ダッシュボードページ ========== +dashboard.title = 派閥ダッシュボード +dashboard.power_label = パワー +dashboard.land_label = 領地 +dashboard.members_label = メンバー +dashboard.online_label = オンライン +dashboard.allies_label = 同盟 +dashboard.enemies_label = 敵 +dashboard.relations_label = 関係 +dashboard.ally_enemy_label = 同盟 / 敵 +dashboard.status_label = ステータス +dashboard.invites_label = 招待 +dashboard.sent_requests_label = 送信 / リクエスト +dashboard.treasury_label = 資金庫 +dashboard.upkeep_label = 維持費 +dashboard.per_cycle = サイクルごと +dashboard.your_wallet = あなたのウォレット +dashboard.personal_balance = 個人残高 +dashboard.quick_actions = クイックアクション +dashboard.teleport_label = テレポート +dashboard.territory_label = テリトリー +dashboard.channel_label = チャンネル +dashboard.membership_label = 所属 +dashboard.recent_activity = 最近のアクティビティ +dashboard.view_all = すべて表示 +dashboard.income_24h = 収入 (24時間) +dashboard.deposits_transfers_in = 入金、受取送金 +dashboard.expenses_24h = 支出 (24時間) +dashboard.withdrawals_transfers_out = 出金、送出送金 +dashboard.faction_gone = 派閥はもう存在しません。 +dashboard.available = {0} 利用可能 +dashboard.at_risk = 危険! +dashboard.online_count = {0} オンライン +dashboard.status_invite = 招待制 +dashboard.in_grace = 猶予期間中 +dashboard.billable_chunks = {0} 課金チャンク +dashboard.btn_home = ホーム +dashboard.btn_set_home = ホーム設定 +dashboard.btn_claim = 確保 +dashboard.chat_prefix = チャット: {0} +dashboard.btn_leave = 脱退 +dashboard.no_activity = 最近のアクティビティはありません。 +dashboard.time_now = たった今 +dashboard.time_minutes = {0}分前 +dashboard.time_hours = {0}時間前 +dashboard.time_days = {0}日前 +dashboard.no_home_hint = 派閥ホームが設定されていません。幹部に設定を依頼してください。 +dashboard.chat_mode_set = チャットモード: {0} +dashboard.claim_success = チャンク ({0}, {1}) を確保しました +dashboard.upkeep_in = あと{0} + +# ========== 派閥メインページ ========== +main.no_faction = 派閥なし +main.joined = 派閥に参加しました! +main.join_failed = 派閥への参加に失敗しました: {0} +main.invite_declined = 招待を辞退しました。 +main.cooldown = テレポートのクールダウン中です!残り{0}秒。 +main.world_not_found = テレポートできません - ワールドが見つかりません。 +main.leave_failed = 脱退に失敗しました: {0} + +# ========== 共有GUIラベル ========== +common.faction_count = {0} 派閥 +common.leader_label = リーダー: {0} +common.sort_power = パワー +common.sort_members = メンバー +common.page_format = {0}/{1} +common.own_faction = (自分) +common.search = 検索: +common.sort = ソート: +common.prev = < 前へ +common.next = 次へ > +common.treasury_not_available = 資金庫は利用できません。 + +# ========== メンバーページ ========== +members.title = メンバー +members.search_label = 検索: +members.sort_label = ソート: +members.prev_btn = < 前へ +members.next_btn = 次へ > +members.count = {0} メンバー +members.sort_role = 役職 +members.sort_last_online = 最終ログイン +members.just_now = たった今 +members.ago = {0}前 +members.never = なし +members.member_not_found = メンバーが見つかりません。 +members.promoted = {0} を {1} に昇格しました。 +members.promote_failed = 昇格に失敗しました: {0} +members.demoted = {0} を {1} に降格しました。 +members.demote_failed = 降格に失敗しました: {0} +members.kicked = {0} を派閥からキックしました。 +members.kick_failed = キックに失敗しました: {0} +members.label_power = パワー: +members.label_joined = 参加日: +members.label_last_death = 最終死亡: +members.btn_promote = 昇格 +members.btn_demote = 降格 +members.btn_kick = キック +members.btn_make_leader = リーダーに任命 +members.btn_profile = プロフィール +members.self_label = (自分) + +# ========== ブラウザページ ========== +browser.title = 派閥を検索 +browser.search_label = 検索: +browser.sort_label = ソート: +browser.prev_btn = < 前へ +browser.next_btn = 次へ > +browser.sort_name = 名前 +browser.invalid_faction = 無効な派閥です。 +browser.label_power = パワー +browser.label_claims = 領地 +browser.label_members = メンバー +browser.label_recruitment = 募集: +browser.label_created = 設立日: +browser.label_description = 説明: +browser.view_info_btn = 情報を見る +browser.label_leader = リーダー: +browser.no_description = 説明が設定されていません + +# ========== ランキングページ ========== +leaderboard.title = 派閥ランキング +leaderboard.rank_by = ランク基準: +leaderboard.col_rank = # +leaderboard.col_faction = 派閥 +leaderboard.col_claims = 領地 +leaderboard.col_members = メンバー +leaderboard.prev_btn = < 前へ +leaderboard.next_btn = 次へ > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = テリトリー +leaderboard.sort_balance = 残高 + +# ========== プレイヤー情報ページ ========== +playerinfo.title = プレイヤー情報 +playerinfo.first_joined_label = 初回参加: +playerinfo.last_online_label = 最終ログイン: +playerinfo.faction_label = 派閥: +playerinfo.role_label = 役職: +playerinfo.joined_label_static = 参加日: +playerinfo.not_in_faction = 派閥に所属していません +playerinfo.power_header = パワー +playerinfo.current_max = 現在 / 最大 +playerinfo.combat_header = 戦闘 +playerinfo.kills_deaths = キル / デス +playerinfo.kdr_header = K/D比率 +playerinfo.membership_history = 所属履歴 +playerinfo.view_faction_btn = 派閥を見る +playerinfo.back_btn = 戻る +playerinfo.now = 現在 +playerinfo.history_count = {0} 件 +playerinfo.joined_label = 参加: {0} +playerinfo.current = 現在 +playerinfo.left_label = 脱退: {0} +playerinfo.no_history = 所属履歴はありません +playerinfo.faction_gone = 派閥はもう存在しません。 +playerinfo.reason_active = アクティブ +playerinfo.reason_left = 脱退 +playerinfo.reason_kicked = キック +playerinfo.reason_disbanded = 解散 + +# ========== 関係ページ ========== +relations.title = 関係 +relations.tab_relations = 関係 +relations.tab_pending = 保留中 +relations.set_relation_btn = + 関係を設定 +relations.prev_btn = < 前へ +relations.next_btn = 次へ > +relations.relation_count = {0} 件の関係 +relations.request_count = {0} 件のリクエスト +relations.type_ally = 同盟 +relations.type_enemy = 敵 +relations.type_incoming = 受信 +relations.type_outgoing = 送信 +relations.incoming_request = 受信リクエスト +relations.outgoing_request = 送信リクエスト +relations.empty_relations = まだ関係はありません。 +relations.empty_relations_hint = まだ関係はありません。+ 関係を設定 をクリックして同盟や敵を追加しましょう。 +relations.empty_pending = 保留中の同盟リクエストはありません。 +relations.today = 今日 +relations.one_day_ago = 1日前 +relations.days_ago = {0}日前 +relations.now_neutral = {0} と中立になりました。 +relations.now_enemies = {0} と敵対になりました! +relations.request_sent = {0} に同盟リクエストを送信しました。 +relations.now_allied = {0} と同盟を結びました! +relations.request_declined = {0} からの同盟リクエストを辞退しました。 +relations.request_cancelled = {0} への同盟リクエストをキャンセルしました。 +relations.failed = 失敗しました: {0} +relations.search_hint = 関係を設定する派閥を検索 +relations.no_results = 「{0}」に一致する派閥が見つかりません +relations.power_display = {0} パワー +relations.member_count = {0} メンバー +relations.label_members = メンバー +relations.label_power = パワー +relations.label_since = 開始日: +relations.label_claims = 領地: +relations.label_direction = 方向: +relations.btn_view = 表示 +relations.btn_neutral = 中立 +relations.btn_enemy = 敵 +relations.btn_ally = 同盟 +relations.btn_accept = 承諾 +relations.btn_decline = 辞退 +relations.btn_cancel = キャンセル + +# ========== 設定ページ ========== +settings.title = 派閥設定 +settings.general = 一般 +settings.name_label = 名前: +settings.tag_label = タグ: +settings.desc_label = 説明: +settings.edit_btn = 編集 +settings.recruitment = 募集 +settings.status_label = ステータス: +settings.home_location = ホームの場所 +settings.location_label = 場所: +settings.set_home_btn = ホーム設定 +settings.teleport_btn = テレポート +settings.delete_btn = 削除 +settings.optional_features = オプション機能 +settings.configure_modules = オプションモジュールを設定します。 +settings.modules_btn = モジュール +settings.danger_zone = 危険ゾーン +settings.irreversible = この操作は取り消せません。 +settings.disband_btn = 派閥を解散 +settings.lock_hint = 一部のオプションはサーバーによってロックされており、変更できない場合があります。 +settings.territory_permissions = テリトリー権限 +settings.col_out = 外部 +settings.col_ally = 同盟 +settings.col_mem = メンバー +settings.col_off = 幹部 +settings.cat_building = 建築 +settings.perm_break = 破壊 +settings.perm_place = 設置 +settings.cat_interaction = インタラクション +settings.interaction_hint = (「全て」がオフの場合、子項目は無効になります) +settings.perm_all = 全て +settings.perm_door = ドア +settings.perm_chest = チェスト +settings.perm_bench = 作業台 +settings.perm_processing = 加工台 +settings.perm_seat = 座席 +settings.perm_transport = 輸送 +settings.cat_other = その他 +settings.perm_crate = クレート使用 +settings.perm_npc_tame = NPCテイム +settings.perm_pve = PvEダメージ +settings.appearance = 外観 +settings.color_label = カラー: +settings.mob_spawning = モブスポーン +settings.mob_spawning_hint = (マスターがオフの場合、子項目は無効になります) +settings.mob_spawning_label = モブスポーン +settings.hostile_mobs = 敵対モブ +settings.passive_mobs = 友好モブ +settings.neutral_mobs = 中立モブ +settings.faction_settings = 派閥設定 +settings.pvp_in_territory = テリトリー内PvP +settings.officers_can_edit = 幹部が編集可能 +settings.leader_only = リーダーのみ +settings.officers_only = 幹部とリーダーのみが派閥設定を変更できます。 +settings.display_none = (なし) +settings.home_not_set = 未設定 +settings.no_permission = 設定を変更する権限がありません。 +settings.only_leader_disband = リーダーのみが派閥を解散できます。 +settings.perm_locked = この設定はサーバーによってロックされています。 +settings.no_perm_edit = テリトリー権限を編集する権限がありません。 +settings.only_leader_officers = リーダーのみが幹部のアクセス権を変更できます。 +settings.pvp_enabled = 有効 +settings.pvp_disabled = 無効 +settings.not_in_territory = ホームを設定するには派閥のテリトリー内にいる必要があります。 +settings.home_set = 現在地を派閥ホームに設定しました! +settings.recruitment_set = 募集を {0} に設定しました。 +settings.home_no_set = 派閥ホームが設定されていません。 +settings.home_deleted = 派閥ホームを削除しました! + +# ========== モジュールページ ========== +modules.title = 派閥モジュール +modules.description = 派閥を強化するオプション機能 +modules.configure_btn = 設定 +modules.back_btn = < 設定に戻る +modules.treasury_name = 資金庫 +modules.treasury_desc = 派閥銀行と経済システム +modules.raids_name = レイド +modules.raids_desc = 予定された派閥間戦闘 +modules.levels_name = レベル +modules.levels_desc = 派閥の成長とXP +modules.war_name = 戦争 +modules.war_desc = 正式な宣戦布告 +modules.coming_soon = 近日公開 +modules.active = アクティブ +modules.view_treasury = 資金庫を表示 +modules.unavailable = 利用不可 +modules.no_economy = 経済プラグインが検出されません +modules.disabled = 無効 +modules.economy_not_available = このサーバーでは経済機能は利用できません + +# ========== 資金庫ページ ========== +treasury.title = 派閥資金庫 +treasury.balance_label = 残高 +treasury.income_24h = 収入 (24時間) +treasury.deposits_transfers_in = 入金、受取送金 +treasury.expenses_24h = 支出 (24時間) +treasury.withdrawals_transfers_out = 出金、送出送金 +treasury.maintenance = メンテナンス +treasury.runway_label = 残存期間: +treasury.add_funds = 資金を追加 +treasury.deposit_btn = 入金 +treasury.take_funds = 資金を引き出す +treasury.withdraw_btn = 出金 +treasury.send_to_faction = 派閥に送金 +treasury.transfer_btn = 送金 +treasury.treasury_config = 資金庫設定 +treasury.settings_btn = 設定 +treasury.recent_transactions = 最近の取引 +treasury.no_transactions = まだ取引はありません +treasury.col_date = 日付 +treasury.col_type = 種類 +treasury.col_by = 実行者 +treasury.col_amount = 金額 +treasury.col_details = 詳細 +treasury.pay_now_btn = 今すぐ支払う +treasury.cost_7d = 7日: +treasury.cost_14d = 14日: +treasury.cost_30d = 30日: +treasury.settings_title = 資金庫設定 +treasury.officer_permissions = 幹部の権限 +treasury.allow_withdraw = 幹部の出金を許可 +treasury.allow_transfer = 幹部の送金を許可 +treasury.limits_section = 出金と送金の制限 +treasury.max_per_withdrawal = 1回あたりの最大出金額: +treasury.max_withdrawals_per = 期間あたりの最大出金回数: +treasury.max_per_transfer = 1回あたりの最大送金額: +treasury.max_transfers_per = 期間あたりの最大送金回数: +treasury.limit_period = 制限期間(時間): +treasury.no_limit_hint = 0で無制限 +treasury.upkeep_settings = 維持費設定 +treasury.auto_pay_upkeep = 資金庫から維持費を自動支払い +treasury.back_btn = 戻る +treasury.upkeep_cost_format = {0} / {1}時間ごと +treasury.upkeep_time_left = 残り{0} +treasury.wallet_label = あなたのウォレット: {0} +treasury.treasury_label = 資金庫残高: {0} +treasury.chunks_detail = {0} 無料 + {1} 課金チャンク +treasury.cost_label = コスト: {0} +treasury.pending = 保留中 +treasury.auto_pay_on = 自動支払い: オン +treasury.auto_pay_off = 自動支払い: オフ +treasury.runway_90_plus = 90日以上 +treasury.runway_days = {0}日 +treasury.runway_day = {0}日 +treasury.runway_less_day = 1日未満 +treasury.runway_no_funds = 資金なし +treasury.grace_expires = 猶予期限: {0} +treasury.missed_payments = 未払い回数: {0} +treasury.pay_to_clear = {0} を支払って猶予を解除 +treasury.system = システム +treasury.type_deposit = 入金 +treasury.type_withdrawal = 出金 +treasury.type_transfer_in = 受取送金 +treasury.type_transfer_out = 送出送金 +treasury.type_player_transfer = プレイヤー送金 +treasury.type_upkeep = 維持費 +treasury.type_tax = 税金徴収 +treasury.type_war_cost = 戦争費用 +treasury.type_raid_cost = レイド費用 +treasury.type_spoils = 戦利品 +treasury.type_admin = 管理者調整 +treasury.deposit_title = 資金庫に入金 +treasury.withdraw_title = 資金庫から出金 +treasury.fee_label = 手数料 ({0}%) +treasury.confirm_deposit = 入金を確認 +treasury.confirm_withdrawal = 出金を確認 +treasury.from_wallet = ウォレットから {0} +treasury.to_wallet = ウォレットへ {0} +treasury.enter_valid_amount = 有効な正の金額を入力してください。 +treasury.insufficient_wallet = ウォレットの資金が不足しています。必要: {0}、所持: {1}。 +treasury.wallet_withdraw_failed = ウォレットからの引き出しに失敗しました。 +treasury.deposit_failed_returned = 入金に失敗しました。資金は返還されました。 +treasury.deposited = {0} を資金庫に入金しました。 +treasury.deposited_fee = {0} を資金庫に入金しました。(手数料: {1}) +treasury.no_withdraw_permission = 出金する権限がありません。 +treasury.withdraw_denied = 出金が拒否されました: {0} +treasury.insufficient_treasury = 資金庫の資金が不足しています。 +treasury.withdraw_limit = 出金上限を超過しました。 +treasury.withdraw_failed = 出金に失敗しました: {0} +treasury.wallet_deposit_warn = 警告: ウォレットへの入金に失敗しました。管理者にお問い合わせください。 +treasury.withdrew = 資金庫から {0} を出金しました。 +treasury.withdrew_fee = 資金庫から {0} を出金しました。(手数料: {1}、受取額: {2}) +treasury.search_hint = プレイヤーまたは派閥を検索 +treasury.no_results = 「{0}」の検索結果はありません +treasury.tag_player = [プレイヤー] +treasury.tag_faction = [派閥] +treasury.source_online = オンライン +treasury.source_offline = オフライン +treasury.source_player_db = Hytaleプレイヤー +treasury.no_transfer_permission = 送金する権限がありません。 +treasury.transfer_denied = 送金が拒否されました: {0} +treasury.invalid_target_faction = 無効な送金先派閥です。 +treasury.target_faction_gone = 送金先の派閥はもう存在しません。 +treasury.transfer_failed = 送金に失敗しました: {0} +treasury.transfer_failed_returned = 送金に失敗しました。資金は返還されました。 +treasury.transferred = {0} を {1} に送金しました。 +treasury.invalid_target_player = 無効な送金先プレイヤーです。 +treasury.player_transfer_failed = プレイヤーのウォレットへの入金に失敗しました。送金はロールバックされました。 +treasury.leader_only_perms = リーダーのみが資金庫の権限を変更できます。 +treasury.leader_only_upkeep = リーダーのみが維持費設定を変更できます。 +treasury.invalid_limit = 制限フィールドの数値が無効です。無制限にするには0を使用してください。 + +# ========== 確認ページ ========== +confirm.disband_title = 派閥を解散 +confirm.disband_prompt = 本当に解散しますか +confirm.disband_warning = この操作は取り消せません! +confirm.leave_title = 派閥を脱退 +confirm.leave_prompt = 本当に脱退しますか +confirm.leave_warning = 派閥テリトリーへのアクセスを失います。 +confirm.leader_leave_title = リーダーとして脱退 +confirm.leader_leave_prompt = 脱退しようとしています +confirm.transfer_title = リーダーシップ譲渡 +confirm.transfer_prompt = 本当にリーダーシップを譲渡しますか +confirm.transfer_warning = あなたは幹部になります。 +confirm.disband_not_leader = リーダーのみが派閥を解散できます。 +confirm.disbanded = 派閥「{0}」が解散されました。 +confirm.disband_failed = 派閥の解散に失敗しました。 +confirm.succession_title = リーダーシップの移行先: +confirm.no_members_warning = 警告: 他にメンバーがいません! +confirm.will_disband = 脱退すると派閥は永久に解散されます。 +confirm.not_in_faction = この派閥に所属していません。 +confirm.not_leader_anymore = あなたはもうリーダーではありません。 +confirm.no_successor = 後継者がいません。代わりに解散を使用してください。 +confirm.transfer_failed = リーダーシップの譲渡に失敗しました: {0} +confirm.leader_left = リーダーシップを {0} に譲渡しました。{1} を脱退しました。 +confirm.leave_failed = 派閥の脱退に失敗しました: {0} +confirm.leader_cannot_leave = リーダーは脱退できません。リーダーシップを譲渡するか、派閥を解散してください。 +confirm.left_faction = {0} を脱退しました。 +confirm.faction_gone = 派閥はもう存在しません。 +confirm.not_leader_transfer = リーダーのみがリーダーシップを譲渡できます。 +confirm.leadership_transferred = リーダーシップを {0} に譲渡しました。 + +# ========== ログ閲覧ページ ========== +logs.title = {0} - アクティビティログ +logs.entry_count = {0} 件 +logs.filter_label = フィルター: +logs.col_time = 時間 +logs.col_type = 種類 +logs.col_message = メッセージ +logs.prev_btn = < 前へ +logs.next_btn = 次へ > +logs.all_types = すべての種類 +logs.no_logs_type = この種類のログはありません。 +logs.no_logs = まだアクティビティログはありません。 +logs.time_just_now = たった今 +logs.time_minute = {0}分前 +logs.time_minutes = {0}分前 +logs.time_hour = {0}時間前 +logs.time_hours = {0}時間前 +logs.time_day = {0}日前 +logs.time_days = {0}日前 +logs.time_week = {0}週間前 +logs.time_weeks = {0}週間前 +logs.type_member_join = 参加 +logs.type_member_leave = 脱退 +logs.type_member_kick = キック +logs.type_member_promote = 昇格 +logs.type_member_demote = 降格 +logs.type_claim = 確保 +logs.type_unclaim = 放棄 +logs.type_overclaim = 強制確保 +logs.type_home_set = ホーム設定 +logs.type_relation_ally = 同盟 +logs.type_relation_enemy = 敵 +logs.type_relation_neutral = 中立 +logs.type_leader_transfer = 譲渡 +logs.type_settings_change = 設定 +logs.type_power_change = パワー +logs.type_economy = 経済 +logs.type_admin_power = 管理者パワー + +# ログメッセージテンプレート(アクティビティログ用i18n) +# プレイヤーアクション +logs.msg_faction_created = {0} が派閥を作成しました +logs.msg_member_joined = {0} が派閥に参加しました +logs.msg_member_left = {0} が派閥を脱退しました +logs.msg_member_kicked = {0} がキックされました +logs.msg_member_promoted = {0} が {1} に昇格しました +logs.msg_member_demoted = {0} が {1} に降格されました +logs.msg_leader_transferred = リーダーシップが {0} に譲渡されました +logs.msg_leader_left_transfer = {0} が脱退し、{1} が新しいリーダーになりました +logs.msg_relation_set = {0} を {1} に設定しました +# テリトリー +logs.msg_claimed = {2} のチャンク {0}, {1} を確保しました +logs.msg_unclaimed = {2} のチャンク {0}, {1} を放棄しました +logs.msg_overclaim_lost = チャンク {0}, {1} を {2} に奪われました +logs.msg_overclaim_taken = {2} からチャンク {0}, {1} を強制確保しました +logs.msg_all_unclaimed = すべてのテリトリーが放棄されました +logs.msg_claim_removed_world = 「{0}」の領地が削除されました(ワールドが確保を許可していません) +logs.msg_claims_lost_upkeep = 維持費により {0} 件の領地を失いました({1} 回未払い) +logs.msg_claims_removed_inactive = 非アクティブにより {0} 件の領地が削除されました({1} 日間) +# ホーム +logs.msg_home_set = ホームを設定しました +logs.msg_home_cleared = ホームをクリアしました +logs.msg_home_cleared_world = 「{0}」のホームがクリアされました(ワールドが確保を許可していません) +# 設定 +logs.msg_renamed = 「{0}」から「{1}」に名前を変更しました +logs.msg_set_open = 派閥を公開に設定しました +logs.msg_set_closed = 派閥を招待制に設定しました +logs.msg_desc_set = 説明を設定しました +logs.msg_desc_cleared = 説明をクリアしました +logs.msg_color_changed = カラーを「{0}」に変更しました +# 経済 +logs.msg_deposit = 入金: {0} (+{1}) +logs.msg_withdrawal = 出金: {0} (-{1}) +logs.msg_upkeep_paid = 維持費支払い: {0}({1} 課金チャンク) +logs.msg_upkeep_grace_started = 維持費支払い失敗: 猶予期間開始({0}時間) +logs.msg_upkeep_missed = 維持費未払い({0}回目)、猶予期限: {1} +logs.msg_upkeep_manual = 維持費手動支払い: {0}({1} 課金チャンク、猶予解除) +# 管理者パワー +logs.msg_admin_power_set = 管理者が {0} のパワーを {1} に設定しました(以前: {2}) +logs.msg_admin_power_add = 管理者が {1} に {0} パワーを追加しました({2} -> {3}) +logs.msg_admin_power_remove = 管理者が {1} から {0} パワーを削除しました({2} -> {3}) +logs.msg_admin_power_reset = 管理者が {0} のパワーを {1} にリセットしました(以前: {2}) +logs.msg_admin_power_adjusted = 管理者が {0} のパワーを {1} 調整しました({2} -> {3}) +logs.msg_admin_maxpower_set = 管理者が {0} の最大パワーを {1} に設定しました(以前: {2}) +logs.msg_admin_maxpower_reset = 管理者が {0} の最大パワーをグローバルデフォルト({1})にリセットしました +logs.msg_admin_powerloss_enabled = 管理者が {0} のパワー減少を有効にしました +logs.msg_admin_powerloss_disabled = 管理者が {0} のパワー減少を無効にしました +logs.msg_admin_decay_enabled = 管理者が {0} の領地減衰免除を有効にしました +logs.msg_admin_decay_disabled = 管理者が {0} の領地減衰免除を無効にしました +logs.msg_admin_kd_reset = 管理者が {0} のK/Dをリセットしました +logs.msg_admin_power_set_all = 管理者が全 {0} メンバーのパワーを {1} に設定しました +logs.msg_admin_power_add_all = 管理者が全 {1} メンバーに {0} パワーを追加しました +logs.msg_admin_power_remove_all = 管理者が全 {1} メンバーから {0} パワーを削除しました +logs.msg_admin_power_reset_all = 管理者が全 {0} メンバーのパワーをリセットしました +logs.msg_admin_power_adjusted_all = 管理者が全 {0} メンバーのパワーを {1} 調整しました +# 管理者派閥 +logs.msg_admin_kicked = [Admin] {0} がキックされました +logs.msg_admin_role_set = [Admin] {0} の役職が {1} に設定されました +logs.msg_admin_leader_kick = [Admin] リーダーシップが {0} から {1} に移行されました(管理者キック) +logs.msg_admin_econ_added = 管理者が追加: {0}(残高: {1}) +logs.msg_admin_econ_deducted = 管理者が差し引き: {0}(残高: {1}) +logs.msg_admin_econ_set = 管理者が残高を {0} に設定しました(以前: {1}) +# インポート +logs.msg_left_import = {0} が脱退しました(別の派閥にインポート) +logs.msg_leader_import_transfer = {0} がリーダーになりました(前リーダーが別の派閥にインポート) +logs.msg_imported_from = {0} からインポートされた派閥 + +# ========== チャットページ ========== +chat.title = 派閥チャット +chat.tab_faction = 派閥 +chat.tab_ally = 同盟 +chat.send_btn = 送信 +chat.placeholder = メッセージを入力... +chat.no_messages = まだメッセージはありません。 +chat.no_ally_permission = 同盟チャットの権限がありません。 +chat.no_permission = 権限がありません。 +chat.faction_gone = 派閥はもう存在しません。 +chat.time_now = 今 +chat.time_minutes = {0}分 +chat.time_hours = {0}時間 + +# ========== 招待ページ ========== +invites.title = 招待 +invites.tab_outgoing = 送信済み +invites.tab_requests = リクエスト +invites.prev_btn = < 前へ +invites.next_btn = 次へ > +invites.invite_count = {0} 件の招待 +invites.request_count = {0} 件のリクエスト +invites.invited_by = 招待者: {0} +invites.no_message = メッセージなし +invites.expires = 有効期限: {0} +invites.type_outgoing = 送信済み +invites.type_request = リクエスト +invites.invited_by_label = 招待者: +invites.empty_outgoing = 送信済みの招待はありません。/f invite <プレイヤー> で誰かを招待しましょう。 +invites.empty_requests = 参加リクエストはありません。プレイヤーは /f request でリクエストを送信できます。 +invites.invalid_player = 無効なプレイヤーです。 +invites.cancelled_invite = {0} への招待をキャンセルしました。 +invites.player_joined = {0} が派閥に参加しました! +invites.faction_full = 派閥が満員です。リクエストを承諾できません。 +invites.add_failed = プレイヤーの追加に失敗しました。 +invites.request_expired = リクエストが見つからないか期限切れです。 +invites.request_declined = {0} からの参加リクエストを辞退しました。 +invites.time_seconds = {0}秒 +invites.time_minutes = {0}分 +invites.time_hours = {0}時間 +invites.label_message = メッセージ: +invites.btn_cancel = キャンセル +invites.btn_accept = 承諾 +invites.btn_decline = 辞退 + +# ========== マップページ ========== +map.title = テリトリーマップ +map.action_hint = 左クリック: 確保 | 右クリック: 放棄 +map.legend_your = 自分のテリトリー +map.legend_ally = 同盟テリトリー +map.legend_enemy = 敵テリトリー +map.legend_other = 他の派閥 +map.legend_wilderness = 荒野 +map.legend_safe = SafeZone +map.legend_war = WarZone +map.legend_you = 現在地 +map.position = 現在地: チャンク ({0}, {1}) +map.legend_protected = 保護中 +map.claim_stats = 領地: {0}/{1} (残り{2}) +map.overclaimed = {0} に強制確保されました! +map.power_display = パワー: {0}/{1} +map.join_to_claim = 派閥に参加して領地を確保しましょう +map.claim_success = チャンク ({0}, {1}) を確保しました! +map.claim_not_in_faction = テリトリーを確保するには派閥に所属する必要があります。 +map.claim_not_officer = 幹部とリーダーのみがテリトリーを確保できます。 +map.claim_already_yours = このチャンクはすでにあなたの領地です。 +map.claim_already_claimed = このチャンクはすでに他の派閥に確保されています。 +map.claim_not_adjacent = テリトリーに隣接するチャンクのみ確保できます。 +map.claim_max = 領地の上限に達しました。 +map.claim_world_not_allowed = このワールドでは領地確保が許可されていません。 +map.claim_orbisguard = このエリアは OrbisGuard によって保護されています。 +map.claim_failed = チャンクの確保に失敗しました。 +map.unclaim_success = チャンク ({0}, {1}) を放棄しました。 +map.unclaim_not_in_faction = 派閥に所属する必要があります。 +map.unclaim_not_officer = 幹部とリーダーのみがテリトリーを放棄できます。 +map.unclaim_not_claimed = このチャンクは確保されていません。 +map.unclaim_not_yours = このチャンクは他の派閥の領地です。 +map.unclaim_home = 派閥ホームのあるチャンクは放棄できません。 +map.unclaim_failed = チャンクの放棄に失敗しました。 +map.overclaim_success = 敵のチャンク ({0}, {1}) を強制確保しました! +map.overclaim_not_in_faction = 派閥に所属する必要があります。 +map.overclaim_not_officer = 幹部とリーダーのみが強制確保できます。 +map.overclaim_already_yours = このチャンクはすでにあなたの領地です。 +map.overclaim_ally = 同盟のテリトリーは強制確保できません。 +map.overclaim_has_power = この派閥はテリトリーを防衛するのに十分なパワーを持っています。 +map.overclaim_max = 領地の上限に達しました。 +map.overclaim_failed = チャンクの強制確保に失敗しました。 +# ========== 派閥作成ページ ========== +create.title = 派閥を作成 +create.section_preview = プレビュー +create.section_basic_info = 基本情報 +create.section_details = 詳細 +create.name_prefix = 名前: +create.faction_name_label = 派閥名 * +create.tag_label = タグ(2-4文字、空欄で自動生成) +create.desc_label = 説明(任意) +create.recruitment_label = 募集 +create.section_faction_color = 派閥カラー +create.section_combat = 戦闘 +create.create_btn = 派閥を作成 +create.preview_name = あなたの派閥名 +create.leader_prefix = リーダー: {0} +create.enter_name = 派閥名を入力してください。 +create.name_too_short = 派閥名は{0}文字以上である必要があります。 +create.name_too_long = 派閥名は{0}文字以内である必要があります。 +create.name_taken = その名前の派閥はすでに存在します。 +create.tag_length = 派閥タグは{0}-{1}文字である必要があります。 +create.tag_format = 派閥タグには英数字のみ使用できます。 +create.desc_too_long = 説明は{0}文字以内である必要があります。 +create.created = 派閥 {0} を作成しました! +create.created_no_dashboard = 派閥を作成しましたが、ダッシュボードを開けませんでした。 +create.invalid_name = 無効な派閥名です。 +create.create_failed = 派閥を作成できませんでした。 + +# ========== 新規プレイヤーページ ========== +newplayer.browse_title = 派閥を検索 +newplayer.invites_title = 招待とリクエスト +newplayer.map_title = テリトリーマップ +newplayer.view_only_badge = 閲覧専用モード +newplayer.legend_label = 凡例: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = 派閥 +newplayer.legend_wilderness = 荒野 +newplayer.search_label = 検索: +newplayer.sort_label = ソート: +newplayer.prev_btn = < 前へ +newplayer.next_btn = 次へ > +newplayer.pending_count = {0} 件保留中 +newplayer.received_header = 受信済み招待 ({0}) +newplayer.requests_header = あなたのリクエスト ({0}) +newplayer.no_invites = 招待はありません。派閥を検索して見つけましょう! +newplayer.no_requests = 保留中のリクエストはありません。 +newplayer.invited_by = 招待者: {0} +newplayer.member_count = {0} メンバー +newplayer.power_count = {0} パワー +newplayer.claim_count = {0} 領地 +newplayer.awaiting_review = 審査中 +newplayer.expires_in = {0}時間後に期限切れ +newplayer.time_just_now = たった今 +newplayer.time_minutes = {0}分前 +newplayer.time_hours = {0}時間前 +newplayer.time_days = {0}日前 +newplayer.invalid_faction = 無効な派閥です。 +newplayer.invite_expired = この招待は期限切れまたは取り消されました。 +newplayer.faction_gone = 派閥はもう存在しません。 +newplayer.joined = {0} に参加しました! +newplayer.faction_full = この派閥は満員です。 +newplayer.join_failed = 派閥に参加できませんでした。 +newplayer.invite_declined = 招待を辞退しました。 +newplayer.request_cancelled = {0} への参加リクエストをキャンセルしました。 +newplayer.faction_count = {0} 派閥 +newplayer.browse_subtitle = 新しい居場所を見つけましょう! +newplayer.sort_power = パワー +newplayer.sort_name = 名前 +newplayer.sort_members = メンバー +newplayer.btn_accept = 承諾 +newplayer.btn_pending = 保留中 +newplayer.btn_join = 参加 +newplayer.btn_request = リクエスト +newplayer.invite_only_msg = この派閥は招待制です。 +newplayer.welcome_hint = ようこそ! /f で派閥メニューを開けます。 +newplayer.faction_open_hint = この派閥は公開されています!代わりに「参加」をクリックしてください。 +newplayer.already_requested = すでにこの派閥にリクエストを送信済みです。 +newplayer.has_invite_hint = この派閥から招待されています!代わりに「承諾」をクリックしてください。 +newplayer.request_sent = {0} に参加リクエストを送信しました! +newplayer.officer_review = 幹部がリクエストを確認します。 +newplayer.map_hint = 閲覧専用 - 派閥に参加してテリトリーを確保しましょう! + +# プレイヤー設定 +nav.player_settings = プレイヤー +player_settings.title = プレイヤー設定 +player_settings.language_section = 言語 +player_settings.auto_detect = クライアントから自動検出 +player_settings.auto_detect_desc = ゲームクライアントの言語設定を使用します +player_settings.language_label = 言語 +player_settings.notifications_section = 通知 +player_settings.territory_alerts = テリトリー通知 +player_settings.territory_alerts_desc = テリトリーの出入り時に通知を表示します +player_settings.death_announcements = 死亡ブロードキャスト +player_settings.death_announcements_desc = 派閥メンバーの死亡場所のアナウンスを受信します +player_settings.power_notifications = パワー変動 +player_settings.power_notifications_desc = パワーが変化した際にメッセージを表示します +player_settings.language_changed = 言語を {0} に変更しました +player_settings.pref_enabled = {0} を有効にしました +player_settings.pref_disabled = {0} を無効にしました + +# ========== ヘルプページ ========== +help.center_title = ヘルプセンター +help.getting_started_title = はじめに +help.what_are_factions_title = 派閥とは? +help.what_are_factions_1 = 派閥はプレイヤーが作成するグループで、協力して +help.what_are_factions_2 = テリトリーを確保し、拠点を建設し、競い合います。 +help.what_are_factions_bullet_1 = - 建築のための保護されたテリトリー +help.what_are_factions_bullet_2 = - 一緒にプレイする仲間 +help.what_are_factions_bullet_3 = - 派閥チャットや機能へのアクセス +help.joining_title = 派閥への参加 +help.joining_desc = 派閥に参加するにはいくつかの方法があります: +help.joining_bullet_1 = - 検索 - 公開派閥を見つけて「参加」をクリック +help.joining_bullet_2 = - 招待 - 幹部からの招待を承諾 +help.joining_bullet_3 = - リクエスト - 招待制の派閥に参加を申請 +help.creating_title = 派閥の作成 +help.creating_desc = 作成タブから自分の派閥を始めましょう。 +help.creating_bullet_1 = - メンバーの招待と管理 +help.creating_bullet_2 = - テリトリーの確保と保護 +help.commands_title = クイックコマンド +help.cmd_f = /f - 派閥メニューを開く +help.cmd_f_list = /f list - 全派閥を一覧表示 +help.cmd_f_join = /f join <名前> - 公開派閥に参加 +help.cmd_f_create = /f create <名前> - 新しい派閥を作成 +help.cmd_f_help = /f help - 全コマンド一覧 +help.tip = ヒント: 派閥を検索して、あなたに合うグループを見つけましょう! From 56bacc762e794434ffafb93fece0e621f7753947 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:10 -0700 Subject: [PATCH 60/76] i18n: add Russian (ru-RU) translations Complete Russian translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/ru-RU/help/combat/death.md | 39 + .../Languages/ru-RU/help/combat/protection.md | 28 + .../ru-RU/help/combat/spawn_protection.md | 27 + .../Languages/ru-RU/help/combat/tagging.md | 29 + .../Languages/ru-RU/help/combat/zones.md | 29 + .../ru-RU/help/diplomacy/alliances.md | 45 + .../Languages/ru-RU/help/diplomacy/enemies.md | 47 + .../ru-RU/help/diplomacy/relations.md | 38 + .../Languages/ru-RU/help/economy/commands.md | 27 + .../Languages/ru-RU/help/economy/funds.md | 42 + .../Languages/ru-RU/help/economy/treasury.md | 26 + .../Languages/ru-RU/help/economy/upkeep.md | 37 + .../ru-RU/help/power_land/claiming.md | 50 + .../ru-RU/help/power_land/losing_territory.md | 50 + .../ru-RU/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../ru-RU/help/quick_ref/all_commands.md | 94 ++ .../ru-RU/help/welcome/getting_started.md | 38 + .../ru-RU/help/welcome/quick_tips.md | 44 + .../ru-RU/help/welcome/what_are_factions.md | 37 + .../ru-RU/help/your_faction/creating.md | 38 + .../ru-RU/help/your_faction/joining.md | 36 + .../ru-RU/help/your_faction/managing.md | 44 + .../ru-RU/help/your_faction/roles.md | 44 + .../Server/Languages/ru-RU/hyperfactions.lang | 453 +++++++++ .../Languages/ru-RU/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/ru-RU/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/death.md b/src/main/resources/Server/Languages/ru-RU/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md b/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md b/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md b/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md b/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md b/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md b/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md b/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang new file mode 100644 index 00000000..8c78ced0 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Russian Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Общее ========== +common.no_permission = У вас нет прав на это действие. +common.not_in_faction = Вы не состоите во фракции. +common.already_in_faction = Вы уже состоите во фракции. +common.player_not_found = Игрок не найден. +common.faction_not_found = Фракция не найдена. +common.player_not_online = Этот игрок не в сети. +common.must_be_leader = Только Лидер фракции может это сделать. +common.must_be_officer = Вы должны быть Офицером или Лидером для этого действия. +common.combat_tagged = Вы не можете сделать это во время боя. +common.cancel = Отмена +common.confirm = Подтвердить +common.save = Сохранить +common.close = Закрыть +common.clear = Очистить +common.back = Назад +common.leave = Покинуть +common.transfer = Передать +common.disband = Распустить +common.world_fallback = мир +common.yes = Да +common.no = Нет +common.loading = Загрузка... +common.online = В сети +common.offline = Не в сети +common.enabled = Включено +common.disabled = Отключено +common.none = Нет +common.page = Страница {0} из {1} +common.unknown = Неизвестно +common.error_generic = Произошла ошибка. Пожалуйста, попробуйте ещё раз. +common.gui_fallback = Не удалось открыть интерфейс. Используйте /f help для списка команд. +common.admin_prefix = [Admin] +common.location_error = Не удалось определить ваше местоположение. +common.world_error = Не удалось определить ваш мир. +common.invalid_id = Недопустимый ID фракции. +common.na = Н/Д + +# ========== Команды - Создание ========== +cmd.create.no_permission = У вас нет прав на создание фракций. +cmd.create.usage = Использование: /f create <название> +cmd.create.success = Фракция '{0}' создана! +cmd.create.already_in_named = Вы уже состоите в {0}. +cmd.create.use_leave_first = Сначала используйте /f leave, если хотите создать новую фракцию. +cmd.create.name_taken = Это название фракции уже занято. +cmd.create.name_too_short = Название фракции слишком короткое. +cmd.create.name_too_long = Название фракции слишком длинное. +cmd.create.failed = Не удалось создать фракцию. + +# ========== Команды - Роспуск ========== +cmd.disband.no_permission = У вас нет прав на роспуск фракций. +cmd.disband.not_leader = Только Лидер фракции может её распустить. +cmd.disband.confirm_prompt = Вы уверены, что хотите распустить свою фракцию? +cmd.disband.confirm_instruction = Введите /f disband --text ещё раз в течение {0} секунд для подтверждения. +cmd.disband.success = Ваша фракция была распущена. +cmd.disband.failed = Не удалось распустить фракцию. +cmd.disband.cancelled = Предыдущее подтверждение отменено. Введите снова для подтверждения роспуска. + +# ========== Команды - Переименование ========== +cmd.rename.no_permission = У вас нет прав. +cmd.rename.not_leader = Только Лидер может переименовать фракцию. +cmd.rename.usage = Использование: /f rename <название> +cmd.rename.too_short = Название слишком короткое (мин. {0} символов). +cmd.rename.too_long = Название слишком длинное (макс. {0} символов). +cmd.rename.name_taken = Это название уже занято. +cmd.rename.success = Фракция переименована в {0}! +cmd.rename.broadcast = {0} переименовал(а) фракцию в {1} + +# ========== Команды - Описание ========== +cmd.desc.no_permission = У вас нет прав. +cmd.desc.not_officer = Вы должны быть Офицером, чтобы задать описание. +cmd.desc.set = Описание фракции установлено! +cmd.desc.cleared = Описание фракции очищено. + +# ========== Команды - Открыть / Закрыть ========== +cmd.open.no_permission = У вас нет прав. +cmd.open.not_leader = Только Лидер может изменить эту настройку. +cmd.open.already_open = Ваша фракция уже открыта. +cmd.open.success = Ваша фракция теперь открыта! Любой может вступить командой /f join. +cmd.open.broadcast = {0} открыл(а) фракцию для свободного вступления. +cmd.close.no_permission = У вас нет прав. +cmd.close.not_leader = Только Лидер может изменить эту настройку. +cmd.close.already_closed = Ваша фракция уже закрыта. +cmd.close.success = Ваша фракция теперь доступна только по приглашению. +cmd.close.broadcast = {0} закрыл(а) фракцию (только по приглашению). + +# ========== Команды - Цвет ========== +cmd.color.no_permission = У вас нет прав. +cmd.color.not_officer = Вы должны быть Офицером, чтобы изменить цвет. +cmd.color.colors_disabled = Цвета фракций отключены. +cmd.color.usage = Использование: /f color <код|#hex> +cmd.color.usage_hint = Допустимые коды: 0-9, a-f или #RRGGBB hex +cmd.color.invalid = Недопустимый цвет. Используйте 0-9, a-f или #RRGGBB. +cmd.color.success = Цвет фракции обновлён! + +# ========== Команды - Захват территории ========== +cmd.claim.no_permission = У вас нет прав на захват территории. +cmd.claim.already_yours = Ваша фракция уже владеет этим чанком. +cmd.claim.cannot_claim_ally = Вы не можете захватить территорию союзника. +cmd.claim.already_claimed_hint = Этот чанк захвачен. Используйте /f overclaim, если фракция уязвима для рейда. +cmd.claim.success = Чанк захвачен в {0}, {1}! +cmd.claim.not_officer = Вы должны быть Офицером, чтобы захватывать территорию. +cmd.claim.already_claimed = Этот чанк уже захвачен. +cmd.claim.max_claims = Ваша фракция достигла предела территорий. Получите больше Силы! +cmd.claim.not_adjacent = Вы можете захватывать только территории, смежные с вашими. +cmd.claim.world_not_allowed = Захват территории в этом мире запрещён. +cmd.claim.orbisguard = Эта область защищена OrbisGuard. +cmd.claim.zone_protected = Этот чанк находится в SafeZone или WarZone. +cmd.claim.insufficient_power = У вашей фракции недостаточно Силы для захвата новых территорий. +cmd.claim.failed = Не удалось захватить чанк. + +# ========== Команды - Приглашение ========== +cmd.invite.no_permission = У вас нет прав приглашать игроков. +cmd.invite.not_officer = Вы должны быть Офицером, чтобы приглашать игроков. +cmd.invite.usage = Использование: /f invite <игрок> +cmd.invite.player_not_found = Игрок '{0}' не найден или не в сети. +cmd.invite.target_in_faction = Этот игрок уже состоит во фракции. +cmd.invite.sent = Приглашение отправлено {0} в вашу фракцию. +cmd.invite.received = Вы получили приглашение вступить в {0}! +cmd.invite.accept_hint = Введите /f accept {0}, чтобы вступить. + +# ========== Команды - Принять / Вступить ========== +cmd.join.no_permission = У вас нет прав на вступление во фракции. +cmd.join.already_in_named = Вы уже состоите в {0}. +cmd.join.use_leave_hint = Сначала используйте /f leave, если хотите вступить в другую фракцию. +cmd.join.no_invites = У вас нет ожидающих приглашений. +cmd.join.faction_not_found = Фракция '{0}' не найдена. +cmd.join.not_invited = У вас нет приглашения от этой фракции. +cmd.join.faction_gone = Эта фракция больше не существует. +cmd.join.success = Вы вступили в {0}! +cmd.join.broadcast = {0} вступил(а) во фракцию! +cmd.join.faction_full = Эта фракция заполнена. +cmd.join.failed = Не удалось вступить во фракцию. + +# ========== Команды - Исключение ========== +cmd.kick.no_permission = У вас нет прав исключать участников. +cmd.kick.usage = Использование: /f kick <игрок> +cmd.kick.not_in_your_faction = Игрок '{0}' не состоит в вашей фракции. +cmd.kick.success = {0} исключён(а) из фракции. +cmd.kick.broadcast = {0} был(а) исключён(а) из фракции. +cmd.kick.kicked = Вы были исключены из фракции. +cmd.kick.cannot_kick_higher = У вас нет прав исключить этого игрока. +cmd.kick.cannot_kick_leader = Вы не можете исключить Лидера фракции. +cmd.kick.failed = Не удалось исключить игрока. + +# ========== Команды - Покинуть ========== +cmd.leave.no_permission = У вас нет прав покидать фракции. +cmd.leave.confirm_prompt = Вы уверены, что хотите покинуть свою фракцию? +cmd.leave.confirm_instruction = Введите /f leave --text ещё раз в течение {0} секунд для подтверждения. +cmd.leave.success = Вы покинули свою фракцию. +cmd.leave.broadcast = {0} покинул(а) фракцию. +cmd.leave.failed = Не удалось покинуть фракцию. +cmd.leave.cancelled = Предыдущее подтверждение отменено. Введите снова для подтверждения выхода. + +# ========== Команды - Повышение / Понижение / Передача ========== +cmd.rank.promote_no_permission = У вас нет прав повышать участников. +cmd.rank.promote_usage = Использование: /f promote <игрок> +cmd.rank.promoted = {0} повышен(а) до {1}! +cmd.rank.promote_broadcast = {0} повышен(а) до {1}! +cmd.rank.already_highest = Дальнейшее повышение невозможно. Используйте /f transfer для смены Лидера. +cmd.rank.promote_failed = Не удалось повысить игрока. +cmd.rank.demote_no_permission = У вас нет прав понижать участников. +cmd.rank.demote_usage = Использование: /f demote <игрок> +cmd.rank.demoted = {0} понижен(а) до {1}. +cmd.rank.demote_broadcast = {0} понижен(а) до {1}. +cmd.rank.already_lowest = Этот игрок уже является Участником. +cmd.rank.demote_failed = Не удалось понизить игрока. +cmd.rank.transfer_no_permission = У вас нет прав на передачу лидерства. +cmd.rank.transfer_usage = Использование: /f transfer <игрок> +cmd.rank.player_not_in_faction = Игрок не найден в вашей фракции. +cmd.rank.transfer_confirm = Вы уверены, что хотите передать лидерство {0}? +cmd.rank.transfer_confirm_instruction = Введите /f transfer {0} --text ещё раз в течение {1} секунд для подтверждения. +cmd.rank.transferred = Лидерство передано {0}! +cmd.rank.transfer_broadcast = {0} теперь Лидер фракции! +cmd.rank.transfer_failed = Не удалось передать лидерство. +cmd.rank.transfer_cancelled = Предыдущее подтверждение отменено. Введите снова для подтверждения передачи. + +# ========== Команды - Отказ от территории ========== +cmd.unclaim.no_permission = У вас нет прав на отказ от территории. +cmd.unclaim.success = Чанк освобождён в {0}, {1}. +cmd.unclaim.not_officer = Вы должны быть Офицером, чтобы освобождать территорию. +cmd.unclaim.chunk_not_claimed = Этот чанк не захвачен. +cmd.unclaim.not_your_claim = Ваша фракция не владеет этим чанком. +cmd.unclaim.cannot_unclaim_home = Нельзя освободить чанк с домом фракции. +cmd.unclaim.would_disconnect = Нельзя освободить — это разъединит вашу территорию. +cmd.unclaim.failed = Не удалось освободить чанк. + +# ========== Команды - Перезахват ========== +cmd.overclaim.no_permission = У вас нет прав на перезахват территории. +cmd.overclaim.success = Вражеская территория перезахвачена! +cmd.overclaim.not_officer = Вы должны быть Офицером для перезахвата. +cmd.overclaim.not_claimed = Этот чанк не захвачен. Используйте /f claim. +cmd.overclaim.own_chunk = Ваша фракция уже владеет этим чанком. +cmd.overclaim.ally = Вы не можете перезахватить территорию союзника. +cmd.overclaim.target_has_power = У этой фракции ещё достаточно Силы. +cmd.overclaim.failed = Не удалось выполнить перезахват. + +# ========== Команды - Застрял ========== +cmd.stuck.no_permission = У вас нет прав использовать /f stuck. +cmd.stuck.not_stuck = Вы не застряли — это дикая местность. +cmd.stuck.combat_tagged = Вы не можете использовать /f stuck во время боя! +cmd.stuck.no_safe = Не удалось найти безопасное место. +cmd.stuck.teleporting = Телепортация в безопасное место через {0} секунд. Не двигайтесь! + +# ========== Команды - Дом ========== +cmd.home.no_permission = У вас нет прав на телепортацию к дому фракции. +cmd.home.no_home = У вашей фракции не установлен дом. +cmd.home.combat_tagged = Вы не можете телепортироваться во время боя! +cmd.home.teleported = Телепортация к дому фракции выполнена! + +# ========== Команды - Установить дом ========== +cmd.sethome.no_permission = У вас нет прав на установку дома фракции. +cmd.sethome.world_not_allowed = Нельзя установить дом в этом мире. +cmd.sethome.not_in_territory = Вы можете установить дом только на территории вашей фракции. +cmd.sethome.set = Дом фракции установлен! +cmd.sethome.broadcast = {0} установил(а) дом фракции. +cmd.sethome.not_officer = Вы должны быть Офицером, чтобы установить дом. +cmd.sethome.failed = Не удалось установить дом. + +# ========== Команды - Удалить дом ========== +cmd.delhome.no_permission = У вас нет прав на удаление дома фракции. +cmd.delhome.no_home = У вашей фракции не установлен дом. +cmd.delhome.deleted = Дом фракции удалён! +cmd.delhome.broadcast = {0} удалил(а) дом фракции. +cmd.delhome.not_officer = Вы должны быть Офицером, чтобы удалить дом. +cmd.delhome.failed = Не удалось удалить дом. + +# ========== Команды - Отношения (Союзник/Враг/Нейтралитет/Отношения) ========== +cmd.relation.ally_no_permission = У вас нет прав на управление союзами. +cmd.relation.ally_usage = Использование: /f ally <фракция> +cmd.relation.ally_sent = Запрос на союз отправлен {0}! +cmd.relation.ally_formed = Вы теперь союзники с {0}! +cmd.relation.already_ally = Вы уже в союзе с этой фракцией. +cmd.relation.ally_failed = Не удалось отправить запрос на союз. +cmd.relation.enemy_no_permission = У вас нет прав объявлять врагов. +cmd.relation.enemy_usage = Использование: /f enemy <фракция> +cmd.relation.enemy_declared = {0} теперь ваш Враг! +cmd.relation.already_enemy = Вы уже враждуете с этой фракцией. +cmd.relation.max_enemies = Вы достигли максимального числа врагов. +cmd.relation.enemy_failed = Не удалось установить вражду. +cmd.relation.neutral_no_permission = У вас нет прав на установку нейтральных отношений. +cmd.relation.neutral_usage = Использование: /f neutral <фракция> +cmd.relation.neutral_set = Ваша фракция теперь нейтральна с {0}. +cmd.relation.already_neutral = Вы уже нейтральны с этой фракцией. +cmd.relation.neutral_failed = Не удалось установить нейтралитет. +cmd.relation.cannot_self = Вы не можете заключить союз с самим собой. +cmd.relation.max_allies = Вы достигли максимального числа союзников. +cmd.relation.view_no_permission = У вас нет прав на просмотр отношений. +cmd.relation.header = === Отношения фракции === +cmd.relation.allies_count = Союзники ({0}): +cmd.relation.enemies_count = Враги ({0}): +cmd.relation.list_entry = - {0} + +# ========== Команды - Чат ========== +cmd.chat.usage = Использование: /f c [f|a|off] +cmd.chat.no_permission = У вас нет прав на этот режим чата. +cmd.chat.mode_set = Режим чата установлен: {0} + +# ========== Команды - Приглашения ========== +cmd.invites.not_officer = Вы должны быть Офицером для управления приглашениями. +cmd.invites.header = === Приглашения фракции === +cmd.invites.no_pending = Нет ожидающих приглашений или заявок. +cmd.invites.outgoing = Исходящие приглашения: +cmd.invites.outgoing_entry = {0} (приглашён(а) {1}) +cmd.invites.requests = Заявки на вступление: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Ваши приглашения === +cmd.invites.no_invites = У вас нет ожидающих приглашений. +cmd.invites.invite_entry = {0} - Используйте /f accept {1} + +# ========== Команды - Заявка ========== +cmd.request.no_permission = У вас нет прав на подачу заявки во фракцию. +cmd.request.already_in_named = Вы уже состоите в {0}. +cmd.request.use_leave_hint = Сначала используйте /f leave, если хотите вступить в другую фракцию. +cmd.request.usage = Использование: /f request <фракция> [сообщение] +cmd.request.faction_open = Эта фракция открыта! Используйте /f accept {0}, чтобы вступить напрямую. +cmd.request.already_requested = Вы уже подали заявку в эту фракцию. +cmd.request.has_invite = Вы приглашены в эту фракцию! Используйте /f accept {0}, чтобы вступить. +cmd.request.sent = Заявка на вступление отправлена в {0}! +cmd.request.your_message = Ваше сообщение: "{0}" +cmd.request.officer_review = Офицер рассмотрит вашу заявку. +cmd.request.officer_notify = {0} подал(а) заявку на вступление в вашу фракцию! +cmd.request.officer_review_hint = Используйте /f gui > Приглашения для просмотра. + +# ========== Команды - Информация ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = У вас нет прав на просмотр информации о фракции. +cmd.info.faction_not_found = Фракция '{0}' не найдена. +cmd.info.not_in_faction_hint = Вы не состоите во фракции. Используйте /f info <фракция> +cmd.info.leader = Лидер: {0} +cmd.info.members = Участники: {0}/{1} +cmd.info.power = Сила: {0} +cmd.info.claims = Территории: {0} +cmd.info.raidable = УЯЗВИМА ДЛЯ РЕЙДА! +cmd.info.allies = Союзники: {0} +cmd.info.enemies = Враги: {0} +cmd.info.they_consider = Они считают вас: {0} +cmd.info.you_consider = Вы считаете их: {0} +cmd.info.members_no_permission = У вас нет прав на просмотр участников фракции. +cmd.info.members_header = === Участники {0} ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = У вас нет прав на просмотр списка фракций. +cmd.info.list_empty = Фракций нет. +cmd.info.list_header = === Фракции ({0}) === +cmd.info.list_entry = {0} - {1} участников, {2} Силы +cmd.info.list_entry_raidable = {0} - {1} участников, {2} Силы [УЯЗВИМА] +cmd.info.help_no_permission = У вас нет прав на просмотр справки. +cmd.info.who_no_permission = У вас нет прав на просмотр информации об игроке. +cmd.info.who_faction = Фракция: {0} +cmd.info.who_role = Роль: {0} +cmd.info.who_joined = Вступил(а): {0} +cmd.info.who_faction_none = Фракция: Нет +cmd.info.who_power = Сила: {0} +cmd.info.who_status = Статус: {0} +cmd.info.who_last_seen = Последний вход: {0} +cmd.info.map_no_permission = У вас нет прав на просмотр карты. +cmd.info.map_header = === Карта территорий === +cmd.info.map_legend = Обозначения: +Вы /Свои /Союзник /Враг -Дикие +cmd.info.map_gui_hint = Используйте /f gui для интерактивной карты + +# ========== Команды - Сила ========== +cmd.power.personal = Личная Сила: {0}/{1} +cmd.power.faction = Сила фракции: {0}/{1} +cmd.power.death_loss = Потеря при смерти: {0} +cmd.power.regen = Скорость восстановления: {0}/час +cmd.power.no_permission = У вас нет прав на просмотр информации о Силе. +cmd.power.header = Сила {0}: +cmd.power.current = Текущая: {0} + +# ========== Команды - Экономика ========== +cmd.economy.balance = Баланс: {0} +cmd.economy.deposited = Внесено {0} в Казну фракции. +cmd.economy.withdrawn = Выведено {0} из Казны фракции. +cmd.economy.transferred = Переведено {0} в {1}. +cmd.economy.insufficient = Недостаточно средств в Казне фракции. +cmd.economy.invalid_amount = Недопустимая сумма: {0} +cmd.economy.economy_disabled = Экономика отключена. +cmd.economy.balance_no_permission = У вас нет прав на просмотр баланса. +cmd.economy.treasury_unavailable = Казна недоступна. +cmd.economy.balance_display = Казна {0}: {1} +cmd.economy.deposit_no_permission = У вас нет прав на внесение средств. +cmd.economy.deposit_faction_denied = У вас нет прав фракции на внесение средств. +cmd.economy.deposit_usage = Использование: /f deposit <сумма> +cmd.economy.amount_positive = Сумма должна быть положительной. +cmd.economy.wallet_insufficient = У вас недостаточно средств. Кошелёк: {0} +cmd.economy.wallet_withdraw_failed = Не удалось списать средства из вашего кошелька. +cmd.economy.deposit_failed = Не удалось внести средства в Казну фракции. Деньги возвращены. +cmd.economy.withdraw_no_permission = У вас нет прав на вывод средств. +cmd.economy.withdraw_faction_denied = У вас нет прав фракции на вывод средств. +cmd.economy.withdraw_usage = Использование: /f withdraw <сумма> +cmd.economy.withdraw_limit_denied = Вывод отклонён: {0} +cmd.economy.wallet_deposit_failed = Внимание: Не удалось зачислить средства в ваш кошелёк. Обратитесь к администратору. +cmd.economy.withdraw_limit_exceeded = Вывод отклонён: превышен лимит. +cmd.economy.withdraw_failed = Ошибка вывода: {0} +cmd.economy.transfer_no_permission = У вас нет прав на перевод. +cmd.economy.transfer_faction_denied = У вас нет прав фракции на перевод. +cmd.economy.transfer_usage = Использование: /f money transfer <фракция> <сумма> +cmd.economy.transfer_self = Нельзя перевести средства своей фракции. +cmd.economy.transfer_limit_denied = Перевод отклонён: {0} +cmd.economy.transfer_limit_exceeded = Перевод отклонён: превышен лимит. +cmd.economy.transfer_failed = Ошибка перевода: {0} +cmd.economy.log_no_permission = У вас нет прав на просмотр журнала транзакций. +cmd.economy.log_header = Журнал транзакций (страница {0}/{1}) +cmd.economy.log_empty = Транзакции не найдены. +cmd.economy.money_help_header = Команды Казны: +cmd.economy.money_help_balance = /f money balance [фракция] - Просмотр баланса +cmd.economy.money_help_deposit = /f money deposit <сумма> - Внести в Казну +cmd.economy.money_help_withdraw = /f money withdraw <сумма> - Вывести из Казны +cmd.economy.money_help_transfer = /f money transfer <фракция> <сумма> - Перевод между фракциями +cmd.economy.money_help_log = /f money log [страница] [тип] - Просмотр истории транзакций + +# ========== Защита - Описания действий ========== +protection.action.generic = Вы не можете этого сделать +protection.action.build = Вы не можете строить или разрушать блоки +protection.action.interact = Вы не можете взаимодействовать с этим +protection.action.door = Вы не можете использовать двери +protection.action.container = Вы не можете открывать контейнеры +protection.action.bench = Вы не можете использовать верстаки +protection.action.processing = Вы не можете использовать перерабатывающие станции +protection.action.seat = Вы не можете использовать сиденья +protection.action.light = Вы не можете переключать свет +protection.action.teleporter = Вы не можете использовать телепортеры +protection.action.crate = Вы не можете использовать ящики +protection.action.tame = Вы не можете приручать существ +protection.action.npc = Вы не можете взаимодействовать с NPC +protection.action.mount = Вы не можете оседлать существ +protection.action.pve = Вы не можете наносить урон существам +protection.action.item_drop = Вы не можете выбрасывать предметы +protection.action.item_pickup = Вы не можете подбирать предметы + +# ========== Защита - Причины отказа ========== +protection.denied.safezone = {0} в SafeZone. +protection.denied.warzone = {0} в WarZone. +protection.denied.enemy_claim = {0} на вражеской территории. +protection.denied.claimed = {0} на захваченной территории. +protection.denied.here = {0} здесь. +protection.denied.zone = {0} в этой зоне. +protection.denied.faction_perm = {0} здесь. (Право фракции: {1}) +protection.denied.ally_territory = {0} здесь. (Территория союзника) +protection.denied.error = Ошибка защиты — действие заблокировано в целях безопасности. + +# ========== Защита - PvP ========== +protection.pvp.safezone = PvP отключено в SafeZone. +protection.pvp.same_faction = Вы не можете атаковать членов своей фракции. +protection.pvp.ally = Вы не можете атаковать союзников. +protection.pvp.spawn_protected = У этого игрока защита после возрождения. +protection.pvp.territory_disabled = PvP отключено на этой территории. +protection.pvp.generic = Вы не можете атаковать этого игрока. + +# ========== Защита - Урон от существ ========== +protection.mob_damage_disabled = Урон от мобов отключён в этой зоне. +protection.pve_damage_disabled = PvE-урон отключён в этой зоне. +protection.pve_territory_denied = Вы не можете наносить урон мобам на этой территории. + +# ========== Защита - Боевая метка ========== +protection.combat_tag_command = Вы не можете использовать эту команду во время боя. + +# ========== Серверные объявления ========== +# Транслируются всем онлайн-игрокам при значимых событиях фракций. +# {0}, {1} = динамические значения (названия фракций, имена игроков) +server_announce.faction_created = {0} основал(а) фракцию {1}! +server_announce.faction_disbanded = Фракция {0} была распущена! +server_announce.leadership_transfer = {0} теперь Лидер фракции {1}! +server_announce.overclaim = {0} перезахватил(а) территорию у {1}! +server_announce.war_declared = {0} объявил(а) войну {1}! +server_announce.alliance_formed = {0} и {1} теперь союзники! +server_announce.alliance_broken = {0} и {1} больше не союзники! + +# ========== Система телепортации ========== +teleport.cooldown_wait = Подождите {0} перед следующей телепортацией. +teleport.warmup_start = Телепортация к дому фракции через {0} секунд... +teleport.combat_cancelled = Телепортация отменена — вы в бою! +teleport.success_default = Телепортация к дому фракции выполнена! +teleport.no_home = У вашей фракции не установлен дом. +teleport.world_not_found = Мир не найден. +teleport.failed = Телепортация не удалась. +teleport.countdown = Телепортация через {0} секунд... +teleport.countdown_one = Телепортация через 1 секунду... +teleport.moved_cancelled = Телепортация отменена — вы двинулись! +teleport.damage_cancelled = Телепортация отменена — вы получили урон! +teleport.mount_teleport_blocked = Вы не можете телепортироваться в эту зону верхом. +teleport.mount_entry_blocked = Вы не можете войти в эту зону верхом. + +# ========== Отображение чата ========== +chat.display.public = Общий +chat.display.faction = Фракция +chat.display.ally = Союзник diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang new file mode 100644 index 00000000..e766a7a1 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Russian Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Навигация панели администратора ========== +nav.dashboard = Обзор +nav.actions = Действия +nav.factions = Фракции +nav.players = Игроки +nav.economy = Экономика +nav.zones = Зоны +nav.config = Конфигурация +nav.backups = Резервные копии +nav.log = Журнал +nav.updates = Обновления +nav.help = Справка +nav.version = Версия + +# ========== Общие метки администратора ========== +common.faction_not_found = Фракция не найдена +common.no_faction = Нет фракции +common.not_set = Не задано +common.on = Вкл +common.off = Выкл +common.enable = Включить +common.disable = Отключить +common.none_paren = (Нет) +common.invalid_faction = Недопустимая фракция. +common.leader_prefix = Лидер: {0} +common.members_suffix = {0} участников +common.claims_suffix = {0} территорий +common.factions_suffix = {0} фракций +common.players_suffix = {0} игроков +common.chunks_suffix = {0} чанков +common.entries_suffix = {0} записей +common.found_suffix = {0} найдено +common.power_format = {0}/{1} Силы +common.raidable = Уязвима для рейда +common.protected = Защищена +common.no_description = Описание не задано. +common.officers_more = +{0} ещё +common.custom_max = (пользовательский макс.) +common.default_max = (макс. по умолчанию) +common.now = Сейчас +common.ago_suffix = {0} назад +common.just_now = только что +common.no_membership_history = Нет истории членства + +# ========== Панель управления администратора ========== +dashboard.factions_prefix = Фракции: {0} +dashboard.members_prefix = Всего участников: {0} +dashboard.claims_prefix = Всего территорий: {0} + +# ========== Действия администратора ========== +actions.confirm_reset = Подтвердить сброс? +actions.confirm_trigger = Подтвердить запуск? +actions.kd_reset = У/С сброшены для {0} игроков. +actions.kd_reset_failed = Не удалось сбросить У/С: {0} +actions.upkeep_unavailable = Обработчик содержания недоступен. +actions.upkeep_triggered = Сбор содержания запущен. +actions.upkeep_failed = Ошибка содержания: {0} + +# ========== Роспуск администратором ========== +disband.faction_gone = Фракция больше не существует. +disband.success = Фракция '{0}' была распущена. +disband.failed = Не удалось распустить: {0} +disband.no_leader = У фракции нет Лидера, роспуск невозможен. + +# ========== Снятие всех территорий администратором ========== +unclaim.removed = [Admin] Удалено {0} территорий у {1}. +unclaim.no_claims = У {0} нет территорий для удаления. + +# ========== Список фракций администратора ========== +factions.home_not_set = Не задано +factions.teleported = Телепортация к дому {0} выполнена. +factions.no_home = У фракции не установлен дом. +factions.world_not_found = Целевой мир не найден. + +# ========== Информация о фракции (администратор) ========== +info.faction_gone = Эта фракция больше не существует. + +# ========== Участники фракции (администратор) ========== +members.sort_role = Роль +members.sort_online = В сети +members.sort_name = Имя +members.sort_power = Сила +members.promoted = [Admin] {0} повышен(а) до {1}. +members.demoted = [Admin] {0} понижен(а) до {1}. +members.kicked = [Admin] {0} исключён(а) из фракции. + +# ========== Отношения фракции (администратор) ========== +relations.allies_header = СОЮЗНИКИ ({0}) +relations.enemies_header = ВРАГИ ({0}) +relations.no_allies = Нет союзников. +relations.no_enemies = Нет врагов. +relations.neutral_count = {0} нейтральных фракций +relations.since_today = С: сегодня +relations.since_one_day = С: 1 день назад +relations.since_days = С: {0} дней назад +relations.set_ally = [Admin] Установлен взаимный союз с {0}. +relations.set_enemy = Установлена взаимная вражда с {0}. +relations.set_neutral = [Admin] Установлен взаимный нейтралитет с {0}. + +# ========== Настройки фракции (администратор) ========== +settings.locked = Этот параметр заблокирован конфигурацией сервера. +settings.perm_toggled = {0} установлено на {1}. +settings.color_changed = Цвет фракции изменён на {0}. +settings.recruitment_set = Набор установлен: {0}. +settings.no_home = [Admin] У этой фракции не установлен дом. +settings.home_cleared = Дом фракции {0} удалён. + +# ========== Метки сортировки ========== +sort.power = Сила +sort.name = Название +sort.members = Участники +sort.balance = Баланс + +# ========== Игроки (администратор) ========== +players.sort_last_online = Последний вход +players.sort_faction = Фракция +players.sort_online = В сети +players.not_online = Игрок не в сети. +players.world_not_found = Целевой мир не найден. +players.teleported = [Admin] Телепортация к {0} выполнена. + +# ========== Информация об игроке (администратор) ========== +playerinfo.disband_faction = Распустить фракцию +playerinfo.kick_leader = Исключить Лидера +playerinfo.enter_valid_number = Введите допустимое число. +playerinfo.enter_valid_positive = Введите допустимое положительное число. +playerinfo.faction_gone = Фракция больше не существует. +playerinfo.kd_reset = У/С сброшены для {0}. +playerinfo.kicked_success = {0} исключён(а) из {1}. +playerinfo.kicked_leader = Лидер {0} исключён. Лидерство передано {1}. +playerinfo.disbanded_kick = [Admin] Фракция '{0}' распущена (исключён последний участник). + +# ========== Экономика (администратор) ========== +economy.no_data = Нет фракций с экономическими данными. +economy.amount_zero = Сумма не может быть нулевой. +economy.enter_amount = Пожалуйста, введите сумму. +economy.invalid_number = Недопустимое число: {0} +economy.error = Произошла ошибка. +economy.balance_negative = Баланс не может быть отрицательным. +economy.failed = Ошибка: {0} +economy.bulk_complete = Массовая корректировка завершена: {0} {1} для {2} фракций. +economy.bulk_failures = ({0} неудачных) + +# ========== Зоны (администратор) ========== +zones.not_found = Зона не найдена. +zones.invalid_id = Недопустимый ID зоны. +zones.deleted = Зона {0} удалена. +zones.delete_failed = Не удалось удалить зону: {0} +zones.no_chunks = Нет чанков +zones.chunks_suffix = {0} ({1} чанков) + +# ========== Мастер создания зон ========== +wizard.enter_name = Пожалуйста, введите название зоны. +wizard.name_too_short = Название зоны должно содержать не менее {0} символов. +wizard.name_too_long = Название зоны не может превышать {0} символов. +wizard.name_taken = Зона с таким названием уже существует. +wizard.radius_range = Радиус должен быть от 1 до {0}. +wizard.create_failed = Не удалось создать зону: {0} +wizard.created_not_found = Зона создана, но не найдена. +wizard.created = Создана {0} '{1}'! +wizard.chunk_claimed = Чанк захвачен ({0}, {1}). +wizard.chunk_failed = Не удалось захватить текущий чанк: {0} +wizard.radius_claimed = Захвачено {0} чанков в радиусе {1} от {2}. +wizard.radius_no_claims = Не удалось захватить чанки (область может быть занята). +wizard.no_claims = Зона создана без территорий. +wizard.chunks_preview = ~{0} чанков + +# ========== Переименование зоны ========== +zone_rename.zone_gone = Зона больше не существует. +zone_rename.enter_name = Пожалуйста, введите название зоны. +zone_rename.too_short = Название зоны должно содержать не менее {0} символов. +zone_rename.too_long = Название зоны не может превышать {0} символов. +zone_rename.same_name = Это уже текущее название зоны. +zone_rename.renamed = [Admin] Зона переименована из {0} в {1}! +zone_rename.name_taken = Зона с таким названием уже существует. +zone_rename.invalid_name = Недопустимое название зоны. +zone_rename.rename_failed = Не удалось переименовать зону: {0} + +# ========== Смена типа зоны ========== +zone_type.zone_gone = Зона больше не существует. +zone_type.changed = [Admin] {0} изменена с {1} на {2} ({3}). +zone_type.failed = Не удалось сменить тип зоны: {0} +zone_type.flags_reset = флаги сброшены +zone_type.flags_kept = флаги сохранены + +# ========== Флаги интеграции зон ========== +zone_int.zone_not_found = Зона не найдена +zone_int.no_plugin = (нет плагина) +zone_int.default = (по умолчанию) +zone_int.custom = (пользовательское) + +# Метки интерфейса флагов интеграции +gui.zint_cat_gravestones = Надгробия +gui.zint_gravestones_desc = Когда ВКЛ, не-владельцы могут обыскивать могилы. Владельцы всегда могут. +gui.zint_cat_world_map = Карта мира +gui.zint_world_map_desc = Переопределить скрытие на карте для игроков в этой зоне. При включении выберите, кто может видеть игроков в этой зоне. +gui.zint_visibility_label = Уровень видимости: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Сбросить по умолчанию +gui.zint_back_to_flags = Назад к флагам +gui.zint_map_vis_faction = Только фракция +gui.zint_map_vis_ally = Фракция + Союзники +gui.zint_map_vis_all = Все игроки + +# ========== Журнал активности ========== +log.all_types = Все типы +log.no_logs = Нет записей, соответствующих фильтрам. + +# ========== Страница версии ========== +version.active = Активен +version.not_found = Не найден +version.not_detected = Не обнаружен +version.not_installed = Не установлен +version.active_version = Активен (v{0}) +version.active_compatible = Активен (совместим) +version.active_claims_only = Активен (только территории) +version.installed_no_perm = Установлен (нет поставщика прав) +version.active_provider = Активен ({0}) + +# ========== Главная страница администратора ========== +main.reload_hint = Используйте /f reload для перезагрузки конфигурации. +main.unclaim_hint = Используйте /f admin unclaim {0} для освобождения всех {1} чанков. + +# ========== Флаги/Настройки зон ========== +zflags.invalid_flag = Недопустимый флаг. +zflags.zone_not_found = Зона не найдена. +zflags.conflict = (конфликт) +zflags.mixin = (миксин) +zflags.reset_int = Сброс флагов интеграции по умолчанию. +zflags.reset_all = Сброс всех флагов по умолчанию. +zflags.reset_failed = Не удалось сбросить флаги: {0} +zflags.back_to_settings = Назад к настройкам + +# Метки интерфейса настроек зон +gui.zset_cat_combat = Бой +gui.zset_cat_damage = Урон +gui.zset_cat_death = Смерть +gui.zset_cat_building = Строительство +gui.zset_cat_interaction = Взаимодействие +gui.zset_cat_transport = Транспорт +gui.zset_cat_items = Предметы +gui.zset_cat_spawning = Спавн мобов +gui.zset_cat_mob_clear = Очистка мобов +gui.zset_children_hint = (дочерние применяются, только когда родительский ВКЛ) +gui.zset_reset_defaults = Сбросить по умолчанию +gui.zset_integration_flags = Флаги интеграции +gui.zset_back_to_zones = Назад к зонам +gui.zset_chunks = {0} чанков + +# Отображаемые названия флагов зон +gui.zflag_pvp_enabled = PvP включено +gui.zflag_friendly_fire = Дружественный огонь +gui.zflag_friendly_fire_faction = Урон по фракции +gui.zflag_friendly_fire_ally = Урон по союзникам +gui.zflag_projectile_damage = Урон от снарядов +gui.zflag_mob_damage = Получать урон от мобов +gui.zflag_pve_damage = Наносить урон мобам +gui.zflag_fall_damage = Урон от падения +gui.zflag_environmental_damage = Урон от окружения +gui.zflag_explosion_damage = Урон от взрыва +gui.zflag_fire_spread = Распространение огня +gui.zflag_keep_inventory = Сохранение инвентаря +gui.zflag_power_loss = Потеря Силы +gui.zflag_build_allowed = Строительство разрешено +gui.zflag_block_place = Размещение блоков +gui.zflag_hammer_use = Использование молотка +gui.zflag_builder_tools_use = Инструменты строителя +gui.zflag_block_interact = Взаимодействие с блоками +gui.zflag_door_use = Использование дверей +gui.zflag_container_use = Использование контейнеров +gui.zflag_bench_use = Использование верстаков +gui.zflag_processing_use = Использование переработки +gui.zflag_seat_use = Использование сидений +gui.zflag_mount_use = Использование верхового животного +gui.zflag_light_use = Использование освещения +gui.zflag_npc_use = Взаимодействие с NPC +gui.zflag_crate_pickup = Подбор ящиков +gui.zflag_crate_place = Размещение ящиков +gui.zflag_npc_tame = Приручение NPC +gui.zflag_npc_interact = Взаимодействие с NPC +gui.zflag_teleporter_use = Использование телепортеров +gui.zflag_portal_use = Использование порталов +gui.zflag_mount_entry = Посадка верхом +gui.zflag_item_drop = Выброс предметов +gui.zflag_item_pickup = Автоподбор +gui.zflag_item_pickup_manual = Подбор клавишей F +gui.zflag_invincible_items = Неуязвимые предметы +gui.zflag_mob_spawning = Спавн мобов +gui.zflag_hostile_mob_spawning = Враждебные мобы +gui.zflag_passive_mob_spawning = Мирные мобы +gui.zflag_neutral_mob_spawning = Нейтральные мобы +gui.zflag_npc_spawning = Спавн NPC +gui.zflag_mob_clear = Очистка мобов +gui.zflag_hostile_mob_clear = Очистка враждебных мобов +gui.zflag_passive_mob_clear = Очистка мирных мобов +gui.zflag_neutral_mob_clear = Очистка нейтральных мобов +gui.zflag_gravestone_access = Обыск чужих могил +gui.zflag_show_on_map = Показывать на карте +gui.zflag_essentials_homes = Использование домов +gui.zflag_essentials_warps = Использование варпов +gui.zflag_essentials_kits = Получение наборов + +# ========== Свойства зон ========== +zprop.current_custom = Текущее: "{0}" (пользовательское) +zprop.current_default = Текущее: "{0}" (по умолчанию) +zprop.pvp_disabled = PvP отключено +zprop.pvp_enabled = PvP включено +zprop.name_empty = Название не может быть пустым. +zprop.renamed = Зона переименована в "{0}". +zprop.name_taken = Зона с таким названием уже существует. +zprop.name_invalid = Недопустимое название (макс. 32 символа). +zprop.rename_failed = Не удалось переименовать: {0} +zprop.upper_empty = Верхний заголовок не может быть пустым. Используйте «Очистить» для сброса. +zprop.upper_set = Верхний заголовок установлен. +zprop.upper_reset = Верхний заголовок сброшен по умолчанию. +zprop.lower_empty = Нижний заголовок не может быть пустым. Используйте «Очистить» для сброса. +zprop.lower_set = Нижний заголовок установлен. +zprop.lower_reset = Нижний заголовок сброшен по умолчанию. + +# ========== Дополнительные отношения ========== +relations.failed = Ошибка: {0} + +# ========== Дополнительные участники ========== +members.never = Никогда +members.teleported = [Admin] Телепортация к {0} выполнена. + +# ========== Дополнительная информация об игроке ========== +playerinfo.records = {0} записей +playerinfo.joined_date = Вступил(а): {0} +playerinfo.current = Текущая +playerinfo.left_date = Покинул(а): {0} + +# ========== Карта зон ========== +map.world_warning = ВНИМАНИЕ: Вы находитесь в '{0}' — зона в '{1}' +map.position = Ваша позиция: Чанк ({0}, {1}) +map.zone_gone = Зона больше не существует. +map.claimed = Чанк захвачен ({0}, {1}) для {2}. +map.claim_failed = Не удалось захватить чанк: {0} +map.unclaimed = Чанк освобождён ({0}, {1}) у {2}. +map.unclaim_failed = Не удалось освободить чанк: {0} +map.chunk_belongs = Этот чанк принадлежит {0}. +map.chunk_faction = Этот чанк захвачен фракцией. +map.chunk_protected = Этот чанк находится в защищённой области. +map.another_zone = другая зона + +# ========== Ключи меток интерфейса (для локализации текстов .ui) ========== + +# Заголовки страниц +gui.title_dashboard = Панель управления администратора +gui.title_main = Администрирование фракций +gui.title_actions = Админ: Серверные действия +gui.title_factions = Управление фракциями +gui.title_players = Управление игроками +gui.title_economy = Админ: Серверная экономика +gui.title_zones = Управление зонами +gui.title_backups = Резервные копии +gui.title_config = Конфигурация +gui.title_help = Справка администратора +gui.title_updates = Обновления +gui.title_version = Версия и интеграции +gui.title_activity_log = Админ: Журнал активности +gui.title_player_info = Админ: Информация об игроке +gui.title_faction_info = Админ: Информация о фракции +gui.title_faction_settings = Админ: Настройки фракции +gui.title_faction_members = Админ: Участники +gui.title_faction_relations = Админ: Отношения +gui.title_zone_map = Редактор карты зон +gui.title_zone_settings = Админ: Настройки зоны +gui.title_zone_properties = Админ: Свойства зоны +gui.title_bulk_economy = Массовая корректировка Казны +gui.title_economy_adjust = Админ: Экономика + +# Метки панели управления +gui.dash_server_stats = Статистика сервера +gui.dash_factions = Фракции +gui.dash_total_members = Всего участников +gui.dash_total_claims = Всего территорий +gui.dash_zones = Зоны +gui.dash_safe_war = безопасные / военные +gui.dash_total_power = Общая Сила +gui.dash_avg_power = Средн. Сила/Фракция +gui.dash_total_economy = Общая экономика +gui.dash_wealthiest = Богатейшая +gui.dash_avg_balance = Средн. баланс +gui.dash_protection_bypass = Обход защиты: + +# Общие кнопки и метки +gui.search = Поиск: +gui.sort = Сортировка: +gui.prev = < Назад +gui.next = Далее > +gui.back = Назад +gui.done = Готово +gui.cancel = Отмена +gui.apply = Применить +gui.set = Установить +gui.reset = Сбросить +gui.coming_soon = Скоро +gui.zones_btn = Зоны +gui.reload_btn = Перезагрузить +gui.all = Все +gui.safe = Безопасные +gui.war = Военные +gui.create_zone = + Создать + +# Метки страницы действий +gui.act_combat_stats = Боевая статистика +gui.act_combat_desc = Сбросить убийства и смерти для ВСЕХ игроков на сервере. Это действие нельзя отменить. +gui.act_reset_kd = Сбросить все У/С +gui.act_economy = Экономика +gui.act_economy_desc = Добавить или снять средства со ВСЕХ казначейств фракций сразу. +gui.act_bulk_adjust = Массовое добавление/снятие +gui.act_upkeep_collection = Сбор содержания +gui.act_upkeep_desc = Вручную запустить сбор содержания для всех фракций, независимо от таймера. +gui.act_trigger_upkeep = Запустить содержание + +# Метки заглушек страниц +gui.backup_heading = Управление резервными копиями +gui.backup_desc1 = Создание, восстановление и управление резервными копиями данных фракций. +gui.backup_desc2 = Автоматические копии сохраняются в папку data/backups. +gui.config_heading = Редактор конфигурации +gui.config_desc1 = Настройка параметров HyperFactions прямо из интерфейса. +gui.config_desc2 = Пока используйте /f reload для перезагрузки изменений конфигурации. +gui.help_heading = Документация администратора +gui.help_desc1 = Просмотр документации и справочника команд. +gui.help_desc2 = Для помощи посетите вики HyperFactions. +gui.updates_heading = Центр обновлений +gui.updates_desc1 = Проверка новых версий и просмотр списка изменений. +gui.updates_desc2 = Посетите страницу HyperFactions для последних обновлений. + +# Метки страницы версии +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = ПРАВА +gui.ver_placeholders = ПЛЕЙСХОЛДЕРЫ +gui.ver_economy_section = ЭКОНОМИКА +gui.ver_protection = ЗАЩИТА +gui.ver_disabled = Отключено + +# Заголовки столбцов (общие для страниц) +gui.col_faction = Фракция +gui.col_balance = Баланс +gui.col_members = Участники +gui.col_actions = Действия +gui.col_time = Время +gui.col_type = Тип +gui.col_message = Сообщение + +# Метки страницы экономики +gui.econ_total_balance = Общий баланс +gui.econ_factions = Фракции +gui.econ_avg_balance = Средн. баланс +gui.econ_in_grace = В льготном периоде +gui.econ_collected = Собрано (24 ч) +gui.econ_next_collection = Следующий сбор +gui.econ_no_data = Нет фракций с экономическими данными. + +# Метки журнала активности +gui.log_type = Тип: +gui.log_time = Время: +gui.log_player = Игрок: +gui.log_no_logs = Нет записей, соответствующих фильтрам. + +# Метки информации об игроке +gui.plr_first_joined = Первый вход: +gui.plr_last_online = Последний вход: +gui.plr_uuid = UUID: +gui.plr_faction = Фракция: +gui.plr_role = Роль: +gui.plr_view_faction = Открыть фракцию +gui.plr_power = Сила +gui.plr_max_power = Макс. Сила +gui.plr_set_power = Установить +gui.plr_reset_power = Сбросить +gui.plr_set_max = Установить +gui.plr_reset_max = Сбросить +gui.plr_no_power_loss = Без потери Силы +gui.plr_no_claim_decay = Без распада территорий +gui.plr_kills = Убийства +gui.plr_deaths = Смерти +gui.plr_kdr = Соотношение У/С +gui.plr_reset_kd = Сбросить У/С +gui.plr_kick = Исключить +gui.plr_membership_history = История членства +gui.plr_no_faction_label = Не состоит во фракции +gui.plr_power_management = Управление Силой +gui.plr_combat_stats = Боевая статистика +gui.plr_bypass_flags = Флаги обхода +gui.plr_admin_controls = Управление администратора +gui.plr_kd_subtitle = У / С +gui.plr_max_prefix = Макс.: +gui.plr_view = Просмотр +gui.plr_kick_from_faction = Исключить из фракции +gui.plr_set_max_btn = Установить макс. +gui.plr_combat = Бой +gui.plr_reason_active = АКТИВЕН +gui.plr_reason_left = ПОКИНУЛ +gui.plr_reason_kicked = ИСКЛЮЧЁН +gui.plr_reason_disbanded = РАСПУЩЕНА + +# Метки записи участника +gui.mem_label_power = Сила: +gui.mem_label_joined = Вступил(а): +gui.mem_label_last_death = Последняя смерть: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Инфо +gui.mem_btn_teleport = Телепорт +gui.mem_btn_promote = Повысить +gui.mem_btn_demote = Понизить +gui.mem_btn_kick = Исключить +gui.econ_not_enabled = Система экономики не включена. +gui.info_more = +{0} ещё +gui.log_time_1h = 1 ч. +gui.log_time_24h = 24 ч. +gui.log_time_7d = 7 д. +gui.log_time_all = Все +gui.shape_circular = круглая +gui.shape_square = квадратная +gui.nav_title = Панель администратора +gui.econ_btn_adjust = Корректировать +gui.econ_btn_info = Инфо + +# Метки информации о фракции +gui.fac_description = Описание +gui.fac_power = Сила +gui.fac_claims = Территории +gui.fac_members = Участники +gui.fac_recruitment = Набор +gui.fac_founded = Основана +gui.fac_allies = Союзники +gui.fac_enemies = Враги +gui.fac_raidable = Уязвимость для рейда +gui.fac_treasury = Казна +gui.fac_leader = Лидер +gui.fac_officers = Офицеры +gui.fac_view_members = Просмотр участников +gui.fac_view_relations = Просмотр отношений +gui.fac_view_settings = Настройки +gui.fac_disband = Распустить фракцию +gui.fac_power_management = Управление Силой +gui.fac_reset_all_power = Сбросить Силу всем +gui.fac_econ_adjust = Корректировать баланс +gui.fac_econ_view_log = Просмотр журнала транзакций +gui.fac_current_max = текущая / макс. +gui.fac_claimed_max = занято / макс. +gui.fac_relations = Отношения +gui.fac_ally_enemy = союзники / враги +gui.fac_status = Статус +gui.fac_info = Инфо +gui.fac_treasury_balance = баланс Казны +gui.fac_leadership = Руководство +gui.fac_leader_label = Лидер: +gui.fac_officers_label = Офицеры: +gui.fac_econ_mgmt = Управление экономикой +gui.fac_danger_zone = Опасная зона +gui.fac_view_treasury = Открыть Казну + +# Метки настроек фракции +gui.set_editing = Редактирование: +gui.set_general = Общие настройки +gui.set_name = Название +gui.set_tag = Тег +gui.set_description = Описание +gui.set_recruitment = Набор +gui.set_home = Расположение дома +gui.set_clear_home = Удалить дом +gui.set_disband_faction = Распустить фракцию +gui.set_faction_color = Цвет фракции +gui.set_admin_override = [Переопределение администратора] +gui.set_territory_perms = Права на территории +gui.set_mob_spawning = Спавн мобов +gui.set_faction_settings = Настройки фракции +gui.set_name_label = Название: +gui.set_tag_label = Тег: +gui.set_desc_label = Описание: +gui.set_edit = Изменить +gui.set_status_label = Статус: +gui.set_location_label = Координаты: +gui.set_danger_zone = Опасная зона +gui.set_irreversible = Это действие необратимо. +gui.set_lock_hint = Некоторые параметры могут быть заблокированы сервером и не примут изменения. +gui.set_appearance = Внешний вид +gui.set_color_label = Цвет: +gui.set_mob_sub = (дочерние отключены, когда основной выключен) +gui.set_back_to_info = Назад к информации +gui.set_col_out = Чужие +gui.set_col_ally = Союзн. +gui.set_col_mem = Участн. +gui.set_col_off = Офиц. +gui.set_cat_building = СТРОИТЕЛЬСТВО +gui.set_cat_interaction = ВЗАИМОДЕЙСТВИЕ +gui.set_cat_interact_sub = (дочерние отключены, когда «Все» выключено) +gui.set_cat_other = ПРОЧЕЕ +gui.set_perm_break = Разрушение +gui.set_perm_place = Размещение +gui.set_perm_all = Все +gui.set_perm_door = Двери +gui.set_perm_chest = Сундуки +gui.set_perm_bench = Верстаки +gui.set_perm_processing = Переработка +gui.set_perm_seat = Сиденья +gui.set_perm_transport = Транспорт +gui.set_perm_crate_use = Ящики +gui.set_perm_npc_tame = Приручение NPC +gui.set_perm_pve_damage = PvE-урон +gui.set_perm_mob_spawning = Спавн мобов +gui.set_perm_hostile = Враждебные мобы +gui.set_perm_passive = Мирные мобы +gui.set_perm_neutral = Нейтральные мобы +gui.set_perm_pvp = PvP на территории +gui.set_perm_officers_edit = Офицеры могут редактировать + +# Метки отношений фракции +gui.rel_subtitle = Управление отношениями фракции (в обход утверждения) +gui.rel_set_new = Установить новое отношение +gui.rel_btn_ally = Союзник +gui.rel_btn_neutral = Нейтралитет +gui.rel_btn_enemy = Враг + +# Метки страницы зон +gui.zone_sort_name = Название +gui.zone_sort_type = Тип +gui.zone_sort_chunks = Чанки +gui.zone_sort_world = Мир +gui.zone_count_format = {0} {1}зон ({2} чанков) + +# Метки карты зон +gui.map_zone_chunk = Чанк зоны +gui.map_empty = Пусто +gui.map_other_zone = Другая зона +gui.map_faction_claim = Территория фракции +gui.map_protected = Защищённый +gui.map_your_pos = Ваша позиция +gui.map_click_hint = Нажмите для захвата/освобождения чанков +gui.map_legend_zone_safe = Эта зона (Безопасная) +gui.map_legend_zone_war = Эта зона (Военная) +gui.map_legend_other_safe = Другая SafeZone +gui.map_legend_other_war = Другая WarZone +gui.map_legend_faction = Территория фракции +gui.map_legend_unclaimed = Свободный +gui.map_legend_you_here = Вы здесь +gui.map_action_hint = ЛКМ: Захватить для зоны | ПКМ: Освободить из зоны +gui.map_done = Готово + +# Метки свойств зон +gui.zprop_general = Общие +gui.zprop_zone_name = Название зоны +gui.zprop_zone_type = Тип зоны +gui.zprop_change_type = Сменить тип +gui.zprop_notifications = Уведомления +gui.zprop_show_entry = Показывать уведомление при входе +gui.zprop_upper_title = Верхний заголовок +gui.zprop_upper_desc = Верхний заголовок (мелкий текст над названием зоны) +gui.zprop_lower_title = Нижний заголовок +gui.zprop_lower_desc = Нижний заголовок (крупный текст с названием зоны) +gui.zprop_edit_flags = Редактировать флаги +gui.zprop_back_to_zones = Назад к зонам +gui.save = Сохранить +gui.clear = Очистить + +# Метки массовой экономики +gui.bulk_header = Корректировка всех казначейств фракций +gui.bulk_factions_label = Фракции: +gui.bulk_total_label = Общий баланс: +gui.bulk_amount_hint = Сумма (положительная для добавления, отрицательная для снятия): +gui.bulk_hint = Это будет применено к каждой фракции с Казной +gui.bulk_warning_msg = Внимание: Это действие затрагивает ВСЕ фракции и не может быть отменено. +gui.bulk_apply_all = Применить ко всем +gui.bulk_operation = Операция +gui.bulk_add = Добавить +gui.bulk_remove = Снять +gui.bulk_amount = Сумма +gui.bulk_warning = Это затронет ВСЕ казначейства фракций. +gui.bulk_preview = Предпросмотр + +# Метки корректировки экономики +gui.ecadj_header = Корректировка баланса Казны +gui.ecadj_faction_label = Фракция: +gui.ecadj_current_balance = Текущий баланс: +gui.ecadj_amount_hint = Сумма (положительная для добавления, отрицательная для списания): +gui.ecadj_preview_hint = Введите число для предпросмотра изменения +gui.ecadj_adjustment = Корректировка: +gui.ecadj_set_balance = Установить баланс +gui.ecadj_confirm = Подтвердить +/- +gui.ecadj_operation = Операция +gui.ecadj_add = Добавить +gui.ecadj_remove = Снять +gui.ecadj_set_to = Установить на +gui.ecadj_amount = Сумма +gui.ecadj_new_balance = Новый баланс: + +# Метки интеграций на странице версии +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Gravestones +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Казна + +# Метки окна подтверждения снятия всех территорий +gui.unclaim_title = Снять все территории +gui.unclaim_confirm_msg1 = Вы уверены, что хотите освободить все +gui.unclaim_confirm_msg2 = у +gui.unclaim_warning = Это действие нельзя отменить! +gui.unclaim_all = Освободить все + +# Метки окна переименования зоны +gui.zren_title = Переименовать зону +gui.zren_current = Текущее: +gui.zren_new_name = Новое название: + +# Метки окна смены типа зоны +gui.ztype_title = Сменить тип зоны +gui.ztype_zone_label = Зона: +gui.ztype_current = Текущий: +gui.ztype_will_become = станет +gui.ztype_new = Новый: +gui.ztype_warning1 = Разные типы зон имеют разные значения флагов по умолчанию. +gui.ztype_warning2 = Выберите, как обработать существующие настройки флагов: +gui.ztype_keep_desc = Сохранить пользовательские переопределения +gui.ztype_keep_flags = Сохранить флаги +gui.ztype_reset_desc = Использовать значения нового типа по умолчанию +gui.ztype_reset_flags = Сбросить флаги + +# Метки мастера создания зон +gui.czw_title = Создать зону +gui.czw_back = < Назад +gui.czw_create = Создать зону +gui.czw_zone_type = Тип зоны +gui.czw_safe_desc = Защищённая, без PvP +gui.czw_war_desc = Боевая, PvP включено +gui.czw_zone_name = Название зоны +gui.czw_name_desc = Введите уникальное название для зоны +gui.czw_claim_method = Метод захвата +gui.czw_method_none_desc = Создать пустую зону +gui.czw_method_none = Без территорий +gui.czw_method_single_desc = Ваш текущий чанк +gui.czw_method_single = Один чанк +gui.czw_method_circle_desc = Круглая область +gui.czw_method_circle = Круговой радиус +gui.czw_method_square_desc = Квадратная область +gui.czw_method_square = Квадратный радиус +gui.czw_method_map_desc = Интерактивный редактор чанков +gui.czw_method_map = Использовать карту +gui.czw_radius = Радиус +gui.czw_custom_radius = Произвольный (1-50): +gui.czw_flags = Флаги +gui.czw_flags_defaults_desc = На основе типа зоны +gui.czw_flags_defaults = По умолчанию +gui.czw_flags_customize_desc = Открыть настройки после +gui.czw_flags_customize = Настроить + +# ========== Метки записей (списки фракций/игроков/зон) ========== + +# Метки записи фракции +gui.fac_entry_power = Сила +gui.fac_entry_claims = территории +gui.fac_entry_members = участники +gui.fac_entry_created = Создана: +gui.fac_entry_home = Дом: +gui.fac_entry_tp_home = ТП к дому +gui.fac_entry_view_info = Подробнее +gui.fac_entry_members_btn = Участники +gui.fac_entry_settings = Настройки +gui.fac_entry_unclaim_all = Освободить все +gui.fac_entry_disband = Распустить + +# Метки записи игрока +gui.plr_entry_role = Роль: +gui.plr_entry_joined = Вступил(а): +gui.plr_entry_last_online = Последний вход: +gui.plr_entry_kdr = У/С/Р: +gui.plr_entry_power = Сила: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Инфо +gui.plr_entry_teleport = Телепорт +gui.plr_entry_na = Н/Д +gui.plr_entry_unknown = Неизвестно +gui.plr_entry_ago = {0} назад + +# Метки записи зоны +gui.zone_entry_world = Мир: +gui.zone_entry_chunks = Чанки: +gui.zone_entry_bounds = Границы: +gui.zone_entry_created = Создана: +gui.zone_entry_edit_map = Редактировать карту +gui.zone_entry_flags = Флаги +gui.zone_entry_settings = Настройки +gui.zone_entry_delete = Удалить diff --git a/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang new file mode 100644 index 00000000..fbb48362 --- /dev/null +++ b/src/main/resources/Server/Languages/ru-RU/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Russian Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Панель навигации ========== +nav.dashboard = Обзор +nav.chat = Чат +nav.members = Участники +nav.invites = Приглашения +nav.browser = Обзор фракций +nav.map = Карта +nav.leaderboard = Рейтинг +nav.relations = Отношения +nav.treasury = Казна +nav.settings = Настройки +nav.logs = Журнал +nav.help = Справка +nav.admin = Админ +nav.create = Создать + +# ========== Названия категорий справки ========== +help.category.welcome = Добро пожаловать +help.category.your_faction = Ваша фракция +help.category.power_land = Сила и территория +help.category.diplomacy = Дипломатия +help.category.combat = Бой и безопасность +help.category.economy = Экономика +help.category.quick_ref = Краткий справочник + +# ========== Названия категорий справки администратора ========== +help.category.admin_overview = Обзор +help.category.admin_factions = Фракции +help.category.admin_zones = Зоны +help.category.admin_power = Сила +help.category.admin_economy = Экономика +help.category.admin_config = Конфигурация +help.category.admin_maintenance = Обслуживание +help.category.admin_reference = Справочник + +# ========== Главное меню ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Моя фракция +main_menu.section_get_started = Начало работы +main_menu.section_territory = Территория +main_menu.section_browse = Обзор +main_menu.section_admin = Админ +main_menu.claim_hint = Используйте /f claim для захвата территории. + +# ========== Страница информации о фракции ========== +faction_info.title = Информация о фракции +faction_info.no_description = Описание не задано. +faction_info.status_open = Открытая +faction_info.status_invite_only = Только по приглашению +faction_info.status_raidable = Уязвима для рейда +faction_info.status_protected = Защищена +faction_info.officers_more = +{0} ещё +faction_info.power_header = Сила +faction_info.claims_header = Территории +faction_info.members_header = Участники +faction_info.relations_header = Отношения +faction_info.status_header = Статус +faction_info.treasury_header = Казна +faction_info.current_max = текущая / макс. +faction_info.claimed_max = занято / макс. +faction_info.ally_enemy = союзники / враги +faction_info.faction_balance = баланс фракции +faction_info.leader_label = Лидер: +faction_info.officers_label = Офицеры: +faction_info.view_members_btn = Участники +faction_info.relations_btn = Отношения +faction_info.back_btn = Назад + +# ========== Окно переименования ========== +rename.title = Переименовать фракцию +rename.current_label = Текущее: +rename.new_name_label = Новое название: +rename.no_permission = У вас нет прав на переименование фракции. +rename.enter_name = Пожалуйста, введите название фракции. +rename.too_short = Название фракции должно содержать не менее {0} символов. +rename.too_long = Название фракции не может превышать {0} символов. +rename.same_name = Это уже текущее название вашей фракции. +rename.name_taken = Фракция с таким названием уже существует. +rename.success = Фракция переименована из {0} в {1}! + +# ========== Окно описания ========== +desc.title = Редактировать описание +desc.current_label = Текущее: +desc.new_desc_label = Новое описание: +desc.no_permission = У вас нет прав на редактирование описания. +desc.display_none = (Нет) +desc.cleared = Описание фракции очищено. +desc.updated = Описание фракции обновлено! + +# ========== Окно тега ========== +tag.title = Редактировать тег +tag.current_label = Текущий: +tag.instructions = Тег (1-5 символов, только буквы и цифры): +tag.help_text = Теги отображаются в чате и на карте +tag.no_permission = У вас нет прав на редактирование тега. +tag.display_none = (Нет) +tag.cleared = Тег фракции очищен. +tag.too_short = Тег должен содержать не менее {0} символов. +tag.too_long = Тег не может превышать {0} символов. +tag.invalid_format = Тег может содержать только буквы и цифры. +tag.same_tag = Это уже текущий тег вашей фракции. +tag.tag_taken = Фракция с таким тегом уже существует. +tag.success = Тег фракции установлен: [{0}]! + +# ========== Страница панели управления ========== +dashboard.title = Панель управления фракцией +dashboard.power_label = Сила +dashboard.land_label = Территории +dashboard.members_label = Участники +dashboard.online_label = В сети +dashboard.allies_label = Союзники +dashboard.enemies_label = Враги +dashboard.relations_label = Отношения +dashboard.ally_enemy_label = союзники / враги +dashboard.status_label = Статус +dashboard.invites_label = Приглашения +dashboard.sent_requests_label = отправлено / заявки +dashboard.treasury_label = Казна +dashboard.upkeep_label = Содержание +dashboard.per_cycle = за цикл +dashboard.your_wallet = Ваш кошелёк +dashboard.personal_balance = личный баланс +dashboard.quick_actions = Быстрые действия +dashboard.teleport_label = Телепорт +dashboard.territory_label = Территория +dashboard.channel_label = Канал +dashboard.membership_label = Членство +dashboard.recent_activity = Последняя активность +dashboard.view_all = Показать все +dashboard.income_24h = Доход (24 ч) +dashboard.deposits_transfers_in = вклады, входящие переводы +dashboard.expenses_24h = Расходы (24 ч) +dashboard.withdrawals_transfers_out = выводы, исходящие переводы +dashboard.faction_gone = Ваша фракция больше не существует. +dashboard.available = {0} доступно +dashboard.at_risk = Под угрозой! +dashboard.online_count = {0} в сети +dashboard.status_invite = По приглашению +dashboard.in_grace = ЛЬГОТНЫЙ ПЕРИОД +dashboard.billable_chunks = {0} оплачиваемых чанков +dashboard.btn_home = Дом +dashboard.btn_set_home = Установить дом +dashboard.btn_claim = Захватить +dashboard.chat_prefix = Чат: {0} +dashboard.btn_leave = Покинуть +dashboard.no_activity = Нет последней активности. +dashboard.time_now = сейчас +dashboard.time_minutes = {0} мин. назад +dashboard.time_hours = {0} ч. назад +dashboard.time_days = {0} д. назад +dashboard.no_home_hint = У вашей фракции не установлен дом. Попросите Офицера установить его. +dashboard.chat_mode_set = Режим чата: {0} +dashboard.claim_success = Чанк захвачен в ({0}, {1}) +dashboard.upkeep_in = через {0} + +# ========== Главная страница фракции ========== +main.no_faction = Нет фракции +main.joined = Вы вступили во фракцию! +main.join_failed = Не удалось вступить во фракцию: {0} +main.invite_declined = Приглашение отклонено. +main.cooldown = Телепортация на перезарядке! Осталось {0} сек. +main.world_not_found = Невозможно телепортироваться — мир не найден. +main.leave_failed = Не удалось покинуть: {0} + +# ========== Общие элементы интерфейса ========== +common.faction_count = {0} фракций +common.leader_label = Лидер: {0} +common.sort_power = Сила +common.sort_members = Участники +common.page_format = {0}/{1} +common.own_faction = (Вы) +common.search = Поиск: +common.sort = Сортировка: +common.prev = < Назад +common.next = Далее > +common.treasury_not_available = Казна недоступна. + +# ========== Страница участников ========== +members.title = Участники +members.search_label = Поиск: +members.sort_label = Сортировка: +members.prev_btn = < Назад +members.next_btn = Далее > +members.count = {0} участников +members.sort_role = Роль +members.sort_last_online = Последний вход +members.just_now = только что +members.ago = {0} назад +members.never = Никогда +members.member_not_found = Участник не найден. +members.promoted = {0} повышен(а) до {1}. +members.promote_failed = Не удалось повысить: {0} +members.demoted = {0} понижен(а) до {1}. +members.demote_failed = Не удалось понизить: {0} +members.kicked = {0} исключён(а) из фракции. +members.kick_failed = Не удалось исключить: {0} +members.label_power = Сила: +members.label_joined = Вступил(а): +members.label_last_death = Последняя смерть: +members.btn_promote = Повысить +members.btn_demote = Понизить +members.btn_kick = Исключить +members.btn_make_leader = Назначить Лидером +members.btn_profile = Профиль +members.self_label = (Вы) + +# ========== Страница обзора фракций ========== +browser.title = Обзор фракций +browser.search_label = Поиск: +browser.sort_label = Сортировка: +browser.prev_btn = < Назад +browser.next_btn = Далее > +browser.sort_name = Название +browser.invalid_faction = Недопустимая фракция. +browser.label_power = Сила +browser.label_claims = территории +browser.label_members = участники +browser.label_recruitment = Набор: +browser.label_created = Создана: +browser.label_description = Описание: +browser.view_info_btn = Подробнее +browser.label_leader = Лидер: +browser.no_description = Описание не задано + +# ========== Страница рейтинга ========== +leaderboard.title = Рейтинг фракций +leaderboard.rank_by = Ранжировать по: +leaderboard.col_rank = # +leaderboard.col_faction = Фракция +leaderboard.col_claims = Территории +leaderboard.col_members = Участники +leaderboard.prev_btn = < Назад +leaderboard.next_btn = Далее > +leaderboard.sort_kd = У/С +leaderboard.sort_territory = Территория +leaderboard.sort_balance = Баланс + +# ========== Страница информации об игроке ========== +playerinfo.title = Информация об игроке +playerinfo.first_joined_label = Первый вход: +playerinfo.last_online_label = Последний вход: +playerinfo.faction_label = Фракция: +playerinfo.role_label = Роль: +playerinfo.joined_label_static = Вступил(а): +playerinfo.not_in_faction = Не состоит во фракции +playerinfo.power_header = Сила +playerinfo.current_max = текущая / макс. +playerinfo.combat_header = Бой +playerinfo.kills_deaths = убийства / смерти +playerinfo.kdr_header = Соотношение У/С +playerinfo.membership_history = История членства +playerinfo.view_faction_btn = Фракция +playerinfo.back_btn = Назад +playerinfo.now = Сейчас +playerinfo.history_count = {0} записей +playerinfo.joined_label = Вступил(а): {0} +playerinfo.current = Текущая +playerinfo.left_label = Покинул(а): {0} +playerinfo.no_history = Нет истории членства +playerinfo.faction_gone = Фракция больше не существует. +playerinfo.reason_active = АКТИВЕН +playerinfo.reason_left = ПОКИНУЛ +playerinfo.reason_kicked = ИСКЛЮЧЁН +playerinfo.reason_disbanded = РАСПУЩЕНА + +# ========== Страница отношений ========== +relations.title = Отношения +relations.tab_relations = Отношения +relations.tab_pending = Ожидающие +relations.set_relation_btn = + Установить отношение +relations.prev_btn = < Назад +relations.next_btn = Далее > +relations.relation_count = {0} отношений +relations.request_count = {0} запросов +relations.type_ally = Союзник +relations.type_enemy = Враг +relations.type_incoming = Входящий +relations.type_outgoing = Исходящий +relations.incoming_request = Входящий запрос +relations.outgoing_request = Исходящий запрос +relations.empty_relations = Отношений пока нет. +relations.empty_relations_hint = Отношений пока нет. Нажмите + УСТАНОВИТЬ ОТНОШЕНИЕ, чтобы добавить союзников или врагов. +relations.empty_pending = Нет ожидающих запросов на союз. +relations.today = Сегодня +relations.one_day_ago = 1 день назад +relations.days_ago = {0} дней назад +relations.now_neutral = Теперь нейтральные отношения с {0}. +relations.now_enemies = Теперь враждуете с {0}! +relations.request_sent = Запрос на союз отправлен {0}. +relations.now_allied = Теперь в союзе с {0}! +relations.request_declined = Запрос на союз от {0} отклонён. +relations.request_cancelled = Запрос на союз к {0} отменён. +relations.failed = Ошибка: {0} +relations.search_hint = Найдите фракцию для установки отношений +relations.no_results = Фракций, соответствующих '{0}', не найдено +relations.power_display = {0} Силы +relations.member_count = {0} участников +relations.label_members = участники +relations.label_power = Сила +relations.label_since = С: +relations.label_claims = Территории: +relations.label_direction = Направление: +relations.btn_view = Просмотр +relations.btn_neutral = Нейтралитет +relations.btn_enemy = Враг +relations.btn_ally = Союзник +relations.btn_accept = Принять +relations.btn_decline = Отклонить +relations.btn_cancel = Отменить + +# ========== Страница настроек ========== +settings.title = Настройки фракции +settings.general = Общие +settings.name_label = Название: +settings.tag_label = Тег: +settings.desc_label = Описание: +settings.edit_btn = Изменить +settings.recruitment = Набор +settings.status_label = Статус: +settings.home_location = Расположение дома +settings.location_label = Координаты: +settings.set_home_btn = Установить дом +settings.teleport_btn = Телепорт +settings.delete_btn = Удалить +settings.optional_features = Дополнительные функции +settings.configure_modules = Настройка дополнительных модулей. +settings.modules_btn = Модули +settings.danger_zone = Опасная зона +settings.irreversible = Это действие необратимо. +settings.disband_btn = Распустить фракцию +settings.lock_hint = Некоторые параметры могут быть заблокированы сервером и не примут изменения. +settings.territory_permissions = Права на территории +settings.col_out = Чужие +settings.col_ally = Союзн. +settings.col_mem = Участн. +settings.col_off = Офиц. +settings.cat_building = СТРОИТЕЛЬСТВО +settings.perm_break = Разрушение +settings.perm_place = Размещение +settings.cat_interaction = ВЗАИМОДЕЙСТВИЕ +settings.interaction_hint = (дочерние элементы отключены, когда «Все» выключено) +settings.perm_all = Все +settings.perm_door = Двери +settings.perm_chest = Сундуки +settings.perm_bench = Верстаки +settings.perm_processing = Переработка +settings.perm_seat = Сиденья +settings.perm_transport = Транспорт +settings.cat_other = ПРОЧЕЕ +settings.perm_crate = Ящики +settings.perm_npc_tame = Приручение NPC +settings.perm_pve = PvE-урон +settings.appearance = Внешний вид +settings.color_label = Цвет: +settings.mob_spawning = Спавн мобов +settings.mob_spawning_hint = (дочерние элементы отключены, когда основной выключен) +settings.mob_spawning_label = Спавн мобов +settings.hostile_mobs = Враждебные мобы +settings.passive_mobs = Мирные мобы +settings.neutral_mobs = Нейтральные мобы +settings.faction_settings = Настройки фракции +settings.pvp_in_territory = PvP на территории +settings.officers_can_edit = Офицеры могут редактировать +settings.leader_only = Только Лидер +settings.officers_only = Только Офицеры и Лидер могут изменять настройки фракции. +settings.display_none = (Нет) +settings.home_not_set = Не установлен +settings.no_permission = У вас нет прав на изменение настроек. +settings.only_leader_disband = Только Лидер может распустить фракцию. +settings.perm_locked = Этот параметр заблокирован сервером. +settings.no_perm_edit = У вас нет прав на редактирование прав территории. +settings.only_leader_officers = Только Лидер может изменять доступ Офицеров. +settings.pvp_enabled = Включено +settings.pvp_disabled = Отключено +settings.not_in_territory = Вы должны находиться на территории своей фракции, чтобы установить дом. +settings.home_set = Дом фракции установлен в вашем текущем местоположении! +settings.recruitment_set = Набор установлен: {0}. +settings.home_no_set = У вашей фракции не установлен дом. +settings.home_deleted = Дом фракции удалён! + +# ========== Страница модулей ========== +modules.title = Модули фракции +modules.description = Дополнительные функции для улучшения вашей фракции +modules.configure_btn = Настроить +modules.back_btn = < Назад к настройкам +modules.treasury_name = Казна +modules.treasury_desc = Банк и экономика фракции +modules.raids_name = Рейды +modules.raids_desc = Плановые битвы фракций +modules.levels_name = Уровни +modules.levels_desc = Прогресс и опыт фракции +modules.war_name = Война +modules.war_desc = Официальные объявления войны +modules.coming_soon = Скоро +modules.active = Активен +modules.view_treasury = Открыть Казну +modules.unavailable = Недоступно +modules.no_economy = Плагин экономики не обнаружен +modules.disabled = Отключено +modules.economy_not_available = Экономические функции недоступны на этом сервере + +# ========== Страница Казны ========== +treasury.title = Казна фракции +treasury.balance_label = Баланс +treasury.income_24h = Доход (24 ч) +treasury.deposits_transfers_in = вклады, входящие переводы +treasury.expenses_24h = Расходы (24 ч) +treasury.withdrawals_transfers_out = выводы, исходящие переводы +treasury.maintenance = СОДЕРЖАНИЕ +treasury.runway_label = Запас средств: +treasury.add_funds = Внести средства +treasury.deposit_btn = Внести +treasury.take_funds = Вывести средства +treasury.withdraw_btn = Вывести +treasury.send_to_faction = Перевести фракции +treasury.transfer_btn = Перевести +treasury.treasury_config = Настройки Казны +treasury.settings_btn = Настройки +treasury.recent_transactions = Последние транзакции +treasury.no_transactions = Транзакций пока нет +treasury.col_date = Дата +treasury.col_type = Тип +treasury.col_by = Кем +treasury.col_amount = Сумма +treasury.col_details = Подробности +treasury.pay_now_btn = Оплатить сейчас +treasury.cost_7d = 7 д.: +treasury.cost_14d = 14 д.: +treasury.cost_30d = 30 д.: +treasury.settings_title = Настройки Казны +treasury.officer_permissions = ПРАВА ОФИЦЕРОВ +treasury.allow_withdraw = Разрешить Офицерам выводить средства +treasury.allow_transfer = Разрешить Офицерам переводить средства +treasury.limits_section = ЛИМИТЫ ВЫВОДА И ПЕРЕВОДА +treasury.max_per_withdrawal = Макс. за один вывод: +treasury.max_withdrawals_per = Макс. выводов за период: +treasury.max_per_transfer = Макс. за один перевод: +treasury.max_transfers_per = Макс. переводов за период: +treasury.limit_period = Период лимита (часы): +treasury.no_limit_hint = Установите 0 для снятия лимита +treasury.upkeep_settings = НАСТРОЙКИ СОДЕРЖАНИЯ +treasury.auto_pay_upkeep = Автооплата содержания из Казны +treasury.back_btn = Назад +treasury.upkeep_cost_format = {0} каждые {1} ч. +treasury.upkeep_time_left = осталось {0} +treasury.wallet_label = Ваш кошелёк: {0} +treasury.treasury_label = Баланс Казны: {0} +treasury.chunks_detail = {0} бесплатных + {1} оплачиваемых чанков +treasury.cost_label = Стоимость: {0} +treasury.pending = Ожидание +treasury.auto_pay_on = Автооплата: ВКЛ +treasury.auto_pay_off = Автооплата: ВЫКЛ +treasury.runway_90_plus = 90+ дней +treasury.runway_days = {0} дней +treasury.runway_day = {0} день +treasury.runway_less_day = < 1 дня +treasury.runway_no_funds = Нет средств +treasury.grace_expires = Льготный период истекает через: {0} +treasury.missed_payments = Пропущено платежей: {0} +treasury.pay_to_clear = Оплатите {0} для снятия льготного периода +treasury.system = Система +treasury.type_deposit = Вклад +treasury.type_withdrawal = Вывод +treasury.type_transfer_in = Входящий перевод +treasury.type_transfer_out = Исходящий перевод +treasury.type_player_transfer = Перевод игроку +treasury.type_upkeep = Содержание +treasury.type_tax = Сбор налогов +treasury.type_war_cost = Затраты на войну +treasury.type_raid_cost = Затраты на рейд +treasury.type_spoils = Трофеи +treasury.type_admin = Корректировка администратором +treasury.deposit_title = Внести в Казну +treasury.withdraw_title = Вывести из Казны +treasury.fee_label = Комиссия ({0}%) +treasury.confirm_deposit = Подтвердить вклад +treasury.confirm_withdrawal = Подтвердить вывод +treasury.from_wallet = {0} из кошелька +treasury.to_wallet = {0} в кошелёк +treasury.enter_valid_amount = Введите допустимую положительную сумму. +treasury.insufficient_wallet = Недостаточно средств в кошельке. Нужно {0}, есть {1}. +treasury.wallet_withdraw_failed = Не удалось списать средства из вашего кошелька. +treasury.deposit_failed_returned = Не удалось внести средства. Деньги возвращены. +treasury.deposited = Внесено {0} в Казну. +treasury.deposited_fee = Внесено {0} в Казну. (комиссия: {1}) +treasury.no_withdraw_permission = У вас нет прав на вывод средств. +treasury.withdraw_denied = Вывод отклонён: {0} +treasury.insufficient_treasury = Недостаточно средств в Казне. +treasury.withdraw_limit = Превышен лимит вывода. +treasury.withdraw_failed = Ошибка вывода: {0} +treasury.wallet_deposit_warn = Внимание: Не удалось зачислить средства в ваш кошелёк. Обратитесь к администратору. +treasury.withdrew = Выведено {0} из Казны. +treasury.withdrew_fee = Выведено {0} из Казны. (комиссия: {1}, получено: {2}) +treasury.search_hint = Найдите игрока или фракцию +treasury.no_results = Нет результатов для '{0}' +treasury.tag_player = [Игрок] +treasury.tag_faction = [Фракция] +treasury.source_online = В сети +treasury.source_offline = Не в сети +treasury.source_player_db = Игрок Hytale +treasury.no_transfer_permission = У вас нет прав на перевод. +treasury.transfer_denied = Перевод отклонён: {0} +treasury.invalid_target_faction = Недопустимая целевая фракция. +treasury.target_faction_gone = Целевая фракция больше не существует. +treasury.transfer_failed = Ошибка перевода: {0} +treasury.transfer_failed_returned = Перевод не удался. Средства возвращены. +treasury.transferred = Переведено {0} в {1}. +treasury.invalid_target_player = Недопустимый целевой игрок. +treasury.player_transfer_failed = Не удалось зачислить средства в кошелёк игрока. Перевод отменён. +treasury.leader_only_perms = Только Лидер может изменять права Казны. +treasury.leader_only_upkeep = Только Лидер может изменять настройки содержания. +treasury.invalid_limit = Недопустимое число в полях лимитов. Используйте 0 для снятия ограничений. + +# ========== Страницы подтверждения ========== +confirm.disband_title = Распустить фракцию +confirm.disband_prompt = Вы уверены, что хотите распустить +confirm.disband_warning = Это действие нельзя отменить! +confirm.leave_title = Покинуть фракцию +confirm.leave_prompt = Вы уверены, что хотите покинуть +confirm.leave_warning = Вы потеряете доступ к территории фракции. +confirm.leader_leave_title = Покинуть как Лидер +confirm.leader_leave_prompt = Вы покидаете +confirm.transfer_title = Передача лидерства +confirm.transfer_prompt = Вы уверены, что хотите передать лидерство +confirm.transfer_warning = Вы станете Офицером. +confirm.disband_not_leader = Только Лидер может распустить фракцию. +confirm.disbanded = Фракция '{0}' была распущена. +confirm.disband_failed = Не удалось распустить фракцию. +confirm.succession_title = Лидерство будет передано: +confirm.no_members_warning = ВНИМАНИЕ: Нет других участников! +confirm.will_disband = Уход приведёт к окончательному роспуску фракции. +confirm.not_in_faction = Вы не состоите в этой фракции. +confirm.not_leader_anymore = Вы больше не Лидер. +confirm.no_successor = Нет доступного преемника. Используйте роспуск. +confirm.transfer_failed = Не удалось передать лидерство: {0} +confirm.leader_left = Лидерство передано {0}. Вы покинули {1}. +confirm.leave_failed = Не удалось покинуть фракцию: {0} +confirm.leader_cannot_leave = Лидеры не могут покинуть фракцию. Передайте лидерство или распустите фракцию. +confirm.left_faction = Вы покинули {0}. +confirm.faction_gone = Фракция больше не существует. +confirm.not_leader_transfer = Только Лидер может передать лидерство. +confirm.leadership_transferred = Лидерство передано {0}. + +# ========== Страница журнала активности ========== +logs.title = {0} - Журнал активности +logs.entry_count = {0} записей +logs.filter_label = Фильтр: +logs.col_time = Время +logs.col_type = Тип +logs.col_message = Сообщение +logs.prev_btn = < Назад +logs.next_btn = Далее > +logs.all_types = Все типы +logs.no_logs_type = Нет записей этого типа. +logs.no_logs = Журнал активности пуст. +logs.time_just_now = только что +logs.time_minute = {0} минуту назад +logs.time_minutes = {0} минут назад +logs.time_hour = {0} час назад +logs.time_hours = {0} часов назад +logs.time_day = {0} день назад +logs.time_days = {0} дней назад +logs.time_week = {0} неделю назад +logs.time_weeks = {0} недель назад +logs.type_member_join = Вступление +logs.type_member_leave = Выход +logs.type_member_kick = Исключение +logs.type_member_promote = Повышение +logs.type_member_demote = Понижение +logs.type_claim = Захват +logs.type_unclaim = Освобождение +logs.type_overclaim = Перезахват +logs.type_home_set = Установка дома +logs.type_relation_ally = Союзник +logs.type_relation_enemy = Враг +logs.type_relation_neutral = Нейтралитет +logs.type_leader_transfer = Передача +logs.type_settings_change = Настройки +logs.type_power_change = Сила +logs.type_economy = Экономика +logs.type_admin_power = Админ (Сила) + +# Шаблоны сообщений журнала (i18n для содержимого журнала активности) +# Действия игроков +logs.msg_faction_created = {0} создал(а) фракцию +logs.msg_member_joined = {0} вступил(а) во фракцию +logs.msg_member_left = {0} покинул(а) фракцию +logs.msg_member_kicked = {0} был(а) исключён(а) +logs.msg_member_promoted = {0} повышен(а) до {1} +logs.msg_member_demoted = {0} понижен(а) до {1} +logs.msg_leader_transferred = Лидерство передано {0} +logs.msg_leader_left_transfer = {0} покинул(а), {1} теперь Лидер +logs.msg_relation_set = Установлены отношения с {0} как {1} +# Территория +logs.msg_claimed = Захвачен чанк в {0}, {1} в {2} +logs.msg_unclaimed = Освобождён чанк в {0}, {1} в {2} +logs.msg_overclaim_lost = Потерян чанк в {0}, {1} в пользу {2} +logs.msg_overclaim_taken = Перезахвачен чанк в {0}, {1} у {2} +logs.msg_all_unclaimed = Все территории освобождены +logs.msg_claim_removed_world = Территория в '{0}' удалена (мир запрещает захват) +logs.msg_claims_lost_upkeep = Потеряно {0} территорий из-за содержания (пропущено {1} платежей) +logs.msg_claims_removed_inactive = {0} территорий удалено из-за неактивности ({1} дней) +# Дом +logs.msg_home_set = Дом установлен +logs.msg_home_cleared = Дом удалён +logs.msg_home_cleared_world = Дом в '{0}' удалён (мир запрещает захват) +# Настройки +logs.msg_renamed = Переименовано из '{0}' в '{1}' +logs.msg_set_open = Фракция открыта для вступления +logs.msg_set_closed = Фракция закрыта (только по приглашению) +logs.msg_desc_set = Описание установлено +logs.msg_desc_cleared = Описание очищено +logs.msg_color_changed = Цвет изменён на '{0}' +# Экономика +logs.msg_deposit = Вклад: {0} (+{1}) +logs.msg_withdrawal = Вывод: {0} (-{1}) +logs.msg_upkeep_paid = Содержание оплачено: {0} ({1} оплачиваемых чанков) +logs.msg_upkeep_grace_started = Оплата содержания не удалась: начат льготный период ({0} ч.) +logs.msg_upkeep_missed = Содержание не оплачено (платёж {0}), льготный период истекает через {1} +logs.msg_upkeep_manual = Содержание оплачено вручную: {0} ({1} оплачиваемых чанков, льготный период снят) +# Админ (Сила) +logs.msg_admin_power_set = Админ установил Силу {0} на {1} (было {2}) +logs.msg_admin_power_add = Админ добавил {0} Силы для {1} ({2} -> {3}) +logs.msg_admin_power_remove = Админ убрал {0} Силы у {1} ({2} -> {3}) +logs.msg_admin_power_reset = Админ сбросил Силу {0} до {1} (было {2}) +logs.msg_admin_power_adjusted = Админ изменил Силу {0} на {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Админ установил макс. Силу {0} на {1} (было {2}) +logs.msg_admin_maxpower_reset = Админ сбросил макс. Силу {0} до глобального значения ({1}) +logs.msg_admin_powerloss_enabled = Админ включил потерю Силы для {0} +logs.msg_admin_powerloss_disabled = Админ отключил потерю Силы для {0} +logs.msg_admin_decay_enabled = Админ включил исключение из распада территорий для {0} +logs.msg_admin_decay_disabled = Админ отключил исключение из распада территорий для {0} +logs.msg_admin_kd_reset = Админ сбросил У/С для {0} +logs.msg_admin_power_set_all = Админ установил Силу всех {0} участников на {1} +logs.msg_admin_power_add_all = Админ добавил {0} Силы всем {1} участникам +logs.msg_admin_power_remove_all = Админ убрал {0} Силы у всех {1} участников +logs.msg_admin_power_reset_all = Админ сбросил Силу всех {0} участников +logs.msg_admin_power_adjusted_all = Админ изменил Силу всех {0} участников на {1} +# Админ (фракция) +logs.msg_admin_kicked = [Admin] {0} был(а) исключён(а) +logs.msg_admin_role_set = [Admin] Роль {0} установлена на {1} +logs.msg_admin_leader_kick = [Admin] Лидерство передано от {0} к {1} (исключение администратором) +logs.msg_admin_econ_added = Админ добавил: {0} (баланс: {1}) +logs.msg_admin_econ_deducted = Админ списал: {0} (баланс: {1}) +logs.msg_admin_econ_set = Админ установил баланс на {0} (было {1}) +# Импорт +logs.msg_left_import = {0} покинул(а) (импортирован(а) в другую фракцию) +logs.msg_leader_import_transfer = {0} стал(а) Лидером (предыдущий Лидер импортирован в другую фракцию) +logs.msg_imported_from = Фракция импортирована из {0} + +# ========== Страница чата ========== +chat.title = Чат фракции +chat.tab_faction = Фракция +chat.tab_ally = Союзник +chat.send_btn = Отправить +chat.placeholder = Введите сообщение... +chat.no_messages = Сообщений пока нет. +chat.no_ally_permission = У вас нет прав на чат союзников. +chat.no_permission = Нет доступа. +chat.faction_gone = Ваша фракция больше не существует. +chat.time_now = сейчас +chat.time_minutes = {0} мин. +chat.time_hours = {0} ч. + +# ========== Страница приглашений ========== +invites.title = Приглашения +invites.tab_outgoing = Исходящие +invites.tab_requests = Заявки +invites.prev_btn = < Назад +invites.next_btn = Далее > +invites.invite_count = {0} приглашений +invites.request_count = {0} заявок +invites.invited_by = Пригласил(а): {0} +invites.no_message = Нет сообщения +invites.expires = Истекает: {0} +invites.type_outgoing = Исходящее +invites.type_request = Заявка +invites.invited_by_label = Пригласил(а): +invites.empty_outgoing = Нет исходящих приглашений. Используйте /f invite <игрок>, чтобы пригласить кого-нибудь. +invites.empty_requests = Нет заявок на вступление. Игроки могут подать заявку командой /f request. +invites.invalid_player = Недопустимый игрок. +invites.cancelled_invite = Приглашение для {0} отменено. +invites.player_joined = {0} вступил(а) во фракцию! +invites.faction_full = Фракция заполнена. Невозможно принять заявку. +invites.add_failed = Не удалось добавить игрока во фракцию. +invites.request_expired = Заявка не найдена или истекла. +invites.request_declined = Заявка от {0} отклонена. +invites.time_seconds = {0} сек. +invites.time_minutes = {0} мин. +invites.time_hours = {0} ч. +invites.label_message = Сообщение: +invites.btn_cancel = Отменить +invites.btn_accept = Принять +invites.btn_decline = Отклонить + +# ========== Страница карты ========== +map.title = Карта территорий +map.action_hint = ЛКМ: Захватить | ПКМ: Освободить +map.legend_your = Ваша территория +map.legend_ally = Территория союзника +map.legend_enemy = Вражеская территория +map.legend_other = Другая фракция +map.legend_wilderness = Дикая местность +map.legend_safe = SafeZone +map.legend_war = WarZone +map.legend_you = Вы здесь +map.position = Ваша позиция: Чанк ({0}, {1}) +map.legend_protected = Защищённая +map.claim_stats = Территории: {0}/{1} ({2} доступно) +map.overclaimed = ПЕРЕЗАХВАЧЕНО фракцией {0}! +map.power_display = Сила: {0}/{1} +map.join_to_claim = Вступите во фракцию, чтобы захватывать территории +map.claim_success = Чанк захвачен в ({0}, {1})! +map.claim_not_in_faction = Вы должны состоять во фракции, чтобы захватывать территории. +map.claim_not_officer = Только Офицеры и Лидер могут захватывать территории. +map.claim_already_yours = Вы уже владеете этим чанком. +map.claim_already_claimed = Этот чанк уже захвачен другой фракцией. +map.claim_not_adjacent = Вы можете захватывать только чанки, смежные с вашей территорией. +map.claim_max = Вы достигли предела территорий. +map.claim_world_not_allowed = Захват территории в этом мире запрещён. +map.claim_orbisguard = Эта область защищена OrbisGuard. +map.claim_failed = Не удалось захватить чанк. +map.unclaim_success = Чанк освобождён в ({0}, {1}). +map.unclaim_not_in_faction = Вы должны состоять во фракции. +map.unclaim_not_officer = Только Офицеры и Лидер могут освобождать территории. +map.unclaim_not_claimed = Этот чанк не захвачен. +map.unclaim_not_yours = Этот чанк принадлежит другой фракции. +map.unclaim_home = Нельзя освободить чанк, содержащий дом фракции. +map.unclaim_failed = Не удалось освободить чанк. +map.overclaim_success = Вражеский чанк перезахвачен в ({0}, {1})! +map.overclaim_not_in_faction = Вы должны состоять во фракции. +map.overclaim_not_officer = Только Офицеры и Лидер могут перезахватывать территории. +map.overclaim_already_yours = Вы уже владеете этим чанком. +map.overclaim_ally = Вы не можете перезахватить территорию союзника. +map.overclaim_has_power = У этой фракции достаточно Силы для защиты своей территории. +map.overclaim_max = Вы достигли предела территорий. +map.overclaim_failed = Не удалось выполнить перезахват. +# ========== Страница создания фракции ========== +create.title = Создайте свою фракцию +create.section_preview = Предпросмотр +create.section_basic_info = Основная информация +create.section_details = Подробности +create.name_prefix = Название: +create.faction_name_label = Название фракции * +create.tag_label = ТЕГ (2-4 символа, авто если пусто) +create.desc_label = Описание (необязательно) +create.recruitment_label = Набор +create.section_faction_color = Цвет фракции +create.section_combat = Бой +create.create_btn = Создать фракцию +create.preview_name = Название вашей фракции +create.leader_prefix = Лидер: {0} +create.enter_name = Пожалуйста, введите название фракции. +create.name_too_short = Название фракции должно содержать не менее {0} символов. +create.name_too_long = Название фракции не может превышать {0} символов. +create.name_taken = Фракция с таким названием уже существует. +create.tag_length = Тег фракции должен содержать от {0} до {1} символов. +create.tag_format = Тег фракции может содержать только буквы и цифры. +create.desc_too_long = Описание не может превышать {0} символов. +create.created = Фракция {0} успешно создана! +create.created_no_dashboard = Фракция создана, но не удалось открыть панель управления. +create.invalid_name = Недопустимое название фракции. +create.create_failed = Не удалось создать фракцию. + +# ========== Страницы для новых игроков ========== +newplayer.browse_title = Обзор фракций +newplayer.invites_title = Приглашения и заявки +newplayer.map_title = Карта территорий +newplayer.view_only_badge = Режим просмотра +newplayer.legend_label = Обозначения: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Фракция +newplayer.legend_wilderness = Дикая местность +newplayer.search_label = Поиск: +newplayer.sort_label = Сортировка: +newplayer.prev_btn = < Назад +newplayer.next_btn = Далее > +newplayer.pending_count = {0} ожидающих +newplayer.received_header = ПОЛУЧЕННЫЕ ПРИГЛАШЕНИЯ ({0}) +newplayer.requests_header = ВАШИ ЗАЯВКИ ({0}) +newplayer.no_invites = Нет приглашений. Найдите фракцию в разделе обзора! +newplayer.no_requests = Нет ожидающих заявок. +newplayer.invited_by = Пригласил(а): {0} +newplayer.member_count = {0} участников +newplayer.power_count = {0} Силы +newplayer.claim_count = {0} территорий +newplayer.awaiting_review = Ожидает рассмотрения +newplayer.expires_in = Истекает через {0} ч. +newplayer.time_just_now = только что +newplayer.time_minutes = {0} мин. назад +newplayer.time_hours = {0} ч. назад +newplayer.time_days = {0} д. назад +newplayer.invalid_faction = Недопустимая фракция. +newplayer.invite_expired = Это приглашение истекло или было отозвано. +newplayer.faction_gone = Фракция больше не существует. +newplayer.joined = Вы вступили в {0}! +newplayer.faction_full = Эта фракция заполнена. +newplayer.join_failed = Не удалось вступить во фракцию. +newplayer.invite_declined = Приглашение отклонено. +newplayer.request_cancelled = Заявка на вступление в {0} отменена. +newplayer.faction_count = {0} фракций +newplayer.browse_subtitle = Найдите свой новый дом! +newplayer.sort_power = Сила +newplayer.sort_name = Название +newplayer.sort_members = Участники +newplayer.btn_accept = Принять +newplayer.btn_pending = Ожидание +newplayer.btn_join = Вступить +newplayer.btn_request = Заявка +newplayer.invite_only_msg = Эта фракция доступна только по приглашению. +newplayer.welcome_hint = Добро пожаловать! Используйте /f для открытия меню фракций. +newplayer.faction_open_hint = Эта фракция открыта! Нажмите ВСТУПИТЬ. +newplayer.already_requested = Вы уже подали заявку в эту фракцию. +newplayer.has_invite_hint = У вас есть приглашение от этой фракции! Нажмите ПРИНЯТЬ. +newplayer.request_sent = Заявка на вступление отправлена в {0}! +newplayer.officer_review = Офицер рассмотрит вашу заявку. +newplayer.map_hint = Режим просмотра — Вступите во фракцию, чтобы захватывать территории! + +# Настройки игрока +nav.player_settings = Игрок +player_settings.title = Настройки игрока +player_settings.language_section = Язык +player_settings.auto_detect = Определять автоматически +player_settings.auto_detect_desc = Использует языковые настройки вашего игрового клиента +player_settings.language_label = Язык +player_settings.notifications_section = Уведомления +player_settings.territory_alerts = Оповещения о территории +player_settings.territory_alerts_desc = Показывать уведомления при входе/выходе с территорий +player_settings.death_announcements = Объявления о смертях +player_settings.death_announcements_desc = Получать объявления о местах гибели участников фракции +player_settings.power_notifications = Изменения Силы +player_settings.power_notifications_desc = Показывать сообщения при изменении вашей Силы +player_settings.language_changed = Язык изменён на {0} +player_settings.pref_enabled = {0} включено +player_settings.pref_disabled = {0} отключено + +# ========== Страницы справки ========== +help.center_title = Справочный центр +help.getting_started_title = Начало работы +help.what_are_factions_title = Что такое фракции? +help.what_are_factions_1 = Фракции — это группы игроков, которые объединяются +help.what_are_factions_2 = для захвата территорий, строительства баз и соревнования. +help.what_are_factions_bullet_1 = - Защищённая территория для строительства +help.what_are_factions_bullet_2 = - Товарищи по команде для совместной игры +help.what_are_factions_bullet_3 = - Доступ к чату фракции и функциям +help.joining_title = Вступление во фракцию +help.joining_desc = Есть несколько способов вступить во фракцию: +help.joining_bullet_1 = - Обзор — Найдите открытые фракции и нажмите ВСТУПИТЬ +help.joining_bullet_2 = - Приглашения — Примите приглашения от Офицеров +help.joining_bullet_3 = - Заявка — Подайте заявку в закрытые фракции +help.creating_title = Создание фракции +help.creating_desc = Перейдите на вкладку «Создать», чтобы основать свою фракцию. +help.creating_bullet_1 = - Приглашайте и управляйте участниками +help.creating_bullet_2 = - Захватывайте и защищайте территории +help.commands_title = Быстрые команды +help.cmd_f = /f - Открыть меню фракции +help.cmd_f_list = /f list - Список всех фракций +help.cmd_f_join = /f join <название> - Вступить в открытую фракцию +help.cmd_f_create = /f create <название> - Создать новую фракцию +help.cmd_f_help = /f help - Полный список команд +help.tip = Совет: Просматривайте фракции, чтобы найти подходящую группу! From 725ae9c8862aeb37eec5dbabf2e0a3246921f81c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:14 -0700 Subject: [PATCH 61/76] i18n: add Korean (ko-KR) translations Complete Korean translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/ko-KR/help/combat/death.md | 39 + .../Languages/ko-KR/help/combat/protection.md | 28 + .../ko-KR/help/combat/spawn_protection.md | 27 + .../Languages/ko-KR/help/combat/tagging.md | 29 + .../Languages/ko-KR/help/combat/zones.md | 29 + .../ko-KR/help/diplomacy/alliances.md | 45 + .../Languages/ko-KR/help/diplomacy/enemies.md | 47 + .../ko-KR/help/diplomacy/relations.md | 38 + .../Languages/ko-KR/help/economy/commands.md | 27 + .../Languages/ko-KR/help/economy/funds.md | 42 + .../Languages/ko-KR/help/economy/treasury.md | 26 + .../Languages/ko-KR/help/economy/upkeep.md | 37 + .../ko-KR/help/power_land/claiming.md | 50 + .../ko-KR/help/power_land/losing_territory.md | 50 + .../ko-KR/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../ko-KR/help/quick_ref/all_commands.md | 94 ++ .../ko-KR/help/welcome/getting_started.md | 38 + .../ko-KR/help/welcome/quick_tips.md | 44 + .../ko-KR/help/welcome/what_are_factions.md | 37 + .../ko-KR/help/your_faction/creating.md | 38 + .../ko-KR/help/your_faction/joining.md | 36 + .../ko-KR/help/your_faction/managing.md | 44 + .../ko-KR/help/your_faction/roles.md | 44 + .../Server/Languages/ko-KR/hyperfactions.lang | 453 +++++++++ .../Languages/ko-KR/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/ko-KR/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/death.md b/src/main/resources/Server/Languages/ko-KR/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md b/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md b/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md b/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md b/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md b/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md b/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md b/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang new file mode 100644 index 00000000..239415d5 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Korean Translations +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== 공통 ========== +common.no_permission = 권한이 없습니다. +common.not_in_faction = 세력에 소속되어 있지 않습니다. +common.already_in_faction = 이미 세력에 소속되어 있습니다. +common.player_not_found = 플레이어를 찾을 수 없습니다. +common.faction_not_found = 세력을 찾을 수 없습니다. +common.player_not_online = 해당 플레이어가 온라인이 아닙니다. +common.must_be_leader = 세력 지도자만 할 수 있습니다. +common.must_be_officer = 간부 또는 지도자만 할 수 있습니다. +common.combat_tagged = 전투 중에는 사용할 수 없습니다. +common.cancel = 취소 +common.confirm = 확인 +common.save = 저장 +common.close = 닫기 +common.clear = 초기화 +common.back = 뒤로 +common.leave = 탈퇴 +common.transfer = 이양 +common.disband = 해산 +common.world_fallback = 월드 +common.yes = 예 +common.no = 아니오 +common.loading = 로딩 중... +common.online = 온라인 +common.offline = 오프라인 +common.enabled = 활성화 +common.disabled = 비활성화 +common.none = 없음 +common.page = 페이지 {0}/{1} +common.unknown = 알 수 없음 +common.error_generic = 문제가 발생했습니다. 다시 시도해 주세요. +common.gui_fallback = GUI에 접근할 수 없습니다. /f help 명령어를 사용해 주세요. +common.admin_prefix = [Admin] +common.location_error = 현재 위치를 확인할 수 없습니다. +common.world_error = 현재 월드를 확인할 수 없습니다. +common.invalid_id = 잘못된 세력 ID입니다. +common.na = N/A + +# ========== 명령어 - 생성 ========== +cmd.create.no_permission = 세력을 생성할 권한이 없습니다. +cmd.create.usage = 사용법: /f create <이름> +cmd.create.success = 세력 '{0}'이(가) 생성되었습니다! +cmd.create.already_in_named = 이미 {0}에 소속되어 있습니다. +cmd.create.use_leave_first = 새 세력을 만들려면 먼저 /f leave를 사용해 주세요. +cmd.create.name_taken = 해당 세력 이름은 이미 사용 중입니다. +cmd.create.name_too_short = 세력 이름이 너무 짧습니다. +cmd.create.name_too_long = 세력 이름이 너무 깁니다. +cmd.create.failed = 세력 생성에 실패했습니다. + +# ========== 명령어 - 해산 ========== +cmd.disband.no_permission = 세력을 해산할 권한이 없습니다. +cmd.disband.not_leader = 세력 지도자만 해산할 수 있습니다. +cmd.disband.confirm_prompt = 정말로 세력을 해산하시겠습니까? +cmd.disband.confirm_instruction = {0}초 이내에 /f disband --text를 다시 입력하여 확인하세요. +cmd.disband.success = 세력이 해산되었습니다. +cmd.disband.failed = 세력 해산에 실패했습니다. +cmd.disband.cancelled = 이전 확인이 취소되었습니다. 해산을 확인하려면 다시 입력하세요. + +# ========== 명령어 - 이름 변경 ========== +cmd.rename.no_permission = 권한이 없습니다. +cmd.rename.not_leader = 지도자만 세력 이름을 변경할 수 있습니다. +cmd.rename.usage = 사용법: /f rename <이름> +cmd.rename.too_short = 이름이 너무 짧습니다 (최소 {0}자). +cmd.rename.too_long = 이름이 너무 깁니다 (최대 {0}자). +cmd.rename.name_taken = 해당 이름은 이미 사용 중입니다. +cmd.rename.success = 세력 이름이 {0}(으)로 변경되었습니다! +cmd.rename.broadcast = {0}이(가) 세력 이름을 {1}(으)로 변경했습니다 + +# ========== 명령어 - 설명 ========== +cmd.desc.no_permission = 권한이 없습니다. +cmd.desc.not_officer = 설명을 설정하려면 간부 이상이어야 합니다. +cmd.desc.set = 세력 설명이 설정되었습니다! +cmd.desc.cleared = 세력 설명이 초기화되었습니다. + +# ========== 명령어 - 공개 / 비공개 ========== +cmd.open.no_permission = 권한이 없습니다. +cmd.open.not_leader = 지도자만 이 설정을 변경할 수 있습니다. +cmd.open.already_open = 세력이 이미 공개 상태입니다. +cmd.open.success = 세력이 공개되었습니다! 누구나 /f join으로 가입할 수 있습니다. +cmd.open.broadcast = {0}이(가) 세력을 공개 가입으로 변경했습니다. +cmd.close.no_permission = 권한이 없습니다. +cmd.close.not_leader = 지도자만 이 설정을 변경할 수 있습니다. +cmd.close.already_closed = 세력이 이미 비공개 상태입니다. +cmd.close.success = 세력이 초대 전용으로 변경되었습니다. +cmd.close.broadcast = {0}이(가) 세력을 초대 전용으로 변경했습니다. + +# ========== 명령어 - 색상 ========== +cmd.color.no_permission = 권한이 없습니다. +cmd.color.not_officer = 색상을 변경하려면 간부 이상이어야 합니다. +cmd.color.colors_disabled = 세력 색상 기능이 비활성화되어 있습니다. +cmd.color.usage = 사용법: /f color <코드|#hex> +cmd.color.usage_hint = 유효한 코드: 0-9, a-f 또는 #RRGGBB 16진수 +cmd.color.invalid = 잘못된 색상입니다. 0-9, a-f 또는 #RRGGBB를 사용하세요. +cmd.color.success = 세력 색상이 업데이트되었습니다! + +# ========== 명령어 - 영토 점령 ========== +cmd.claim.no_permission = 영토를 점령할 권한이 없습니다. +cmd.claim.already_yours = 이 청크는 이미 세력이 소유하고 있습니다. +cmd.claim.cannot_claim_ally = 동맹 영토는 점령할 수 없습니다. +cmd.claim.already_claimed_hint = 이 청크는 이미 점령되어 있습니다. 상대가 약탈 가능 상태라면 /f overclaim을 사용하세요. +cmd.claim.success = 청크 {0}, {1}을(를) 점령했습니다! +cmd.claim.not_officer = 영토를 점령하려면 간부 이상이어야 합니다. +cmd.claim.already_claimed = 이 청크는 이미 점령되어 있습니다. +cmd.claim.max_claims = 세력의 최대 영토 수에 도달했습니다. 더 많은 파워를 확보하세요! +cmd.claim.not_adjacent = 기존 영토에 인접한 곳만 점령할 수 있습니다. +cmd.claim.world_not_allowed = 이 월드에서는 영토 점령이 허용되지 않습니다. +cmd.claim.orbisguard = 이 지역은 OrbisGuard에 의해 보호되고 있습니다. +cmd.claim.zone_protected = 이 청크는 SafeZone 또는 WarZone에 있습니다. +cmd.claim.insufficient_power = 세력의 파워가 부족하여 더 이상 영토를 점령할 수 없습니다. +cmd.claim.failed = 청크 점령에 실패했습니다. + +# ========== 명령어 - 초대 ========== +cmd.invite.no_permission = 플레이어를 초대할 권한이 없습니다. +cmd.invite.not_officer = 플레이어를 초대하려면 간부 이상이어야 합니다. +cmd.invite.usage = 사용법: /f invite <플레이어> +cmd.invite.player_not_found = 플레이어 '{0}'을(를) 찾을 수 없거나 오프라인입니다. +cmd.invite.target_in_faction = 해당 플레이어는 이미 세력에 소속되어 있습니다. +cmd.invite.sent = {0}을(를) 세력에 초대했습니다. +cmd.invite.received = {0}에서 가입 초대를 받았습니다! +cmd.invite.accept_hint = /f accept {0}을(를) 입력하여 가입하세요. + +# ========== 명령어 - 수락 / 가입 ========== +cmd.join.no_permission = 세력에 가입할 권한이 없습니다. +cmd.join.already_in_named = 이미 {0}에 소속되어 있습니다. +cmd.join.use_leave_hint = 다른 세력에 가입하려면 먼저 /f leave를 사용해 주세요. +cmd.join.no_invites = 대기 중인 초대가 없습니다. +cmd.join.faction_not_found = 세력 '{0}'을(를) 찾을 수 없습니다. +cmd.join.not_invited = 해당 세력의 초대가 없습니다. +cmd.join.faction_gone = 해당 세력이 더 이상 존재하지 않습니다. +cmd.join.success = {0}에 가입했습니다! +cmd.join.broadcast = {0}이(가) 세력에 가입했습니다! +cmd.join.faction_full = 해당 세력이 가득 찼습니다. +cmd.join.failed = 세력 가입에 실패했습니다. + +# ========== 명령어 - 추방 ========== +cmd.kick.no_permission = 멤버를 추방할 권한이 없습니다. +cmd.kick.usage = 사용법: /f kick <플레이어> +cmd.kick.not_in_your_faction = 플레이어 '{0}'은(는) 세력에 소속되어 있지 않습니다. +cmd.kick.success = {0}을(를) 세력에서 추방했습니다. +cmd.kick.broadcast = {0}이(가) 세력에서 추방되었습니다. +cmd.kick.kicked = 세력에서 추방되었습니다. +cmd.kick.cannot_kick_higher = 해당 플레이어를 추방할 권한이 없습니다. +cmd.kick.cannot_kick_leader = 세력 지도자는 추방할 수 없습니다. +cmd.kick.failed = 플레이어 추방에 실패했습니다. + +# ========== 명령어 - 탈퇴 ========== +cmd.leave.no_permission = 세력을 탈퇴할 권한이 없습니다. +cmd.leave.confirm_prompt = 정말로 세력을 탈퇴하시겠습니까? +cmd.leave.confirm_instruction = {0}초 이내에 /f leave --text를 다시 입력하여 확인하세요. +cmd.leave.success = 세력을 탈퇴했습니다. +cmd.leave.broadcast = {0}이(가) 세력을 탈퇴했습니다. +cmd.leave.failed = 세력 탈퇴에 실패했습니다. +cmd.leave.cancelled = 이전 확인이 취소되었습니다. 탈퇴를 확인하려면 다시 입력하세요. + +# ========== 명령어 - 승급 / 강등 / 지도자 이양 ========== +cmd.rank.promote_no_permission = 멤버를 승급시킬 권한이 없습니다. +cmd.rank.promote_usage = 사용법: /f promote <플레이어> +cmd.rank.promoted = {0}을(를) {1}(으)로 승급시켰습니다! +cmd.rank.promote_broadcast = {0}이(가) {1}(으)로 승급되었습니다! +cmd.rank.already_highest = 더 이상 승급할 수 없습니다. 지도자를 변경하려면 /f transfer를 사용하세요. +cmd.rank.promote_failed = 플레이어 승급에 실패했습니다. +cmd.rank.demote_no_permission = 멤버를 강등시킬 권한이 없습니다. +cmd.rank.demote_usage = 사용법: /f demote <플레이어> +cmd.rank.demoted = {0}을(를) {1}(으)로 강등시켰습니다. +cmd.rank.demote_broadcast = {0}이(가) {1}(으)로 강등되었습니다. +cmd.rank.already_lowest = 해당 플레이어는 이미 멤버입니다. +cmd.rank.demote_failed = 플레이어 강등에 실패했습니다. +cmd.rank.transfer_no_permission = 지도자를 이양할 권한이 없습니다. +cmd.rank.transfer_usage = 사용법: /f transfer <플레이어> +cmd.rank.player_not_in_faction = 세력에서 플레이어를 찾을 수 없습니다. +cmd.rank.transfer_confirm = 정말로 {0}에게 지도자를 이양하시겠습니까? +cmd.rank.transfer_confirm_instruction = {1}초 이내에 /f transfer {0} --text를 다시 입력하여 확인하세요. +cmd.rank.transferred = {0}에게 지도자를 이양했습니다! +cmd.rank.transfer_broadcast = {0}이(가) 새로운 세력 지도자가 되었습니다! +cmd.rank.transfer_failed = 지도자 이양에 실패했습니다. +cmd.rank.transfer_cancelled = 이전 확인이 취소되었습니다. 이양을 확인하려면 다시 입력하세요. + +# ========== 명령어 - 영토 포기 ========== +cmd.unclaim.no_permission = 영토를 포기할 권한이 없습니다. +cmd.unclaim.success = 청크 {0}, {1}을(를) 포기했습니다. +cmd.unclaim.not_officer = 영토를 포기하려면 간부 이상이어야 합니다. +cmd.unclaim.chunk_not_claimed = 이 청크는 점령되지 않았습니다. +cmd.unclaim.not_your_claim = 이 청크는 세력의 소유가 아닙니다. +cmd.unclaim.cannot_unclaim_home = 세력 홈이 있는 청크는 포기할 수 없습니다. +cmd.unclaim.would_disconnect = 포기할 수 없습니다 — 영토가 분리됩니다. +cmd.unclaim.failed = 청크 포기에 실패했습니다. + +# ========== 명령어 - 강제 점령 ========== +cmd.overclaim.no_permission = 영토를 강제 점령할 권한이 없습니다. +cmd.overclaim.success = 적 영토를 강제 점령했습니다! +cmd.overclaim.not_officer = 강제 점령하려면 간부 이상이어야 합니다. +cmd.overclaim.not_claimed = 이 청크는 점령되지 않았습니다. /f claim을 사용하세요. +cmd.overclaim.own_chunk = 이 청크는 이미 세력이 소유하고 있습니다. +cmd.overclaim.ally = 동맹 영토는 강제 점령할 수 없습니다. +cmd.overclaim.target_has_power = 이 세력은 아직 충분한 파워를 보유하고 있습니다. +cmd.overclaim.failed = 강제 점령에 실패했습니다. + +# ========== 명령어 - 구출 ========== +cmd.stuck.no_permission = /f stuck을 사용할 권한이 없습니다. +cmd.stuck.not_stuck = 여기는 야생 지역입니다 — 갇혀 있지 않습니다. +cmd.stuck.combat_tagged = 전투 중에는 /f stuck을 사용할 수 없습니다! +cmd.stuck.no_safe = 안전한 위치를 찾을 수 없습니다. +cmd.stuck.teleporting = {0}초 후 안전한 곳으로 이동합니다. 움직이지 마세요! + +# ========== 명령어 - 홈 ========== +cmd.home.no_permission = 세력 홈으로 이동할 권한이 없습니다. +cmd.home.no_home = 세력 홈이 설정되지 않았습니다. +cmd.home.combat_tagged = 전투 중에는 텔레포트할 수 없습니다! +cmd.home.teleported = 세력 홈으로 이동했습니다! + +# ========== 명령어 - 홈 설정 ========== +cmd.sethome.no_permission = 세력 홈을 설정할 권한이 없습니다. +cmd.sethome.world_not_allowed = 이 월드에서는 홈을 설정할 수 없습니다. +cmd.sethome.not_in_territory = 세력 영토 내에서만 홈을 설정할 수 있습니다. +cmd.sethome.set = 세력 홈이 설정되었습니다! +cmd.sethome.broadcast = {0}이(가) 세력 홈을 설정했습니다. +cmd.sethome.not_officer = 홈을 설정하려면 간부 이상이어야 합니다. +cmd.sethome.failed = 홈 설정에 실패했습니다. + +# ========== 명령어 - 홈 삭제 ========== +cmd.delhome.no_permission = 세력 홈을 삭제할 권한이 없습니다. +cmd.delhome.no_home = 세력 홈이 설정되어 있지 않습니다. +cmd.delhome.deleted = 세력 홈이 삭제되었습니다! +cmd.delhome.broadcast = {0}이(가) 세력 홈을 삭제했습니다. +cmd.delhome.not_officer = 홈을 삭제하려면 간부 이상이어야 합니다. +cmd.delhome.failed = 홈 삭제에 실패했습니다. + +# ========== 명령어 - 관계 (동맹/적/중립/관계 보기) ========== +cmd.relation.ally_no_permission = 동맹을 관리할 권한이 없습니다. +cmd.relation.ally_usage = 사용법: /f ally <세력> +cmd.relation.ally_sent = {0}에게 동맹 요청을 보냈습니다! +cmd.relation.ally_formed = {0}과(와) 동맹이 되었습니다! +cmd.relation.already_ally = 이미 해당 세력과 동맹입니다. +cmd.relation.ally_failed = 동맹 요청 전송에 실패했습니다. +cmd.relation.enemy_no_permission = 적을 선언할 권한이 없습니다. +cmd.relation.enemy_usage = 사용법: /f enemy <세력> +cmd.relation.enemy_declared = {0}이(가) 이제 적입니다! +cmd.relation.already_enemy = 이미 해당 세력과 적대 관계입니다. +cmd.relation.max_enemies = 최대 적 수에 도달했습니다. +cmd.relation.enemy_failed = 적 설정에 실패했습니다. +cmd.relation.neutral_no_permission = 중립 관계를 설정할 권한이 없습니다. +cmd.relation.neutral_usage = 사용법: /f neutral <세력> +cmd.relation.neutral_set = {0}과(와) 중립 관계가 되었습니다. +cmd.relation.already_neutral = 이미 해당 세력과 중립 관계입니다. +cmd.relation.neutral_failed = 중립 설정에 실패했습니다. +cmd.relation.cannot_self = 자기 세력과는 동맹할 수 없습니다. +cmd.relation.max_allies = 최대 동맹 수에 도달했습니다. +cmd.relation.view_no_permission = 관계를 확인할 권한이 없습니다. +cmd.relation.header = === 세력 관계 === +cmd.relation.allies_count = 동맹 ({0}): +cmd.relation.enemies_count = 적 ({0}): +cmd.relation.list_entry = - {0} + +# ========== 명령어 - 채팅 ========== +cmd.chat.usage = 사용법: /f c [f|a|off] +cmd.chat.no_permission = 해당 채팅 모드를 사용할 권한이 없습니다. +cmd.chat.mode_set = 채팅 모드가 {0}(으)로 설정되었습니다 + +# ========== 명령어 - 초대 관리 ========== +cmd.invites.not_officer = 초대를 관리하려면 간부 이상이어야 합니다. +cmd.invites.header = === 세력 초대 === +cmd.invites.no_pending = 대기 중인 초대 또는 요청이 없습니다. +cmd.invites.outgoing = 보낸 초대: +cmd.invites.outgoing_entry = {0} ({1}이(가) 초대함) +cmd.invites.requests = 가입 요청: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === 내 초대 === +cmd.invites.no_invites = 대기 중인 초대가 없습니다. +cmd.invites.invite_entry = {0} - /f accept {1}을(를) 입력하여 수락 + +# ========== 명령어 - 가입 요청 ========== +cmd.request.no_permission = 세력 가입을 요청할 권한이 없습니다. +cmd.request.already_in_named = 이미 {0}에 소속되어 있습니다. +cmd.request.use_leave_hint = 다른 세력에 가입하려면 먼저 /f leave를 사용해 주세요. +cmd.request.usage = 사용법: /f request <세력> [메시지] +cmd.request.faction_open = 해당 세력은 공개입니다! /f accept {0}을(를) 입력하여 바로 가입하세요. +cmd.request.already_requested = 해당 세력에 이미 가입 요청이 대기 중입니다. +cmd.request.has_invite = 해당 세력에서 초대를 받았습니다! /f accept {0}을(를) 입력하여 가입하세요. +cmd.request.sent = {0}에 가입 요청을 보냈습니다! +cmd.request.your_message = 메시지: "{0}" +cmd.request.officer_review = 간부가 요청을 검토할 것입니다. +cmd.request.officer_notify = {0}이(가) 세력 가입을 요청했습니다! +cmd.request.officer_review_hint = /f gui > 초대에서 검토하세요. + +# ========== 명령어 - 정보 ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = 세력 정보를 확인할 권한이 없습니다. +cmd.info.faction_not_found = 세력 '{0}'을(를) 찾을 수 없습니다. +cmd.info.not_in_faction_hint = 세력에 소속되어 있지 않습니다. /f info <세력>을 사용하세요 +cmd.info.leader = 지도자: {0} +cmd.info.members = 멤버: {0}/{1} +cmd.info.power = 파워: {0} +cmd.info.claims = 영토: {0} +cmd.info.raidable = 약탈 가능! +cmd.info.allies = 동맹: {0} +cmd.info.enemies = 적: {0} +cmd.info.they_consider = 상대의 관계: {0} +cmd.info.you_consider = 나의 관계: {0} +cmd.info.members_no_permission = 세력 멤버를 확인할 권한이 없습니다. +cmd.info.members_header = === {0} 멤버 ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = 세력 목록을 확인할 권한이 없습니다. +cmd.info.list_empty = 세력이 없습니다. +cmd.info.list_header = === 세력 ({0}) === +cmd.info.list_entry = {0} - 멤버 {1}명, 파워 {2} +cmd.info.list_entry_raidable = {0} - 멤버 {1}명, 파워 {2} [약탈 가능] +cmd.info.help_no_permission = 도움말을 확인할 권한이 없습니다. +cmd.info.who_no_permission = 플레이어 정보를 확인할 권한이 없습니다. +cmd.info.who_faction = 세력: {0} +cmd.info.who_role = 역할: {0} +cmd.info.who_joined = 가입일: {0} +cmd.info.who_faction_none = 세력: 없음 +cmd.info.who_power = 파워: {0} +cmd.info.who_status = 상태: {0} +cmd.info.who_last_seen = 마지막 접속: {0} +cmd.info.map_no_permission = 지도를 확인할 권한이 없습니다. +cmd.info.map_header = === 영역 지도 === +cmd.info.map_legend = 범례: +내 영토 /소유 /동맹 /적 -야생 +cmd.info.map_gui_hint = 대화형 지도는 /f gui를 사용하세요 + +# ========== 명령어 - 파워 ========== +cmd.power.personal = 개인 파워: {0}/{1} +cmd.power.faction = 세력 파워: {0}/{1} +cmd.power.death_loss = 사망 시 손실: {0} +cmd.power.regen = 회복 속도: {0}/시간 +cmd.power.no_permission = 파워 정보를 확인할 권한이 없습니다. +cmd.power.header = {0}의 파워: +cmd.power.current = 현재: {0} + +# ========== 명령어 - 경제 ========== +cmd.economy.balance = 잔액: {0} +cmd.economy.deposited = 세력 금고에 {0}을(를) 입금했습니다. +cmd.economy.withdrawn = 세력 금고에서 {0}을(를) 출금했습니다. +cmd.economy.transferred = {1}에게 {0}을(를) 이체했습니다. +cmd.economy.insufficient = 세력 금고의 잔액이 부족합니다. +cmd.economy.invalid_amount = 잘못된 금액: {0} +cmd.economy.economy_disabled = 경제 시스템이 비활성화되어 있습니다. +cmd.economy.balance_no_permission = 잔액을 확인할 권한이 없습니다. +cmd.economy.treasury_unavailable = 금고를 사용할 수 없습니다. +cmd.economy.balance_display = {0}의 금고: {1} +cmd.economy.deposit_no_permission = 입금할 권한이 없습니다. +cmd.economy.deposit_faction_denied = 입금에 대한 세력 권한이 없습니다. +cmd.economy.deposit_usage = 사용법: /f deposit <금액> +cmd.economy.amount_positive = 금액은 양수여야 합니다. +cmd.economy.wallet_insufficient = 소지금이 부족합니다. 지갑: {0} +cmd.economy.wallet_withdraw_failed = 지갑에서 출금하지 못했습니다. +cmd.economy.deposit_failed = 세력 금고에 입금하지 못했습니다. 금액이 반환되었습니다. +cmd.economy.withdraw_no_permission = 출금할 권한이 없습니다. +cmd.economy.withdraw_faction_denied = 출금에 대한 세력 권한이 없습니다. +cmd.economy.withdraw_usage = 사용법: /f withdraw <금액> +cmd.economy.withdraw_limit_denied = 출금 거부: {0} +cmd.economy.wallet_deposit_failed = 경고: 지갑에 입금하지 못했습니다. 관리자에게 문의하세요. +cmd.economy.withdraw_limit_exceeded = 출금 거부: 한도를 초과했습니다. +cmd.economy.withdraw_failed = 출금 실패: {0} +cmd.economy.transfer_no_permission = 이체할 권한이 없습니다. +cmd.economy.transfer_faction_denied = 이체에 대한 세력 권한이 없습니다. +cmd.economy.transfer_usage = 사용법: /f money transfer <세력> <금액> +cmd.economy.transfer_self = 자기 세력으로는 이체할 수 없습니다. +cmd.economy.transfer_limit_denied = 이체 거부: {0} +cmd.economy.transfer_limit_exceeded = 이체 거부: 한도를 초과했습니다. +cmd.economy.transfer_failed = 이체 실패: {0} +cmd.economy.log_no_permission = 거래 내역을 확인할 권한이 없습니다. +cmd.economy.log_header = 거래 내역 (페이지 {0}/{1}) +cmd.economy.log_empty = 거래 내역이 없습니다. +cmd.economy.money_help_header = 금고 명령어: +cmd.economy.money_help_balance = /f money balance [세력] - 잔액 확인 +cmd.economy.money_help_deposit = /f money deposit <금액> - 금고에 입금 +cmd.economy.money_help_withdraw = /f money withdraw <금액> - 금고에서 출금 +cmd.economy.money_help_transfer = /f money transfer <세력> <금액> - 세력 간 이체 +cmd.economy.money_help_log = /f money log [페이지] [유형] - 거래 내역 확인 + +# ========== 보호 - 행동 문구 ========== +protection.action.generic = 할 수 없습니다 +protection.action.build = 블록을 설치하거나 파괴할 수 없습니다 +protection.action.interact = 상호작용할 수 없습니다 +protection.action.door = 문을 사용할 수 없습니다 +protection.action.container = 상자를 열 수 없습니다 +protection.action.bench = 제작대를 사용할 수 없습니다 +protection.action.processing = 가공대를 사용할 수 없습니다 +protection.action.seat = 좌석을 사용할 수 없습니다 +protection.action.light = 조명을 전환할 수 없습니다 +protection.action.teleporter = 텔레포터를 사용할 수 없습니다 +protection.action.crate = 상자를 사용할 수 없습니다 +protection.action.tame = 생물을 길들일 수 없습니다 +protection.action.npc = NPC와 상호작용할 수 없습니다 +protection.action.mount = 생물에 탑승할 수 없습니다 +protection.action.pve = 생물에게 피해를 줄 수 없습니다 +protection.action.item_drop = 아이템을 버릴 수 없습니다 +protection.action.item_pickup = 아이템을 주울 수 없습니다 + +# ========== 보호 - 거부 사유 ========== +protection.denied.safezone = SafeZone에서 {0}. +protection.denied.warzone = WarZone에서 {0}. +protection.denied.enemy_claim = 적 영토에서 {0}. +protection.denied.claimed = 점령된 영토에서 {0}. +protection.denied.here = 여기서 {0}. +protection.denied.zone = 이 구역에서 {0}. +protection.denied.faction_perm = 여기서 {0}. (세력 권한: {1}) +protection.denied.ally_territory = 여기서 {0}. (동맹 영토) +protection.denied.error = 보호 오류 — 안전을 위해 행동이 차단되었습니다. + +# ========== 보호 - PvP ========== +protection.pvp.safezone = SafeZone에서는 PvP가 비활성화되어 있습니다. +protection.pvp.same_faction = 세력 멤버를 공격할 수 없습니다. +protection.pvp.ally = 동맹을 공격할 수 없습니다. +protection.pvp.spawn_protected = 해당 플레이어는 스폰 보호 상태입니다. +protection.pvp.territory_disabled = 이 영토에서는 PvP가 비활성화되어 있습니다. +protection.pvp.generic = 이 플레이어를 공격할 수 없습니다. + +# ========== 보호 - 엔티티 피해 ========== +protection.mob_damage_disabled = 이 구역에서는 몹 피해가 비활성화되어 있습니다. +protection.pve_damage_disabled = 이 구역에서는 PvE 피해가 비활성화되어 있습니다. +protection.pve_territory_denied = 이 영토에서 몹에게 피해를 줄 수 없습니다. + +# ========== 보호 - 전투 태그 ========== +protection.combat_tag_command = 전투 중에는 해당 명령어를 사용할 수 없습니다. + +# ========== 서버 공지 ========== +# 주요 세력 이벤트 시 모든 온라인 플레이어에게 전달됩니다. +# {0}, {1} = 동적 값 (세력 이름, 플레이어 이름) +server_announce.faction_created = {0}이(가) 세력 {1}을(를) 설립했습니다! +server_announce.faction_disbanded = 세력 {0}이(가) 해산되었습니다! +server_announce.leadership_transfer = {0}이(가) {1}의 새로운 지도자가 되었습니다! +server_announce.overclaim = {0}이(가) {1}의 영토를 강제 점령했습니다! +server_announce.war_declared = {0}이(가) {1}에 전쟁을 선포했습니다! +server_announce.alliance_formed = {0}과(와) {1}이(가) 동맹을 맺었습니다! +server_announce.alliance_broken = {0}과(와) {1}의 동맹이 해제되었습니다! + +# ========== 텔레포트 시스템 ========== +teleport.cooldown_wait = 다시 텔레포트하려면 {0} 후에 가능합니다. +teleport.warmup_start = {0}초 후 세력 홈으로 이동합니다... +teleport.combat_cancelled = 텔레포트 취소 - 전투 중입니다! +teleport.success_default = 세력 홈으로 이동했습니다! +teleport.no_home = 세력 홈이 설정되지 않았습니다. +teleport.world_not_found = 월드를 찾을 수 없습니다. +teleport.failed = 텔레포트에 실패했습니다. +teleport.countdown = {0}초 후 이동합니다... +teleport.countdown_one = 1초 후 이동합니다... +teleport.moved_cancelled = 텔레포트 취소 - 움직였습니다! +teleport.damage_cancelled = 텔레포트 취소 - 피해를 받았습니다! +teleport.mount_teleport_blocked = 탑승 중에는 해당 구역으로 이동할 수 없습니다. +teleport.mount_entry_blocked = 탑승 중에는 이 구역에 들어갈 수 없습니다. + +# ========== 채팅 표시 ========== +chat.display.public = 전체 +chat.display.faction = 세력 +chat.display.ally = 동맹 diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang new file mode 100644 index 00000000..26bd1465 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Korean Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== 관리자 내비게이션 바 ========== +nav.dashboard = 대시보드 +nav.actions = 작업 +nav.factions = 세력 +nav.players = 플레이어 +nav.economy = 경제 +nav.zones = 구역 +nav.config = 설정 +nav.backups = 백업 +nav.log = 로그 +nav.updates = 업데이트 +nav.help = 도움말 +nav.version = 버전 + +# ========== 공통 관리자 라벨 ========== +common.faction_not_found = 세력을 찾을 수 없음 +common.no_faction = 세력 없음 +common.not_set = 미설정 +common.on = 켜짐 +common.off = 꺼짐 +common.enable = 활성화 +common.disable = 비활성화 +common.none_paren = (없음) +common.invalid_faction = 잘못된 세력입니다. +common.leader_prefix = 지도자: {0} +common.members_suffix = 멤버 {0}명 +common.claims_suffix = 영토 {0}개 +common.factions_suffix = 세력 {0}개 +common.players_suffix = 플레이어 {0}명 +common.chunks_suffix = 청크 {0}개 +common.entries_suffix = 항목 {0}건 +common.found_suffix = {0}건 발견 +common.power_format = 파워 {0}/{1} +common.raidable = 약탈 가능 +common.protected = 보호됨 +common.no_description = 설명이 설정되지 않았습니다. +common.officers_more = +{0}명 +common.custom_max = (사용자 지정 최대) +common.default_max = (기본 최대) +common.now = 현재 +common.ago_suffix = {0} 전 +common.just_now = 방금 +common.no_membership_history = 소속 이력이 없습니다 + +# ========== 관리자 대시보드 ========== +dashboard.factions_prefix = 세력: {0} +dashboard.members_prefix = 전체 멤버: {0} +dashboard.claims_prefix = 전체 영토: {0} + +# ========== 관리자 작업 ========== +actions.confirm_reset = 초기화를 확인하시겠습니까? +actions.confirm_trigger = 실행을 확인하시겠습니까? +actions.kd_reset = 플레이어 {0}명의 K/D를 초기화했습니다. +actions.kd_reset_failed = K/D 초기화 실패: {0} +actions.upkeep_unavailable = 유지비 처리기를 사용할 수 없습니다. +actions.upkeep_triggered = 유지비 징수가 실행되었습니다. +actions.upkeep_failed = 유지비 실패: {0} + +# ========== 관리자 해산 ========== +disband.faction_gone = 세력이 더 이상 존재하지 않습니다. +disband.success = 세력 '{0}'이(가) 해산되었습니다. +disband.failed = 해산 실패: {0} +disband.no_leader = 세력에 지도자가 없어 해산할 수 없습니다. + +# ========== 관리자 전체 포기 ========== +unclaim.removed = [Admin] {1}에서 영토 {0}개를 제거했습니다. +unclaim.no_claims = {0}에는 제거할 영토가 없습니다. + +# ========== 관리자 세력 목록 ========== +factions.home_not_set = 미설정 +factions.teleported = {0}의 홈으로 이동했습니다. +factions.no_home = 세력 홈이 설정되어 있지 않습니다. +factions.world_not_found = 대상 월드를 찾을 수 없습니다. + +# ========== 관리자 세력 정보 ========== +info.faction_gone = 이 세력은 더 이상 존재하지 않습니다. + +# ========== 관리자 세력 멤버 ========== +members.sort_role = 역할 +members.sort_online = 온라인 +members.sort_name = 이름 +members.sort_power = 파워 +members.promoted = [Admin] {0}을(를) {1}(으)로 승급시켰습니다. +members.demoted = [Admin] {0}을(를) {1}(으)로 강등시켰습니다. +members.kicked = [Admin] {0}을(를) 세력에서 추방했습니다. + +# ========== 관리자 세력 관계 ========== +relations.allies_header = 동맹 ({0}) +relations.enemies_header = 적 ({0}) +relations.no_allies = 동맹이 없습니다. +relations.no_enemies = 적이 없습니다. +relations.neutral_count = 중립 세력 {0}개 +relations.since_today = 시작일: 오늘 +relations.since_one_day = 시작일: 1일 전 +relations.since_days = 시작일: {0}일 전 +relations.set_ally = [Admin] {0}과(와) 상호 동맹 관계를 설정했습니다. +relations.set_enemy = {0}과(와) 상호 적대 관계를 설정했습니다. +relations.set_neutral = [Admin] {0}과(와) 상호 중립 관계를 설정했습니다. + +# ========== 관리자 세력 설정 ========== +settings.locked = 이 설정은 서버 설정에 의해 잠겨 있습니다. +settings.perm_toggled = {0}을(를) {1}(으)로 설정했습니다. +settings.color_changed = 세력 색상을 {0}(으)로 설정했습니다. +settings.recruitment_set = 모집을 {0}(으)로 설정했습니다. +settings.no_home = [Admin] 이 세력에는 홈이 설정되어 있지 않습니다. +settings.home_cleared = {0}의 세력 홈을 초기화했습니다. + +# ========== 정렬 드롭다운 라벨 ========== +sort.power = 파워 +sort.name = 이름 +sort.members = 멤버 +sort.balance = 잔액 + +# ========== 관리자 플레이어 ========== +players.sort_last_online = 마지막 접속 +players.sort_faction = 세력 +players.sort_online = 온라인 +players.not_online = 플레이어가 온라인이 아닙니다. +players.world_not_found = 대상 월드를 찾을 수 없습니다. +players.teleported = [Admin] {0}에게 이동했습니다. + +# ========== 관리자 플레이어 정보 ========== +playerinfo.disband_faction = 세력 해산 +playerinfo.kick_leader = 지도자 추방 +playerinfo.enter_valid_number = 유효한 숫자를 입력하세요. +playerinfo.enter_valid_positive = 유효한 양수를 입력하세요. +playerinfo.faction_gone = 세력이 더 이상 존재하지 않습니다. +playerinfo.kd_reset = {0}의 K/D를 초기화했습니다. +playerinfo.kicked_success = {1}에서 {0}을(를) 추방했습니다. +playerinfo.kicked_leader = 지도자 {0}을(를) 추방했습니다. 지도자가 {1}에게 이양되었습니다. +playerinfo.disbanded_kick = [Admin] 세력 '{0}'이(가) 해산되었습니다 (마지막 멤버 추방). + +# ========== 관리자 경제 ========== +economy.no_data = 경제 데이터가 있는 세력이 없습니다. +economy.amount_zero = 금액은 0일 수 없습니다. +economy.enter_amount = 금액을 입력하세요. +economy.invalid_number = 잘못된 숫자: {0} +economy.error = 오류가 발생했습니다. +economy.balance_negative = 잔액은 음수일 수 없습니다. +economy.failed = 실패: {0} +economy.bulk_complete = 일괄 조정 완료: 세력 {2}개에 {1} {0}. +economy.bulk_failures = ({0}건 실패) + +# ========== 관리자 구역 ========== +zones.not_found = 구역을 찾을 수 없습니다. +zones.invalid_id = 잘못된 구역 ID입니다. +zones.deleted = 구역 {0}이(가) 삭제되었습니다. +zones.delete_failed = 구역 삭제 실패: {0} +zones.no_chunks = 청크 없음 +zones.chunks_suffix = {0} (청크 {1}개) + +# ========== 구역 생성 마법사 ========== +wizard.enter_name = 구역 이름을 입력하세요. +wizard.name_too_short = 구역 이름은 최소 {0}자 이상이어야 합니다. +wizard.name_too_long = 구역 이름은 {0}자를 초과할 수 없습니다. +wizard.name_taken = 해당 이름의 구역이 이미 존재합니다. +wizard.radius_range = 반경은 1에서 {0} 사이여야 합니다. +wizard.create_failed = 구역을 생성할 수 없습니다: {0} +wizard.created_not_found = 구역이 생성되었지만 찾을 수 없습니다. +wizard.created = {0} '{1}'을(를) 생성했습니다! +wizard.chunk_claimed = 청크 ({0}, {1})을(를) 점령했습니다. +wizard.chunk_failed = 현재 청크를 점령할 수 없습니다: {0} +wizard.radius_claimed = {2}을(를) 중심으로 반경 {1}에서 청크 {0}개를 점령했습니다. +wizard.radius_no_claims = 점령할 수 있는 청크가 없습니다 (지역이 점유되어 있을 수 있음). +wizard.no_claims = 영토 없이 구역이 생성되었습니다. +wizard.chunks_preview = 약 {0}개 청크 + +# ========== 구역 이름 변경 ========== +zone_rename.zone_gone = 구역이 더 이상 존재하지 않습니다. +zone_rename.enter_name = 구역 이름을 입력하세요. +zone_rename.too_short = 구역 이름은 최소 {0}자 이상이어야 합니다. +zone_rename.too_long = 구역 이름은 {0}자를 초과할 수 없습니다. +zone_rename.same_name = 이미 현재 구역의 이름입니다. +zone_rename.renamed = [Admin] 구역 이름이 {0}에서 {1}(으)로 변경되었습니다! +zone_rename.name_taken = 해당 이름의 구역이 이미 존재합니다. +zone_rename.invalid_name = 잘못된 구역 이름입니다. +zone_rename.rename_failed = 구역 이름 변경 실패: {0} + +# ========== 구역 유형 변경 ========== +zone_type.zone_gone = 구역이 더 이상 존재하지 않습니다. +zone_type.changed = [Admin] {0}을(를) {1}에서 {2}(으)로 변경했습니다 ({3}). +zone_type.failed = 구역 유형 변경 실패: {0} +zone_type.flags_reset = 플래그 초기화됨 +zone_type.flags_kept = 플래그 유지됨 + +# ========== 구역 통합 플래그 ========== +zone_int.zone_not_found = 구역을 찾을 수 없음 +zone_int.no_plugin = (플러그인 없음) +zone_int.default = (기본값) +zone_int.custom = (사용자 지정) + +# 통합 플래그 UI 라벨 +gui.zint_cat_gravestones = 묘비 +gui.zint_gravestones_desc = 켜짐 상태에서 비소유자가 묘비를 약탈할 수 있습니다. 소유자는 항상 가능합니다. +gui.zint_cat_world_map = 월드 맵 +gui.zint_world_map_desc = 이 구역의 플레이어에 대한 맵 숨김을 재정의합니다. 활성화하면 이 구역에서 플레이어를 볼 수 있는 대상을 선택합니다. +gui.zint_visibility_label = 가시성 수준: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = 기본값으로 초기화 +gui.zint_back_to_flags = 플래그로 돌아가기 +gui.zint_map_vis_faction = 세력만 +gui.zint_map_vis_ally = 세력 + 동맹 +gui.zint_map_vis_all = 모든 플레이어 + +# ========== 활동 로그 ========== +log.all_types = 전체 유형 +log.no_logs = 필터에 일치하는 활동 로그가 없습니다. + +# ========== 버전 페이지 ========== +version.active = 활성 +version.not_found = 찾을 수 없음 +version.not_detected = 감지되지 않음 +version.not_installed = 설치되지 않음 +version.active_version = 활성 (v{0}) +version.active_compatible = 활성 (호환) +version.active_claims_only = 활성 (영토만) +version.installed_no_perm = 설치됨 (권한 제공자 없음) +version.active_provider = 활성 ({0}) + +# ========== 관리자 메인 페이지 ========== +main.reload_hint = 설정을 다시 불러오려면 /f reload를 사용하세요. +main.unclaim_hint = 모든 청크 {1}개를 포기하려면 /f admin unclaim {0}을(를) 사용하세요. + +# ========== 구역 플래그/설정 ========== +zflags.invalid_flag = 잘못된 플래그입니다. +zflags.zone_not_found = 구역을 찾을 수 없습니다. +zflags.conflict = (충돌) +zflags.mixin = (mixin) +zflags.reset_int = 통합 플래그를 기본값으로 초기화합니다. +zflags.reset_all = 모든 플래그를 기본값으로 초기화합니다. +zflags.reset_failed = 플래그 초기화 실패: {0} +zflags.back_to_settings = 설정으로 돌아가기 + +# 구역 설정 UI 라벨 +gui.zset_cat_combat = 전투 +gui.zset_cat_damage = 피해 +gui.zset_cat_death = 사망 +gui.zset_cat_building = 건축 +gui.zset_cat_interaction = 상호작용 +gui.zset_cat_transport = 이동수단 +gui.zset_cat_items = 아이템 +gui.zset_cat_spawning = 몹 스폰 +gui.zset_cat_mob_clear = 몹 제거 +gui.zset_children_hint = (상위 항목이 켜져 있을 때만 하위 항목 적용) +gui.zset_reset_defaults = 기본값으로 초기화 +gui.zset_integration_flags = 통합 플래그 +gui.zset_back_to_zones = 구역으로 돌아가기 +gui.zset_chunks = 청크 {0}개 + +# 구역 플래그 표시 이름 +gui.zflag_pvp_enabled = PvP 활성화 +gui.zflag_friendly_fire = 아군 피해 +gui.zflag_friendly_fire_faction = 세력 피해 +gui.zflag_friendly_fire_ally = 동맹 피해 +gui.zflag_projectile_damage = 투사체 피해 +gui.zflag_mob_damage = 몹 피해 받기 +gui.zflag_pve_damage = 몹 피해 주기 +gui.zflag_fall_damage = 낙하 피해 +gui.zflag_environmental_damage = 환경 피해 +gui.zflag_explosion_damage = 폭발 피해 +gui.zflag_fire_spread = 불 확산 +gui.zflag_keep_inventory = 인벤토리 유지 +gui.zflag_power_loss = 파워 손실 +gui.zflag_build_allowed = 건축 허용 +gui.zflag_block_place = 블록 설치 +gui.zflag_hammer_use = 망치 사용 +gui.zflag_builder_tools_use = 건축 도구 +gui.zflag_block_interact = 블록 상호작용 +gui.zflag_door_use = 문 사용 +gui.zflag_container_use = 상자 사용 +gui.zflag_bench_use = 제작대 사용 +gui.zflag_processing_use = 가공대 사용 +gui.zflag_seat_use = 좌석 사용 +gui.zflag_mount_use = 탑승체 사용 +gui.zflag_light_use = 조명 사용 +gui.zflag_npc_use = NPC 상호작용 +gui.zflag_crate_pickup = 상자 줍기 +gui.zflag_crate_place = 상자 놓기 +gui.zflag_npc_tame = NPC 길들이기 +gui.zflag_npc_interact = NPC 상호작용 +gui.zflag_teleporter_use = 텔레포터 사용 +gui.zflag_portal_use = 포탈 사용 +gui.zflag_mount_entry = 탑승 진입 +gui.zflag_item_drop = 아이템 버리기 +gui.zflag_item_pickup = 자동 줍기 +gui.zflag_item_pickup_manual = F키 줍기 +gui.zflag_invincible_items = 파괴 불가 아이템 +gui.zflag_mob_spawning = 몹 스폰 +gui.zflag_hostile_mob_spawning = 적대적 몹 +gui.zflag_passive_mob_spawning = 수동적 몹 +gui.zflag_neutral_mob_spawning = 중립 몹 +gui.zflag_npc_spawning = NPC 스폰 +gui.zflag_mob_clear = 몹 제거 +gui.zflag_hostile_mob_clear = 적대적 몹 제거 +gui.zflag_passive_mob_clear = 수동적 몹 제거 +gui.zflag_neutral_mob_clear = 중립 몹 제거 +gui.zflag_gravestone_access = 타인 묘비 약탈 +gui.zflag_show_on_map = 맵에 표시 +gui.zflag_essentials_homes = 홈 사용 +gui.zflag_essentials_warps = 워프 사용 +gui.zflag_essentials_kits = 킷 수령 + +# ========== 구역 속성 ========== +zprop.current_custom = 현재: "{0}" (사용자 지정) +zprop.current_default = 현재: "{0}" (기본값) +zprop.pvp_disabled = PvP 비활성화 +zprop.pvp_enabled = PvP 활성화 +zprop.name_empty = 이름은 비워둘 수 없습니다. +zprop.renamed = 구역 이름이 "{0}"(으)로 변경되었습니다. +zprop.name_taken = 해당 이름의 구역이 이미 존재합니다. +zprop.name_invalid = 잘못된 이름입니다 (최대 32자). +zprop.rename_failed = 이름 변경 실패: {0} +zprop.upper_empty = 상단 제목은 비워둘 수 없습니다. 초기화하려면 초기화를 사용하세요. +zprop.upper_set = 상단 제목이 설정되었습니다. +zprop.upper_reset = 상단 제목이 기본값으로 초기화되었습니다. +zprop.lower_empty = 하단 제목은 비워둘 수 없습니다. 초기화하려면 초기화를 사용하세요. +zprop.lower_set = 하단 제목이 설정되었습니다. +zprop.lower_reset = 하단 제목이 기본값으로 초기화되었습니다. + +# ========== 관계 추가 ========== +relations.failed = 실패: {0} + +# ========== 멤버 추가 ========== +members.never = 없음 +members.teleported = [Admin] {0}에게 이동했습니다. + +# ========== 플레이어 정보 추가 ========== +playerinfo.records = 기록 {0}건 +playerinfo.joined_date = 가입일: {0} +playerinfo.current = 현재 +playerinfo.left_date = 탈퇴일: {0} + +# ========== 구역 지도 ========== +map.world_warning = 경고: 현재 '{0}'에 있습니다 - 구역은 '{1}'에 있습니다 +map.position = 내 위치: 청크 ({0}, {1}) +map.zone_gone = 구역이 더 이상 존재하지 않습니다. +map.claimed = {2}을(를) 위해 청크 ({0}, {1})을(를) 점령했습니다. +map.claim_failed = 청크 점령 실패: {0} +map.unclaimed = {2}에서 청크 ({0}, {1})을(를) 포기했습니다. +map.unclaim_failed = 청크 포기 실패: {0} +map.chunk_belongs = 이 청크는 {0}에 속해 있습니다. +map.chunk_faction = 이 청크는 세력이 점령하고 있습니다. +map.chunk_protected = 이 청크는 보호 지역에 있습니다. +map.another_zone = 다른 구역 + +# ========== GUI 라벨 키 (.ui 하드코딩 텍스트 로컬라이제이션) ========== + +# 페이지 제목 +gui.title_dashboard = 관리자 대시보드 +gui.title_main = 세력 관리 +gui.title_actions = 관리자: 서버 작업 +gui.title_factions = 세력 관리 +gui.title_players = 플레이어 관리 +gui.title_economy = 관리자: 서버 경제 +gui.title_zones = 구역 관리 +gui.title_backups = 백업 +gui.title_config = 설정 +gui.title_help = 관리자 도움말 +gui.title_updates = 업데이트 +gui.title_version = 버전 및 통합 +gui.title_activity_log = 관리자: 활동 로그 +gui.title_player_info = 관리자: 플레이어 정보 +gui.title_faction_info = 관리자: 세력 정보 +gui.title_faction_settings = 관리자: 세력 설정 +gui.title_faction_members = 관리자: 멤버 +gui.title_faction_relations = 관리자: 관계 +gui.title_zone_map = 구역 지도 편집기 +gui.title_zone_settings = 관리자: 구역 설정 +gui.title_zone_properties = 관리자: 구역 속성 +gui.title_bulk_economy = 일괄 금고 조정 +gui.title_economy_adjust = 관리자: 경제 + +# 대시보드 라벨 +gui.dash_server_stats = 서버 통계 +gui.dash_factions = 세력 +gui.dash_total_members = 전체 멤버 +gui.dash_total_claims = 전체 영토 +gui.dash_zones = 구역 +gui.dash_safe_war = 안전 / 전쟁 +gui.dash_total_power = 전체 파워 +gui.dash_avg_power = 세력당 평균 파워 +gui.dash_total_economy = 전체 경제 +gui.dash_wealthiest = 최고 부유 +gui.dash_avg_balance = 평균 잔액 +gui.dash_protection_bypass = 보호 우회: + +# 공통 버튼 및 라벨 +gui.search = 검색: +gui.sort = 정렬: +gui.prev = < 이전 +gui.next = 다음 > +gui.back = 뒤로 +gui.done = 완료 +gui.cancel = 취소 +gui.apply = 적용 +gui.set = 설정 +gui.reset = 초기화 +gui.coming_soon = 출시 예정 +gui.zones_btn = 구역 +gui.reload_btn = 다시 불러오기 +gui.all = 전체 +gui.safe = 안전 +gui.war = 전쟁 +gui.create_zone = + 생성 + +# 작업 페이지 라벨 +gui.act_combat_stats = 전투 통계 +gui.act_combat_desc = 서버의 모든 플레이어의 킬과 데스를 초기화합니다. 이 작업은 되돌릴 수 없습니다. +gui.act_reset_kd = 전체 K/D 초기화 +gui.act_economy = 경제 +gui.act_economy_desc = 모든 세력 금고에 한 번에 금액을 추가하거나 제거합니다. +gui.act_bulk_adjust = 일괄 추가/제거 +gui.act_upkeep_collection = 유지비 징수 +gui.act_upkeep_desc = 예정된 타이머에 관계없이 모든 세력의 유지비 징수를 즉시 실행합니다. +gui.act_trigger_upkeep = 유지비 실행 + +# 플레이스홀더 페이지 라벨 +gui.backup_heading = 백업 관리 +gui.backup_desc1 = 세력 데이터 백업을 생성, 복원 및 관리합니다. +gui.backup_desc2 = 자동 백업은 data/backups 폴더에 저장됩니다. +gui.config_heading = 설정 편집기 +gui.config_desc1 = GUI에서 직접 HyperFactions 설정을 구성합니다. +gui.config_desc2 = 현재는 /f reload를 사용하여 설정 변경을 다시 불러오세요. +gui.help_heading = 관리자 문서 +gui.help_desc1 = 관리자 문서 및 명령어 참조를 확인합니다. +gui.help_desc2 = 도움이 필요하면 HyperFactions 위키를 방문하세요. +gui.updates_heading = 업데이트 센터 +gui.updates_desc1 = 새 버전을 확인하고 변경 사항을 확인합니다. +gui.updates_desc2 = 최신 업데이트는 HyperFactions 페이지를 방문하세요. + +# 버전 페이지 라벨 +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = 권한 +gui.ver_placeholders = 플레이스홀더 +gui.ver_economy_section = 경제 +gui.ver_protection = 보호 +gui.ver_disabled = 비활성화 + +# 열 헤더 (페이지 간 공유) +gui.col_faction = 세력 +gui.col_balance = 잔액 +gui.col_members = 멤버 +gui.col_actions = 작업 +gui.col_time = 시간 +gui.col_type = 유형 +gui.col_message = 메시지 + +# 경제 페이지 라벨 +gui.econ_total_balance = 전체 잔액 +gui.econ_factions = 세력 +gui.econ_avg_balance = 평균 잔액 +gui.econ_in_grace = 유예 중 +gui.econ_collected = 징수액 (24시간) +gui.econ_next_collection = 다음 징수 +gui.econ_no_data = 경제 데이터가 있는 세력이 없습니다. + +# 활동 로그 라벨 +gui.log_type = 유형: +gui.log_time = 시간: +gui.log_player = 플레이어: +gui.log_no_logs = 필터에 일치하는 활동 로그가 없습니다. + +# 플레이어 정보 라벨 +gui.plr_first_joined = 최초 가입: +gui.plr_last_online = 마지막 접속: +gui.plr_uuid = UUID: +gui.plr_faction = 세력: +gui.plr_role = 역할: +gui.plr_view_faction = 세력 보기 +gui.plr_power = 파워 +gui.plr_max_power = 최대 파워 +gui.plr_set_power = 설정 +gui.plr_reset_power = 초기화 +gui.plr_set_max = 설정 +gui.plr_reset_max = 초기화 +gui.plr_no_power_loss = 파워 손실 없음 +gui.plr_no_claim_decay = 영토 소멸 없음 +gui.plr_kills = 킬 +gui.plr_deaths = 데스 +gui.plr_kdr = K/D 비율 +gui.plr_reset_kd = K/D 초기화 +gui.plr_kick = 추방 +gui.plr_membership_history = 소속 이력 +gui.plr_no_faction_label = 세력에 소속되어 있지 않음 +gui.plr_power_management = 파워 관리 +gui.plr_combat_stats = 전투 통계 +gui.plr_bypass_flags = 우회 플래그 +gui.plr_admin_controls = 관리자 컨트롤 +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = 최대: +gui.plr_view = 보기 +gui.plr_kick_from_faction = 세력에서 추방 +gui.plr_set_max_btn = 최대 설정 +gui.plr_combat = 전투 +gui.plr_reason_active = 활동 중 +gui.plr_reason_left = 탈퇴 +gui.plr_reason_kicked = 추방됨 +gui.plr_reason_disbanded = 해산됨 + +# 멤버 항목 라벨 +gui.mem_label_power = 파워: +gui.mem_label_joined = 가입일: +gui.mem_label_last_death = 마지막 사망: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = 정보 +gui.mem_btn_teleport = 텔레포트 +gui.mem_btn_promote = 승급 +gui.mem_btn_demote = 강등 +gui.mem_btn_kick = 추방 +gui.econ_not_enabled = 경제 시스템이 활성화되어 있지 않습니다. +gui.info_more = +{0}명 +gui.log_time_1h = 1시간 +gui.log_time_24h = 24시간 +gui.log_time_7d = 7일 +gui.log_time_all = 전체 +gui.shape_circular = 원형 +gui.shape_square = 사각형 +gui.nav_title = 관리자 패널 +gui.econ_btn_adjust = 조정 +gui.econ_btn_info = 정보 + +# 세력 정보 라벨 +gui.fac_description = 설명 +gui.fac_power = 파워 +gui.fac_claims = 영토 +gui.fac_members = 멤버 +gui.fac_recruitment = 모집 +gui.fac_founded = 설립일 +gui.fac_allies = 동맹 +gui.fac_enemies = 적 +gui.fac_raidable = 약탈 가능 상태 +gui.fac_treasury = 금고 +gui.fac_leader = 지도자 +gui.fac_officers = 간부 +gui.fac_view_members = 멤버 보기 +gui.fac_view_relations = 관계 보기 +gui.fac_view_settings = 설정 +gui.fac_disband = 세력 해산 +gui.fac_power_management = 파워 관리 +gui.fac_reset_all_power = 전체 파워 초기화 +gui.fac_econ_adjust = 잔액 조정 +gui.fac_econ_view_log = 거래 내역 보기 +gui.fac_current_max = 현재 / 최대 +gui.fac_claimed_max = 점령 / 최대 +gui.fac_relations = 관계 +gui.fac_ally_enemy = 동맹 / 적 +gui.fac_status = 상태 +gui.fac_info = 정보 +gui.fac_treasury_balance = 금고 잔액 +gui.fac_leadership = 리더십 +gui.fac_leader_label = 지도자: +gui.fac_officers_label = 간부: +gui.fac_econ_mgmt = 경제 관리 +gui.fac_danger_zone = 위험 구역 +gui.fac_view_treasury = 금고 보기 + +# 세력 설정 라벨 +gui.set_editing = 편집 중: +gui.set_general = 일반 설정 +gui.set_name = 이름 +gui.set_tag = 태그 +gui.set_description = 설명 +gui.set_recruitment = 모집 +gui.set_home = 홈 위치 +gui.set_clear_home = 홈 초기화 +gui.set_disband_faction = 세력 해산 +gui.set_faction_color = 세력 색상 +gui.set_admin_override = [관리자 재정의] +gui.set_territory_perms = 영토 권한 +gui.set_mob_spawning = 몹 스폰 +gui.set_faction_settings = 세력 설정 +gui.set_name_label = 이름: +gui.set_tag_label = 태그: +gui.set_desc_label = 설명: +gui.set_edit = 편집 +gui.set_status_label = 상태: +gui.set_location_label = 위치: +gui.set_danger_zone = 위험 구역 +gui.set_irreversible = 이 작업은 되돌릴 수 없습니다. +gui.set_lock_hint = 일부 옵션은 서버에 의해 잠겨 있어 변경할 수 없을 수 있습니다. +gui.set_appearance = 외관 +gui.set_color_label = 색상: +gui.set_mob_sub = (마스터가 꺼져 있으면 하위 항목 비활성화) +gui.set_back_to_info = 정보로 돌아가기 +gui.set_col_out = 외부 +gui.set_col_ally = 동맹 +gui.set_col_mem = 멤버 +gui.set_col_off = 간부 +gui.set_cat_building = 건축 +gui.set_cat_interaction = 상호작용 +gui.set_cat_interact_sub = (전체가 꺼져 있으면 하위 항목 비활성화) +gui.set_cat_other = 기타 +gui.set_perm_break = 파괴 +gui.set_perm_place = 설치 +gui.set_perm_all = 전체 +gui.set_perm_door = 문 +gui.set_perm_chest = 상자 +gui.set_perm_bench = 제작대 +gui.set_perm_processing = 가공대 +gui.set_perm_seat = 좌석 +gui.set_perm_transport = 이동수단 +gui.set_perm_crate_use = 상자 사용 +gui.set_perm_npc_tame = NPC 길들이기 +gui.set_perm_pve_damage = PvE 피해 +gui.set_perm_mob_spawning = 몹 스폰 +gui.set_perm_hostile = 적대적 몹 +gui.set_perm_passive = 수동적 몹 +gui.set_perm_neutral = 중립 몹 +gui.set_perm_pvp = 영토 내 PvP +gui.set_perm_officers_edit = 간부 편집 가능 + +# 세력 관계 라벨 +gui.rel_subtitle = 세력 관계 관리 (승인 우회) +gui.rel_set_new = 새 관계 설정 +gui.rel_btn_ally = 동맹 +gui.rel_btn_neutral = 중립 +gui.rel_btn_enemy = 적 + +# 구역 페이지 라벨 +gui.zone_sort_name = 이름 +gui.zone_sort_type = 유형 +gui.zone_sort_chunks = 청크 +gui.zone_sort_world = 월드 +gui.zone_count_format = {0}개 {1}구역 (청크 {2}개) + +# 구역 지도 라벨 +gui.map_zone_chunk = 구역 청크 +gui.map_empty = 비어있음 +gui.map_other_zone = 다른 구역 +gui.map_faction_claim = 세력 영토 +gui.map_protected = 보호됨 +gui.map_your_pos = 내 위치 +gui.map_click_hint = 클릭하여 청크를 점령/포기하세요 +gui.map_legend_zone_safe = 이 구역 (안전) +gui.map_legend_zone_war = 이 구역 (전쟁) +gui.map_legend_other_safe = 다른 SafeZone +gui.map_legend_other_war = 다른 WarZone +gui.map_legend_faction = 세력 영토 +gui.map_legend_unclaimed = 미점령 +gui.map_legend_you_here = 현재 위치 +gui.map_action_hint = 좌클릭: 구역에 점령 | 우클릭: 구역에서 포기 +gui.map_done = 완료 + +# 구역 속성 라벨 +gui.zprop_general = 일반 +gui.zprop_zone_name = 구역 이름 +gui.zprop_zone_type = 구역 유형 +gui.zprop_change_type = 유형 변경 +gui.zprop_notifications = 알림 +gui.zprop_show_entry = 진입 알림 표시 +gui.zprop_upper_title = 상단 제목 +gui.zprop_upper_desc = 상단 제목 (구역 이름 위의 작은 텍스트) +gui.zprop_lower_title = 하단 제목 +gui.zprop_lower_desc = 하단 제목 (큰 구역 이름 텍스트) +gui.zprop_edit_flags = 플래그 편집 +gui.zprop_back_to_zones = 구역으로 돌아가기 +gui.save = 저장 +gui.clear = 초기화 + +# 일괄 경제 라벨 +gui.bulk_header = 전체 세력 금고 조정 +gui.bulk_factions_label = 세력: +gui.bulk_total_label = 전체 잔액: +gui.bulk_amount_hint = 금액 (양수: 추가, 음수: 제거): +gui.bulk_hint = 금고가 있는 모든 세력에 적용됩니다 +gui.bulk_warning_msg = 경고: 이 작업은 모든 세력에 영향을 미치며 되돌릴 수 없습니다. +gui.bulk_apply_all = 전체 적용 +gui.bulk_operation = 작업 +gui.bulk_add = 추가 +gui.bulk_remove = 제거 +gui.bulk_amount = 금액 +gui.bulk_warning = 이 작업은 모든 세력 금고에 영향을 미칩니다. +gui.bulk_preview = 미리보기 + +# 경제 조정 라벨 +gui.ecadj_header = 금고 잔액 조정 +gui.ecadj_faction_label = 세력: +gui.ecadj_current_balance = 현재 잔액: +gui.ecadj_amount_hint = 금액 (양수: 추가, 음수: 차감): +gui.ecadj_preview_hint = 변경 사항을 미리 보려면 숫자를 입력하세요 +gui.ecadj_adjustment = 조정: +gui.ecadj_set_balance = 잔액 설정 +gui.ecadj_confirm = +/- 확인 +gui.ecadj_operation = 작업 +gui.ecadj_add = 추가 +gui.ecadj_remove = 제거 +gui.ecadj_set_to = 설정값 +gui.ecadj_amount = 금액 +gui.ecadj_new_balance = 새 잔액: + +# 버전 페이지 통합 라벨 +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Gravestones +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = 금고 + +# 전체 포기 확인 모달 라벨 +gui.unclaim_title = 전체 영토 포기 +gui.unclaim_confirm_msg1 = 정말로 전체 영토를 포기하시겠습니까 +gui.unclaim_confirm_msg2 = 의 +gui.unclaim_warning = 이 작업은 되돌릴 수 없습니다! +gui.unclaim_all = 전체 포기 + +# 구역 이름 변경 모달 라벨 +gui.zren_title = 구역 이름 변경 +gui.zren_current = 현재: +gui.zren_new_name = 새 이름: + +# 구역 유형 변경 모달 라벨 +gui.ztype_title = 구역 유형 변경 +gui.ztype_zone_label = 구역: +gui.ztype_current = 현재: +gui.ztype_will_become = 변경 대상 +gui.ztype_new = 새 유형: +gui.ztype_warning1 = 구역 유형에 따라 기본 플래그 값이 다릅니다. +gui.ztype_warning2 = 기존 플래그 설정 처리 방법을 선택하세요: +gui.ztype_keep_desc = 사용자 지정 재정의 유지 +gui.ztype_keep_flags = 플래그 유지 +gui.ztype_reset_desc = 새 유형 기본값 사용 +gui.ztype_reset_flags = 플래그 초기화 + +# 구역 생성 마법사 라벨 +gui.czw_title = 구역 생성 +gui.czw_back = < 뒤로 +gui.czw_create = 구역 생성 +gui.czw_zone_type = 구역 유형 +gui.czw_safe_desc = 보호됨, PvP 없음 +gui.czw_war_desc = 전투, PvP 활성화 +gui.czw_zone_name = 구역 이름 +gui.czw_name_desc = 고유한 구역 이름을 입력하세요 +gui.czw_claim_method = 점령 방법 +gui.czw_method_none_desc = 빈 구역 생성 +gui.czw_method_none = 점령 없음 +gui.czw_method_single_desc = 현재 청크 +gui.czw_method_single = 단일 청크 +gui.czw_method_circle_desc = 원형 영역 +gui.czw_method_circle = 원형 반경 +gui.czw_method_square_desc = 사각형 영역 +gui.czw_method_square = 사각형 반경 +gui.czw_method_map_desc = 대화형 청크 편집기 +gui.czw_method_map = 점령 지도 사용 +gui.czw_radius = 반경 +gui.czw_custom_radius = 사용자 지정 (1-50): +gui.czw_flags = 플래그 +gui.czw_flags_defaults_desc = 구역 유형 기반 +gui.czw_flags_defaults = 기본값 사용 +gui.czw_flags_customize_desc = 생성 후 설정 열기 +gui.czw_flags_customize = 사용자 지정 + +# ========== 항목 라벨 (세력/플레이어/구역 목록 항목) ========== + +# 세력 항목 라벨 +gui.fac_entry_power = 파워 +gui.fac_entry_claims = 영토 +gui.fac_entry_members = 멤버 +gui.fac_entry_created = 생성일: +gui.fac_entry_home = 홈: +gui.fac_entry_tp_home = 홈 이동 +gui.fac_entry_view_info = 정보 보기 +gui.fac_entry_members_btn = 멤버 +gui.fac_entry_settings = 설정 +gui.fac_entry_unclaim_all = 전체 포기 +gui.fac_entry_disband = 해산 + +# 플레이어 항목 라벨 +gui.plr_entry_role = 역할: +gui.plr_entry_joined = 가입일: +gui.plr_entry_last_online = 마지막 접속: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = 파워: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = 정보 +gui.plr_entry_teleport = 텔레포트 +gui.plr_entry_na = N/A +gui.plr_entry_unknown = 알 수 없음 +gui.plr_entry_ago = {0} 전 + +# 구역 항목 라벨 +gui.zone_entry_world = 월드: +gui.zone_entry_chunks = 청크: +gui.zone_entry_bounds = 범위: +gui.zone_entry_created = 생성일: +gui.zone_entry_edit_map = 지도 편집 +gui.zone_entry_flags = 플래그 +gui.zone_entry_settings = 설정 +gui.zone_entry_delete = 삭제 diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang new file mode 100644 index 00000000..621c4471 --- /dev/null +++ b/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Korean Translations +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== 내비게이션 바 ========== +nav.dashboard = 대시보드 +nav.chat = 채팅 +nav.members = 멤버 +nav.invites = 초대 +nav.browser = 탐색 +nav.map = 지도 +nav.leaderboard = 순위표 +nav.relations = 관계 +nav.treasury = 금고 +nav.settings = 설정 +nav.logs = 로그 +nav.help = 도움말 +nav.admin = 관리 +nav.create = 생성 + +# ========== 도움말 카테고리 이름 ========== +help.category.welcome = 환영합니다 +help.category.your_faction = 내 세력 +help.category.power_land = 파워 & 영토 +help.category.diplomacy = 외교 +help.category.combat = 전투 & 안전 +help.category.economy = 경제 +help.category.quick_ref = 빠른 참조 + +# ========== 관리자 도움말 카테고리 이름 ========== +help.category.admin_overview = 개요 +help.category.admin_factions = 세력 +help.category.admin_zones = 구역 +help.category.admin_power = 파워 +help.category.admin_economy = 경제 +help.category.admin_config = 설정 +help.category.admin_maintenance = 유지보수 +help.category.admin_reference = 참조 + +# ========== 메인 메뉴 ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = 내 세력 +main_menu.section_get_started = 시작하기 +main_menu.section_territory = 영역 +main_menu.section_browse = 탐색 +main_menu.section_admin = 관리 +main_menu.claim_hint = 영토를 점령하려면 /f claim을 사용하세요. + +# ========== 세력 정보 페이지 ========== +faction_info.title = 세력 정보 +faction_info.no_description = 설명이 설정되지 않았습니다. +faction_info.status_open = 공개 +faction_info.status_invite_only = 초대 전용 +faction_info.status_raidable = 약탈 가능 +faction_info.status_protected = 보호됨 +faction_info.officers_more = +{0}명 +faction_info.power_header = 파워 +faction_info.claims_header = 영토 +faction_info.members_header = 멤버 +faction_info.relations_header = 관계 +faction_info.status_header = 상태 +faction_info.treasury_header = 금고 +faction_info.current_max = 현재 / 최대 +faction_info.claimed_max = 점령 / 최대 +faction_info.ally_enemy = 동맹 / 적 +faction_info.faction_balance = 세력 잔액 +faction_info.leader_label = 지도자: +faction_info.officers_label = 간부: +faction_info.view_members_btn = 멤버 보기 +faction_info.relations_btn = 관계 +faction_info.back_btn = 뒤로 + +# ========== 이름 변경 모달 ========== +rename.title = 세력 이름 변경 +rename.current_label = 현재: +rename.new_name_label = 새 이름: +rename.no_permission = 세력 이름을 변경할 권한이 없습니다. +rename.enter_name = 세력 이름을 입력해 주세요. +rename.too_short = 세력 이름은 최소 {0}자 이상이어야 합니다. +rename.too_long = 세력 이름은 {0}자를 초과할 수 없습니다. +rename.same_name = 이미 현재 세력의 이름입니다. +rename.name_taken = 해당 이름의 세력이 이미 존재합니다. +rename.success = 세력 이름이 {0}에서 {1}(으)로 변경되었습니다! + +# ========== 설명 모달 ========== +desc.title = 설명 편집 +desc.current_label = 현재: +desc.new_desc_label = 새 설명: +desc.no_permission = 설명을 편집할 권한이 없습니다. +desc.display_none = (없음) +desc.cleared = 세력 설명이 초기화되었습니다. +desc.updated = 세력 설명이 업데이트되었습니다! + +# ========== 태그 모달 ========== +tag.title = 태그 편집 +tag.current_label = 현재: +tag.instructions = 태그 (1-5자, 문자와 숫자만): +tag.help_text = 태그는 채팅과 지도에 표시됩니다 +tag.no_permission = 태그를 편집할 권한이 없습니다. +tag.display_none = (없음) +tag.cleared = 세력 태그가 초기화되었습니다. +tag.too_short = 태그는 최소 {0}자 이상이어야 합니다. +tag.too_long = 태그는 {0}자를 초과할 수 없습니다. +tag.invalid_format = 태그에는 문자와 숫자만 사용할 수 있습니다. +tag.same_tag = 이미 현재 세력의 태그입니다. +tag.tag_taken = 해당 태그의 세력이 이미 존재합니다. +tag.success = 세력 태그가 [{0}](으)로 설정되었습니다! + +# ========== 대시보드 페이지 ========== +dashboard.title = 세력 대시보드 +dashboard.power_label = 파워 +dashboard.land_label = 영토 +dashboard.members_label = 멤버 +dashboard.online_label = 온라인 +dashboard.allies_label = 동맹 +dashboard.enemies_label = 적 +dashboard.relations_label = 관계 +dashboard.ally_enemy_label = 동맹 / 적 +dashboard.status_label = 상태 +dashboard.invites_label = 초대 +dashboard.sent_requests_label = 보낸 / 요청 +dashboard.treasury_label = 금고 +dashboard.upkeep_label = 유지비 +dashboard.per_cycle = 주기당 +dashboard.your_wallet = 내 지갑 +dashboard.personal_balance = 개인 잔액 +dashboard.quick_actions = 빠른 작업 +dashboard.teleport_label = 텔레포트 +dashboard.territory_label = 영역 +dashboard.channel_label = 채널 +dashboard.membership_label = 소속 +dashboard.recent_activity = 최근 활동 +dashboard.view_all = 전체 보기 +dashboard.income_24h = 수입 (24시간) +dashboard.deposits_transfers_in = 입금, 이체 수신 +dashboard.expenses_24h = 지출 (24시간) +dashboard.withdrawals_transfers_out = 출금, 이체 송신 +dashboard.faction_gone = 세력이 더 이상 존재하지 않습니다. +dashboard.available = {0} 사용 가능 +dashboard.at_risk = 위험! +dashboard.online_count = {0}명 온라인 +dashboard.status_invite = 초대 +dashboard.in_grace = 유예 기간 +dashboard.billable_chunks = 청구 대상 청크 {0}개 +dashboard.btn_home = 홈 +dashboard.btn_set_home = 홈 설정 +dashboard.btn_claim = 점령 +dashboard.chat_prefix = 채팅: {0} +dashboard.btn_leave = 탈퇴 +dashboard.no_activity = 최근 활동이 없습니다. +dashboard.time_now = 방금 +dashboard.time_minutes = {0}분 전 +dashboard.time_hours = {0}시간 전 +dashboard.time_days = {0}일 전 +dashboard.no_home_hint = 세력 홈이 설정되지 않았습니다. 간부에게 설정을 요청하세요. +dashboard.chat_mode_set = 채팅 모드: {0} +dashboard.claim_success = 청크 ({0}, {1})을(를) 점령했습니다 +dashboard.upkeep_in = {0} 후 + +# ========== 세력 메인 페이지 ========== +main.no_faction = 세력 없음 +main.joined = 세력에 가입했습니다! +main.join_failed = 세력 가입 실패: {0} +main.invite_declined = 초대를 거절했습니다. +main.cooldown = 텔레포트 쿨다운 중! {0}초 남음. +main.world_not_found = 텔레포트 불가 - 월드를 찾을 수 없습니다. +main.leave_failed = 탈퇴 실패: {0} + +# ========== 공유 GUI 라벨 ========== +common.faction_count = 세력 {0}개 +common.leader_label = 지도자: {0} +common.sort_power = 파워 +common.sort_members = 멤버 +common.page_format = {0}/{1} +common.own_faction = (내 세력) +common.search = 검색: +common.sort = 정렬: +common.prev = < 이전 +common.next = 다음 > +common.treasury_not_available = 금고를 사용할 수 없습니다. + +# ========== 멤버 페이지 ========== +members.title = 멤버 +members.search_label = 검색: +members.sort_label = 정렬: +members.prev_btn = < 이전 +members.next_btn = 다음 > +members.count = 멤버 {0}명 +members.sort_role = 역할 +members.sort_last_online = 마지막 접속 +members.just_now = 방금 +members.ago = {0} 전 +members.never = 없음 +members.member_not_found = 멤버를 찾을 수 없습니다. +members.promoted = {0}을(를) {1}(으)로 승급시켰습니다. +members.promote_failed = 승급 실패: {0} +members.demoted = {0}을(를) {1}(으)로 강등시켰습니다. +members.demote_failed = 강등 실패: {0} +members.kicked = {0}을(를) 세력에서 추방했습니다. +members.kick_failed = 추방 실패: {0} +members.label_power = 파워: +members.label_joined = 가입일: +members.label_last_death = 마지막 사망: +members.btn_promote = 승급 +members.btn_demote = 강등 +members.btn_kick = 추방 +members.btn_make_leader = 지도자 임명 +members.btn_profile = 프로필 +members.self_label = (나) + +# ========== 탐색 페이지 ========== +browser.title = 세력 탐색 +browser.search_label = 검색: +browser.sort_label = 정렬: +browser.prev_btn = < 이전 +browser.next_btn = 다음 > +browser.sort_name = 이름 +browser.invalid_faction = 잘못된 세력입니다. +browser.label_power = 파워 +browser.label_claims = 영토 +browser.label_members = 멤버 +browser.label_recruitment = 모집: +browser.label_created = 생성일: +browser.label_description = 설명: +browser.view_info_btn = 정보 보기 +browser.label_leader = 지도자: +browser.no_description = 설명이 설정되지 않음 + +# ========== 순위표 페이지 ========== +leaderboard.title = 세력 순위표 +leaderboard.rank_by = 기준: +leaderboard.col_rank = # +leaderboard.col_faction = 세력 +leaderboard.col_claims = 영토 +leaderboard.col_members = 멤버 +leaderboard.prev_btn = < 이전 +leaderboard.next_btn = 다음 > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = 영역 +leaderboard.sort_balance = 잔액 + +# ========== 플레이어 정보 페이지 ========== +playerinfo.title = 플레이어 정보 +playerinfo.first_joined_label = 최초 가입: +playerinfo.last_online_label = 마지막 접속: +playerinfo.faction_label = 세력: +playerinfo.role_label = 역할: +playerinfo.joined_label_static = 가입일: +playerinfo.not_in_faction = 세력에 소속되어 있지 않음 +playerinfo.power_header = 파워 +playerinfo.current_max = 현재 / 최대 +playerinfo.combat_header = 전투 +playerinfo.kills_deaths = 킬 / 데스 +playerinfo.kdr_header = K/D 비율 +playerinfo.membership_history = 소속 이력 +playerinfo.view_faction_btn = 세력 보기 +playerinfo.back_btn = 뒤로 +playerinfo.now = 현재 +playerinfo.history_count = 기록 {0}건 +playerinfo.joined_label = 가입: {0} +playerinfo.current = 현재 +playerinfo.left_label = 탈퇴: {0} +playerinfo.no_history = 소속 이력이 없습니다 +playerinfo.faction_gone = 세력이 더 이상 존재하지 않습니다. +playerinfo.reason_active = 활동 중 +playerinfo.reason_left = 탈퇴 +playerinfo.reason_kicked = 추방됨 +playerinfo.reason_disbanded = 해산됨 + +# ========== 관계 페이지 ========== +relations.title = 관계 +relations.tab_relations = 관계 +relations.tab_pending = 대기 중 +relations.set_relation_btn = + 관계 설정 +relations.prev_btn = < 이전 +relations.next_btn = 다음 > +relations.relation_count = 관계 {0}건 +relations.request_count = 요청 {0}건 +relations.type_ally = 동맹 +relations.type_enemy = 적 +relations.type_incoming = 수신 +relations.type_outgoing = 발신 +relations.incoming_request = 수신 요청 +relations.outgoing_request = 발신 요청 +relations.empty_relations = 관계가 없습니다. +relations.empty_relations_hint = 관계가 없습니다. + 관계 설정을 클릭하여 동맹이나 적을 추가하세요. +relations.empty_pending = 대기 중인 동맹 요청이 없습니다. +relations.today = 오늘 +relations.one_day_ago = 1일 전 +relations.days_ago = {0}일 전 +relations.now_neutral = {0}과(와) 중립이 되었습니다. +relations.now_enemies = {0}과(와) 적대 관계가 되었습니다! +relations.request_sent = {0}에게 동맹 요청을 보냈습니다. +relations.now_allied = {0}과(와) 동맹이 되었습니다! +relations.request_declined = {0}의 동맹 요청을 거절했습니다. +relations.request_cancelled = {0}에 대한 동맹 요청을 취소했습니다. +relations.failed = 실패: {0} +relations.search_hint = 관계를 설정할 세력을 검색하세요 +relations.no_results = '{0}'과(와) 일치하는 세력이 없습니다 +relations.power_display = 파워 {0} +relations.member_count = 멤버 {0}명 +relations.label_members = 멤버 +relations.label_power = 파워 +relations.label_since = 시작일: +relations.label_claims = 영토: +relations.label_direction = 방향: +relations.btn_view = 보기 +relations.btn_neutral = 중립 +relations.btn_enemy = 적 +relations.btn_ally = 동맹 +relations.btn_accept = 수락 +relations.btn_decline = 거절 +relations.btn_cancel = 취소 + +# ========== 설정 페이지 ========== +settings.title = 세력 설정 +settings.general = 일반 +settings.name_label = 이름: +settings.tag_label = 태그: +settings.desc_label = 설명: +settings.edit_btn = 편집 +settings.recruitment = 모집 +settings.status_label = 상태: +settings.home_location = 홈 위치 +settings.location_label = 위치: +settings.set_home_btn = 홈 설정 +settings.teleport_btn = 텔레포트 +settings.delete_btn = 삭제 +settings.optional_features = 선택 기능 +settings.configure_modules = 선택 모듈을 설정합니다. +settings.modules_btn = 모듈 +settings.danger_zone = 위험 구역 +settings.irreversible = 이 작업은 되돌릴 수 없습니다. +settings.disband_btn = 세력 해산 +settings.lock_hint = 일부 옵션은 서버에 의해 잠겨 있어 변경할 수 없을 수 있습니다. +settings.territory_permissions = 영토 권한 +settings.col_out = 외부 +settings.col_ally = 동맹 +settings.col_mem = 멤버 +settings.col_off = 간부 +settings.cat_building = 건축 +settings.perm_break = 파괴 +settings.perm_place = 설치 +settings.cat_interaction = 상호작용 +settings.interaction_hint = (전체가 꺼져 있으면 하위 항목 비활성화) +settings.perm_all = 전체 +settings.perm_door = 문 +settings.perm_chest = 상자 +settings.perm_bench = 제작대 +settings.perm_processing = 가공대 +settings.perm_seat = 좌석 +settings.perm_transport = 이동수단 +settings.cat_other = 기타 +settings.perm_crate = 상자 사용 +settings.perm_npc_tame = NPC 길들이기 +settings.perm_pve = PvE 피해 +settings.appearance = 외관 +settings.color_label = 색상: +settings.mob_spawning = 몹 스폰 +settings.mob_spawning_hint = (마스터가 꺼져 있으면 하위 항목 비활성화) +settings.mob_spawning_label = 몹 스폰 +settings.hostile_mobs = 적대적 몹 +settings.passive_mobs = 수동적 몹 +settings.neutral_mobs = 중립 몹 +settings.faction_settings = 세력 설정 +settings.pvp_in_territory = 영토 내 PvP +settings.officers_can_edit = 간부 편집 가능 +settings.leader_only = 지도자 전용 +settings.officers_only = 간부와 지도자만 세력 설정을 변경할 수 있습니다. +settings.display_none = (없음) +settings.home_not_set = 미설정 +settings.no_permission = 설정을 변경할 권한이 없습니다. +settings.only_leader_disband = 지도자만 세력을 해산할 수 있습니다. +settings.perm_locked = 이 설정은 서버에 의해 잠겨 있습니다. +settings.no_perm_edit = 영토 권한을 편집할 권한이 없습니다. +settings.only_leader_officers = 지도자만 간부 접근 권한을 변경할 수 있습니다. +settings.pvp_enabled = 활성화 +settings.pvp_disabled = 비활성화 +settings.not_in_territory = 홈을 설정하려면 세력 영토 내에 있어야 합니다. +settings.home_set = 현재 위치에 세력 홈이 설정되었습니다! +settings.recruitment_set = 모집이 {0}(으)로 설정되었습니다. +settings.home_no_set = 세력 홈이 설정되어 있지 않습니다. +settings.home_deleted = 세력 홈이 삭제되었습니다! + +# ========== 모듈 페이지 ========== +modules.title = 세력 모듈 +modules.description = 세력을 강화하는 선택적 기능 +modules.configure_btn = 설정 +modules.back_btn = < 설정으로 돌아가기 +modules.treasury_name = 금고 +modules.treasury_desc = 세력 은행 및 경제 시스템 +modules.raids_name = 습격 +modules.raids_desc = 예약된 세력 전투 +modules.levels_name = 레벨 +modules.levels_desc = 세력 성장 및 경험치 +modules.war_name = 전쟁 +modules.war_desc = 공식 전쟁 선포 +modules.coming_soon = 출시 예정 +modules.active = 활성 +modules.view_treasury = 금고 보기 +modules.unavailable = 사용 불가 +modules.no_economy = 경제 플러그인이 감지되지 않았습니다 +modules.disabled = 비활성화 +modules.economy_not_available = 이 서버에서는 경제 기능을 사용할 수 없습니다 + +# ========== 금고 페이지 ========== +treasury.title = 세력 금고 +treasury.balance_label = 잔액 +treasury.income_24h = 수입 (24시간) +treasury.deposits_transfers_in = 입금, 이체 수신 +treasury.expenses_24h = 지출 (24시간) +treasury.withdrawals_transfers_out = 출금, 이체 송신 +treasury.maintenance = 유지비 +treasury.runway_label = 운영 가능 기간: +treasury.add_funds = 자금 추가 +treasury.deposit_btn = 입금 +treasury.take_funds = 자금 인출 +treasury.withdraw_btn = 출금 +treasury.send_to_faction = 세력에 전송 +treasury.transfer_btn = 이체 +treasury.treasury_config = 금고 설정 +treasury.settings_btn = 설정 +treasury.recent_transactions = 최근 거래 +treasury.no_transactions = 거래 내역이 없습니다 +treasury.col_date = 날짜 +treasury.col_type = 유형 +treasury.col_by = 수행자 +treasury.col_amount = 금액 +treasury.col_details = 상세 +treasury.pay_now_btn = 지금 결제 +treasury.cost_7d = 7일: +treasury.cost_14d = 14일: +treasury.cost_30d = 30일: +treasury.settings_title = 금고 설정 +treasury.officer_permissions = 간부 권한 +treasury.allow_withdraw = 간부 출금 허용 +treasury.allow_transfer = 간부 이체 허용 +treasury.limits_section = 출금 및 이체 한도 +treasury.max_per_withdrawal = 1회 최대 출금액: +treasury.max_withdrawals_per = 기간 내 최대 출금 횟수: +treasury.max_per_transfer = 1회 최대 이체액: +treasury.max_transfers_per = 기간 내 최대 이체 횟수: +treasury.limit_period = 한도 기간 (시간): +treasury.no_limit_hint = 무제한으로 설정하려면 0을 입력하세요 +treasury.upkeep_settings = 유지비 설정 +treasury.auto_pay_upkeep = 금고에서 유지비 자동 결제 +treasury.back_btn = 뒤로 +treasury.upkeep_cost_format = {1}시간마다 {0} +treasury.upkeep_time_left = {0} 남음 +treasury.wallet_label = 내 지갑: {0} +treasury.treasury_label = 금고 잔액: {0} +treasury.chunks_detail = 무료 {0}개 + 청구 대상 {1}개 청크 +treasury.cost_label = 비용: {0} +treasury.pending = 대기 중 +treasury.auto_pay_on = 자동 결제: 켜짐 +treasury.auto_pay_off = 자동 결제: 꺼짐 +treasury.runway_90_plus = 90일 이상 +treasury.runway_days = {0}일 +treasury.runway_day = {0}일 +treasury.runway_less_day = 1일 미만 +treasury.runway_no_funds = 자금 없음 +treasury.grace_expires = 유예 만료: {0} +treasury.missed_payments = 미납 횟수: {0} +treasury.pay_to_clear = {0}을(를) 결제하여 유예 해제 +treasury.system = 시스템 +treasury.type_deposit = 입금 +treasury.type_withdrawal = 출금 +treasury.type_transfer_in = 이체 수신 +treasury.type_transfer_out = 이체 송신 +treasury.type_player_transfer = 플레이어 이체 +treasury.type_upkeep = 유지비 +treasury.type_tax = 세금 징수 +treasury.type_war_cost = 전쟁 비용 +treasury.type_raid_cost = 습격 비용 +treasury.type_spoils = 전리품 +treasury.type_admin = 관리자 조정 +treasury.deposit_title = 금고에 입금 +treasury.withdraw_title = 금고에서 출금 +treasury.fee_label = 수수료 ({0}%) +treasury.confirm_deposit = 입금 확인 +treasury.confirm_withdrawal = 출금 확인 +treasury.from_wallet = 지갑에서 {0} +treasury.to_wallet = 지갑으로 {0} +treasury.enter_valid_amount = 유효한 양수 금액을 입력하세요. +treasury.insufficient_wallet = 지갑 잔액이 부족합니다. 필요: {0}, 보유: {1}. +treasury.wallet_withdraw_failed = 지갑에서 출금하지 못했습니다. +treasury.deposit_failed_returned = 입금에 실패했습니다. 금액이 반환되었습니다. +treasury.deposited = 금고에 {0}을(를) 입금했습니다. +treasury.deposited_fee = 금고에 {0}을(를) 입금했습니다. (수수료: {1}) +treasury.no_withdraw_permission = 출금할 권한이 없습니다. +treasury.withdraw_denied = 출금 거부: {0} +treasury.insufficient_treasury = 금고 잔액이 부족합니다. +treasury.withdraw_limit = 출금 한도를 초과했습니다. +treasury.withdraw_failed = 출금 실패: {0} +treasury.wallet_deposit_warn = 경고: 지갑에 입금하지 못했습니다. 관리자에게 문의하세요. +treasury.withdrew = 금고에서 {0}을(를) 출금했습니다. +treasury.withdrew_fee = 금고에서 {0}을(를) 출금했습니다. (수수료: {1}, 수령액: {2}) +treasury.search_hint = 플레이어 또는 세력을 검색하세요 +treasury.no_results = '{0}'에 대한 결과가 없습니다 +treasury.tag_player = [플레이어] +treasury.tag_faction = [세력] +treasury.source_online = 온라인 +treasury.source_offline = 오프라인 +treasury.source_player_db = Hytale 플레이어 +treasury.no_transfer_permission = 이체할 권한이 없습니다. +treasury.transfer_denied = 이체 거부: {0} +treasury.invalid_target_faction = 잘못된 대상 세력입니다. +treasury.target_faction_gone = 대상 세력이 더 이상 존재하지 않습니다. +treasury.transfer_failed = 이체 실패: {0} +treasury.transfer_failed_returned = 이체에 실패했습니다. 자금이 반환되었습니다. +treasury.transferred = {1}에게 {0}을(를) 이체했습니다. +treasury.invalid_target_player = 잘못된 대상 플레이어입니다. +treasury.player_transfer_failed = 플레이어 지갑에 입금하지 못했습니다. 이체가 롤백되었습니다. +treasury.leader_only_perms = 지도자만 금고 권한을 변경할 수 있습니다. +treasury.leader_only_upkeep = 지도자만 유지비 설정을 변경할 수 있습니다. +treasury.invalid_limit = 한도 필드에 잘못된 숫자가 있습니다. 무제한은 0을 사용하세요. + +# ========== 확인 페이지 ========== +confirm.disband_title = 세력 해산 +confirm.disband_prompt = 정말로 해산하시겠습니까 +confirm.disband_warning = 이 작업은 되돌릴 수 없습니다! +confirm.leave_title = 세력 탈퇴 +confirm.leave_prompt = 정말로 탈퇴하시겠습니까 +confirm.leave_warning = 세력 영토에 대한 접근 권한을 잃게 됩니다. +confirm.leader_leave_title = 지도자로서 탈퇴 +confirm.leader_leave_prompt = 탈퇴하려 합니다 +confirm.transfer_title = 지도자 이양 +confirm.transfer_prompt = 정말로 지도자를 이양하시겠습니까 +confirm.transfer_warning = 간부로 변경됩니다. +confirm.disband_not_leader = 지도자만 세력을 해산할 수 있습니다. +confirm.disbanded = 세력 '{0}'이(가) 해산되었습니다. +confirm.disband_failed = 세력 해산에 실패했습니다. +confirm.succession_title = 지도자가 이양될 대상: +confirm.no_members_warning = 경고: 다른 멤버가 없습니다! +confirm.will_disband = 탈퇴하면 세력이 영구적으로 해산됩니다. +confirm.not_in_faction = 이 세력에 소속되어 있지 않습니다. +confirm.not_leader_anymore = 더 이상 지도자가 아닙니다. +confirm.no_successor = 후임자가 없습니다. 대신 해산을 사용하세요. +confirm.transfer_failed = 지도자 이양 실패: {0} +confirm.leader_left = {0}에게 지도자가 이양되었습니다. {1}을(를) 탈퇴했습니다. +confirm.leave_failed = 세력 탈퇴 실패: {0} +confirm.leader_cannot_leave = 지도자는 탈퇴할 수 없습니다. 지도자를 이양하거나 세력을 해산하세요. +confirm.left_faction = {0}을(를) 탈퇴했습니다. +confirm.faction_gone = 세력이 더 이상 존재하지 않습니다. +confirm.not_leader_transfer = 지도자만 지도자를 이양할 수 있습니다. +confirm.leadership_transferred = {0}에게 지도자를 이양했습니다. + +# ========== 로그 뷰어 페이지 ========== +logs.title = {0} - 활동 로그 +logs.entry_count = 항목 {0}건 +logs.filter_label = 필터: +logs.col_time = 시간 +logs.col_type = 유형 +logs.col_message = 메시지 +logs.prev_btn = < 이전 +logs.next_btn = 다음 > +logs.all_types = 전체 유형 +logs.no_logs_type = 해당 유형의 로그가 없습니다. +logs.no_logs = 활동 로그가 없습니다. +logs.time_just_now = 방금 +logs.time_minute = {0}분 전 +logs.time_minutes = {0}분 전 +logs.time_hour = {0}시간 전 +logs.time_hours = {0}시간 전 +logs.time_day = {0}일 전 +logs.time_days = {0}일 전 +logs.time_week = {0}주 전 +logs.time_weeks = {0}주 전 +logs.type_member_join = 가입 +logs.type_member_leave = 탈퇴 +logs.type_member_kick = 추방 +logs.type_member_promote = 승급 +logs.type_member_demote = 강등 +logs.type_claim = 점령 +logs.type_unclaim = 포기 +logs.type_overclaim = 강제 점령 +logs.type_home_set = 홈 설정 +logs.type_relation_ally = 동맹 +logs.type_relation_enemy = 적 +logs.type_relation_neutral = 중립 +logs.type_leader_transfer = 이양 +logs.type_settings_change = 설정 +logs.type_power_change = 파워 +logs.type_economy = 경제 +logs.type_admin_power = 관리자 파워 + +# 로그 메시지 템플릿 (활동 로그 내용 다국어 지원) +# 플레이어 행동 +logs.msg_faction_created = {0}이(가) 세력을 생성했습니다 +logs.msg_member_joined = {0}이(가) 세력에 가입했습니다 +logs.msg_member_left = {0}이(가) 세력을 탈퇴했습니다 +logs.msg_member_kicked = {0}이(가) 추방되었습니다 +logs.msg_member_promoted = {0}이(가) {1}(으)로 승급되었습니다 +logs.msg_member_demoted = {0}이(가) {1}(으)로 강등되었습니다 +logs.msg_leader_transferred = {0}에게 지도자가 이양되었습니다 +logs.msg_leader_left_transfer = {0}이(가) 탈퇴하고, {1}이(가) 새 지도자가 되었습니다 +logs.msg_relation_set = {0}을(를) {1}(으)로 설정했습니다 +# 영역 +logs.msg_claimed = {2}에서 청크 {0}, {1}을(를) 점령했습니다 +logs.msg_unclaimed = {2}에서 청크 {0}, {1}을(를) 포기했습니다 +logs.msg_overclaim_lost = {2}에게 청크 {0}, {1}을(를) 빼앗겼습니다 +logs.msg_overclaim_taken = {2}에서 청크 {0}, {1}을(를) 강제 점령했습니다 +logs.msg_all_unclaimed = 모든 영토가 포기되었습니다 +logs.msg_claim_removed_world = '{0}'의 영토가 제거되었습니다 (월드에서 점령 불가) +logs.msg_claims_lost_upkeep = 유지비로 영토 {0}개를 잃었습니다 (미납 {1}회) +logs.msg_claims_removed_inactive = 비활동으로 영토 {0}개가 제거되었습니다 ({1}일) +# 홈 +logs.msg_home_set = 홈이 설정되었습니다 +logs.msg_home_cleared = 홈이 초기화되었습니다 +logs.msg_home_cleared_world = '{0}'의 홈이 초기화되었습니다 (월드에서 점령 불가) +# 설정 +logs.msg_renamed = '{0}'에서 '{1}'(으)로 이름이 변경되었습니다 +logs.msg_set_open = 세력이 공개로 설정되었습니다 +logs.msg_set_closed = 세력이 초대 전용으로 설정되었습니다 +logs.msg_desc_set = 설명이 설정되었습니다 +logs.msg_desc_cleared = 설명이 초기화되었습니다 +logs.msg_color_changed = 색상이 '{0}'(으)로 변경되었습니다 +# 경제 +logs.msg_deposit = 입금: {0} (+{1}) +logs.msg_withdrawal = 출금: {0} (-{1}) +logs.msg_upkeep_paid = 유지비 결제: {0} (청구 대상 청크 {1}개) +logs.msg_upkeep_grace_started = 유지비 실패: 유예 기간 시작 ({0}시간) +logs.msg_upkeep_missed = 유지비 미납 (결제 {0}회), 유예 만료까지 {1} +logs.msg_upkeep_manual = 유지비 수동 결제: {0} (청구 대상 청크 {1}개, 유예 해제) +# 관리자 파워 +logs.msg_admin_power_set = 관리자가 {0}의 파워를 {1}(으)로 설정했습니다 (이전: {2}) +logs.msg_admin_power_add = 관리자가 {1}에게 파워 {0}을(를) 추가했습니다 ({2} -> {3}) +logs.msg_admin_power_remove = 관리자가 {1}에서 파워 {0}을(를) 제거했습니다 ({2} -> {3}) +logs.msg_admin_power_reset = 관리자가 {0}의 파워를 {1}(으)로 초기화했습니다 (이전: {2}) +logs.msg_admin_power_adjusted = 관리자가 {0}의 파워를 {1}만큼 조정했습니다 ({2} -> {3}) +logs.msg_admin_maxpower_set = 관리자가 {0}의 최대 파워를 {1}(으)로 설정했습니다 (이전: {2}) +logs.msg_admin_maxpower_reset = 관리자가 {0}의 최대 파워를 전역 기본값으로 초기화했습니다 ({1}) +logs.msg_admin_powerloss_enabled = 관리자가 {0}의 파워 손실을 활성화했습니다 +logs.msg_admin_powerloss_disabled = 관리자가 {0}의 파워 손실을 비활성화했습니다 +logs.msg_admin_decay_enabled = 관리자가 {0}의 영토 소멸 면제를 활성화했습니다 +logs.msg_admin_decay_disabled = 관리자가 {0}의 영토 소멸 면제를 비활성화했습니다 +logs.msg_admin_kd_reset = 관리자가 {0}의 K/D를 초기화했습니다 +logs.msg_admin_power_set_all = 관리자가 멤버 {0}명 전원의 파워를 {1}(으)로 설정했습니다 +logs.msg_admin_power_add_all = 관리자가 멤버 {1}명 전원에게 파워 {0}을(를) 추가했습니다 +logs.msg_admin_power_remove_all = 관리자가 멤버 {1}명 전원에서 파워 {0}을(를) 제거했습니다 +logs.msg_admin_power_reset_all = 관리자가 멤버 {0}명 전원의 파워를 초기화했습니다 +logs.msg_admin_power_adjusted_all = 관리자가 멤버 {0}명 전원의 파워를 {1}만큼 조정했습니다 +# 관리자 세력 +logs.msg_admin_kicked = [Admin] {0}이(가) 추방되었습니다 +logs.msg_admin_role_set = [Admin] {0}의 역할이 {1}(으)로 설정되었습니다 +logs.msg_admin_leader_kick = [Admin] {0}에서 {1}(으)로 지도자가 이양되었습니다 (관리자 추방) +logs.msg_admin_econ_added = 관리자 추가: {0} (잔액: {1}) +logs.msg_admin_econ_deducted = 관리자 차감: {0} (잔액: {1}) +logs.msg_admin_econ_set = 관리자가 잔액을 {0}(으)로 설정했습니다 (이전: {1}) +# 가져오기 +logs.msg_left_import = {0}이(가) 탈퇴했습니다 (다른 세력으로 가져오기) +logs.msg_leader_import_transfer = {0}이(가) 지도자가 되었습니다 (이전 지도자가 다른 세력으로 가져오기됨) +logs.msg_imported_from = {0}에서 세력을 가져왔습니다 + +# ========== 채팅 페이지 ========== +chat.title = 세력 채팅 +chat.tab_faction = 세력 +chat.tab_ally = 동맹 +chat.send_btn = 전송 +chat.placeholder = 메시지를 입력하세요... +chat.no_messages = 메시지가 없습니다. +chat.no_ally_permission = 동맹 채팅 권한이 없습니다. +chat.no_permission = 권한이 없습니다. +chat.faction_gone = 세력이 더 이상 존재하지 않습니다. +chat.time_now = 방금 +chat.time_minutes = {0}분 +chat.time_hours = {0}시간 + +# ========== 초대 페이지 ========== +invites.title = 초대 +invites.tab_outgoing = 보낸 초대 +invites.tab_requests = 요청 +invites.prev_btn = < 이전 +invites.next_btn = 다음 > +invites.invite_count = 초대 {0}건 +invites.request_count = 요청 {0}건 +invites.invited_by = 초대자: {0} +invites.no_message = 메시지 없음 +invites.expires = 만료: {0} +invites.type_outgoing = 보낸 초대 +invites.type_request = 요청 +invites.invited_by_label = 초대자: +invites.empty_outgoing = 보낸 초대가 없습니다. /f invite <플레이어>로 초대하세요. +invites.empty_requests = 가입 요청이 없습니다. 플레이어는 /f request로 가입을 요청할 수 있습니다. +invites.invalid_player = 잘못된 플레이어입니다. +invites.cancelled_invite = {0}에 대한 초대를 취소했습니다. +invites.player_joined = {0}이(가) 세력에 가입했습니다! +invites.faction_full = 세력이 가득 찼습니다. 요청을 수락할 수 없습니다. +invites.add_failed = 플레이어를 세력에 추가하지 못했습니다. +invites.request_expired = 요청을 찾을 수 없거나 만료되었습니다. +invites.request_declined = {0}의 가입 요청을 거절했습니다. +invites.time_seconds = {0}초 +invites.time_minutes = {0}분 +invites.time_hours = {0}시간 +invites.label_message = 메시지: +invites.btn_cancel = 취소 +invites.btn_accept = 수락 +invites.btn_decline = 거절 + +# ========== 지도 페이지 ========== +map.title = 영역 지도 +map.action_hint = 좌클릭: 점령 | 우클릭: 포기 +map.legend_your = 내 영토 +map.legend_ally = 동맹 영토 +map.legend_enemy = 적 영토 +map.legend_other = 다른 세력 +map.legend_wilderness = 야생 +map.legend_safe = Safe Zone +map.legend_war = War Zone +map.legend_you = 현재 위치 +map.position = 내 위치: 청크 ({0}, {1}) +map.legend_protected = 보호됨 +map.claim_stats = 영토: {0}/{1} (사용 가능 {2}) +map.overclaimed = {0}에 의해 강제 점령됨! +map.power_display = 파워: {0}/{1} +map.join_to_claim = 영토를 점령하려면 세력에 가입하세요 +map.claim_success = 청크 ({0}, {1})을(를) 점령했습니다! +map.claim_not_in_faction = 영토를 점령하려면 세력에 소속되어야 합니다. +map.claim_not_officer = 간부와 지도자만 영토를 점령할 수 있습니다. +map.claim_already_yours = 이 청크는 이미 소유하고 있습니다. +map.claim_already_claimed = 이 청크는 다른 세력이 이미 점령했습니다. +map.claim_not_adjacent = 기존 영토에 인접한 청크만 점령할 수 있습니다. +map.claim_max = 최대 영토 한도에 도달했습니다. +map.claim_world_not_allowed = 이 월드에서는 영토 점령이 허용되지 않습니다. +map.claim_orbisguard = 이 지역은 OrbisGuard에 의해 보호되고 있습니다. +map.claim_failed = 청크 점령에 실패했습니다. +map.unclaim_success = 청크 ({0}, {1})을(를) 포기했습니다. +map.unclaim_not_in_faction = 세력에 소속되어야 합니다. +map.unclaim_not_officer = 간부와 지도자만 영토를 포기할 수 있습니다. +map.unclaim_not_claimed = 이 청크는 점령되지 않았습니다. +map.unclaim_not_yours = 이 청크는 다른 세력의 소유입니다. +map.unclaim_home = 세력 홈이 있는 청크는 포기할 수 없습니다. +map.unclaim_failed = 청크 포기에 실패했습니다. +map.overclaim_success = 적 청크 ({0}, {1})을(를) 강제 점령했습니다! +map.overclaim_not_in_faction = 세력에 소속되어야 합니다. +map.overclaim_not_officer = 간부와 지도자만 강제 점령할 수 있습니다. +map.overclaim_already_yours = 이 청크는 이미 소유하고 있습니다. +map.overclaim_ally = 동맹 영토는 강제 점령할 수 없습니다. +map.overclaim_has_power = 이 세력은 영토를 방어할 충분한 파워를 보유하고 있습니다. +map.overclaim_max = 최대 영토 한도에 도달했습니다. +map.overclaim_failed = 강제 점령에 실패했습니다. +# ========== 세력 생성 페이지 ========== +create.title = 세력 생성 +create.section_preview = 미리보기 +create.section_basic_info = 기본 정보 +create.section_details = 상세 정보 +create.name_prefix = 이름: +create.faction_name_label = 세력 이름 * +create.tag_label = 태그 (2-4자, 비워두면 자동 설정) +create.desc_label = 설명 (선택사항) +create.recruitment_label = 모집 +create.section_faction_color = 세력 색상 +create.section_combat = 전투 +create.create_btn = 세력 생성 +create.preview_name = 세력 이름을 입력하세요 +create.leader_prefix = 지도자: {0} +create.enter_name = 세력 이름을 입력해 주세요. +create.name_too_short = 세력 이름은 최소 {0}자 이상이어야 합니다. +create.name_too_long = 세력 이름은 {0}자를 초과할 수 없습니다. +create.name_taken = 해당 이름의 세력이 이미 존재합니다. +create.tag_length = 세력 태그는 {0}-{1}자여야 합니다. +create.tag_format = 세력 태그에는 문자와 숫자만 사용할 수 있습니다. +create.desc_too_long = 설명은 {0}자를 초과할 수 없습니다. +create.created = 세력 {0}이(가) 성공적으로 생성되었습니다! +create.created_no_dashboard = 세력이 생성되었지만 대시보드를 열 수 없습니다. +create.invalid_name = 잘못된 세력 이름입니다. +create.create_failed = 세력을 생성할 수 없습니다. + +# ========== 신규 플레이어 페이지 ========== +newplayer.browse_title = 세력 탐색 +newplayer.invites_title = 초대 & 요청 +newplayer.map_title = 영역 지도 +newplayer.view_only_badge = 보기 전용 모드 +newplayer.legend_label = 범례: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = 세력 +newplayer.legend_wilderness = 야생 +newplayer.search_label = 검색: +newplayer.sort_label = 정렬: +newplayer.prev_btn = < 이전 +newplayer.next_btn = 다음 > +newplayer.pending_count = 대기 중 {0}건 +newplayer.received_header = 받은 초대 ({0}) +newplayer.requests_header = 보낸 요청 ({0}) +newplayer.no_invites = 초대가 없습니다. 세력을 탐색하여 찾아보세요! +newplayer.no_requests = 대기 중인 요청이 없습니다. +newplayer.invited_by = 초대자: {0} +newplayer.member_count = 멤버 {0}명 +newplayer.power_count = 파워 {0} +newplayer.claim_count = 영토 {0}개 +newplayer.awaiting_review = 검토 대기 중 +newplayer.expires_in = {0}시간 후 만료 +newplayer.time_just_now = 방금 +newplayer.time_minutes = {0}분 전 +newplayer.time_hours = {0}시간 전 +newplayer.time_days = {0}일 전 +newplayer.invalid_faction = 잘못된 세력입니다. +newplayer.invite_expired = 초대가 만료되었거나 취소되었습니다. +newplayer.faction_gone = 세력이 더 이상 존재하지 않습니다. +newplayer.joined = {0}에 가입했습니다! +newplayer.faction_full = 이 세력은 가득 찼습니다. +newplayer.join_failed = 세력에 가입할 수 없습니다. +newplayer.invite_declined = 초대를 거절했습니다. +newplayer.request_cancelled = {0} 가입 요청을 취소했습니다. +newplayer.faction_count = 세력 {0}개 +newplayer.browse_subtitle = 새로운 보금자리를 찾아보세요! +newplayer.sort_power = 파워 +newplayer.sort_name = 이름 +newplayer.sort_members = 멤버 +newplayer.btn_accept = 수락 +newplayer.btn_pending = 대기 중 +newplayer.btn_join = 가입 +newplayer.btn_request = 요청 +newplayer.invite_only_msg = 이 세력은 초대 전용입니다. +newplayer.welcome_hint = 환영합니다! /f를 입력하여 세력 메뉴를 여세요. +newplayer.faction_open_hint = 이 세력은 공개입니다! 대신 가입을 클릭하세요. +newplayer.already_requested = 이 세력에 이미 가입 요청이 대기 중입니다. +newplayer.has_invite_hint = 이 세력에서 초대를 받았습니다! 대신 수락을 클릭하세요. +newplayer.request_sent = {0}에 가입 요청을 보냈습니다! +newplayer.officer_review = 간부가 요청을 검토할 것입니다. +newplayer.map_hint = 보기 전용 - 영토를 점령하려면 세력에 가입하세요! + +# 플레이어 설정 +nav.player_settings = 플레이어 +player_settings.title = 플레이어 설정 +player_settings.language_section = 언어 +player_settings.auto_detect = 클라이언트에서 자동 감지 +player_settings.auto_detect_desc = 게임 클라이언트의 언어 설정을 사용합니다 +player_settings.language_label = 언어 +player_settings.notifications_section = 알림 +player_settings.territory_alerts = 영역 알림 +player_settings.territory_alerts_desc = 영역에 들어가거나 나갈 때 알림을 표시합니다 +player_settings.death_announcements = 사망 공지 +player_settings.death_announcements_desc = 세력 멤버 사망 위치 공지를 수신합니다 +player_settings.power_notifications = 파워 변동 +player_settings.power_notifications_desc = 파워가 변동될 때 메시지를 표시합니다 +player_settings.language_changed = 언어가 {0}(으)로 변경되었습니다 +player_settings.pref_enabled = {0} 활성화됨 +player_settings.pref_disabled = {0} 비활성화됨 + +# ========== 도움말 페이지 ========== +help.center_title = 도움말 센터 +help.getting_started_title = 시작하기 +help.what_are_factions_title = 세력이란? +help.what_are_factions_1 = 세력은 플레이어가 만든 그룹으로 함께 협력하여 +help.what_are_factions_2 = 영토를 점령하고, 기지를 건설하고, 경쟁합니다. +help.what_are_factions_bullet_1 = - 건축을 위한 보호된 영토 +help.what_are_factions_bullet_2 = - 함께 플레이할 팀원 +help.what_are_factions_bullet_3 = - 세력 채팅 및 기능에 대한 접근 +help.joining_title = 세력 가입하기 +help.joining_desc = 세력에 가입하는 방법은 여러 가지가 있습니다: +help.joining_bullet_1 = - 탐색 - 공개 세력을 찾아 가입을 클릭 +help.joining_bullet_2 = - 초대 - 간부의 초대를 수락 +help.joining_bullet_3 = - 요청 - 초대 전용 세력에 가입을 요청 +help.creating_title = 세력 만들기 +help.creating_desc = 생성 탭에서 나만의 세력을 시작하세요. +help.creating_bullet_1 = - 멤버를 초대하고 관리 +help.creating_bullet_2 = - 영토를 점령하고 보호 +help.commands_title = 빠른 명령어 +help.cmd_f = /f - 세력 메뉴 열기 +help.cmd_f_list = /f list - 모든 세력 목록 보기 +help.cmd_f_join = /f join <이름> - 공개 세력에 가입 +help.cmd_f_create = /f create <이름> - 새 세력 생성 +help.cmd_f_help = /f help - 전체 명령어 목록 +help.tip = 팁: 세력을 탐색하여 나에게 맞는 그룹을 찾아보세요! From 62b33a142159a4a63fb9a6da17bb5e7042f5f299 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:18 -0700 Subject: [PATCH 62/76] i18n: add Polish (pl-PL) translations Complete Polish translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/pl-PL/help/combat/death.md | 39 + .../Languages/pl-PL/help/combat/protection.md | 28 + .../pl-PL/help/combat/spawn_protection.md | 27 + .../Languages/pl-PL/help/combat/tagging.md | 29 + .../Languages/pl-PL/help/combat/zones.md | 29 + .../pl-PL/help/diplomacy/alliances.md | 45 + .../Languages/pl-PL/help/diplomacy/enemies.md | 47 + .../pl-PL/help/diplomacy/relations.md | 38 + .../Languages/pl-PL/help/economy/commands.md | 27 + .../Languages/pl-PL/help/economy/funds.md | 42 + .../Languages/pl-PL/help/economy/treasury.md | 26 + .../Languages/pl-PL/help/economy/upkeep.md | 37 + .../pl-PL/help/power_land/claiming.md | 50 + .../pl-PL/help/power_land/losing_territory.md | 50 + .../pl-PL/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../pl-PL/help/quick_ref/all_commands.md | 94 ++ .../pl-PL/help/welcome/getting_started.md | 38 + .../pl-PL/help/welcome/quick_tips.md | 44 + .../pl-PL/help/welcome/what_are_factions.md | 37 + .../pl-PL/help/your_faction/creating.md | 38 + .../pl-PL/help/your_faction/joining.md | 36 + .../pl-PL/help/your_faction/managing.md | 44 + .../pl-PL/help/your_faction/roles.md | 44 + .../Server/Languages/pl-PL/hyperfactions.lang | 453 +++++++++ .../Languages/pl-PL/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/pl-PL/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/pl-PL/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/pl-PL/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/pl-PL/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/death.md b/src/main/resources/Server/Languages/pl-PL/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md b/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md b/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md b/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md b/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md b/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md b/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md b/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/pl-PL/hyperfactions.lang b/src/main/resources/Server/Languages/pl-PL/hyperfactions.lang new file mode 100644 index 00000000..092800e7 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Polskie tłumaczenie +# Format: key = value (or key = "quoted value") +# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule +# Placeholders: {0}, {1}, etc. + +# ========== Ogólne ========== +common.no_permission = Nie masz uprawnień, aby to zrobić. +common.not_in_faction = Nie należysz do żadnej frakcji. +common.already_in_faction = Już należysz do frakcji. +common.player_not_found = Nie znaleziono gracza. +common.faction_not_found = Nie znaleziono frakcji. +common.player_not_online = Ten gracz nie jest online. +common.must_be_leader = Tylko przywódca frakcji może to zrobić. +common.must_be_officer = Musisz być Oficerem lub Przywódcą, aby to zrobić. +common.combat_tagged = Nie możesz tego zrobić podczas walki. +common.cancel = Anuluj +common.confirm = Potwierdź +common.save = Zapisz +common.close = Zamknij +common.clear = Wyczyść +common.back = Wstecz +common.leave = Opuść +common.transfer = Przekaż +common.disband = Rozwiąż +common.world_fallback = świat +common.yes = Tak +common.no = Nie +common.loading = Ładowanie... +common.online = Online +common.offline = Offline +common.enabled = Włączone +common.disabled = Wyłączone +common.none = Brak +common.page = Strona {0} z {1} +common.unknown = Nieznane +common.error_generic = Coś poszło nie tak. Spróbuj ponownie. +common.gui_fallback = Nie udało się otworzyć GUI. Użyj /f help, aby zobaczyć komendy. +common.admin_prefix = [Admin] +common.location_error = Nie udało się określić Twojej lokalizacji. +common.world_error = Nie udało się określić Twojego świata. +common.invalid_id = Nieprawidłowy identyfikator frakcji. +common.na = N/D + +# ========== Komendy - Tworzenie ========== +cmd.create.no_permission = Nie masz uprawnień do tworzenia frakcji. +cmd.create.usage = Użycie: /f create +cmd.create.success = Frakcja '{0}' została utworzona! +cmd.create.already_in_named = Już należysz do {0}. +cmd.create.use_leave_first = Użyj /f leave, jeśli chcesz utworzyć nową frakcję. +cmd.create.name_taken = Ta nazwa frakcji jest już zajęta. +cmd.create.name_too_short = Nazwa frakcji jest za krótka. +cmd.create.name_too_long = Nazwa frakcji jest za długa. +cmd.create.failed = Nie udało się utworzyć frakcji. + +# ========== Komendy - Rozwiązywanie ========== +cmd.disband.no_permission = Nie masz uprawnień do rozwiązywania frakcji. +cmd.disband.not_leader = Tylko przywódca frakcji może ją rozwiązać. +cmd.disband.confirm_prompt = Czy na pewno chcesz rozwiązać swoją frakcję? +cmd.disband.confirm_instruction = Wpisz /f disband --text ponownie w ciągu {0} sekund, aby potwierdzić. +cmd.disband.success = Twoja frakcja została rozwiązana. +cmd.disband.failed = Nie udało się rozwiązać frakcji. +cmd.disband.cancelled = Poprzednie potwierdzenie anulowane. Wpisz ponownie, aby potwierdzić rozwiązanie. + +# ========== Komendy - Zmiana nazwy ========== +cmd.rename.no_permission = Nie masz uprawnień. +cmd.rename.not_leader = Tylko przywódca może zmienić nazwę frakcji. +cmd.rename.usage = Użycie: /f rename +cmd.rename.too_short = Nazwa jest za krótka (min. {0} znaków). +cmd.rename.too_long = Nazwa jest za długa (maks. {0} znaków). +cmd.rename.name_taken = Ta nazwa jest już zajęta. +cmd.rename.success = Nazwa frakcji zmieniona na {0}! +cmd.rename.broadcast = {0} zmienił(a) nazwę frakcji na {1} + +# ========== Komendy - Opis ========== +cmd.desc.no_permission = Nie masz uprawnień. +cmd.desc.not_officer = Musisz być oficerem, aby ustawić opis. +cmd.desc.set = Opis frakcji ustawiony! +cmd.desc.cleared = Opis frakcji wyczyszczony. + +# ========== Komendy - Otwarta / Zamknięta ========== +cmd.open.no_permission = Nie masz uprawnień. +cmd.open.not_leader = Tylko przywódca może zmienić to ustawienie. +cmd.open.already_open = Twoja frakcja jest już otwarta. +cmd.open.success = Twoja frakcja jest teraz otwarta! Każdy może dołączyć komendą /f join. +cmd.open.broadcast = {0} otworzył(a) frakcję na publiczne dołączanie. +cmd.close.no_permission = Nie masz uprawnień. +cmd.close.not_leader = Tylko przywódca może zmienić to ustawienie. +cmd.close.already_closed = Twoja frakcja jest już zamknięta. +cmd.close.success = Twoja frakcja jest teraz tylko na zaproszenia. +cmd.close.broadcast = {0} zamknął(a) frakcję — tylko na zaproszenia. + +# ========== Komendy - Kolor ========== +cmd.color.no_permission = Nie masz uprawnień. +cmd.color.not_officer = Musisz być oficerem, aby zmienić kolor. +cmd.color.colors_disabled = Kolory frakcji są wyłączone. +cmd.color.usage = Użycie: /f color +cmd.color.usage_hint = Prawidłowe kody: 0-9, a-f lub #RRGGBB hex +cmd.color.invalid = Nieprawidłowy kolor. Użyj 0-9, a-f lub #RRGGBB. +cmd.color.success = Kolor frakcji zaktualizowany! + +# ========== Komendy - Zajmowanie terenu ========== +cmd.claim.no_permission = Nie masz uprawnień do zajmowania terenu. +cmd.claim.already_yours = Twoja frakcja już posiada ten chunk. +cmd.claim.cannot_claim_ally = Nie możesz zająć terenu sojusznika. +cmd.claim.already_claimed_hint = Ten chunk jest zajęty. Użyj /f overclaim, jeśli frakcja jest podatna na najazd. +cmd.claim.success = Zajęto chunk na {0}, {1}! +cmd.claim.not_officer = Musisz być oficerem, aby zajmować teren. +cmd.claim.already_claimed = Ten chunk jest już zajęty. +cmd.claim.max_claims = Twoja frakcja osiągnęła maksymalną liczbę terenów. Zdobądź więcej mocy! +cmd.claim.not_adjacent = Musisz zajmować teren przylegający do istniejącego terytorium. +cmd.claim.world_not_allowed = Zajmowanie terenu jest niedozwolone w tym świecie. +cmd.claim.orbisguard = Ten obszar jest chroniony przez OrbisGuard. +cmd.claim.zone_protected = Ten chunk znajduje się w strefie bezpiecznej lub wojennej. +cmd.claim.insufficient_power = Twoja frakcja nie ma wystarczająco mocy, aby zająć więcej terenu. +cmd.claim.failed = Nie udało się zająć chunka. + +# ========== Komendy - Zaproszenia ========== +cmd.invite.no_permission = Nie masz uprawnień do zapraszania graczy. +cmd.invite.not_officer = Musisz być oficerem, aby zapraszać graczy. +cmd.invite.usage = Użycie: /f invite +cmd.invite.player_not_found = Gracz '{0}' nie został znaleziony lub jest offline. +cmd.invite.target_in_faction = Ten gracz już należy do frakcji. +cmd.invite.sent = Zaproszono {0} do Twojej frakcji. +cmd.invite.received = Otrzymałeś zaproszenie do frakcji {0}! +cmd.invite.accept_hint = Wpisz /f accept {0}, aby dołączyć. + +# ========== Komendy - Akceptacja / Dołączanie ========== +cmd.join.no_permission = Nie masz uprawnień do dołączania do frakcji. +cmd.join.already_in_named = Już należysz do {0}. +cmd.join.use_leave_hint = Użyj /f leave, jeśli chcesz dołączyć do innej frakcji. +cmd.join.no_invites = Nie masz żadnych oczekujących zaproszeń. +cmd.join.faction_not_found = Frakcja '{0}' nie została znaleziona. +cmd.join.not_invited = Nie masz zaproszenia od tej frakcji. +cmd.join.faction_gone = Ta frakcja już nie istnieje. +cmd.join.success = Dołączyłeś do {0}! +cmd.join.broadcast = {0} dołączył(a) do frakcji! +cmd.join.faction_full = Ta frakcja jest pełna. +cmd.join.failed = Nie udało się dołączyć do frakcji. + +# ========== Komendy - Wyrzucanie ========== +cmd.kick.no_permission = Nie masz uprawnień do wyrzucania członków. +cmd.kick.usage = Użycie: /f kick +cmd.kick.not_in_your_faction = Gracz '{0}' nie jest w Twojej frakcji. +cmd.kick.success = Wyrzucono {0} z frakcji. +cmd.kick.broadcast = {0} został(a) wyrzucony(a) z frakcji. +cmd.kick.kicked = Zostałeś wyrzucony z frakcji. +cmd.kick.cannot_kick_higher = Nie masz uprawnień, aby wyrzucić tego gracza. +cmd.kick.cannot_kick_leader = Nie możesz wyrzucić przywódcy frakcji. +cmd.kick.failed = Nie udało się wyrzucić gracza. + +# ========== Komendy - Opuszczanie ========== +cmd.leave.no_permission = Nie masz uprawnień do opuszczenia frakcji. +cmd.leave.confirm_prompt = Czy na pewno chcesz opuścić swoją frakcję? +cmd.leave.confirm_instruction = Wpisz /f leave --text ponownie w ciągu {0} sekund, aby potwierdzić. +cmd.leave.success = Opuściłeś swoją frakcję. +cmd.leave.broadcast = {0} opuścił(a) frakcję. +cmd.leave.failed = Nie udało się opuścić frakcji. +cmd.leave.cancelled = Poprzednie potwierdzenie anulowane. Wpisz ponownie, aby potwierdzić opuszczenie. + +# ========== Komendy - Awans / Degradacja / Przekazanie ========== +cmd.rank.promote_no_permission = Nie masz uprawnień do awansowania członków. +cmd.rank.promote_usage = Użycie: /f promote +cmd.rank.promoted = Awansowano {0} na {1}! +cmd.rank.promote_broadcast = {0} został(a) awansowany(a) na {1}! +cmd.rank.already_highest = Nie można awansować wyżej. Użyj /f transfer, aby zmienić przywódcę. +cmd.rank.promote_failed = Nie udało się awansować gracza. +cmd.rank.demote_no_permission = Nie masz uprawnień do degradowania członków. +cmd.rank.demote_usage = Użycie: /f demote +cmd.rank.demoted = Zdegradowano {0} do {1}. +cmd.rank.demote_broadcast = {0} został(a) zdegradowany(a) do {1}. +cmd.rank.already_lowest = Ten gracz jest już Członkiem. +cmd.rank.demote_failed = Nie udało się zdegradować gracza. +cmd.rank.transfer_no_permission = Nie masz uprawnień do przekazania przywództwa. +cmd.rank.transfer_usage = Użycie: /f transfer +cmd.rank.player_not_in_faction = Nie znaleziono gracza w Twojej frakcji. +cmd.rank.transfer_confirm = Czy na pewno chcesz przekazać przywództwo graczowi {0}? +cmd.rank.transfer_confirm_instruction = Wpisz /f transfer {0} --text ponownie w ciągu {1} sekund, aby potwierdzić. +cmd.rank.transferred = Przywództwo przekazane graczowi {0}! +cmd.rank.transfer_broadcast = {0} jest teraz przywódcą frakcji! +cmd.rank.transfer_failed = Nie udało się przekazać przywództwa. +cmd.rank.transfer_cancelled = Poprzednie potwierdzenie anulowane. Wpisz ponownie, aby potwierdzić przekazanie. + +# ========== Komendy - Zrzeczenie się terenu ========== +cmd.unclaim.no_permission = Nie masz uprawnień do zrzekania się terenu. +cmd.unclaim.success = Zrzeczono się chunka na {0}, {1}. +cmd.unclaim.not_officer = Musisz być oficerem, aby zrzec się terenu. +cmd.unclaim.chunk_not_claimed = Ten chunk nie jest zajęty. +cmd.unclaim.not_your_claim = Twoja frakcja nie posiada tego chunka. +cmd.unclaim.cannot_unclaim_home = Nie można zrzec się chunka z domem frakcji. +cmd.unclaim.would_disconnect = Nie można zrzec się — rozłączyłoby to Twoje terytorium. +cmd.unclaim.failed = Nie udało się zrzec chunka. + +# ========== Komendy - Przejęcie terenu ========== +cmd.overclaim.no_permission = Nie masz uprawnień do przejmowania terenu. +cmd.overclaim.success = Przejęto terytorium wroga! +cmd.overclaim.not_officer = Musisz być oficerem, aby przejmować teren. +cmd.overclaim.not_claimed = Ten chunk nie jest zajęty. Użyj /f claim. +cmd.overclaim.own_chunk = Twoja frakcja już posiada ten chunk. +cmd.overclaim.ally = Nie możesz przejąć terenu sojusznika. +cmd.overclaim.target_has_power = Ta frakcja wciąż ma wystarczająco mocy. +cmd.overclaim.failed = Nie udało się przejąć terenu. + +# ========== Komendy - Utknięcie ========== +cmd.stuck.no_permission = Nie masz uprawnień do użycia /f stuck. +cmd.stuck.not_stuck = Nie utknąłeś — to jest dzicz. +cmd.stuck.combat_tagged = Nie możesz użyć /f stuck podczas walki! +cmd.stuck.no_safe = Nie udało się znaleźć bezpiecznej lokalizacji. +cmd.stuck.teleporting = Teleportacja do bezpiecznego miejsca za {0} sekund. Nie ruszaj się! + +# ========== Komendy - Dom ========== +cmd.home.no_permission = Nie masz uprawnień do teleportacji do domu frakcji. +cmd.home.no_home = Twoja frakcja nie ma ustawionego domu. +cmd.home.combat_tagged = Nie możesz się teleportować podczas walki! +cmd.home.teleported = Przeteleportowano do domu frakcji! + +# ========== Komendy - Ustawianie domu ========== +cmd.sethome.no_permission = Nie masz uprawnień do ustawienia domu frakcji. +cmd.sethome.world_not_allowed = Nie można ustawić domu w tym świecie. +cmd.sethome.not_in_territory = Dom można ustawić tylko na terytorium frakcji. +cmd.sethome.set = Dom frakcji ustawiony! +cmd.sethome.broadcast = {0} ustawił(a) dom frakcji. +cmd.sethome.not_officer = Musisz być oficerem, aby ustawić dom. +cmd.sethome.failed = Nie udało się ustawić domu. + +# ========== Komendy - Usuwanie domu ========== +cmd.delhome.no_permission = Nie masz uprawnień do usunięcia domu frakcji. +cmd.delhome.no_home = Twoja frakcja nie ma ustawionego domu. +cmd.delhome.deleted = Dom frakcji usunięty! +cmd.delhome.broadcast = {0} usunął/usunęła dom frakcji. +cmd.delhome.not_officer = Musisz być oficerem, aby usunąć dom. +cmd.delhome.failed = Nie udało się usunąć domu. + +# ========== Komendy - Relacje (Sojusznik/Wróg/Neutralny/Relacje) ========== +cmd.relation.ally_no_permission = Nie masz uprawnień do zarządzania sojuszami. +cmd.relation.ally_usage = Użycie: /f ally +cmd.relation.ally_sent = Prośba o sojusz wysłana do {0}! +cmd.relation.ally_formed = Jesteście teraz sojusznikami z {0}! +cmd.relation.already_ally = Jesteście już sprzymierzeni z tą frakcją. +cmd.relation.ally_failed = Nie udało się wysłać prośby o sojusz. +cmd.relation.enemy_no_permission = Nie masz uprawnień do ogłaszania wrogów. +cmd.relation.enemy_usage = Użycie: /f enemy +cmd.relation.enemy_declared = {0} jest teraz Twoim wrogiem! +cmd.relation.already_enemy = Jesteście już wrogami z tą frakcją. +cmd.relation.max_enemies = Osiągnąłeś maksymalną liczbę wrogów. +cmd.relation.enemy_failed = Nie udało się ustawić wroga. +cmd.relation.neutral_no_permission = Nie masz uprawnień do ustawiania neutralnych relacji. +cmd.relation.neutral_usage = Użycie: /f neutral +cmd.relation.neutral_set = Twoja frakcja jest teraz neutralna wobec {0}. +cmd.relation.already_neutral = Jesteście już neutralni wobec tej frakcji. +cmd.relation.neutral_failed = Nie udało się ustawić neutralności. +cmd.relation.cannot_self = Nie możesz zawrzeć sojuszu z samym sobą. +cmd.relation.max_allies = Osiągnąłeś maksymalną liczbę sojuszników. +cmd.relation.view_no_permission = Nie masz uprawnień do przeglądania relacji. +cmd.relation.header = === Relacje frakcji === +cmd.relation.allies_count = Sojusznicy ({0}): +cmd.relation.enemies_count = Wrogowie ({0}): +cmd.relation.list_entry = - {0} + +# ========== Komendy - Czat ========== +cmd.chat.usage = Użycie: /f c [f|a|off] +cmd.chat.no_permission = Nie masz uprawnień do tego trybu czatu. +cmd.chat.mode_set = Tryb czatu ustawiony na {0} + +# ========== Komendy - Zaproszenia ========== +cmd.invites.not_officer = Musisz być oficerem, aby zarządzać zaproszeniami. +cmd.invites.header = === Zaproszenia frakcji === +cmd.invites.no_pending = Brak oczekujących zaproszeń lub próśb. +cmd.invites.outgoing = Wysłane zaproszenia: +cmd.invites.outgoing_entry = {0} (zaproszony przez {1}) +cmd.invites.requests = Prośby o dołączenie: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Twoje zaproszenia === +cmd.invites.no_invites = Nie masz żadnych oczekujących zaproszeń. +cmd.invites.invite_entry = {0} - Użyj /f accept {1} + +# ========== Komendy - Prośba o dołączenie ========== +cmd.request.no_permission = Nie masz uprawnień do składania próśb o członkostwo. +cmd.request.already_in_named = Już należysz do {0}. +cmd.request.use_leave_hint = Użyj /f leave, jeśli chcesz dołączyć do innej frakcji. +cmd.request.usage = Użycie: /f request [wiadomość] +cmd.request.faction_open = Ta frakcja jest otwarta! Użyj /f accept {0}, aby dołączyć bezpośrednio. +cmd.request.already_requested = Masz już oczekującą prośbę do tej frakcji. +cmd.request.has_invite = Masz zaproszenie od tej frakcji! Użyj /f accept {0}, aby dołączyć. +cmd.request.sent = Wysłano prośbę o dołączenie do {0}! +cmd.request.your_message = Twoja wiadomość: "{0}" +cmd.request.officer_review = Oficer rozpatrzy Twoją prośbę. +cmd.request.officer_notify = {0} poprosił(a) o dołączenie do Twojej frakcji! +cmd.request.officer_review_hint = Użyj /f gui > Zaproszenia, aby sprawdzić. + +# ========== Komendy - Informacje ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Nie masz uprawnień do przeglądania informacji o frakcji. +cmd.info.faction_not_found = Frakcja '{0}' nie została znaleziona. +cmd.info.not_in_faction_hint = Nie należysz do frakcji. Użyj /f info +cmd.info.leader = Przywódca: {0} +cmd.info.members = Członkowie: {0}/{1} +cmd.info.power = Moc: {0} +cmd.info.claims = Tereny: {0} +cmd.info.raidable = PODATNA NA NAJAZD! +cmd.info.allies = Sojusznicy: {0} +cmd.info.enemies = Wrogowie: {0} +cmd.info.they_consider = Oni uważają Cię za: {0} +cmd.info.you_consider = Ty uważasz ich za: {0} +cmd.info.members_no_permission = Nie masz uprawnień do przeglądania członków frakcji. +cmd.info.members_header = === Członkowie {0} ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Nie masz uprawnień do przeglądania listy frakcji. +cmd.info.list_empty = Nie ma żadnych frakcji. +cmd.info.list_header = === Frakcje ({0}) === +cmd.info.list_entry = {0} - {1} członków, {2} mocy +cmd.info.list_entry_raidable = {0} - {1} członków, {2} mocy [PODATNA NA NAJAZD] +cmd.info.help_no_permission = Nie masz uprawnień do przeglądania pomocy. +cmd.info.who_no_permission = Nie masz uprawnień do przeglądania informacji o graczu. +cmd.info.who_faction = Frakcja: {0} +cmd.info.who_role = Ranga: {0} +cmd.info.who_joined = Dołączył: {0} +cmd.info.who_faction_none = Frakcja: Brak +cmd.info.who_power = Moc: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Ostatnio widziany: {0} +cmd.info.map_no_permission = Nie masz uprawnień do przeglądania mapy. +cmd.info.map_header = === Mapa terytorium === +cmd.info.map_legend = Legenda: +Twoje /Własne /Sojusznik /Wróg -Dzicz +cmd.info.map_gui_hint = Użyj /f gui, aby otworzyć interaktywną mapę + +# ========== Komendy - Moc ========== +cmd.power.personal = Moc osobista: {0}/{1} +cmd.power.faction = Moc frakcji: {0}/{1} +cmd.power.death_loss = Strata przy śmierci: {0} +cmd.power.regen = Szybkość regeneracji: {0}/godz. +cmd.power.no_permission = Nie masz uprawnień do przeglądania informacji o mocy. +cmd.power.header = Moc gracza {0}: +cmd.power.current = Aktualna: {0} + +# ========== Komendy - Ekonomia ========== +cmd.economy.balance = Saldo: {0} +cmd.economy.deposited = Wpłacono {0} do skarbca frakcji. +cmd.economy.withdrawn = Wypłacono {0} ze skarbca frakcji. +cmd.economy.transferred = Przelano {0} do {1}. +cmd.economy.insufficient = Niewystarczające środki w skarbcu frakcji. +cmd.economy.invalid_amount = Nieprawidłowa kwota: {0} +cmd.economy.economy_disabled = Ekonomia jest wyłączona. +cmd.economy.balance_no_permission = Nie masz uprawnień do przeglądania sald. +cmd.economy.treasury_unavailable = Skarbiec jest niedostępny. +cmd.economy.balance_display = Skarbiec {0}: {1} +cmd.economy.deposit_no_permission = Nie masz uprawnień do wpłacania. +cmd.economy.deposit_faction_denied = Nie masz uprawnień frakcyjnych do wpłacania. +cmd.economy.deposit_usage = Użycie: /f deposit +cmd.economy.amount_positive = Kwota musi być dodatnia. +cmd.economy.wallet_insufficient = Nie masz wystarczająco pieniędzy. Portfel: {0} +cmd.economy.wallet_withdraw_failed = Nie udało się pobrać środków z portfela. +cmd.economy.deposit_failed = Nie udało się wpłacić do skarbca frakcji. Pieniądze zwrócone. +cmd.economy.withdraw_no_permission = Nie masz uprawnień do wypłacania. +cmd.economy.withdraw_faction_denied = Nie masz uprawnień frakcyjnych do wypłacania. +cmd.economy.withdraw_usage = Użycie: /f withdraw +cmd.economy.withdraw_limit_denied = Wypłata odrzucona: {0} +cmd.economy.wallet_deposit_failed = Uwaga: Nie udało się wpłacić do Twojego portfela. Skontaktuj się z administratorem. +cmd.economy.withdraw_limit_exceeded = Wypłata odrzucona: przekroczono limit. +cmd.economy.withdraw_failed = Wypłata nieudana: {0} +cmd.economy.transfer_no_permission = Nie masz uprawnień do przelewów. +cmd.economy.transfer_faction_denied = Nie masz uprawnień frakcyjnych do przelewów. +cmd.economy.transfer_usage = Użycie: /f money transfer +cmd.economy.transfer_self = Nie można przelać do własnej frakcji. +cmd.economy.transfer_limit_denied = Przelew odrzucony: {0} +cmd.economy.transfer_limit_exceeded = Przelew odrzucony: przekroczono limit. +cmd.economy.transfer_failed = Przelew nieudany: {0} +cmd.economy.log_no_permission = Nie masz uprawnień do przeglądania dziennika transakcji. +cmd.economy.log_header = Dziennik transakcji (strona {0}/{1}) +cmd.economy.log_empty = Nie znaleziono transakcji. +cmd.economy.money_help_header = Komendy skarbca: +cmd.economy.money_help_balance = /f money balance [frakcja] - Sprawdź saldo +cmd.economy.money_help_deposit = /f money deposit - Wpłać do skarbca +cmd.economy.money_help_withdraw = /f money withdraw - Wypłać ze skarbca +cmd.economy.money_help_transfer = /f money transfer - Przelew między frakcjami +cmd.economy.money_help_log = /f money log [strona] [typ] - Historia transakcji + +# ========== Ochrona - Frazy dotyczące akcji ========== +protection.action.generic = Nie możesz tego zrobić +protection.action.build = Nie możesz budować ani niszczyć bloków +protection.action.interact = Nie możesz z tym interagować +protection.action.door = Nie możesz używać drzwi +protection.action.container = Nie możesz otwierać pojemników +protection.action.bench = Nie możesz używać stacji rzemieślniczych +protection.action.processing = Nie możesz używać stacji przetwórczych +protection.action.seat = Nie możesz używać siedzeń +protection.action.light = Nie możesz przełączać świateł +protection.action.teleporter = Nie możesz używać teleporterów +protection.action.crate = Nie możesz używać skrzyń +protection.action.tame = Nie możesz oswajać stworzeń +protection.action.npc = Nie możesz interagować z NPC +protection.action.mount = Nie możesz dosiadać stworzeń +protection.action.pve = Nie możesz zadawać obrażeń stworzeniom +protection.action.item_drop = Nie możesz upuszczać przedmiotów +protection.action.item_pickup = Nie możesz podnosić przedmiotów + +# ========== Ochrona - Powody odmowy ========== +protection.denied.safezone = {0} w SafeZone. +protection.denied.warzone = {0} w WarZone. +protection.denied.enemy_claim = {0} na terytorium wroga. +protection.denied.claimed = {0} na zajętym terytorium. +protection.denied.here = {0} tutaj. +protection.denied.zone = {0} w tej strefie. +protection.denied.faction_perm = {0} tutaj. (Uprawnienie frakcji: {1}) +protection.denied.ally_territory = {0} tutaj. (Terytorium sojusznika) +protection.denied.error = Błąd ochrony — akcja zablokowana dla bezpieczeństwa. + +# ========== Ochrona - PvP ========== +protection.pvp.safezone = PvP jest wyłączone w SafeZone. +protection.pvp.same_faction = Nie możesz atakować członków frakcji. +protection.pvp.ally = Nie możesz atakować sojuszników. +protection.pvp.spawn_protected = Ten gracz ma ochronę po odrodzeniu. +protection.pvp.territory_disabled = PvP jest wyłączone na tym terytorium. +protection.pvp.generic = Nie możesz zaatakować tego gracza. + +# ========== Ochrona - Obrażenia od istot ========== +protection.mob_damage_disabled = Obrażenia od mobów są wyłączone w tej strefie. +protection.pve_damage_disabled = Obrażenia PvE są wyłączone w tej strefie. +protection.pve_territory_denied = Nie możesz zadawać obrażeń mobom na tym terytorium. + +# ========== Ochrona - Oznaczenie bojowe ========== +protection.combat_tag_command = Nie możesz użyć tej komendy podczas oznaczenia bojowego. + +# ========== Ogłoszenia serwera ========== +# Transmitowane do wszystkich graczy online przy ważnych wydarzeniach frakcji. +# {0}, {1} = wartości dynamiczne (nazwy frakcji, nazwy graczy) +server_announce.faction_created = {0} założył(a) frakcję {1}! +server_announce.faction_disbanded = Frakcja {0} została rozwiązana! +server_announce.leadership_transfer = {0} jest teraz przywódcą {1}! +server_announce.overclaim = {0} przejął(ęła) terytorium od {1}! +server_announce.war_declared = {0} wypowiedział(a) wojnę {1}! +server_announce.alliance_formed = {0} i {1} są teraz sojusznikami! +server_announce.alliance_broken = {0} i {1} nie są już sojusznikami! + +# ========== System teleportacji ========== +teleport.cooldown_wait = Musisz poczekać {0} przed ponowną teleportacją. +teleport.warmup_start = Teleportacja do domu frakcji za {0} sekund... +teleport.combat_cancelled = Teleportacja anulowana — jesteś w walce! +teleport.success_default = Przeteleportowano do domu frakcji! +teleport.no_home = Twoja frakcja nie ma ustawionego domu. +teleport.world_not_found = Nie znaleziono świata. +teleport.failed = Teleportacja nieudana. +teleport.countdown = Teleportacja za {0} sekund... +teleport.countdown_one = Teleportacja za 1 sekundę... +teleport.moved_cancelled = Teleportacja anulowana — ruszyłeś się! +teleport.damage_cancelled = Teleportacja anulowana — otrzymałeś obrażenia! +teleport.mount_teleport_blocked = Nie możesz teleportować się do tej strefy na wierzchowcu. +teleport.mount_entry_blocked = Nie możesz wejść do tej strefy na wierzchowcu. + +# ========== Wyświetlanie czatu ========== +chat.display.public = Publiczny +chat.display.faction = Frakcja +chat.display.ally = Sojusznik diff --git a/src/main/resources/Server/Languages/pl-PL/hyperfactions_admin.lang b/src/main/resources/Server/Languages/pl-PL/hyperfactions_admin.lang new file mode 100644 index 00000000..cc9395c8 --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Polskie tłumaczenie +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule + +# ========== Pasek nawigacji admina ========== +nav.dashboard = Pulpit +nav.actions = Akcje +nav.factions = Frakcje +nav.players = Gracze +nav.economy = Ekonomia +nav.zones = Strefy +nav.config = Konfiguracja +nav.backups = Kopie zapasowe +nav.log = Dziennik +nav.updates = Aktualizacje +nav.help = Pomoc +nav.version = Wersja + +# ========== Wspólne etykiety admina ========== +common.faction_not_found = Nie znaleziono frakcji +common.no_faction = Brak frakcji +common.not_set = Nie ustawiono +common.on = Wł. +common.off = Wył. +common.enable = Włącz +common.disable = Wyłącz +common.none_paren = (Brak) +common.invalid_faction = Nieprawidłowa frakcja. +common.leader_prefix = Przywódca: {0} +common.members_suffix = {0} członków +common.claims_suffix = {0} terenów +common.factions_suffix = {0} frakcji +common.players_suffix = {0} graczy +common.chunks_suffix = {0} chunków +common.entries_suffix = {0} wpisów +common.found_suffix = {0} znaleziono +common.power_format = {0}/{1} mocy +common.raidable = Podatna na najazd +common.protected = Chroniona +common.no_description = Brak opisu. +common.officers_more = +{0} więcej +common.custom_max = (niestandardowe maks.) +common.default_max = (domyślne maks.) +common.now = Teraz +common.ago_suffix = {0} temu +common.just_now = przed chwilą +common.no_membership_history = Brak historii członkostwa + +# ========== Pulpit admina ========== +dashboard.factions_prefix = Frakcje: {0} +dashboard.members_prefix = Łączna liczba członków: {0} +dashboard.claims_prefix = Łączna liczba terenów: {0} + +# ========== Akcje admina ========== +actions.confirm_reset = Potwierdzić reset? +actions.confirm_trigger = Potwierdzić uruchomienie? +actions.kd_reset = Zresetowano Z/Ś dla {0} graczy. +actions.kd_reset_failed = Nie udało się zresetować Z/Ś: {0} +actions.upkeep_unavailable = Procesor utrzymania jest niedostępny. +actions.upkeep_triggered = Pobór utrzymania uruchomiony. +actions.upkeep_failed = Utrzymanie nieudane: {0} + +# ========== Rozwiązywanie przez admina ========== +disband.faction_gone = Frakcja już nie istnieje. +disband.success = Frakcja '{0}' została rozwiązana. +disband.failed = Nie udało się rozwiązać: {0} +disband.no_leader = Frakcja nie ma przywódcy, nie można rozwiązać. + +# ========== Usuwanie wszystkich terenów przez admina ========== +unclaim.removed = [Admin] Usunięto {0} terenów z {1}. +unclaim.no_claims = {0} nie miała terenów do usunięcia. + +# ========== Lista frakcji admina ========== +factions.home_not_set = Nie ustawiony +factions.teleported = Przeteleportowano do domu {0}. +factions.no_home = Frakcja nie ma ustawionego domu. +factions.world_not_found = Nie znaleziono docelowego świata. + +# ========== Informacje o frakcji admina ========== +info.faction_gone = Ta frakcja już nie istnieje. + +# ========== Członkowie frakcji admina ========== +members.sort_role = Ranga +members.sort_online = Online +members.sort_name = Nazwa +members.sort_power = Moc +members.promoted = [Admin] Awansowano {0} na {1}. +members.demoted = [Admin] Zdegradowano {0} do {1}. +members.kicked = [Admin] Wyrzucono {0} z frakcji. + +# ========== Relacje frakcji admina ========== +relations.allies_header = SOJUSZNICY ({0}) +relations.enemies_header = WROGOWIE ({0}) +relations.no_allies = Brak sojuszników. +relations.no_enemies = Brak wrogów. +relations.neutral_count = {0} neutralnych frakcji +relations.since_today = Od: dzisiaj +relations.since_one_day = Od: 1 dzień temu +relations.since_days = Od: {0} dni temu +relations.set_ally = [Admin] Ustawiono wzajemny sojusz z {0}. +relations.set_enemy = Ustawiono wzajemną wrogość z {0}. +relations.set_neutral = [Admin] Ustawiono wzajemną neutralność z {0}. + +# ========== Ustawienia frakcji admina ========== +settings.locked = To ustawienie jest zablokowane przez konfigurację serwera. +settings.perm_toggled = Ustawiono {0} na {1}. +settings.color_changed = Ustawiono kolor frakcji na {0}. +settings.recruitment_set = Ustawiono rekrutację na {0}. +settings.no_home = [Admin] Ta frakcja nie ma ustawionego domu. +settings.home_cleared = Usunięto dom frakcji {0}. + +# ========== Etykiety sortowania ========== +sort.power = Moc +sort.name = Nazwa +sort.members = Członkowie +sort.balance = Saldo + +# ========== Gracze admina ========== +players.sort_last_online = Ostatnio online +players.sort_faction = Frakcja +players.sort_online = Online +players.not_online = Gracz nie jest online. +players.world_not_found = Nie znaleziono docelowego świata. +players.teleported = [Admin] Przeteleportowano do {0}. + +# ========== Informacje o graczu admina ========== +playerinfo.disband_faction = Rozwiąż frakcję +playerinfo.kick_leader = Wyrzuć przywódcę +playerinfo.enter_valid_number = Wprowadź prawidłową liczbę. +playerinfo.enter_valid_positive = Wprowadź prawidłową dodatnią liczbę. +playerinfo.faction_gone = Frakcja już nie istnieje. +playerinfo.kd_reset = Zresetowano Z/Ś dla {0}. +playerinfo.kicked_success = Wyrzucono {0} z {1}. +playerinfo.kicked_leader = Wyrzucono przywódcę {0}. Przywództwo przekazane graczowi {1}. +playerinfo.disbanded_kick = [Admin] Frakcja '{0}' rozwiązana (wyrzucono ostatniego członka). + +# ========== Ekonomia admina ========== +economy.no_data = Brak frakcji z danymi ekonomicznymi. +economy.amount_zero = Kwota nie może wynosić zero. +economy.enter_amount = Wprowadź kwotę. +economy.invalid_number = Nieprawidłowa liczba: {0} +economy.error = Wystąpił błąd. +economy.balance_negative = Saldo nie może być ujemne. +economy.failed = Niepowodzenie: {0} +economy.bulk_complete = Zbiorcza korekta zakończona: {0} {1} dla {2} frakcji. +economy.bulk_failures = ({0} nieudanych) + +# ========== Strefy admina ========== +zones.not_found = Nie znaleziono strefy. +zones.invalid_id = Nieprawidłowy identyfikator strefy. +zones.deleted = Strefa {0} usunięta. +zones.delete_failed = Nie udało się usunąć strefy: {0} +zones.no_chunks = Brak chunków +zones.chunks_suffix = {0} ({1} chunków) + +# ========== Kreator tworzenia stref ========== +wizard.enter_name = Wprowadź nazwę strefy. +wizard.name_too_short = Nazwa strefy musi mieć co najmniej {0} znaków. +wizard.name_too_long = Nazwa strefy nie może przekraczać {0} znaków. +wizard.name_taken = Strefa o tej nazwie już istnieje. +wizard.radius_range = Promień musi być między 1 a {0}. +wizard.create_failed = Nie udało się utworzyć strefy: {0} +wizard.created_not_found = Strefa utworzona, ale nie udało się jej znaleźć. +wizard.created = Utworzono {0} '{1}'! +wizard.chunk_claimed = Zajęto chunk ({0}, {1}). +wizard.chunk_failed = Nie udało się zająć bieżącego chunka: {0} +wizard.radius_claimed = Zajęto {0} chunków w promieniu {1} od {2}. +wizard.radius_no_claims = Nie udało się zająć żadnych chunków (obszar może być zajęty). +wizard.no_claims = Strefa utworzona bez terenów. +wizard.chunks_preview = ~{0} chunków + +# ========== Zmiana nazwy strefy ========== +zone_rename.zone_gone = Strefa już nie istnieje. +zone_rename.enter_name = Wprowadź nazwę strefy. +zone_rename.too_short = Nazwa strefy musi mieć co najmniej {0} znak. +zone_rename.too_long = Nazwa strefy nie może przekraczać {0} znaków. +zone_rename.same_name = To już jest nazwa tej strefy. +zone_rename.renamed = [Admin] Zmieniono nazwę strefy z {0} na {1}! +zone_rename.name_taken = Strefa o tej nazwie już istnieje. +zone_rename.invalid_name = Nieprawidłowa nazwa strefy. +zone_rename.rename_failed = Nie udało się zmienić nazwy strefy: {0} + +# ========== Zmiana typu strefy ========== +zone_type.zone_gone = Strefa już nie istnieje. +zone_type.changed = [Admin] Zmieniono {0} z {1} na {2} ({3}). +zone_type.failed = Nie udało się zmienić typu strefy: {0} +zone_type.flags_reset = flagi zresetowane +zone_type.flags_kept = flagi zachowane + +# ========== Flagi integracji stref ========== +zone_int.zone_not_found = Nie znaleziono strefy +zone_int.no_plugin = (brak wtyczki) +zone_int.default = (domyślne) +zone_int.custom = (niestandardowe) + +# Etykiety interfejsu flag integracji +gui.zint_cat_gravestones = Nagrobki +gui.zint_gravestones_desc = Gdy WŁ., nie-właściciele mogą plądrować groby. Właściciele zawsze mogą. +gui.zint_cat_world_map = Mapa świata +gui.zint_world_map_desc = Nadpisz ukrywanie na mapie dla graczy w tej strefie. Gdy włączone, wybierz kto widzi graczy w tej strefie. +gui.zint_visibility_label = Poziom widoczności: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Przywróć domyślne +gui.zint_back_to_flags = Powrót do flag +gui.zint_map_vis_faction = Tylko frakcja +gui.zint_map_vis_ally = Frakcja + Sojusznicy +gui.zint_map_vis_all = Wszyscy gracze + +# ========== Dziennik aktywności ========== +log.all_types = Wszystkie typy +log.no_logs = Brak logów aktywności pasujących do filtrów. + +# ========== Strona wersji ========== +version.active = Aktywny +version.not_found = Nie znaleziono +version.not_detected = Nie wykryto +version.not_installed = Nie zainstalowano +version.active_version = Aktywny (v{0}) +version.active_compatible = Aktywny (kompatybilny) +version.active_claims_only = Aktywny (tylko tereny) +version.installed_no_perm = Zainstalowany (brak dostawcy uprawnień) +version.active_provider = Aktywny ({0}) + +# ========== Strona główna admina ========== +main.reload_hint = Użyj /f reload, aby przeładować konfigurację. +main.unclaim_hint = Użyj /f admin unclaim {0}, aby usunąć wszystkie {1} chunków. + +# ========== Flagi/Ustawienia stref ========== +zflags.invalid_flag = Nieprawidłowa flaga. +zflags.zone_not_found = Nie znaleziono strefy. +zflags.conflict = (konflikt) +zflags.mixin = (mixin) +zflags.reset_int = Przywróć flagi integracji do domyślnych. +zflags.reset_all = Przywróć wszystkie flagi do domyślnych. +zflags.reset_failed = Nie udało się zresetować flag: {0} +zflags.back_to_settings = Powrót do ustawień + +# Etykiety interfejsu ustawień stref +gui.zset_cat_combat = Walka +gui.zset_cat_damage = Obrażenia +gui.zset_cat_death = Śmierć +gui.zset_cat_building = Budowanie +gui.zset_cat_interaction = Interakcja +gui.zset_cat_transport = Transport +gui.zset_cat_items = Przedmioty +gui.zset_cat_spawning = Pojawianie się mobów +gui.zset_cat_mob_clear = Czyszczenie mobów +gui.zset_children_hint = (podrzędne obowiązują tylko gdy nadrzędne jest WŁ.) +gui.zset_reset_defaults = Przywróć domyślne +gui.zset_integration_flags = Flagi integracji +gui.zset_back_to_zones = Powrót do stref +gui.zset_chunks = {0} chunków + +# Nazwy wyświetlane flag stref +gui.zflag_pvp_enabled = PvP włączone +gui.zflag_friendly_fire = Ogień przyjacielski +gui.zflag_friendly_fire_faction = Obrażenia frakcji +gui.zflag_friendly_fire_ally = Obrażenia sojusznika +gui.zflag_projectile_damage = Obrażenia od pocisków +gui.zflag_mob_damage = Obrażenia od mobów +gui.zflag_pve_damage = Obrażenia mobom +gui.zflag_fall_damage = Obrażenia od upadku +gui.zflag_environmental_damage = Obrażenia środowiskowe +gui.zflag_explosion_damage = Obrażenia od eksplozji +gui.zflag_fire_spread = Rozprzestrzenianie ognia +gui.zflag_keep_inventory = Zachowaj ekwipunek +gui.zflag_power_loss = Utrata mocy +gui.zflag_build_allowed = Budowanie dozwolone +gui.zflag_block_place = Stawianie bloków +gui.zflag_hammer_use = Użycie młotka +gui.zflag_builder_tools_use = Narzędzia budowniczego +gui.zflag_block_interact = Interakcja z blokami +gui.zflag_door_use = Użycie drzwi +gui.zflag_container_use = Użycie pojemników +gui.zflag_bench_use = Użycie stacji +gui.zflag_processing_use = Użycie przetwórni +gui.zflag_seat_use = Użycie siedzeń +gui.zflag_mount_use = Użycie wierzchowców +gui.zflag_light_use = Użycie świateł +gui.zflag_npc_use = Interakcja z NPC +gui.zflag_crate_pickup = Podnoszenie skrzyń +gui.zflag_crate_place = Stawianie skrzyń +gui.zflag_npc_tame = Oswajanie NPC +gui.zflag_npc_interact = Interakcja z NPC +gui.zflag_teleporter_use = Użycie teleporterów +gui.zflag_portal_use = Użycie portali +gui.zflag_mount_entry = Wejście na wierzchowca +gui.zflag_item_drop = Upuszczanie przedmiotów +gui.zflag_item_pickup = Automatyczne podnoszenie +gui.zflag_item_pickup_manual = Podnoszenie klawiszem F +gui.zflag_invincible_items = Niezniszczalne przedmioty +gui.zflag_mob_spawning = Pojawianie się mobów +gui.zflag_hostile_mob_spawning = Wrogie moby +gui.zflag_passive_mob_spawning = Przyjazne moby +gui.zflag_neutral_mob_spawning = Neutralne moby +gui.zflag_npc_spawning = Pojawianie się NPC +gui.zflag_mob_clear = Czyszczenie mobów +gui.zflag_hostile_mob_clear = Czyszczenie wrogich mobów +gui.zflag_passive_mob_clear = Czyszczenie przyjaznych mobów +gui.zflag_neutral_mob_clear = Czyszczenie neutralnych mobów +gui.zflag_gravestone_access = Plądrowanie grobów +gui.zflag_show_on_map = Pokaż na mapie +gui.zflag_essentials_homes = Użycie domów +gui.zflag_essentials_warps = Użycie warpów +gui.zflag_essentials_kits = Odbieranie zestawów + +# ========== Właściwości stref ========== +zprop.current_custom = Aktualna: "{0}" (niestandardowa) +zprop.current_default = Aktualna: "{0}" (domyślna) +zprop.pvp_disabled = PvP wyłączone +zprop.pvp_enabled = PvP włączone +zprop.name_empty = Nazwa nie może być pusta. +zprop.renamed = Zmieniono nazwę strefy na "{0}". +zprop.name_taken = Strefa o tej nazwie już istnieje. +zprop.name_invalid = Nieprawidłowa nazwa (maks. 32 znaki). +zprop.rename_failed = Nie udało się zmienić nazwy: {0} +zprop.upper_empty = Górny tytuł nie może być pusty. Użyj Wyczyść, aby zresetować. +zprop.upper_set = Górny tytuł ustawiony. +zprop.upper_reset = Górny tytuł przywrócony do domyślnego. +zprop.lower_empty = Dolny tytuł nie może być pusty. Użyj Wyczyść, aby zresetować. +zprop.lower_set = Dolny tytuł ustawiony. +zprop.lower_reset = Dolny tytuł przywrócony do domyślnego. + +# ========== Relacje - dodatkowe ========== +relations.failed = Niepowodzenie: {0} + +# ========== Członkowie - dodatkowe ========== +members.never = Nigdy +members.teleported = [Admin] Przeteleportowano do {0}. + +# ========== Informacje o graczu - dodatkowe ========== +playerinfo.records = {0} wpisów +playerinfo.joined_date = Dołączył: {0} +playerinfo.current = Aktualna +playerinfo.left_date = Odszedł: {0} + +# ========== Mapa stref ========== +map.world_warning = UWAGA: Jesteś w '{0}' — strefa jest w '{1}' +map.position = Twoja pozycja: Chunk ({0}, {1}) +map.zone_gone = Strefa już nie istnieje. +map.claimed = Zajęto chunk ({0}, {1}) dla {2}. +map.claim_failed = Nie udało się zająć chunka: {0} +map.unclaimed = Zrzeczono się chunka ({0}, {1}) z {2}. +map.unclaim_failed = Nie udało się zrzec chunka: {0} +map.chunk_belongs = Ten chunk należy do {0}. +map.chunk_faction = Ten chunk jest zajęty przez frakcję. +map.chunk_protected = Ten chunk jest w chronionym regionie. +map.another_zone = inna strefa + +# ========== Klucze etykiet GUI (lokalizacja tekstu .ui) ========== + +# Tytuły stron +gui.title_dashboard = Pulpit admina +gui.title_main = Admin frakcji +gui.title_actions = Admin: Akcje serwera +gui.title_factions = Zarządzanie frakcjami +gui.title_players = Zarządzanie graczami +gui.title_economy = Admin: Ekonomia serwera +gui.title_zones = Zarządzanie strefami +gui.title_backups = Kopie zapasowe +gui.title_config = Konfiguracja +gui.title_help = Pomoc admina +gui.title_updates = Aktualizacje +gui.title_version = Wersja i integracje +gui.title_activity_log = Admin: Dziennik aktywności +gui.title_player_info = Admin: Informacje o graczu +gui.title_faction_info = Admin: Informacje o frakcji +gui.title_faction_settings = Admin: Ustawienia frakcji +gui.title_faction_members = Admin: Członkowie +gui.title_faction_relations = Admin: Relacje +gui.title_zone_map = Edytor mapy stref +gui.title_zone_settings = Admin: Ustawienia strefy +gui.title_zone_properties = Admin: Właściwości strefy +gui.title_bulk_economy = Zbiorcza korekta skarbca +gui.title_economy_adjust = Admin: Ekonomia + +# Etykiety pulpitu +gui.dash_server_stats = Statystyki serwera +gui.dash_factions = Frakcje +gui.dash_total_members = Łącznie członków +gui.dash_total_claims = Łącznie terenów +gui.dash_zones = Strefy +gui.dash_safe_war = bezpieczne / wojenne +gui.dash_total_power = Łączna moc +gui.dash_avg_power = Średnia moc/frakcja +gui.dash_total_economy = Łączna ekonomia +gui.dash_wealthiest = Najbogatsza +gui.dash_avg_balance = Średnie saldo +gui.dash_protection_bypass = Ominięcie ochrony: + +# Wspólne przyciski i etykiety +gui.search = Szukaj: +gui.sort = Sortuj: +gui.prev = < Poprz. +gui.next = Nast. > +gui.back = Wstecz +gui.done = Gotowe +gui.cancel = Anuluj +gui.apply = Zastosuj +gui.set = Ustaw +gui.reset = Resetuj +gui.coming_soon = Wkrótce +gui.zones_btn = Strefy +gui.reload_btn = Przeładuj +gui.all = Wszystko +gui.safe = Bezpieczna +gui.war = Wojenna +gui.create_zone = + Utwórz + +# Etykiety strony akcji +gui.act_combat_stats = Statystyki walki +gui.act_combat_desc = Zresetuj zabójstwa i śmierci dla WSZYSTKICH graczy na serwerze. Ta akcja nie może być cofnięta. +gui.act_reset_kd = Resetuj wszystkie Z/Ś +gui.act_economy = Ekonomia +gui.act_economy_desc = Dodaj lub usuń pieniądze ze WSZYSTKICH skarbców frakcji naraz. +gui.act_bulk_adjust = Zbiorcze dodawanie/usuwanie +gui.act_upkeep_collection = Pobór utrzymania +gui.act_upkeep_desc = Ręcznie uruchom pobór utrzymania dla wszystkich frakcji natychmiast, niezależnie od zaplanowanego harmonogramu. +gui.act_trigger_upkeep = Uruchom utrzymanie + +# Etykiety stron zastępczych +gui.backup_heading = Zarządzanie kopiami zapasowymi +gui.backup_desc1 = Tworzenie, przywracanie i zarządzanie kopiami danych frakcji. +gui.backup_desc2 = Automatyczne kopie zapasowe zapisywane są w folderze data/backups. +gui.config_heading = Edytor konfiguracji +gui.config_desc1 = Konfiguruj ustawienia HyperFactions bezpośrednio z GUI. +gui.config_desc2 = Na razie użyj /f reload, aby przeładować zmiany konfiguracji. +gui.help_heading = Dokumentacja admina +gui.help_desc1 = Przeglądaj dokumentację admina i opis komend. +gui.help_desc2 = Po pomoc odwiedź wiki HyperFactions. +gui.updates_heading = Centrum aktualizacji +gui.updates_desc1 = Sprawdzaj nowe wersje i przeglądaj dzienniki zmian. +gui.updates_desc2 = Odwiedź stronę HyperFactions, aby uzyskać najnowsze aktualizacje. + +# Etykiety strony wersji +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Serwer Hytale +gui.ver_java = Java +gui.ver_permissions = UPRAWNIENIA +gui.ver_placeholders = ZMIENNE +gui.ver_economy_section = EKONOMIA +gui.ver_protection = OCHRONA +gui.ver_disabled = Wyłączone + +# Nagłówki kolumn (wspólne dla stron) +gui.col_faction = Frakcja +gui.col_balance = Saldo +gui.col_members = Członkowie +gui.col_actions = Akcje +gui.col_time = Czas +gui.col_type = Typ +gui.col_message = Wiadomość + +# Etykiety strony ekonomii +gui.econ_total_balance = Łączne saldo +gui.econ_factions = Frakcje +gui.econ_avg_balance = Średnie saldo +gui.econ_in_grace = W karencji +gui.econ_collected = Pobrane (24h) +gui.econ_next_collection = Następny pobór +gui.econ_no_data = Brak frakcji z danymi ekonomicznymi. + +# Etykiety dziennika aktywności +gui.log_type = Typ: +gui.log_time = Czas: +gui.log_player = Gracz: +gui.log_no_logs = Brak logów aktywności pasujących do filtrów. + +# Etykiety informacji o graczu +gui.plr_first_joined = Pierwszy raz dołączył: +gui.plr_last_online = Ostatnio online: +gui.plr_uuid = UUID: +gui.plr_faction = Frakcja: +gui.plr_role = Ranga: +gui.plr_view_faction = Pokaż frakcję +gui.plr_power = Moc +gui.plr_max_power = Maks. moc +gui.plr_set_power = Ustaw +gui.plr_reset_power = Resetuj +gui.plr_set_max = Ustaw +gui.plr_reset_max = Resetuj +gui.plr_no_power_loss = Bez utraty mocy +gui.plr_no_claim_decay = Bez rozpadu terenów +gui.plr_kills = Zabójstwa +gui.plr_deaths = Śmierci +gui.plr_kdr = Współczynnik Z/Ś +gui.plr_reset_kd = Resetuj Z/Ś +gui.plr_kick = Wyrzuć +gui.plr_membership_history = Historia członkostwa +gui.plr_no_faction_label = Nie należy do frakcji +gui.plr_power_management = Zarządzanie mocą +gui.plr_combat_stats = Statystyki walki +gui.plr_bypass_flags = Flagi ominięcia +gui.plr_admin_controls = Kontrolki admina +gui.plr_kd_subtitle = Z / Ś +gui.plr_max_prefix = Maks.: +gui.plr_view = Pokaż +gui.plr_kick_from_faction = Wyrzuć z frakcji +gui.plr_set_max_btn = Ustaw maks. +gui.plr_combat = Walka +gui.plr_reason_active = AKTYWNY +gui.plr_reason_left = ODSZEDŁ +gui.plr_reason_kicked = WYRZUCONY +gui.plr_reason_disbanded = ROZWIĄZANA + +# Etykiety wpisów członków +gui.mem_label_power = Moc: +gui.mem_label_joined = Dołączył: +gui.mem_label_last_death = Ostatnia śmierć: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Informacje +gui.mem_btn_teleport = Teleportuj +gui.mem_btn_promote = Awansuj +gui.mem_btn_demote = Degraduj +gui.mem_btn_kick = Wyrzuć +gui.econ_not_enabled = System ekonomiczny nie jest włączony. +gui.info_more = +{0} więcej +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7d +gui.log_time_all = Wszystko +gui.shape_circular = kołowy +gui.shape_square = kwadratowy +gui.nav_title = Panel admina +gui.econ_btn_adjust = Korekta +gui.econ_btn_info = Informacje + +# Etykiety informacji o frakcji +gui.fac_description = Opis +gui.fac_power = Moc +gui.fac_claims = Tereny +gui.fac_members = Członkowie +gui.fac_recruitment = Rekrutacja +gui.fac_founded = Założona +gui.fac_allies = Sojusznicy +gui.fac_enemies = Wrogowie +gui.fac_raidable = Status podatności na najazd +gui.fac_treasury = Skarbiec +gui.fac_leader = Przywódca +gui.fac_officers = Oficerowie +gui.fac_view_members = Pokaż członków +gui.fac_view_relations = Pokaż relacje +gui.fac_view_settings = Ustawienia +gui.fac_disband = Rozwiąż frakcję +gui.fac_power_management = Zarządzanie mocą +gui.fac_reset_all_power = Resetuj całą moc +gui.fac_econ_adjust = Korekta salda +gui.fac_econ_view_log = Pokaż dziennik transakcji +gui.fac_current_max = aktualna / maks. +gui.fac_claimed_max = zajęte / maks. +gui.fac_relations = Relacje +gui.fac_ally_enemy = sojusznik / wróg +gui.fac_status = Status +gui.fac_info = Informacje +gui.fac_treasury_balance = saldo skarbca +gui.fac_leadership = Przywództwo +gui.fac_leader_label = Przywódca: +gui.fac_officers_label = Oficerowie: +gui.fac_econ_mgmt = Zarządzanie ekonomią +gui.fac_danger_zone = Strefa zagrożenia +gui.fac_view_treasury = Pokaż skarbiec + +# Etykiety ustawień frakcji +gui.set_editing = Edycja: +gui.set_general = Ustawienia ogólne +gui.set_name = Nazwa +gui.set_tag = Tag +gui.set_description = Opis +gui.set_recruitment = Rekrutacja +gui.set_home = Lokalizacja domu +gui.set_clear_home = Wyczyść dom +gui.set_disband_faction = Rozwiąż frakcję +gui.set_faction_color = Kolor frakcji +gui.set_admin_override = [Nadpisanie admina] +gui.set_territory_perms = Uprawnienia terytorialne +gui.set_mob_spawning = Pojawianie się mobów +gui.set_faction_settings = Ustawienia frakcji +gui.set_name_label = Nazwa: +gui.set_tag_label = Tag: +gui.set_desc_label = Opis: +gui.set_edit = Edytuj +gui.set_status_label = Status: +gui.set_location_label = Lokalizacja: +gui.set_danger_zone = Strefa zagrożenia +gui.set_irreversible = Ta akcja jest nieodwracalna. +gui.set_lock_hint = Niektóre opcje mogą być zablokowane przez serwer i nie przyjmą zmian. +gui.set_appearance = Wygląd +gui.set_color_label = Kolor: +gui.set_mob_sub = (podrzędne wyłączone gdy główne jest wyłączone) +gui.set_back_to_info = Powrót do informacji +gui.set_col_out = Obcy +gui.set_col_ally = Sojusz. +gui.set_col_mem = Człon. +gui.set_col_off = Ofi. +gui.set_cat_building = BUDOWANIE +gui.set_cat_interaction = INTERAKCJA +gui.set_cat_interact_sub = (podrzędne wyłączone gdy Wszystko jest wyłączone) +gui.set_cat_other = INNE +gui.set_perm_break = Niszczenie +gui.set_perm_place = Stawianie +gui.set_perm_all = Wszystko +gui.set_perm_door = Drzwi +gui.set_perm_chest = Skrzynia +gui.set_perm_bench = Stacja +gui.set_perm_processing = Przetwarzanie +gui.set_perm_seat = Siedzenie +gui.set_perm_transport = Transport +gui.set_perm_crate_use = Skrzynie +gui.set_perm_npc_tame = Oswajanie NPC +gui.set_perm_pve_damage = Obrażenia PvE +gui.set_perm_mob_spawning = Pojawianie się mobów +gui.set_perm_hostile = Wrogie moby +gui.set_perm_passive = Przyjazne moby +gui.set_perm_neutral = Neutralne moby +gui.set_perm_pvp = PvP na terytorium +gui.set_perm_officers_edit = Oficerowie mogą edytować + +# Etykiety relacji frakcji +gui.rel_subtitle = Zarządzaj relacjami frakcji (pomija zatwierdzanie) +gui.rel_set_new = Ustaw nową relację +gui.rel_btn_ally = Sojusznik +gui.rel_btn_neutral = Neutralny +gui.rel_btn_enemy = Wróg + +# Etykiety strony stref +gui.zone_sort_name = Nazwa +gui.zone_sort_type = Typ +gui.zone_sort_chunks = Chunki +gui.zone_sort_world = Świat +gui.zone_count_format = {0} {1}stref ({2} chunków) + +# Etykiety mapy stref +gui.map_zone_chunk = Chunk strefy +gui.map_empty = Pusty +gui.map_other_zone = Inna strefa +gui.map_faction_claim = Teren frakcji +gui.map_protected = Chroniony +gui.map_your_pos = Twoja pozycja +gui.map_click_hint = Kliknij, aby zajmować/zrzekać się chunków +gui.map_legend_zone_safe = Ta strefa (Bezpieczna) +gui.map_legend_zone_war = Ta strefa (Wojenna) +gui.map_legend_other_safe = Inna SafeZone +gui.map_legend_other_war = Inna WarZone +gui.map_legend_faction = Teren frakcji +gui.map_legend_unclaimed = Niezajęty +gui.map_legend_you_here = Jesteś tutaj +gui.map_action_hint = Lewy klik: Zajmij dla strefy | Prawy klik: Zrzecz się ze strefy +gui.map_done = Gotowe + +# Etykiety właściwości stref +gui.zprop_general = Ogólne +gui.zprop_zone_name = Nazwa strefy +gui.zprop_zone_type = Typ strefy +gui.zprop_change_type = Zmień typ +gui.zprop_notifications = Powiadomienia +gui.zprop_show_entry = Pokaż powiadomienie o wejściu +gui.zprop_upper_title = Górny tytuł +gui.zprop_upper_desc = Górny tytuł (mały tekst nad nazwą strefy) +gui.zprop_lower_title = Dolny tytuł +gui.zprop_lower_desc = Dolny tytuł (duży tekst nazwy strefy) +gui.zprop_edit_flags = Edytuj flagi +gui.zprop_back_to_zones = Powrót do stref +gui.save = Zapisz +gui.clear = Wyczyść + +# Etykiety zbiorczej ekonomii +gui.bulk_header = Korekta wszystkich skarbców frakcji +gui.bulk_factions_label = Frakcje: +gui.bulk_total_label = Łączne saldo: +gui.bulk_amount_hint = Kwota (dodatnia, aby dodać; ujemna, aby usunąć): +gui.bulk_hint = Zostanie zastosowane do każdej frakcji ze skarbcem +gui.bulk_warning_msg = Uwaga: Ta akcja dotyczy WSZYSTKICH frakcji i nie może być cofnięta. +gui.bulk_apply_all = Zastosuj do wszystkich +gui.bulk_operation = Operacja +gui.bulk_add = Dodaj +gui.bulk_remove = Usuń +gui.bulk_amount = Kwota +gui.bulk_warning = Dotyczy WSZYSTKICH skarbców frakcji. +gui.bulk_preview = Podgląd + +# Etykiety korekty ekonomii +gui.ecadj_header = Korekta salda skarbca +gui.ecadj_faction_label = Frakcja: +gui.ecadj_current_balance = Aktualne saldo: +gui.ecadj_amount_hint = Kwota (dodatnia, aby dodać; ujemna, aby odjąć): +gui.ecadj_preview_hint = Wprowadź liczbę, aby zobaczyć podgląd zmiany +gui.ecadj_adjustment = Korekta: +gui.ecadj_set_balance = Ustaw saldo +gui.ecadj_confirm = Potwierdź +/- +gui.ecadj_operation = Operacja +gui.ecadj_add = Dodaj +gui.ecadj_remove = Usuń +gui.ecadj_set_to = Ustaw na +gui.ecadj_amount = Kwota +gui.ecadj_new_balance = Nowe saldo: + +# Etykiety integracji strony wersji +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale natywne +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Hooki mixinów +gui.ver_gravestones = Nagrobki +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Skarbiec + +# Etykiety okna potwierdzenia usuwania terenów +gui.unclaim_title = Usuń wszystkie tereny +gui.unclaim_confirm_msg1 = Czy na pewno chcesz usunąć wszystkie +gui.unclaim_confirm_msg2 = z +gui.unclaim_warning = Ta akcja nie może być cofnięta! +gui.unclaim_all = Usuń wszystkie + +# Etykiety okna zmiany nazwy strefy +gui.zren_title = Zmień nazwę strefy +gui.zren_current = Aktualna: +gui.zren_new_name = Nowa nazwa: + +# Etykiety okna zmiany typu strefy +gui.ztype_title = Zmień typ strefy +gui.ztype_zone_label = Strefa: +gui.ztype_current = Aktualny: +gui.ztype_will_become = zmieni się na +gui.ztype_new = Nowy: +gui.ztype_warning1 = Różne typy stref mają różne domyślne wartości flag. +gui.ztype_warning2 = Wybierz sposób obsługi istniejących ustawień flag: +gui.ztype_keep_desc = Zachowaj niestandardowe nadpisania +gui.ztype_keep_flags = Zachowaj flagi +gui.ztype_reset_desc = Użyj domyślnych nowego typu +gui.ztype_reset_flags = Resetuj flagi + +# Etykiety kreatora tworzenia stref +gui.czw_title = Utwórz strefę +gui.czw_back = < Wstecz +gui.czw_create = Utwórz strefę +gui.czw_zone_type = Typ strefy +gui.czw_safe_desc = Chroniona, bez PvP +gui.czw_war_desc = Bojowa, PvP włączone +gui.czw_zone_name = Nazwa strefy +gui.czw_name_desc = Wprowadź unikalną nazwę strefy +gui.czw_claim_method = Metoda zajmowania +gui.czw_method_none_desc = Utwórz pustą strefę +gui.czw_method_none = Bez terenów +gui.czw_method_single_desc = Twój aktualny chunk +gui.czw_method_single = Pojedynczy chunk +gui.czw_method_circle_desc = Okrągły obszar +gui.czw_method_circle = Promień koła +gui.czw_method_square_desc = Kwadratowy obszar +gui.czw_method_square = Promień kwadratu +gui.czw_method_map_desc = Interaktywny edytor chunków +gui.czw_method_map = Użyj mapy terenów +gui.czw_radius = Promień +gui.czw_custom_radius = Niestandardowy (1-50): +gui.czw_flags = Flagi +gui.czw_flags_defaults_desc = Na podstawie typu strefy +gui.czw_flags_defaults = Użyj domyślnych +gui.czw_flags_customize_desc = Otwórz ustawienia po +gui.czw_flags_customize = Dostosuj + +# ========== Etykiety wpisów (wpisy list frakcji/graczy/stref) ========== + +# Etykiety wpisów frakcji +gui.fac_entry_power = moc +gui.fac_entry_claims = tereny +gui.fac_entry_members = członkowie +gui.fac_entry_created = Utworzona: +gui.fac_entry_home = Dom: +gui.fac_entry_tp_home = Teleportuj do domu +gui.fac_entry_view_info = Informacje +gui.fac_entry_members_btn = Członkowie +gui.fac_entry_settings = Ustawienia +gui.fac_entry_unclaim_all = Usuń wszystkie tereny +gui.fac_entry_disband = Rozwiąż + +# Etykiety wpisów graczy +gui.plr_entry_role = Ranga: +gui.plr_entry_joined = Dołączył: +gui.plr_entry_last_online = Ostatnio online: +gui.plr_entry_kdr = Z/Ś/W: +gui.plr_entry_power = Moc: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Informacje +gui.plr_entry_teleport = Teleportuj +gui.plr_entry_na = N/D +gui.plr_entry_unknown = Nieznane +gui.plr_entry_ago = {0} temu + +# Etykiety wpisów stref +gui.zone_entry_world = Świat: +gui.zone_entry_chunks = Chunki: +gui.zone_entry_bounds = Granice: +gui.zone_entry_created = Utworzona: +gui.zone_entry_edit_map = Edytuj mapę +gui.zone_entry_flags = Flagi +gui.zone_entry_settings = Ustawienia +gui.zone_entry_delete = Usuń diff --git a/src/main/resources/Server/Languages/pl-PL/hyperfactions_gui.lang b/src/main/resources/Server/Languages/pl-PL/hyperfactions_gui.lang new file mode 100644 index 00000000..14e74dcc --- /dev/null +++ b/src/main/resources/Server/Languages/pl-PL/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Polskie tłumaczenie +# Format: key = value +# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule + +# ========== Pasek nawigacji ========== +nav.dashboard = Pulpit +nav.chat = Czat +nav.members = Członkowie +nav.invites = Zaproszenia +nav.browser = Przeglądaj +nav.map = Mapa +nav.leaderboard = Ranking +nav.relations = Relacje +nav.treasury = Skarbiec +nav.settings = Ustawienia +nav.logs = Dziennik +nav.help = Pomoc +nav.admin = Admin +nav.create = Utwórz + +# ========== Nazwy kategorii pomocy ========== +help.category.welcome = Witaj +help.category.your_faction = Twoja frakcja +help.category.power_land = Moc i tereny +help.category.diplomacy = Dyplomacja +help.category.combat = Walka i bezpieczeństwo +help.category.economy = Ekonomia +help.category.quick_ref = Szybka ściągawka + +# ========== Nazwy kategorii pomocy admina ========== +help.category.admin_overview = Przegląd +help.category.admin_factions = Frakcje +help.category.admin_zones = Strefy +help.category.admin_power = Moc +help.category.admin_economy = Ekonomia +help.category.admin_config = Konfiguracja +help.category.admin_maintenance = Konserwacja +help.category.admin_reference = Referencje + +# ========== Menu główne ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Moja frakcja +main_menu.section_get_started = Rozpocznij +main_menu.section_territory = Terytorium +main_menu.section_browse = Przeglądaj +main_menu.section_admin = Admin +main_menu.claim_hint = Użyj /f claim, aby zająć terytorium. + +# ========== Strona informacji o frakcji ========== +faction_info.title = Informacje o frakcji +faction_info.no_description = Brak opisu. +faction_info.status_open = Otwarta +faction_info.status_invite_only = Tylko na zaproszenie +faction_info.status_raidable = Podatna na najazd +faction_info.status_protected = Chroniona +faction_info.officers_more = +{0} więcej +faction_info.power_header = Moc +faction_info.claims_header = Tereny +faction_info.members_header = Członkowie +faction_info.relations_header = Relacje +faction_info.status_header = Status +faction_info.treasury_header = Skarbiec +faction_info.current_max = aktualna / maks. +faction_info.claimed_max = zajęte / maks. +faction_info.ally_enemy = sojusznik / wróg +faction_info.faction_balance = saldo frakcji +faction_info.leader_label = Przywódca: +faction_info.officers_label = Oficerowie: +faction_info.view_members_btn = Członkowie +faction_info.relations_btn = Relacje +faction_info.back_btn = Wstecz + +# ========== Okno zmiany nazwy ========== +rename.title = Zmiana nazwy frakcji +rename.current_label = Aktualna: +rename.new_name_label = Nowa nazwa: +rename.no_permission = Nie masz uprawnień do zmiany nazwy frakcji. +rename.enter_name = Wprowadź nazwę frakcji. +rename.too_short = Nazwa frakcji musi mieć co najmniej {0} znaków. +rename.too_long = Nazwa frakcji nie może przekraczać {0} znaków. +rename.same_name = To już jest nazwa Twojej frakcji. +rename.name_taken = Frakcja o tej nazwie już istnieje. +rename.success = Nazwa frakcji zmieniona z {0} na {1}! + +# ========== Okno opisu ========== +desc.title = Edycja opisu +desc.current_label = Aktualny: +desc.new_desc_label = Nowy opis: +desc.no_permission = Nie masz uprawnień do edycji opisu. +desc.display_none = (Brak) +desc.cleared = Opis frakcji wyczyszczony. +desc.updated = Opis frakcji zaktualizowany! + +# ========== Okno tagu ========== +tag.title = Edycja tagu +tag.current_label = Aktualny: +tag.instructions = Tag (1-5 znaków, tylko litery i cyfry): +tag.help_text = Tagi wyświetlają się na czacie i na mapie +tag.no_permission = Nie masz uprawnień do edycji tagu. +tag.display_none = (Brak) +tag.cleared = Tag frakcji wyczyszczony. +tag.too_short = Tag musi mieć co najmniej {0} znak. +tag.too_long = Tag nie może przekraczać {0} znaków. +tag.invalid_format = Tag może zawierać tylko litery i cyfry. +tag.same_tag = To już jest tag Twojej frakcji. +tag.tag_taken = Frakcja z takim tagiem już istnieje. +tag.success = Tag frakcji ustawiony na [{0}]! + +# ========== Strona pulpitu ========== +dashboard.title = Pulpit frakcji +dashboard.power_label = Moc +dashboard.land_label = Tereny +dashboard.members_label = Członkowie +dashboard.online_label = Online +dashboard.allies_label = Sojusznicy +dashboard.enemies_label = Wrogowie +dashboard.relations_label = Relacje +dashboard.ally_enemy_label = sojusznik / wróg +dashboard.status_label = Status +dashboard.invites_label = Zaproszenia +dashboard.sent_requests_label = wysłane / prośby +dashboard.treasury_label = Skarbiec +dashboard.upkeep_label = Utrzymanie +dashboard.per_cycle = za cykl +dashboard.your_wallet = Twój portfel +dashboard.personal_balance = saldo osobiste +dashboard.quick_actions = Szybkie akcje +dashboard.teleport_label = Teleportacja +dashboard.territory_label = Terytorium +dashboard.channel_label = Kanał +dashboard.membership_label = Członkostwo +dashboard.recent_activity = Ostatnia aktywność +dashboard.view_all = Pokaż wszystko +dashboard.income_24h = Przychód (24h) +dashboard.deposits_transfers_in = wpłaty, przelewy przychodzące +dashboard.expenses_24h = Wydatki (24h) +dashboard.withdrawals_transfers_out = wypłaty, przelewy wychodzące +dashboard.faction_gone = Twoja frakcja już nie istnieje. +dashboard.available = {0} dostępnych +dashboard.at_risk = Zagrożona! +dashboard.online_count = {0} online +dashboard.status_invite = Zaproszenie +dashboard.in_grace = OKRES KARENCJI +dashboard.billable_chunks = {0} płatnych chunków +dashboard.btn_home = Dom +dashboard.btn_set_home = Ustaw dom +dashboard.btn_claim = Zajmij +dashboard.chat_prefix = Czat: {0} +dashboard.btn_leave = Opuść +dashboard.no_activity = Brak ostatniej aktywności. +dashboard.time_now = teraz +dashboard.time_minutes = {0}m temu +dashboard.time_hours = {0}h temu +dashboard.time_days = {0}d temu +dashboard.no_home_hint = Twoja frakcja nie ma domu. Poproś oficera o jego ustawienie. +dashboard.chat_mode_set = Tryb czatu: {0} +dashboard.claim_success = Zajęto chunk na ({0}, {1}) +dashboard.upkeep_in = za {0} + +# ========== Strona główna frakcji ========== +main.no_faction = Brak frakcji +main.joined = Dołączyłeś do frakcji! +main.join_failed = Nie udało się dołączyć do frakcji: {0} +main.invite_declined = Zaproszenie odrzucone. +main.cooldown = Teleportacja na odnowieniu! Pozostało {0}s. +main.world_not_found = Nie można teleportować — nie znaleziono świata. +main.leave_failed = Nie udało się opuścić: {0} + +# ========== Wspólne etykiety GUI ========== +common.faction_count = {0} frakcji +common.leader_label = Przywódca: {0} +common.sort_power = Moc +common.sort_members = Członkowie +common.page_format = {0}/{1} +common.own_faction = (Ty) +common.search = Szukaj: +common.sort = Sortuj: +common.prev = < Poprz. +common.next = Nast. > +common.treasury_not_available = Skarbiec jest niedostępny. + +# ========== Strona członków ========== +members.title = Członkowie +members.search_label = Szukaj: +members.sort_label = Sortuj: +members.prev_btn = < Poprz. +members.next_btn = Nast. > +members.count = {0} członków +members.sort_role = Ranga +members.sort_last_online = Ostatnio online +members.just_now = przed chwilą +members.ago = {0} temu +members.never = Nigdy +members.member_not_found = Nie znaleziono członka. +members.promoted = Awansowano {0} na {1}. +members.promote_failed = Nie udało się awansować: {0} +members.demoted = Zdegradowano {0} do {1}. +members.demote_failed = Nie udało się zdegradować: {0} +members.kicked = Wyrzucono {0} z frakcji. +members.kick_failed = Nie udało się wyrzucić: {0} +members.label_power = Moc: +members.label_joined = Dołączył: +members.label_last_death = Ostatnia śmierć: +members.btn_promote = Awansuj +members.btn_demote = Degraduj +members.btn_kick = Wyrzuć +members.btn_make_leader = Mianuj przywódcą +members.btn_profile = Profil +members.self_label = (Ty) + +# ========== Strona przeglądarki ========== +browser.title = Przeglądaj frakcje +browser.search_label = Szukaj: +browser.sort_label = Sortuj: +browser.prev_btn = < Poprz. +browser.next_btn = Nast. > +browser.sort_name = Nazwa +browser.invalid_faction = Nieprawidłowa frakcja. +browser.label_power = moc +browser.label_claims = tereny +browser.label_members = członkowie +browser.label_recruitment = Rekrutacja: +browser.label_created = Utworzona: +browser.label_description = Opis: +browser.view_info_btn = Informacje +browser.label_leader = Przywódca: +browser.no_description = Brak opisu + +# ========== Strona rankingu ========== +leaderboard.title = Ranking frakcji +leaderboard.rank_by = Sortuj wg: +leaderboard.col_rank = # +leaderboard.col_faction = Frakcja +leaderboard.col_claims = Tereny +leaderboard.col_members = Członkowie +leaderboard.prev_btn = < Poprz. +leaderboard.next_btn = Nast. > +leaderboard.sort_kd = Z/Ś +leaderboard.sort_territory = Terytorium +leaderboard.sort_balance = Saldo + +# ========== Strona informacji o graczu ========== +playerinfo.title = Informacje o graczu +playerinfo.first_joined_label = Pierwszy raz dołączył: +playerinfo.last_online_label = Ostatnio online: +playerinfo.faction_label = Frakcja: +playerinfo.role_label = Ranga: +playerinfo.joined_label_static = Dołączył: +playerinfo.not_in_faction = Nie należy do frakcji +playerinfo.power_header = Moc +playerinfo.current_max = aktualna / maks. +playerinfo.combat_header = Walka +playerinfo.kills_deaths = zabójstwa / śmierci +playerinfo.kdr_header = Współczynnik Z/Ś +playerinfo.membership_history = Historia członkostwa +playerinfo.view_faction_btn = Pokaż frakcję +playerinfo.back_btn = Wstecz +playerinfo.now = Teraz +playerinfo.history_count = {0} wpisów +playerinfo.joined_label = Dołączył: {0} +playerinfo.current = Aktualna +playerinfo.left_label = Odszedł: {0} +playerinfo.no_history = Brak historii członkostwa +playerinfo.faction_gone = Frakcja już nie istnieje. +playerinfo.reason_active = AKTYWNY +playerinfo.reason_left = ODSZEDŁ +playerinfo.reason_kicked = WYRZUCONY +playerinfo.reason_disbanded = ROZWIĄZANA + +# ========== Strona relacji ========== +relations.title = Relacje +relations.tab_relations = Relacje +relations.tab_pending = Oczekujące +relations.set_relation_btn = + Ustaw relację +relations.prev_btn = < Poprz. +relations.next_btn = Nast. > +relations.relation_count = {0} relacji +relations.request_count = {0} próśb +relations.type_ally = Sojusznik +relations.type_enemy = Wróg +relations.type_incoming = Przychodzące +relations.type_outgoing = Wychodzące +relations.incoming_request = Prośba przychodząca +relations.outgoing_request = Prośba wychodząca +relations.empty_relations = Brak relacji. +relations.empty_relations_hint = Brak relacji. Kliknij + USTAW RELACJĘ, aby dodać sojuszników lub wrogów. +relations.empty_pending = Brak oczekujących próśb o sojusz. +relations.today = Dzisiaj +relations.one_day_ago = 1 dzień temu +relations.days_ago = {0} dni temu +relations.now_neutral = Jesteście teraz neutralni wobec {0}. +relations.now_enemies = Jesteście teraz wrogami z {0}! +relations.request_sent = Prośba o sojusz wysłana do {0}. +relations.now_allied = Jesteście teraz sojusznikami z {0}! +relations.request_declined = Prośba o sojusz od {0} odrzucona. +relations.request_cancelled = Prośba o sojusz do {0} anulowana. +relations.failed = Niepowodzenie: {0} +relations.search_hint = Wyszukaj frakcję, aby ustawić relację +relations.no_results = Nie znaleziono frakcji pasujących do '{0}' +relations.power_display = {0} mocy +relations.member_count = {0} członków +relations.label_members = członkowie +relations.label_power = moc +relations.label_since = Od: +relations.label_claims = Tereny: +relations.label_direction = Kierunek: +relations.btn_view = Pokaż +relations.btn_neutral = Neutralny +relations.btn_enemy = Wróg +relations.btn_ally = Sojusznik +relations.btn_accept = Akceptuj +relations.btn_decline = Odrzuć +relations.btn_cancel = Anuluj + +# ========== Strona ustawień ========== +settings.title = Ustawienia frakcji +settings.general = Ogólne +settings.name_label = Nazwa: +settings.tag_label = Tag: +settings.desc_label = Opis: +settings.edit_btn = Edytuj +settings.recruitment = Rekrutacja +settings.status_label = Status: +settings.home_location = Lokalizacja domu +settings.location_label = Lokalizacja: +settings.set_home_btn = Ustaw dom +settings.teleport_btn = Teleportuj +settings.delete_btn = Usuń +settings.optional_features = Opcjonalne funkcje +settings.configure_modules = Konfiguruj opcjonalne moduły. +settings.modules_btn = Moduły +settings.danger_zone = Strefa zagrożenia +settings.irreversible = Ta akcja jest nieodwracalna. +settings.disband_btn = Rozwiąż frakcję +settings.lock_hint = Niektóre opcje mogą być zablokowane przez serwer i nie przyjmą zmian. +settings.territory_permissions = Uprawnienia terytorialne +settings.col_out = Obcy +settings.col_ally = Sojusz. +settings.col_mem = Człon. +settings.col_off = Ofi. +settings.cat_building = BUDOWANIE +settings.perm_break = Niszczenie +settings.perm_place = Stawianie +settings.cat_interaction = INTERAKCJA +settings.interaction_hint = (podrzędne wyłączone gdy Wszystko jest wyłączone) +settings.perm_all = Wszystko +settings.perm_door = Drzwi +settings.perm_chest = Skrzynia +settings.perm_bench = Stacja +settings.perm_processing = Przetwarzanie +settings.perm_seat = Siedzenie +settings.perm_transport = Transport +settings.cat_other = INNE +settings.perm_crate = Skrzynie +settings.perm_npc_tame = Oswajanie NPC +settings.perm_pve = Obrażenia PvE +settings.appearance = Wygląd +settings.color_label = Kolor: +settings.mob_spawning = Pojawianie się mobów +settings.mob_spawning_hint = (podrzędne wyłączone gdy główne jest wyłączone) +settings.mob_spawning_label = Pojawianie się mobów +settings.hostile_mobs = Wrogie moby +settings.passive_mobs = Przyjazne moby +settings.neutral_mobs = Neutralne moby +settings.faction_settings = Ustawienia frakcji +settings.pvp_in_territory = PvP na terytorium +settings.officers_can_edit = Oficerowie mogą edytować +settings.leader_only = Tylko przywódca +settings.officers_only = Tylko oficerowie i przywódca mogą zmieniać ustawienia frakcji. +settings.display_none = (Brak) +settings.home_not_set = Nie ustawiony +settings.no_permission = Nie masz uprawnień do zmiany ustawień. +settings.only_leader_disband = Tylko przywódca może rozwiązać frakcję. +settings.perm_locked = To ustawienie jest zablokowane przez serwer. +settings.no_perm_edit = Nie masz uprawnień do edycji uprawnień terytorialnych. +settings.only_leader_officers = Tylko przywódca może zmieniać dostęp oficerów. +settings.pvp_enabled = Włączone +settings.pvp_disabled = Wyłączone +settings.not_in_territory = Musisz być na terytorium frakcji, aby ustawić dom. +settings.home_set = Dom frakcji ustawiony na Twoją aktualną lokalizację! +settings.recruitment_set = Rekrutacja ustawiona na {0}. +settings.home_no_set = Twoja frakcja nie ma ustawionego domu. +settings.home_deleted = Dom frakcji usunięty! + +# ========== Strona modułów ========== +modules.title = Moduły frakcji +modules.description = Opcjonalne funkcje wzbogacające Twoją frakcję +modules.configure_btn = Konfiguruj +modules.back_btn = < Powrót do ustawień +modules.treasury_name = Skarbiec +modules.treasury_desc = Bank frakcji i system ekonomiczny +modules.raids_name = Najazdy +modules.raids_desc = Zaplanowane bitwy frakcyjne +modules.levels_name = Poziomy +modules.levels_desc = Postęp frakcji i doświadczenie +modules.war_name = Wojna +modules.war_desc = Formalne wypowiedzenia wojny +modules.coming_soon = Wkrótce +modules.active = Aktywny +modules.view_treasury = Pokaż skarbiec +modules.unavailable = Niedostępny +modules.no_economy = Nie wykryto wtyczki ekonomicznej +modules.disabled = Wyłączony +modules.economy_not_available = Funkcje ekonomiczne nie są dostępne na tym serwerze + +# ========== Strona skarbca ========== +treasury.title = Skarbiec frakcji +treasury.balance_label = Saldo +treasury.income_24h = Przychód (24h) +treasury.deposits_transfers_in = wpłaty, przelewy przychodzące +treasury.expenses_24h = Wydatki (24h) +treasury.withdrawals_transfers_out = wypłaty, przelewy wychodzące +treasury.maintenance = UTRZYMANIE +treasury.runway_label = Rezerwa: +treasury.add_funds = Dodaj środki +treasury.deposit_btn = Wpłać +treasury.take_funds = Pobierz środki +treasury.withdraw_btn = Wypłać +treasury.send_to_faction = Wyślij do frakcji +treasury.transfer_btn = Przelej +treasury.treasury_config = Ustawienia skarbca +treasury.settings_btn = Ustawienia +treasury.recent_transactions = Ostatnie transakcje +treasury.no_transactions = Brak transakcji +treasury.col_date = Data +treasury.col_type = Typ +treasury.col_by = Przez +treasury.col_amount = Kwota +treasury.col_details = Szczegóły +treasury.pay_now_btn = Zapłać teraz +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Ustawienia skarbca +treasury.officer_permissions = UPRAWNIENIA OFICERÓW +treasury.allow_withdraw = Zezwól oficerom na wypłaty +treasury.allow_transfer = Zezwól oficerom na przelewy +treasury.limits_section = LIMITY WYPŁAT I PRZELEWÓW +treasury.max_per_withdrawal = Maks. na wypłatę: +treasury.max_withdrawals_per = Maks. wypłat w okresie: +treasury.max_per_transfer = Maks. na przelew: +treasury.max_transfers_per = Maks. przelewów w okresie: +treasury.limit_period = Okres limitu (godziny): +treasury.no_limit_hint = Ustaw 0, aby nie było limitu +treasury.upkeep_settings = USTAWIENIA UTRZYMANIA +treasury.auto_pay_upkeep = Automatycznie opłacaj utrzymanie ze skarbca +treasury.back_btn = Wstecz +treasury.upkeep_cost_format = {0} co {1}h +treasury.upkeep_time_left = pozostało {0} +treasury.wallet_label = Twój portfel: {0} +treasury.treasury_label = Saldo skarbca: {0} +treasury.chunks_detail = {0} darmowych + {1} płatnych chunków +treasury.cost_label = Koszt: {0} +treasury.pending = Oczekujące +treasury.auto_pay_on = Automatyczna płatność: WŁ. +treasury.auto_pay_off = Automatyczna płatność: WYŁ. +treasury.runway_90_plus = 90+ dni +treasury.runway_days = {0} dni +treasury.runway_day = {0} dzień +treasury.runway_less_day = < 1 dzień +treasury.runway_no_funds = Brak środków +treasury.grace_expires = Okres karencji wygasa za: {0} +treasury.missed_payments = Pominięte płatności: {0} +treasury.pay_to_clear = Zapłać {0}, aby wyczyścić okres karencji +treasury.system = System +treasury.type_deposit = Wpłata +treasury.type_withdrawal = Wypłata +treasury.type_transfer_in = Przelew przychodzący +treasury.type_transfer_out = Przelew wychodzący +treasury.type_player_transfer = Przelew gracza +treasury.type_upkeep = Utrzymanie +treasury.type_tax = Pobór podatku +treasury.type_war_cost = Koszt wojny +treasury.type_raid_cost = Koszt najazdu +treasury.type_spoils = Łupy +treasury.type_admin = Korekta admina +treasury.deposit_title = Wpłata do skarbca +treasury.withdraw_title = Wypłata ze skarbca +treasury.fee_label = Opłata ({0}%) +treasury.confirm_deposit = Potwierdź wpłatę +treasury.confirm_withdrawal = Potwierdź wypłatę +treasury.from_wallet = {0} z portfela +treasury.to_wallet = {0} do portfela +treasury.enter_valid_amount = Wprowadź prawidłową dodatnią kwotę. +treasury.insufficient_wallet = Niewystarczające środki w portfelu. Potrzeba {0}, posiadasz {1}. +treasury.wallet_withdraw_failed = Nie udało się pobrać środków z portfela. +treasury.deposit_failed_returned = Wpłata nieudana. Pieniądze zwrócone. +treasury.deposited = Wpłacono {0} do skarbca. +treasury.deposited_fee = Wpłacono {0} do skarbca. (opłata: {1}) +treasury.no_withdraw_permission = Nie masz uprawnień do wypłacania. +treasury.withdraw_denied = Wypłata odrzucona: {0} +treasury.insufficient_treasury = Niewystarczające środki w skarbcu. +treasury.withdraw_limit = Przekroczono limit wypłat. +treasury.withdraw_failed = Wypłata nieudana: {0} +treasury.wallet_deposit_warn = Uwaga: Nie udało się wpłacić do portfela. Skontaktuj się z administratorem. +treasury.withdrew = Wypłacono {0} ze skarbca. +treasury.withdrew_fee = Wypłacono {0} ze skarbca. (opłata: {1}, otrzymano: {2}) +treasury.search_hint = Wyszukaj gracza lub frakcję +treasury.no_results = Brak wyników dla '{0}' +treasury.tag_player = [Gracz] +treasury.tag_faction = [Frakcja] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Gracz Hytale +treasury.no_transfer_permission = Nie masz uprawnień do przelewów. +treasury.transfer_denied = Przelew odrzucony: {0} +treasury.invalid_target_faction = Nieprawidłowa frakcja docelowa. +treasury.target_faction_gone = Frakcja docelowa już nie istnieje. +treasury.transfer_failed = Przelew nieudany: {0} +treasury.transfer_failed_returned = Przelew nieudany. Środki zwrócone. +treasury.transferred = Przelano {0} do {1}. +treasury.invalid_target_player = Nieprawidłowy gracz docelowy. +treasury.player_transfer_failed = Nie udało się wpłacić do portfela gracza. Przelew wycofany. +treasury.leader_only_perms = Tylko przywódca może zmieniać uprawnienia skarbca. +treasury.leader_only_upkeep = Tylko przywódca może zmieniać ustawienia utrzymania. +treasury.invalid_limit = Nieprawidłowa liczba w polach limitu. Użyj 0 dla braku limitu. + +# ========== Strony potwierdzeń ========== +confirm.disband_title = Rozwiązanie frakcji +confirm.disband_prompt = Czy na pewno chcesz rozwiązać +confirm.disband_warning = Ta akcja nie może być cofnięta! +confirm.leave_title = Opuszczenie frakcji +confirm.leave_prompt = Czy na pewno chcesz opuścić +confirm.leave_warning = Stracisz dostęp do terytorium frakcji. +confirm.leader_leave_title = Opuszczenie jako przywódca +confirm.leader_leave_prompt = Opuszczasz +confirm.transfer_title = Przekazanie przywództwa +confirm.transfer_prompt = Czy na pewno chcesz przekazać przywództwo graczowi +confirm.transfer_warning = Staniesz się Oficerem. +confirm.disband_not_leader = Tylko przywódca może rozwiązać frakcję. +confirm.disbanded = Frakcja '{0}' została rozwiązana. +confirm.disband_failed = Nie udało się rozwiązać frakcji. +confirm.succession_title = Przywództwo zostanie przekazane: +confirm.no_members_warning = UWAGA: Brak innych członków! +confirm.will_disband = Opuszczenie spowoduje trwałe rozwiązanie frakcji. +confirm.not_in_faction = Nie należysz do tej frakcji. +confirm.not_leader_anymore = Nie jesteś już przywódcą. +confirm.no_successor = Brak następcy. Użyj rozwiązania. +confirm.transfer_failed = Nie udało się przekazać przywództwa: {0} +confirm.leader_left = Przywództwo przekazane graczowi {0}. Opuściłeś {1}. +confirm.leave_failed = Nie udało się opuścić frakcji: {0} +confirm.leader_cannot_leave = Przywódca nie może opuścić frakcji. Przekaż przywództwo lub rozwiąż frakcję. +confirm.left_faction = Opuściłeś {0}. +confirm.faction_gone = Frakcja już nie istnieje. +confirm.not_leader_transfer = Tylko przywódca może przekazać przywództwo. +confirm.leadership_transferred = Przywództwo przekazane graczowi {0}. + +# ========== Strona dziennika aktywności ========== +logs.title = {0} - Dziennik aktywności +logs.entry_count = {0} wpisów +logs.filter_label = Filtr: +logs.col_time = Czas +logs.col_type = Typ +logs.col_message = Wiadomość +logs.prev_btn = < Poprz. +logs.next_btn = Nast. > +logs.all_types = Wszystkie typy +logs.no_logs_type = Brak logów tego typu. +logs.no_logs = Brak logów aktywności. +logs.time_just_now = przed chwilą +logs.time_minute = {0} minutę temu +logs.time_minutes = {0} minut temu +logs.time_hour = {0} godzinę temu +logs.time_hours = {0} godzin temu +logs.time_day = {0} dzień temu +logs.time_days = {0} dni temu +logs.time_week = {0} tydzień temu +logs.time_weeks = {0} tygodni temu +logs.type_member_join = Dołączenie +logs.type_member_leave = Odejście +logs.type_member_kick = Wyrzucenie +logs.type_member_promote = Awans +logs.type_member_demote = Degradacja +logs.type_claim = Zajęcie +logs.type_unclaim = Zrzeczenie +logs.type_overclaim = Przejęcie +logs.type_home_set = Ustawienie domu +logs.type_relation_ally = Sojusznik +logs.type_relation_enemy = Wróg +logs.type_relation_neutral = Neutralny +logs.type_leader_transfer = Przekazanie +logs.type_settings_change = Ustawienia +logs.type_power_change = Moc +logs.type_economy = Ekonomia +logs.type_admin_power = Moc (Admin) + +# Szablony wiadomości dziennika (i18n dla treści logów aktywności) +# Akcje graczy +logs.msg_faction_created = {0} utworzył(a) frakcję +logs.msg_member_joined = {0} dołączył(a) do frakcji +logs.msg_member_left = {0} opuścił(a) frakcję +logs.msg_member_kicked = {0} został(a) wyrzucony(a) +logs.msg_member_promoted = {0} awansowany(a) na {1} +logs.msg_member_demoted = {0} zdegradowany(a) do {1} +logs.msg_leader_transferred = Przywództwo przekazane graczowi {0} +logs.msg_leader_left_transfer = {0} odszedł/odeszła, {1} jest teraz przywódcą +logs.msg_relation_set = Ustawiono {0} jako {1} +# Terytorium +logs.msg_claimed = Zajęto chunk na {0}, {1} w {2} +logs.msg_unclaimed = Zrzeczono się chunka na {0}, {1} w {2} +logs.msg_overclaim_lost = Utracono chunk na {0}, {1} na rzecz {2} +logs.msg_overclaim_taken = Przejęto chunk na {0}, {1} od {2} +logs.msg_all_unclaimed = Zrzeczono się całego terytorium +logs.msg_claim_removed_world = Teren w '{0}' usunięty (świat nie zezwala na zajmowanie) +logs.msg_claims_lost_upkeep = Utracono {0} teren(ów) z powodu utrzymania (pominięto {1} płatności) +logs.msg_claims_removed_inactive = {0} terenów usunięto z powodu nieaktywności ({1} dni) +# Dom +logs.msg_home_set = Dom ustawiony +logs.msg_home_cleared = Dom usunięty +logs.msg_home_cleared_world = Dom w '{0}' usunięty (świat nie zezwala na zajmowanie) +# Ustawienia +logs.msg_renamed = Zmieniono nazwę z '{0}' na '{1}' +logs.msg_set_open = Frakcja ustawiona jako otwarta +logs.msg_set_closed = Frakcja ustawiona jako tylko na zaproszenie +logs.msg_desc_set = Opis ustawiony +logs.msg_desc_cleared = Opis wyczyszczony +logs.msg_color_changed = Kolor zmieniony na '{0}' +# Ekonomia +logs.msg_deposit = Wpłata: {0} (+{1}) +logs.msg_withdrawal = Wypłata: {0} (-{1}) +logs.msg_upkeep_paid = Utrzymanie opłacone: {0} ({1} płatnych chunków) +logs.msg_upkeep_grace_started = Utrzymanie nieopłacone: rozpoczęto okres karencji ({0}h) +logs.msg_upkeep_missed = Utrzymanie pominięte (płatność {0}), karencja wygasa za {1} +logs.msg_upkeep_manual = Utrzymanie opłacone ręcznie: {0} ({1} płatnych chunków, karencja wyczyszczona) +# Moc admina +logs.msg_admin_power_set = Admin ustawił moc {0} na {1} (było {2}) +logs.msg_admin_power_add = Admin dodał {0} mocy graczowi {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin zabrał {0} mocy graczowi {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin zresetował moc {0} do {1} (było {2}) +logs.msg_admin_power_adjusted = Admin dostosował moc {0} o {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin ustawił maks. moc {0} na {1} (było {2}) +logs.msg_admin_maxpower_reset = Admin zresetował maks. moc {0} do domyślnej wartości ({1}) +logs.msg_admin_powerloss_enabled = Admin włączył utratę mocy dla {0} +logs.msg_admin_powerloss_disabled = Admin wyłączył utratę mocy dla {0} +logs.msg_admin_decay_enabled = Admin włączył zwolnienie z rozpadu terenów dla {0} +logs.msg_admin_decay_disabled = Admin wyłączył zwolnienie z rozpadu terenów dla {0} +logs.msg_admin_kd_reset = Admin zresetował Z/Ś dla {0} +logs.msg_admin_power_set_all = Admin ustawił moc wszystkich {0} członków na {1} +logs.msg_admin_power_add_all = Admin dodał {0} mocy wszystkim {1} członkom +logs.msg_admin_power_remove_all = Admin zabrał {0} mocy wszystkim {1} członkom +logs.msg_admin_power_reset_all = Admin zresetował moc wszystkich {0} członków +logs.msg_admin_power_adjusted_all = Admin dostosował moc wszystkich {0} członków o {1} +# Admin frakcji +logs.msg_admin_kicked = [Admin] {0} został(a) wyrzucony(a) +logs.msg_admin_role_set = [Admin] Ranga {0} ustawiona na {1} +logs.msg_admin_leader_kick = [Admin] Przywództwo przekazane z {0} na {1} (wyrzucenie admina) +logs.msg_admin_econ_added = Admin dodał: {0} (saldo: {1}) +logs.msg_admin_econ_deducted = Admin odjął: {0} (saldo: {1}) +logs.msg_admin_econ_set = Admin ustawił saldo na {0} (było {1}) +# Import +logs.msg_left_import = {0} odszedł/odeszła (zaimportowano do innej frakcji) +logs.msg_leader_import_transfer = {0} został przywódcą (poprzedni przywódca zaimportowany do innej frakcji) +logs.msg_imported_from = Frakcja zaimportowana z {0} + +# ========== Strona czatu ========== +chat.title = Czat frakcji +chat.tab_faction = Frakcja +chat.tab_ally = Sojusznik +chat.send_btn = Wyślij +chat.placeholder = Wpisz wiadomość... +chat.no_messages = Brak wiadomości. +chat.no_ally_permission = Nie masz uprawnień do czatu sojuszniczego. +chat.no_permission = Brak uprawnień. +chat.faction_gone = Twoja frakcja już nie istnieje. +chat.time_now = teraz +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Strona zaproszeń ========== +invites.title = Zaproszenia +invites.tab_outgoing = Wysłane +invites.tab_requests = Prośby +invites.prev_btn = < Poprz. +invites.next_btn = Nast. > +invites.invite_count = {0} zaproszeń +invites.request_count = {0} próśb +invites.invited_by = Zaprosił: {0} +invites.no_message = Brak wiadomości +invites.expires = Wygasa: {0} +invites.type_outgoing = Wysłane +invites.type_request = Prośba +invites.invited_by_label = Zaprosił: +invites.empty_outgoing = Brak wysłanych zaproszeń. Użyj /f invite , aby kogoś zaprosić. +invites.empty_requests = Brak próśb o dołączenie. Gracze mogą prosić o dołączenie komendą /f request. +invites.invalid_player = Nieprawidłowy gracz. +invites.cancelled_invite = Anulowano zaproszenie dla {0}. +invites.player_joined = {0} dołączył(a) do frakcji! +invites.faction_full = Frakcja jest pełna. Nie można przyjąć prośby. +invites.add_failed = Nie udało się dodać gracza do frakcji. +invites.request_expired = Prośba nie została znaleziona lub wygasła. +invites.request_declined = Odrzucono prośbę o dołączenie od {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h +invites.label_message = Wiadomość: +invites.btn_cancel = Anuluj +invites.btn_accept = Akceptuj +invites.btn_decline = Odrzuć + +# ========== Strona mapy ========== +map.title = Mapa terytorium +map.action_hint = Lewy klik: Zajmij | Prawy klik: Zrzecz się +map.legend_your = Twoje terytorium +map.legend_ally = Terytorium sojusznika +map.legend_enemy = Terytorium wroga +map.legend_other = Inna frakcja +map.legend_wilderness = Dzicz +map.legend_safe = Strefa bezpieczna +map.legend_war = Strefa wojenna +map.legend_you = Jesteś tutaj +map.position = Twoja pozycja: Chunk ({0}, {1}) +map.legend_protected = Chronione +map.claim_stats = Tereny: {0}/{1} ({2} dostępnych) +map.overclaimed = PRZEJĘTE przez {0}! +map.power_display = Moc: {0}/{1} +map.join_to_claim = Dołącz do frakcji, aby zajmować teren +map.claim_success = Zajęto chunk na ({0}, {1})! +map.claim_not_in_faction = Musisz należeć do frakcji, aby zajmować teren. +map.claim_not_officer = Tylko oficerowie i przywódca mogą zajmować teren. +map.claim_already_yours = Już posiadasz ten chunk. +map.claim_already_claimed = Ten chunk jest już zajęty przez inną frakcję. +map.claim_not_adjacent = Możesz zajmować tylko chunki przylegające do Twojego terytorium. +map.claim_max = Osiągnąłeś maksymalny limit terenów. +map.claim_world_not_allowed = Zajmowanie terenu jest niedozwolone w tym świecie. +map.claim_orbisguard = Ten obszar jest chroniony przez OrbisGuard. +map.claim_failed = Nie udało się zająć chunka. +map.unclaim_success = Zrzeczono się chunka na ({0}, {1}). +map.unclaim_not_in_faction = Musisz należeć do frakcji. +map.unclaim_not_officer = Tylko oficerowie i przywódca mogą zrzekać się terenu. +map.unclaim_not_claimed = Ten chunk nie jest zajęty. +map.unclaim_not_yours = Ten chunk należy do innej frakcji. +map.unclaim_home = Nie można zrzec się chunka z domem frakcji. +map.unclaim_failed = Nie udało się zrzec chunka. +map.overclaim_success = Przejęto wrogi chunk na ({0}, {1})! +map.overclaim_not_in_faction = Musisz należeć do frakcji. +map.overclaim_not_officer = Tylko oficerowie i przywódca mogą przejmować teren. +map.overclaim_already_yours = Już posiadasz ten chunk. +map.overclaim_ally = Nie możesz przejąć terytorium sojusznika. +map.overclaim_has_power = Ta frakcja ma wystarczająco mocy, aby obronić swoje terytorium. +map.overclaim_max = Osiągnąłeś maksymalny limit terenów. +map.overclaim_failed = Nie udało się przejąć chunka. +# ========== Strona tworzenia frakcji ========== +create.title = Utwórz swoją frakcję +create.section_preview = Podgląd +create.section_basic_info = Podstawowe informacje +create.section_details = Szczegóły +create.name_prefix = Nazwa: +create.faction_name_label = Nazwa frakcji * +create.tag_label = TAG (2-4 znaki, auto jeśli puste) +create.desc_label = Opis (opcjonalny) +create.recruitment_label = Rekrutacja +create.section_faction_color = Kolor frakcji +create.section_combat = Walka +create.create_btn = Utwórz frakcję +create.preview_name = Nazwa Twojej frakcji +create.leader_prefix = Przywódca: {0} +create.enter_name = Wprowadź nazwę frakcji. +create.name_too_short = Nazwa frakcji musi mieć co najmniej {0} znaków. +create.name_too_long = Nazwa frakcji nie może przekraczać {0} znaków. +create.name_taken = Frakcja o tej nazwie już istnieje. +create.tag_length = Tag frakcji musi mieć od {0} do {1} znaków. +create.tag_format = Tag frakcji może zawierać tylko litery i cyfry. +create.desc_too_long = Opis nie może przekraczać {0} znaków. +create.created = Frakcja {0} utworzona pomyślnie! +create.created_no_dashboard = Frakcja utworzona, ale nie udało się otworzyć pulpitu. +create.invalid_name = Nieprawidłowa nazwa frakcji. +create.create_failed = Nie udało się utworzyć frakcji. + +# ========== Strony nowego gracza ========== +newplayer.browse_title = Przeglądaj frakcje +newplayer.invites_title = Zaproszenia i prośby +newplayer.map_title = Mapa terytorium +newplayer.view_only_badge = Tryb podglądu +newplayer.legend_label = Legenda: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Frakcja +newplayer.legend_wilderness = Dzicz +newplayer.search_label = Szukaj: +newplayer.sort_label = Sortuj: +newplayer.prev_btn = < Poprz. +newplayer.next_btn = Nast. > +newplayer.pending_count = {0} oczekujących +newplayer.received_header = OTRZYMANE ZAPROSZENIA ({0}) +newplayer.requests_header = TWOJE PROŚBY ({0}) +newplayer.no_invites = Brak zaproszeń. Przeglądaj frakcje, aby znaleźć odpowiednią! +newplayer.no_requests = Brak oczekujących próśb. +newplayer.invited_by = Zaprosił: {0} +newplayer.member_count = {0} członków +newplayer.power_count = {0} mocy +newplayer.claim_count = {0} terenów +newplayer.awaiting_review = Oczekuje na rozpatrzenie +newplayer.expires_in = Wygasa za {0}h +newplayer.time_just_now = przed chwilą +newplayer.time_minutes = {0} min temu +newplayer.time_hours = {0}h temu +newplayer.time_days = {0}d temu +newplayer.invalid_faction = Nieprawidłowa frakcja. +newplayer.invite_expired = To zaproszenie wygasło lub zostało cofnięte. +newplayer.faction_gone = Frakcja już nie istnieje. +newplayer.joined = Dołączyłeś do {0}! +newplayer.faction_full = Ta frakcja jest pełna. +newplayer.join_failed = Nie udało się dołączyć do frakcji. +newplayer.invite_declined = Zaproszenie odrzucone. +newplayer.request_cancelled = Anulowano prośbę o dołączenie do {0}. +newplayer.faction_count = {0} frakcji +newplayer.browse_subtitle = Znajdź swój nowy dom! +newplayer.sort_power = Moc +newplayer.sort_name = Nazwa +newplayer.sort_members = Członkowie +newplayer.btn_accept = Akceptuj +newplayer.btn_pending = Oczekujące +newplayer.btn_join = Dołącz +newplayer.btn_request = Poproś +newplayer.invite_only_msg = Ta frakcja przyjmuje tylko na zaproszenie. +newplayer.welcome_hint = Witaj! Użyj /f, aby otworzyć menu frakcji. +newplayer.faction_open_hint = Ta frakcja jest otwarta! Kliknij DOŁĄCZ. +newplayer.already_requested = Masz już oczekującą prośbę do tej frakcji. +newplayer.has_invite_hint = Masz zaproszenie od tej frakcji! Kliknij AKCEPTUJ. +newplayer.request_sent = Prośba o dołączenie wysłana do {0}! +newplayer.officer_review = Oficer rozpatrzy Twoją prośbę. +newplayer.map_hint = Tryb podglądu — Dołącz do frakcji, aby zajmować teren! + +# Ustawienia gracza +nav.player_settings = Gracz +player_settings.title = Ustawienia gracza +player_settings.language_section = Język +player_settings.auto_detect = Automatyczne wykrywanie z klienta +player_settings.auto_detect_desc = Używa ustawień języka Twojego klienta gry +player_settings.language_label = Język +player_settings.notifications_section = Powiadomienia +player_settings.territory_alerts = Alerty terytorialne +player_settings.territory_alerts_desc = Pokaż powiadomienia przy wchodzeniu/opuszczaniu terytoriów +player_settings.death_announcements = Ogłoszenia o śmierci +player_settings.death_announcements_desc = Otrzymuj ogłoszenia o lokalizacji śmierci członków frakcji +player_settings.power_notifications = Zmiany mocy +player_settings.power_notifications_desc = Pokaż wiadomości przy zmianach Twojej mocy +player_settings.language_changed = Język zmieniony na {0} +player_settings.pref_enabled = {0} włączone +player_settings.pref_disabled = {0} wyłączone + +# ========== Strony pomocy ========== +help.center_title = Centrum pomocy +help.getting_started_title = Pierwsze kroki +help.what_are_factions_title = Czym są frakcje? +help.what_are_factions_1 = Frakcje to grupy tworzone przez graczy, które współpracują, +help.what_are_factions_2 = aby zajmować terytorium, budować bazy i rywalizować. +help.what_are_factions_bullet_1 = - Chronione terytorium do budowania +help.what_are_factions_bullet_2 = - Członkowie drużyny do wspólnej gry +help.what_are_factions_bullet_3 = - Dostęp do czatu frakcji i funkcji +help.joining_title = Dołączanie do frakcji +help.joining_desc = Istnieje kilka sposobów dołączenia do frakcji: +help.joining_bullet_1 = - Przeglądaj — Znajdź otwarte frakcje i kliknij DOŁĄCZ +help.joining_bullet_2 = - Zaproszenia — Akceptuj zaproszenia od oficerów +help.joining_bullet_3 = - Prośba — Poproś o dołączenie do frakcji na zaproszenie +help.creating_title = Tworzenie frakcji +help.creating_desc = Przejdź do zakładki Utwórz, aby założyć własną frakcję. +help.creating_bullet_1 = - Zapraszaj i zarządzaj członkami +help.creating_bullet_2 = - Zajmuj i chroń terytorium +help.commands_title = Szybkie komendy +help.cmd_f = /f - Otwórz menu frakcji +help.cmd_f_list = /f list - Lista wszystkich frakcji +help.cmd_f_join = /f join - Dołącz do otwartej frakcji +help.cmd_f_create = /f create - Utwórz nową frakcję +help.cmd_f_help = /f help - Pełna lista komend +help.tip = Wskazówka: Przeglądaj frakcje, aby znaleźć grupę pasującą do Ciebie! From a951175167d338ff5a250d6a74aa6cab9e0708a3 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:23 -0700 Subject: [PATCH 63/76] i18n: add Italian (it-IT) translations Complete Italian translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/it-IT/help/combat/death.md | 39 + .../Languages/it-IT/help/combat/protection.md | 28 + .../it-IT/help/combat/spawn_protection.md | 27 + .../Languages/it-IT/help/combat/tagging.md | 29 + .../Languages/it-IT/help/combat/zones.md | 29 + .../it-IT/help/diplomacy/alliances.md | 45 + .../Languages/it-IT/help/diplomacy/enemies.md | 47 + .../it-IT/help/diplomacy/relations.md | 38 + .../Languages/it-IT/help/economy/commands.md | 27 + .../Languages/it-IT/help/economy/funds.md | 42 + .../Languages/it-IT/help/economy/treasury.md | 26 + .../Languages/it-IT/help/economy/upkeep.md | 37 + .../it-IT/help/power_land/claiming.md | 50 + .../it-IT/help/power_land/losing_territory.md | 50 + .../it-IT/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../it-IT/help/quick_ref/all_commands.md | 94 ++ .../it-IT/help/welcome/getting_started.md | 38 + .../it-IT/help/welcome/quick_tips.md | 44 + .../it-IT/help/welcome/what_are_factions.md | 37 + .../it-IT/help/your_faction/creating.md | 38 + .../it-IT/help/your_faction/joining.md | 36 + .../it-IT/help/your_faction/managing.md | 44 + .../it-IT/help/your_faction/roles.md | 44 + .../Server/Languages/it-IT/hyperfactions.lang | 453 +++++++++ .../Languages/it-IT/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/it-IT/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/it-IT/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/it-IT/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/it-IT/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/death.md b/src/main/resources/Server/Languages/it-IT/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/protection.md b/src/main/resources/Server/Languages/it-IT/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md b/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/zones.md b/src/main/resources/Server/Languages/it-IT/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/commands.md b/src/main/resources/Server/Languages/it-IT/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/funds.md b/src/main/resources/Server/Languages/it-IT/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md b/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md b/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md b/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md b/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md b/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/it-IT/hyperfactions.lang b/src/main/resources/Server/Languages/it-IT/hyperfactions.lang new file mode 100644 index 00000000..9b7df507 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Traduzioni Italiane +# Formato: chiave = valore (o chiave = "valore tra virgolette") +# Nota: Le chiavi sono automaticamente prefissate con "hyperfactions." dal modulo I18n di Hytale +# Segnaposto: {0}, {1}, ecc. + +# ========== Comune ========== +common.no_permission = Non hai il permesso per farlo. +common.not_in_faction = Non fai parte di una fazione. +common.already_in_faction = Fai già parte di una fazione. +common.player_not_found = Giocatore non trovato. +common.faction_not_found = Fazione non trovata. +common.player_not_online = Quel giocatore non è online. +common.must_be_leader = Solo il capo della fazione può farlo. +common.must_be_officer = Devi essere un Ufficiale o un Capo per farlo. +common.combat_tagged = Non puoi farlo mentre sei in combattimento. +common.cancel = Annulla +common.confirm = Conferma +common.save = Salva +common.close = Chiudi +common.clear = Cancella +common.back = Indietro +common.leave = Abbandona +common.transfer = Trasferisci +common.disband = Sciogli +common.world_fallback = mondo +common.yes = Sì +common.no = No +common.loading = Caricamento... +common.online = Online +common.offline = Offline +common.enabled = Attivato +common.disabled = Disattivato +common.none = Nessuno +common.page = Pagina {0} di {1} +common.unknown = Sconosciuto +common.error_generic = Qualcosa è andato storto. Riprova. +common.gui_fallback = Impossibile accedere alla GUI. Usa /f help per i comandi. +common.admin_prefix = [Admin] +common.location_error = Impossibile determinare la tua posizione. +common.world_error = Impossibile determinare il tuo mondo. +common.invalid_id = ID fazione non valido. +common.na = N/D + +# ========== Comandi - Creazione ========== +cmd.create.no_permission = Non hai il permesso di creare fazioni. +cmd.create.usage = Uso: /f create +cmd.create.success = Fazione '{0}' creata! +cmd.create.already_in_named = Fai già parte di {0}. +cmd.create.use_leave_first = Usa /f leave prima se vuoi creare una nuova fazione. +cmd.create.name_taken = Quel nome di fazione è già in uso. +cmd.create.name_too_short = Il nome della fazione è troppo corto. +cmd.create.name_too_long = Il nome della fazione è troppo lungo. +cmd.create.failed = Impossibile creare la fazione. + +# ========== Comandi - Scioglimento ========== +cmd.disband.no_permission = Non hai il permesso di sciogliere fazioni. +cmd.disband.not_leader = Solo il capo della fazione può scioglierla. +cmd.disband.confirm_prompt = Sei sicuro di voler sciogliere la tua fazione? +cmd.disband.confirm_instruction = Digita /f disband --text di nuovo entro {0} secondi per confermare. +cmd.disband.success = La tua fazione è stata sciolta. +cmd.disband.failed = Impossibile sciogliere la fazione. +cmd.disband.cancelled = Conferma precedente annullata. Digita di nuovo per confermare lo scioglimento. + +# ========== Comandi - Rinomina ========== +cmd.rename.no_permission = Non hai il permesso. +cmd.rename.not_leader = Solo il capo può rinominare la fazione. +cmd.rename.usage = Uso: /f rename +cmd.rename.too_short = Il nome è troppo corto (min {0} caratteri). +cmd.rename.too_long = Il nome è troppo lungo (max {0} caratteri). +cmd.rename.name_taken = Quel nome è già in uso. +cmd.rename.success = Fazione rinominata in {0}! +cmd.rename.broadcast = {0} ha rinominato la fazione in {1} + +# ========== Comandi - Descrizione ========== +cmd.desc.no_permission = Non hai il permesso. +cmd.desc.not_officer = Devi essere un ufficiale per impostare la descrizione. +cmd.desc.set = Descrizione della fazione impostata! +cmd.desc.cleared = Descrizione della fazione cancellata. + +# ========== Comandi - Apri / Chiudi ========== +cmd.open.no_permission = Non hai il permesso. +cmd.open.not_leader = Solo il capo può modificare questa impostazione. +cmd.open.already_open = La tua fazione è già aperta. +cmd.open.success = La tua fazione è ora aperta! Chiunque può unirsi con /f join. +cmd.open.broadcast = {0} ha aperto la fazione all'iscrizione pubblica. +cmd.close.no_permission = Non hai il permesso. +cmd.close.not_leader = Solo il capo può modificare questa impostazione. +cmd.close.already_closed = La tua fazione è già chiusa. +cmd.close.success = La tua fazione è ora solo su invito. +cmd.close.broadcast = {0} ha chiuso la fazione, ora è solo su invito. + +# ========== Comandi - Colore ========== +cmd.color.no_permission = Non hai il permesso. +cmd.color.not_officer = Devi essere un ufficiale per cambiare il colore. +cmd.color.colors_disabled = I colori delle fazioni sono disattivati. +cmd.color.usage = Uso: /f color +cmd.color.usage_hint = Codici validi: 0-9, a-f oppure #RRGGBB hex +cmd.color.invalid = Colore non valido. Usa 0-9, a-f, oppure #RRGGBB. +cmd.color.success = Colore della fazione aggiornato! + +# ========== Comandi - Territorio ========== +cmd.claim.no_permission = Non hai il permesso di rivendicare territorio. +cmd.claim.already_yours = La tua fazione possiede già questo chunk. +cmd.claim.cannot_claim_ally = Non puoi rivendicare il territorio di un alleato. +cmd.claim.already_claimed_hint = Questo chunk è rivendicato. Usa /f overclaim se sono saccheggiabili. +cmd.claim.success = Chunk rivendicato a {0}, {1}! +cmd.claim.not_officer = Devi essere un ufficiale per rivendicare territori. +cmd.claim.already_claimed = Questo chunk è già rivendicato. +cmd.claim.max_claims = La tua fazione ha raggiunto il massimo di territori. Ottieni più potere! +cmd.claim.not_adjacent = Devi rivendicare un chunk adiacente al territorio esistente. +cmd.claim.world_not_allowed = La rivendicazione non è permessa in questo mondo. +cmd.claim.orbisguard = Quest'area è protetta da OrbisGuard. +cmd.claim.zone_protected = Questo chunk si trova in una SafeZone o WarZone. +cmd.claim.insufficient_power = La tua fazione non ha abbastanza potere per rivendicare altro territorio. +cmd.claim.failed = Impossibile rivendicare il chunk. + +# ========== Comandi - Invito ========== +cmd.invite.no_permission = Non hai il permesso di invitare giocatori. +cmd.invite.not_officer = Devi essere un ufficiale per invitare giocatori. +cmd.invite.usage = Uso: /f invite +cmd.invite.player_not_found = Giocatore '{0}' non trovato o offline. +cmd.invite.target_in_faction = Quel giocatore fa già parte di una fazione. +cmd.invite.sent = {0} è stato invitato nella tua fazione. +cmd.invite.received = Sei stato invitato a unirti a {0}! +cmd.invite.accept_hint = Digita /f accept {0} per unirti. + +# ========== Comandi - Accetta / Unisciti ========== +cmd.join.no_permission = Non hai il permesso di unirti alle fazioni. +cmd.join.already_in_named = Fai già parte di {0}. +cmd.join.use_leave_hint = Usa /f leave prima se vuoi unirti a un'altra fazione. +cmd.join.no_invites = Non hai inviti in sospeso. +cmd.join.faction_not_found = Fazione '{0}' non trovata. +cmd.join.not_invited = Non hai un invito da quella fazione. +cmd.join.faction_gone = Quella fazione non esiste più. +cmd.join.success = Ti sei unito a {0}! +cmd.join.broadcast = {0} si è unito alla fazione! +cmd.join.faction_full = Quella fazione è piena. +cmd.join.failed = Impossibile unirsi alla fazione. + +# ========== Comandi - Espulsione ========== +cmd.kick.no_permission = Non hai il permesso di espellere membri. +cmd.kick.usage = Uso: /f kick +cmd.kick.not_in_your_faction = Il giocatore '{0}' non è nella tua fazione. +cmd.kick.success = {0} è stato espulso dalla fazione. +cmd.kick.broadcast = {0} è stato espulso dalla fazione. +cmd.kick.kicked = Sei stato espulso dalla fazione. +cmd.kick.cannot_kick_higher = Non hai il permesso di espellere quel giocatore. +cmd.kick.cannot_kick_leader = Non puoi espellere il capo della fazione. +cmd.kick.failed = Impossibile espellere il giocatore. + +# ========== Comandi - Abbandono ========== +cmd.leave.no_permission = Non hai il permesso di abbandonare le fazioni. +cmd.leave.confirm_prompt = Sei sicuro di voler abbandonare la tua fazione? +cmd.leave.confirm_instruction = Digita /f leave --text di nuovo entro {0} secondi per confermare. +cmd.leave.success = Hai abbandonato la tua fazione. +cmd.leave.broadcast = {0} ha abbandonato la fazione. +cmd.leave.failed = Impossibile abbandonare la fazione. +cmd.leave.cancelled = Conferma precedente annullata. Digita di nuovo per confermare l'abbandono. + +# ========== Comandi - Promozione / Retrocessione / Trasferimento ========== +cmd.rank.promote_no_permission = Non hai il permesso di promuovere membri. +cmd.rank.promote_usage = Uso: /f promote +cmd.rank.promoted = {0} promosso a {1}! +cmd.rank.promote_broadcast = {0} è stato promosso a {1}! +cmd.rank.already_highest = Impossibile promuovere ulteriormente. Usa /f transfer per cambiare capo. +cmd.rank.promote_failed = Impossibile promuovere il giocatore. +cmd.rank.demote_no_permission = Non hai il permesso di retrocedere membri. +cmd.rank.demote_usage = Uso: /f demote +cmd.rank.demoted = {0} retrocesso a {1}. +cmd.rank.demote_broadcast = {0} è stato retrocesso a {1}. +cmd.rank.already_lowest = Quel giocatore è già un Membro. +cmd.rank.demote_failed = Impossibile retrocedere il giocatore. +cmd.rank.transfer_no_permission = Non hai il permesso di trasferire la leadership. +cmd.rank.transfer_usage = Uso: /f transfer +cmd.rank.player_not_in_faction = Giocatore non trovato nella tua fazione. +cmd.rank.transfer_confirm = Sei sicuro di voler trasferire la leadership a {0}? +cmd.rank.transfer_confirm_instruction = Digita /f transfer {0} --text di nuovo entro {1} secondi per confermare. +cmd.rank.transferred = Leadership trasferita a {0}! +cmd.rank.transfer_broadcast = {0} è ora il capo della fazione! +cmd.rank.transfer_failed = Impossibile trasferire la leadership. +cmd.rank.transfer_cancelled = Conferma precedente annullata. Digita di nuovo per confermare il trasferimento. + +# ========== Comandi - Rinuncia Territorio ========== +cmd.unclaim.no_permission = Non hai il permesso di rinunciare al territorio. +cmd.unclaim.success = Chunk rilasciato a {0}, {1}. +cmd.unclaim.not_officer = Devi essere un ufficiale per rinunciare ai territori. +cmd.unclaim.chunk_not_claimed = Questo chunk non è rivendicato. +cmd.unclaim.not_your_claim = La tua fazione non possiede questo chunk. +cmd.unclaim.cannot_unclaim_home = Impossibile rilasciare il chunk con la base della fazione. +cmd.unclaim.would_disconnect = Impossibile rilasciare — disconnetterebbe il tuo territorio. +cmd.unclaim.failed = Impossibile rilasciare il chunk. + +# ========== Comandi - Conquista ========== +cmd.overclaim.no_permission = Non hai il permesso di conquistare territori. +cmd.overclaim.success = Territorio nemico conquistato! +cmd.overclaim.not_officer = Devi essere un ufficiale per conquistare territori. +cmd.overclaim.not_claimed = Questo chunk non è rivendicato. Usa /f claim. +cmd.overclaim.own_chunk = La tua fazione possiede già questo chunk. +cmd.overclaim.ally = Non puoi conquistare il territorio di un alleato. +cmd.overclaim.target_has_power = Questa fazione ha ancora abbastanza potere. +cmd.overclaim.failed = Impossibile conquistare il territorio. + +# ========== Comandi - Bloccato ========== +cmd.stuck.no_permission = Non hai il permesso di usare /f stuck. +cmd.stuck.not_stuck = Non sei bloccato - questa è zona selvaggia. +cmd.stuck.combat_tagged = Non puoi usare /f stuck durante il combattimento! +cmd.stuck.no_safe = Impossibile trovare una posizione sicura. +cmd.stuck.teleporting = Teletrasporto verso un luogo sicuro tra {0} secondi. Non muoverti! + +# ========== Comandi - Base ========== +cmd.home.no_permission = Non hai il permesso di teletrasportarti alla base della fazione. +cmd.home.no_home = La tua fazione non ha una base impostata. +cmd.home.combat_tagged = Non puoi teletrasportarti durante il combattimento! +cmd.home.teleported = Teletrasportato alla base della fazione! + +# ========== Comandi - Imposta Base ========== +cmd.sethome.no_permission = Non hai il permesso di impostare la base della fazione. +cmd.sethome.world_not_allowed = Impossibile impostare la base in questo mondo. +cmd.sethome.not_in_territory = Puoi impostare la base solo nel territorio della tua fazione. +cmd.sethome.set = Base della fazione impostata! +cmd.sethome.broadcast = {0} ha impostato la base della fazione. +cmd.sethome.not_officer = Devi essere un ufficiale per impostare la base. +cmd.sethome.failed = Impossibile impostare la base. + +# ========== Comandi - Elimina Base ========== +cmd.delhome.no_permission = Non hai il permesso di eliminare la base della fazione. +cmd.delhome.no_home = La tua fazione non ha una base impostata. +cmd.delhome.deleted = Base della fazione eliminata! +cmd.delhome.broadcast = {0} ha eliminato la base della fazione. +cmd.delhome.not_officer = Devi essere un ufficiale per eliminare la base. +cmd.delhome.failed = Impossibile eliminare la base. + +# ========== Comandi - Relazioni (Alleato/Nemico/Neutrale/Relazioni) ========== +cmd.relation.ally_no_permission = Non hai il permesso di gestire le alleanze. +cmd.relation.ally_usage = Uso: /f ally +cmd.relation.ally_sent = Richiesta di alleanza inviata a {0}! +cmd.relation.ally_formed = Ora sei alleato con {0}! +cmd.relation.already_ally = Sei già alleato con quella fazione. +cmd.relation.ally_failed = Impossibile inviare la richiesta di alleanza. +cmd.relation.enemy_no_permission = Non hai il permesso di dichiarare nemici. +cmd.relation.enemy_usage = Uso: /f enemy +cmd.relation.enemy_declared = {0} è ora tuo nemico! +cmd.relation.already_enemy = Sei già nemico di quella fazione. +cmd.relation.max_enemies = Hai raggiunto il numero massimo di nemici. +cmd.relation.enemy_failed = Impossibile impostare il nemico. +cmd.relation.neutral_no_permission = Non hai il permesso di impostare relazioni neutrali. +cmd.relation.neutral_usage = Uso: /f neutral +cmd.relation.neutral_set = La tua fazione è ora neutrale con {0}. +cmd.relation.already_neutral = Sei già neutrale con quella fazione. +cmd.relation.neutral_failed = Impossibile impostare la neutralità. +cmd.relation.cannot_self = Non puoi allearti con te stesso. +cmd.relation.max_allies = Hai raggiunto il numero massimo di alleati. +cmd.relation.view_no_permission = Non hai il permesso di visualizzare le relazioni. +cmd.relation.header = === Relazioni della Fazione === +cmd.relation.allies_count = Alleati ({0}): +cmd.relation.enemies_count = Nemici ({0}): +cmd.relation.list_entry = - {0} + +# ========== Comandi - Chat ========== +cmd.chat.usage = Uso: /f c [f|a|off] +cmd.chat.no_permission = Non hai il permesso per quella modalità di chat. +cmd.chat.mode_set = Modalità chat impostata su {0} + +# ========== Comandi - Inviti ========== +cmd.invites.not_officer = Devi essere un ufficiale per gestire gli inviti. +cmd.invites.header = === Inviti della Fazione === +cmd.invites.no_pending = Nessun invito o richiesta in sospeso. +cmd.invites.outgoing = Inviti in uscita: +cmd.invites.outgoing_entry = {0} (invitato da {1}) +cmd.invites.requests = Richieste di adesione: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === I Tuoi Inviti === +cmd.invites.no_invites = Non hai inviti in sospeso. +cmd.invites.invite_entry = {0} - Usa /f accept {1} + +# ========== Comandi - Richiesta ========== +cmd.request.no_permission = Non hai il permesso di richiedere l'adesione a una fazione. +cmd.request.already_in_named = Fai già parte di {0}. +cmd.request.use_leave_hint = Usa /f leave prima se vuoi unirti a un'altra fazione. +cmd.request.usage = Uso: /f request [messaggio] +cmd.request.faction_open = Quella fazione è aperta! Usa /f accept {0} per unirti direttamente. +cmd.request.already_requested = Hai già una richiesta in sospeso per quella fazione. +cmd.request.has_invite = Sei stato invitato da quella fazione! Usa /f accept {0} per unirti. +cmd.request.sent = Richiesta di adesione inviata a {0}! +cmd.request.your_message = Il tuo messaggio: "{0}" +cmd.request.officer_review = Un ufficiale esaminerà la tua richiesta. +cmd.request.officer_notify = {0} ha richiesto di unirsi alla tua fazione! +cmd.request.officer_review_hint = Usa /f gui > Inviti per esaminare. + +# ========== Comandi - Informazioni ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Non hai il permesso di visualizzare le informazioni della fazione. +cmd.info.faction_not_found = Fazione '{0}' non trovata. +cmd.info.not_in_faction_hint = Non fai parte di una fazione. Usa /f info +cmd.info.leader = Capo: {0} +cmd.info.members = Membri: {0}/{1} +cmd.info.power = Potere: {0} +cmd.info.claims = Territori: {0} +cmd.info.raidable = SACCHEGGIABILE! +cmd.info.allies = Alleati: {0} +cmd.info.enemies = Nemici: {0} +cmd.info.they_consider = Ti considerano: {0} +cmd.info.you_consider = Li consideri: {0} +cmd.info.members_no_permission = Non hai il permesso di visualizzare i membri della fazione. +cmd.info.members_header = === Membri di {0} ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Non hai il permesso di visualizzare l'elenco delle fazioni. +cmd.info.list_empty = Non ci sono fazioni. +cmd.info.list_header = === Fazioni ({0}) === +cmd.info.list_entry = {0} - {1} membri, {2} potere +cmd.info.list_entry_raidable = {0} - {1} membri, {2} potere [SACCHEGGIABILE] +cmd.info.help_no_permission = Non hai il permesso di visualizzare l'aiuto. +cmd.info.who_no_permission = Non hai il permesso di visualizzare le informazioni del giocatore. +cmd.info.who_faction = Fazione: {0} +cmd.info.who_role = Ruolo: {0} +cmd.info.who_joined = Iscritto: {0} +cmd.info.who_faction_none = Fazione: Nessuna +cmd.info.who_power = Potere: {0} +cmd.info.who_status = Stato: {0} +cmd.info.who_last_seen = Ultimo accesso: {0} +cmd.info.map_no_permission = Non hai il permesso di visualizzare la mappa. +cmd.info.map_header = === Mappa del Territorio === +cmd.info.map_legend = Legenda: +Tu /Tuo /Alleato /Nemico -Selvaggio +cmd.info.map_gui_hint = Usa /f gui per la mappa interattiva + +# ========== Comandi - Potere ========== +cmd.power.personal = Potere Personale: {0}/{1} +cmd.power.faction = Potere della Fazione: {0}/{1} +cmd.power.death_loss = Perdita per Morte: {0} +cmd.power.regen = Rigenerazione: {0}/ora +cmd.power.no_permission = Non hai il permesso di visualizzare le informazioni sul potere. +cmd.power.header = Potere di {0}: +cmd.power.current = Attuale: {0} + +# ========== Comandi - Economia ========== +cmd.economy.balance = Saldo: {0} +cmd.economy.deposited = Depositato {0} nella tesoreria della fazione. +cmd.economy.withdrawn = Prelevato {0} dalla tesoreria della fazione. +cmd.economy.transferred = Trasferito {0} a {1}. +cmd.economy.insufficient = Fondi insufficienti nella tesoreria della fazione. +cmd.economy.invalid_amount = Importo non valido: {0} +cmd.economy.economy_disabled = L'economia è disattivata. +cmd.economy.balance_no_permission = Non hai il permesso di visualizzare i saldi. +cmd.economy.treasury_unavailable = La tesoreria non è disponibile. +cmd.economy.balance_display = Tesoreria di {0}: {1} +cmd.economy.deposit_no_permission = Non hai il permesso di depositare. +cmd.economy.deposit_faction_denied = Non hai il permesso della fazione per depositare. +cmd.economy.deposit_usage = Uso: /f deposit +cmd.economy.amount_positive = L'importo deve essere positivo. +cmd.economy.wallet_insufficient = Non hai abbastanza denaro. Portafoglio: {0} +cmd.economy.wallet_withdraw_failed = Impossibile prelevare dal tuo portafoglio. +cmd.economy.deposit_failed = Impossibile depositare nella tesoreria della fazione. Denaro restituito. +cmd.economy.withdraw_no_permission = Non hai il permesso di prelevare. +cmd.economy.withdraw_faction_denied = Non hai il permesso della fazione per prelevare. +cmd.economy.withdraw_usage = Uso: /f withdraw +cmd.economy.withdraw_limit_denied = Prelievo negato: {0} +cmd.economy.wallet_deposit_failed = Attenzione: Impossibile depositare nel tuo portafoglio. Contatta un amministratore. +cmd.economy.withdraw_limit_exceeded = Prelievo negato: limite superato. +cmd.economy.withdraw_failed = Prelievo fallito: {0} +cmd.economy.transfer_no_permission = Non hai il permesso di trasferire. +cmd.economy.transfer_faction_denied = Non hai il permesso della fazione per trasferire. +cmd.economy.transfer_usage = Uso: /f money transfer +cmd.economy.transfer_self = Non puoi trasferire alla tua stessa fazione. +cmd.economy.transfer_limit_denied = Trasferimento negato: {0} +cmd.economy.transfer_limit_exceeded = Trasferimento negato: limite superato. +cmd.economy.transfer_failed = Trasferimento fallito: {0} +cmd.economy.log_no_permission = Non hai il permesso di visualizzare il registro delle transazioni. +cmd.economy.log_header = Registro Transazioni (pagina {0}/{1}) +cmd.economy.log_empty = Nessuna transazione trovata. +cmd.economy.money_help_header = Comandi Tesoreria: +cmd.economy.money_help_balance = /f money balance [fazione] - Visualizza saldo +cmd.economy.money_help_deposit = /f money deposit - Deposita nella tesoreria +cmd.economy.money_help_withdraw = /f money withdraw - Preleva dalla tesoreria +cmd.economy.money_help_transfer = /f money transfer - Trasferisci tra fazioni +cmd.economy.money_help_log = /f money log [pagina] [tipo] - Visualizza cronologia transazioni + +# ========== Protezione - Frasi di Azione ========== +protection.action.generic = Non puoi farlo +protection.action.build = Non puoi costruire o distruggere blocchi +protection.action.interact = Non puoi interagire con quello +protection.action.door = Non puoi usare le porte +protection.action.container = Non puoi aprire i contenitori +protection.action.bench = Non puoi usare le stazioni di fabbricazione +protection.action.processing = Non puoi usare le stazioni di lavorazione +protection.action.seat = Non puoi usare le sedute +protection.action.light = Non puoi accendere/spegnere le luci +protection.action.teleporter = Non puoi usare i teletrasportatori +protection.action.crate = Non puoi usare le casse +protection.action.tame = Non puoi addomesticare creature +protection.action.npc = Non puoi interagire con gli NPC +protection.action.mount = Non puoi cavalcare creature +protection.action.pve = Non puoi danneggiare creature +protection.action.item_drop = Non puoi rilasciare oggetti +protection.action.item_pickup = Non puoi raccogliere oggetti + +# ========== Protezione - Motivi del Rifiuto ========== +protection.denied.safezone = {0} in una SafeZone. +protection.denied.warzone = {0} in una WarZone. +protection.denied.enemy_claim = {0} in territorio nemico. +protection.denied.claimed = {0} in territorio rivendicato. +protection.denied.here = {0} qui. +protection.denied.zone = {0} in questa zona. +protection.denied.faction_perm = {0} qui. (Permesso fazione: {1}) +protection.denied.ally_territory = {0} qui. (Territorio alleato) +protection.denied.error = Errore di protezione — azione bloccata per sicurezza. + +# ========== Protezione - PvP ========== +protection.pvp.safezone = Il PvP è disattivato nelle SafeZone. +protection.pvp.same_faction = Non puoi attaccare i membri della tua fazione. +protection.pvp.ally = Non puoi attaccare gli alleati. +protection.pvp.spawn_protected = Quel giocatore ha la protezione allo spawn. +protection.pvp.territory_disabled = Il PvP è disattivato in questo territorio. +protection.pvp.generic = Non puoi attaccare questo giocatore. + +# ========== Protezione - Danni alle Entità ========== +protection.mob_damage_disabled = I danni dei mob sono disattivati in questa zona. +protection.pve_damage_disabled = I danni PvE sono disattivati in questa zona. +protection.pve_territory_denied = Non puoi danneggiare i mob in questo territorio. + +# ========== Protezione - Tag Combattimento ========== +protection.combat_tag_command = Non puoi usare quel comando mentre sei in combattimento. + +# ========== Annunci del Server ========== +# Questi vengono trasmessi a tutti i giocatori online per eventi significativi della fazione. +# {0}, {1} = valori dinamici (nomi di fazioni, nomi di giocatori) +server_announce.faction_created = {0} ha fondato la fazione {1}! +server_announce.faction_disbanded = La fazione {0} è stata sciolta! +server_announce.leadership_transfer = {0} è ora il capo di {1}! +server_announce.overclaim = {0} ha conquistato territorio da {1}! +server_announce.war_declared = {0} ha dichiarato guerra a {1}! +server_announce.alliance_formed = {0} e {1} sono ora alleati! +server_announce.alliance_broken = {0} e {1} non sono più alleati! + +# ========== Sistema di Teletrasporto ========== +teleport.cooldown_wait = Devi attendere {0} prima di teletrasportarti di nuovo. +teleport.warmup_start = Teletrasporto alla base della fazione tra {0} secondi... +teleport.combat_cancelled = Teletrasporto annullato - sei in combattimento! +teleport.success_default = Teletrasportato alla base della fazione! +teleport.no_home = La tua fazione non ha una base impostata. +teleport.world_not_found = Mondo non trovato. +teleport.failed = Teletrasporto fallito. +teleport.countdown = Teletrasporto tra {0} secondi... +teleport.countdown_one = Teletrasporto tra 1 secondo... +teleport.moved_cancelled = Teletrasporto annullato - ti sei mosso! +teleport.damage_cancelled = Teletrasporto annullato - hai subito danni! +teleport.mount_teleport_blocked = Non puoi teletrasportarti in quella zona mentre sei in sella. +teleport.mount_entry_blocked = Non puoi entrare in questa zona mentre sei in sella. + +# ========== Visualizzazione Chat ========== +chat.display.public = Pubblico +chat.display.faction = Fazione +chat.display.ally = Alleato diff --git a/src/main/resources/Server/Languages/it-IT/hyperfactions_admin.lang b/src/main/resources/Server/Languages/it-IT/hyperfactions_admin.lang new file mode 100644 index 00000000..87561a43 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Traduzioni Italiane +# Formato: chiave = valore +# Nota: Le chiavi sono automaticamente prefissate con "hyperfactions_admin." dal modulo I18n di Hytale + +# ========== Barra di Navigazione Admin ========== +nav.dashboard = Pannello +nav.actions = Azioni +nav.factions = Fazioni +nav.players = Giocatori +nav.economy = Economia +nav.zones = Zone +nav.config = Config +nav.backups = Backup +nav.log = Registro +nav.updates = Aggiornamenti +nav.help = Aiuto +nav.version = Versione + +# ========== Etichette Comuni Admin ========== +common.faction_not_found = Fazione Non Trovata +common.no_faction = Nessuna Fazione +common.not_set = Non impostato +common.on = Attivo +common.off = Spento +common.enable = Attiva +common.disable = Disattiva +common.none_paren = (Nessuno) +common.invalid_faction = Fazione non valida. +common.leader_prefix = Capo: {0} +common.members_suffix = {0} membri +common.claims_suffix = {0} territori +common.factions_suffix = {0} fazioni +common.players_suffix = {0} giocatori +common.chunks_suffix = {0} chunk +common.entries_suffix = {0} voci +common.found_suffix = {0} trovati +common.power_format = {0}/{1} potere +common.raidable = Saccheggiabile +common.protected = Protetta +common.no_description = Nessuna descrizione impostata. +common.officers_more = +{0} altri +common.custom_max = (max personalizzato) +common.default_max = (max predefinito) +common.now = Ora +common.ago_suffix = {0} fa +common.just_now = adesso +common.no_membership_history = Nessuna cronologia di appartenenza + +# ========== Pannello Admin ========== +dashboard.factions_prefix = Fazioni: {0} +dashboard.members_prefix = Totale Membri: {0} +dashboard.claims_prefix = Totale Territori: {0} + +# ========== Azioni Admin ========== +actions.confirm_reset = Confermare il Ripristino? +actions.confirm_trigger = Confermare l'Attivazione? +actions.kd_reset = U/M ripristinato per {0} giocatori. +actions.kd_reset_failed = Impossibile ripristinare U/M: {0} +actions.upkeep_unavailable = Il processore di mantenimento non è disponibile. +actions.upkeep_triggered = Riscossione mantenimento avviata. +actions.upkeep_failed = Mantenimento fallito: {0} + +# ========== Scioglimento Admin ========== +disband.faction_gone = La fazione non esiste più. +disband.success = La fazione '{0}' è stata sciolta. +disband.failed = Impossibile sciogliere: {0} +disband.no_leader = La fazione non ha un capo, impossibile sciogliere. + +# ========== Rilascio Totale Territori Admin ========== +unclaim.removed = [Admin] Rimossi {0} territori da {1}. +unclaim.no_claims = {0} non aveva territori da rimuovere. + +# ========== Lista Fazioni Admin ========== +factions.home_not_set = Non impostata +factions.teleported = Teletrasportato alla base di {0}. +factions.no_home = La fazione non ha una base impostata. +factions.world_not_found = Mondo di destinazione non trovato. + +# ========== Info Fazione Admin ========== +info.faction_gone = Questa fazione non esiste più. + +# ========== Membri Fazione Admin ========== +members.sort_role = Ruolo +members.sort_online = Online +members.sort_name = Nome +members.sort_power = Potere +members.promoted = [Admin] {0} promosso a {1}. +members.demoted = [Admin] {0} retrocesso a {1}. +members.kicked = [Admin] {0} espulso dalla fazione. + +# ========== Relazioni Fazione Admin ========== +relations.allies_header = ALLEATI ({0}) +relations.enemies_header = NEMICI ({0}) +relations.no_allies = Nessun alleato. +relations.no_enemies = Nessun nemico. +relations.neutral_count = {0} fazioni neutrali +relations.since_today = Dal: oggi +relations.since_one_day = Dal: 1 giorno fa +relations.since_days = Dal: {0} giorni fa +relations.set_ally = [Admin] Impostato stato di alleanza reciproca con {0}. +relations.set_enemy = Impostato stato di nemico reciproco con {0}. +relations.set_neutral = [Admin] Impostato stato neutrale reciproco con {0}. + +# ========== Impostazioni Fazione Admin ========== +settings.locked = Questa impostazione è bloccata dalla configurazione del server. +settings.perm_toggled = {0} impostato su {1}. +settings.color_changed = Colore fazione impostato su {0}. +settings.recruitment_set = Reclutamento impostato su {0}. +settings.no_home = [Admin] Questa fazione non ha una base impostata. +settings.home_cleared = Base della fazione cancellata per {0}. + +# ========== Etichette Ordinamento ========== +sort.power = Potere +sort.name = Nome +sort.members = Membri +sort.balance = Saldo + +# ========== Giocatori Admin ========== +players.sort_last_online = Ultimo Accesso +players.sort_faction = Fazione +players.sort_online = Online +players.not_online = Il giocatore non è online. +players.world_not_found = Mondo di destinazione non trovato. +players.teleported = [Admin] Teletrasportato a {0}. + +# ========== Info Giocatore Admin ========== +playerinfo.disband_faction = Sciogli Fazione +playerinfo.kick_leader = Espelli Capo +playerinfo.enter_valid_number = Inserisci un numero valido. +playerinfo.enter_valid_positive = Inserisci un numero positivo valido. +playerinfo.faction_gone = La fazione non esiste più. +playerinfo.kd_reset = U/M ripristinato per {0}. +playerinfo.kicked_success = {0} espulso da {1}. +playerinfo.kicked_leader = Capo {0} espulso. Leadership trasferita a {1}. +playerinfo.disbanded_kick = [Admin] Fazione '{0}' sciolta (ultimo membro espulso). + +# ========== Economia Admin ========== +economy.no_data = Nessuna fazione con dati economici. +economy.amount_zero = L'importo non può essere zero. +economy.enter_amount = Inserisci un importo. +economy.invalid_number = Numero non valido: {0} +economy.error = Si è verificato un errore. +economy.balance_negative = Il saldo non può essere negativo. +economy.failed = Fallito: {0} +economy.bulk_complete = Regolazione massiva completata: {0} {1} a {2} fazioni. +economy.bulk_failures = ({0} fallite) + +# ========== Zone Admin ========== +zones.not_found = Zona non trovata. +zones.invalid_id = ID zona non valido. +zones.deleted = Zona {0} eliminata. +zones.delete_failed = Impossibile eliminare la zona: {0} +zones.no_chunks = Nessun chunk +zones.chunks_suffix = {0} ({1} chunk) + +# ========== Procedura Creazione Zona ========== +wizard.enter_name = Inserisci un nome per la zona. +wizard.name_too_short = Il nome della zona deve avere almeno {0} caratteri. +wizard.name_too_long = Il nome della zona non può superare i {0} caratteri. +wizard.name_taken = Esiste già una zona con questo nome. +wizard.radius_range = Il raggio deve essere compreso tra 1 e {0}. +wizard.create_failed = Impossibile creare la zona: {0} +wizard.created_not_found = Zona creata ma non trovata. +wizard.created = Creata {0} '{1}'! +wizard.chunk_claimed = Chunk rivendicato ({0}, {1}). +wizard.chunk_failed = Impossibile rivendicare il chunk corrente: {0} +wizard.radius_claimed = Rivendicati {0} chunk in un raggio di {1} da {2}. +wizard.radius_no_claims = Nessun chunk rivendicabile (l'area potrebbe essere occupata). +wizard.no_claims = Zona creata senza territori. +wizard.chunks_preview = ~{0} chunk + +# ========== Rinomina Zona ========== +zone_rename.zone_gone = La zona non esiste più. +zone_rename.enter_name = Inserisci un nome per la zona. +zone_rename.too_short = Il nome della zona deve avere almeno {0} carattere. +zone_rename.too_long = Il nome della zona non può superare i {0} caratteri. +zone_rename.same_name = È già il nome di questa zona. +zone_rename.renamed = [Admin] Zona rinominata da {0} a {1}! +zone_rename.name_taken = Esiste già una zona con quel nome. +zone_rename.invalid_name = Nome della zona non valido. +zone_rename.rename_failed = Impossibile rinominare la zona: {0} + +# ========== Cambio Tipo Zona ========== +zone_type.zone_gone = La zona non esiste più. +zone_type.changed = [Admin] Cambiato {0} da {1} a {2} ({3}). +zone_type.failed = Impossibile cambiare il tipo di zona: {0} +zone_type.flags_reset = flag ripristinati +zone_type.flags_kept = flag mantenuti + +# ========== Flag di Integrazione Zona ========== +zone_int.zone_not_found = Zona Non Trovata +zone_int.no_plugin = (nessun plugin) +zone_int.default = (predefinito) +zone_int.custom = (personalizzato) + +# Etichette UI flag di integrazione +gui.zint_cat_gravestones = Tombe +gui.zint_gravestones_desc = Quando ATTIVO, i non proprietari possono saccheggiare le tombe. I proprietari possono sempre farlo. +gui.zint_cat_world_map = Mappa del Mondo +gui.zint_world_map_desc = Sovrascrive il nascondimento sulla mappa per i giocatori in questa zona. Quando attivo, seleziona chi può vedere i giocatori in questa zona. +gui.zint_visibility_label = Livello di Visibilità: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Ripristina Predefiniti +gui.zint_back_to_flags = Torna ai Flag +gui.zint_map_vis_faction = Solo Fazione +gui.zint_map_vis_ally = Fazione + Alleati +gui.zint_map_vis_all = Tutti i Giocatori + +# ========== Registro Attività ========== +log.all_types = Tutti i Tipi +log.no_logs = Nessun registro attività corrispondente ai filtri. + +# ========== Pagina Versione ========== +version.active = Attivo +version.not_found = Non Trovato +version.not_detected = Non Rilevato +version.not_installed = Non Installato +version.active_version = Attivo (v{0}) +version.active_compatible = Attivo (compatibile) +version.active_claims_only = Attivo (solo territori) +version.installed_no_perm = Installato (nessun provider permessi) +version.active_provider = Attivo ({0}) + +# ========== Pagina Principale Admin ========== +main.reload_hint = Usa /f reload per ricaricare la configurazione. +main.unclaim_hint = Usa /f admin unclaim {0} per rilasciare tutti i {1} chunk. + +# ========== Flag/Impostazioni Zona ========== +zflags.invalid_flag = Flag non valido. +zflags.zone_not_found = Zona non trovata. +zflags.conflict = (conflitto) +zflags.mixin = (mixin) +zflags.reset_int = Ripristina flag di integrazione ai predefiniti. +zflags.reset_all = Ripristina tutti i flag ai predefiniti. +zflags.reset_failed = Impossibile ripristinare i flag: {0} +zflags.back_to_settings = Torna alle Impostazioni + +# Etichette UI impostazioni zona +gui.zset_cat_combat = Combattimento +gui.zset_cat_damage = Danni +gui.zset_cat_death = Morte +gui.zset_cat_building = Costruzione +gui.zset_cat_interaction = Interazione +gui.zset_cat_transport = Trasporto +gui.zset_cat_items = Oggetti +gui.zset_cat_spawning = Generazione Mob +gui.zset_cat_mob_clear = Pulizia Mob +gui.zset_children_hint = (sottovoci attive solo quando il genitore è ATTIVO) +gui.zset_reset_defaults = Ripristina Predefiniti +gui.zset_integration_flags = Flag di Integrazione +gui.zset_back_to_zones = Torna alle Zone +gui.zset_chunks = {0} chunk + +# Nomi Visualizzati Flag Zona +gui.zflag_pvp_enabled = PvP Attivato +gui.zflag_friendly_fire = Fuoco Amico +gui.zflag_friendly_fire_faction = Danni della Fazione +gui.zflag_friendly_fire_ally = Danni Alleati +gui.zflag_projectile_damage = Danni da Proiettile +gui.zflag_mob_damage = Subire Danni Mob +gui.zflag_pve_damage = Infliggere Danni Mob +gui.zflag_fall_damage = Danni da Caduta +gui.zflag_environmental_damage = Danni Amb. +gui.zflag_explosion_damage = Danni da Esplosione +gui.zflag_fire_spread = Propagazione Fuoco +gui.zflag_keep_inventory = Mantieni Inventario +gui.zflag_power_loss = Perdita Potere +gui.zflag_build_allowed = Costruzione Permessa +gui.zflag_block_place = Piazzamento Blocchi +gui.zflag_hammer_use = Uso Martello +gui.zflag_builder_tools_use = Strumenti Costruttore +gui.zflag_block_interact = Interazione Blocchi +gui.zflag_door_use = Uso Porte +gui.zflag_container_use = Uso Contenitori +gui.zflag_bench_use = Uso Banchi +gui.zflag_processing_use = Uso Lavorazione +gui.zflag_seat_use = Uso Sedute +gui.zflag_mount_use = Uso Cavalcature +gui.zflag_light_use = Uso Luci +gui.zflag_npc_use = Interazione NPC +gui.zflag_crate_pickup = Raccolta Casse +gui.zflag_crate_place = Piazzamento Casse +gui.zflag_npc_tame = Addomesticamento NPC +gui.zflag_npc_interact = Interazione NPC +gui.zflag_teleporter_use = Uso Teletrasportatori +gui.zflag_portal_use = Uso Portali +gui.zflag_mount_entry = Accesso Cavalcature +gui.zflag_item_drop = Rilascio Oggetti +gui.zflag_item_pickup = Raccolta Automatica +gui.zflag_item_pickup_manual = Raccolta con Tasto F +gui.zflag_invincible_items = Oggetti Invincibili +gui.zflag_mob_spawning = Generazione Mob +gui.zflag_hostile_mob_spawning = Mob Ostili +gui.zflag_passive_mob_spawning = Mob Passivi +gui.zflag_neutral_mob_spawning = Mob Neutrali +gui.zflag_npc_spawning = Generazione NPC +gui.zflag_mob_clear = Pulizia Mob +gui.zflag_hostile_mob_clear = Elimina Mob Ostili +gui.zflag_passive_mob_clear = Elimina Mob Passivi +gui.zflag_neutral_mob_clear = Elimina Mob Neutrali +gui.zflag_gravestone_access = Altri Saccheggiano Tombe +gui.zflag_show_on_map = Mostra sulla Mappa +gui.zflag_essentials_homes = Uso Base +gui.zflag_essentials_warps = Uso Warp +gui.zflag_essentials_kits = Riscatto Kit + +# ========== Proprietà Zona ========== +zprop.current_custom = Attuale: "{0}" (personalizzato) +zprop.current_default = Attuale: "{0}" (predefinito) +zprop.pvp_disabled = PvP Disattivato +zprop.pvp_enabled = PvP Attivato +zprop.name_empty = Il nome non può essere vuoto. +zprop.renamed = Zona rinominata in "{0}". +zprop.name_taken = Esiste già una zona con quel nome. +zprop.name_invalid = Nome non valido (max 32 caratteri). +zprop.rename_failed = Impossibile rinominare: {0} +zprop.upper_empty = Il titolo superiore non può essere vuoto. Usa Cancella per ripristinare. +zprop.upper_set = Titolo superiore impostato. +zprop.upper_reset = Titolo superiore ripristinato al predefinito. +zprop.lower_empty = Il titolo inferiore non può essere vuoto. Usa Cancella per ripristinare. +zprop.lower_set = Titolo inferiore impostato. +zprop.lower_reset = Titolo inferiore ripristinato al predefinito. + +# ========== Relazioni Aggiuntive ========== +relations.failed = Fallito: {0} + +# ========== Membri Aggiuntivi ========== +members.never = Mai +members.teleported = [Admin] Teletrasportato a {0}. + +# ========== Info Giocatore Aggiuntive ========== +playerinfo.records = {0} registri +playerinfo.joined_date = Iscritto: {0} +playerinfo.current = Attuale +playerinfo.left_date = Uscito: {0} + +# ========== Mappa Zona ========== +map.world_warning = ATTENZIONE: Sei in '{0}' - la zona è in '{1}' +map.position = La Tua Posizione: Chunk ({0}, {1}) +map.zone_gone = La zona non esiste più. +map.claimed = Chunk rivendicato ({0}, {1}) per {2}. +map.claim_failed = Impossibile rivendicare il chunk: {0} +map.unclaimed = Chunk rilasciato ({0}, {1}) da {2}. +map.unclaim_failed = Impossibile rilasciare il chunk: {0} +map.chunk_belongs = Questo chunk appartiene a {0}. +map.chunk_faction = Questo chunk è rivendicato da una fazione. +map.chunk_protected = Questo chunk si trova in una regione protetta. +map.another_zone = un'altra zona + +# ========== Chiavi Etichette GUI (per localizzazione testo hardcoded .ui) ========== + +# Titoli Pagina +gui.title_dashboard = Pannello Admin +gui.title_main = Admin Fazioni +gui.title_actions = Admin: Azioni Server +gui.title_factions = Gestione Fazioni +gui.title_players = Gestione Giocatori +gui.title_economy = Admin: Economia Server +gui.title_zones = Gestione Zone +gui.title_backups = Backup +gui.title_config = Configurazione +gui.title_help = Aiuto Admin +gui.title_updates = Aggiornamenti +gui.title_version = Versione e Integrazioni +gui.title_activity_log = Admin: Registro Attività +gui.title_player_info = Admin: Info Giocatore +gui.title_faction_info = Admin: Info Fazione +gui.title_faction_settings = Admin: Impostazioni Fazione +gui.title_faction_members = Admin: Membri +gui.title_faction_relations = Admin: Relazioni +gui.title_zone_map = Editor Mappa Zone +gui.title_zone_settings = Admin: Impostazioni Zona +gui.title_zone_properties = Admin: Proprietà Zona +gui.title_bulk_economy = Regolazione Massiva Tesoreria +gui.title_economy_adjust = Admin: Economia + +# Etichette pannello +gui.dash_server_stats = Statistiche Server +gui.dash_factions = Fazioni +gui.dash_total_members = Totale Membri +gui.dash_total_claims = Totale Territori +gui.dash_zones = Zone +gui.dash_safe_war = sicure / guerra +gui.dash_total_power = Potere Totale +gui.dash_avg_power = Potere Medio/Fazione +gui.dash_total_economy = Economia Totale +gui.dash_wealthiest = Più Ricca +gui.dash_avg_balance = Saldo Medio +gui.dash_protection_bypass = Bypass Protezione: + +# Pulsanti e etichette comuni +gui.search = Cerca: +gui.sort = Ordina: +gui.prev = < Prec +gui.next = Succ > +gui.back = Indietro +gui.done = Fatto +gui.cancel = Annulla +gui.apply = Applica +gui.set = Imposta +gui.reset = Ripristina +gui.coming_soon = Prossimamente +gui.zones_btn = Zone +gui.reload_btn = Ricarica +gui.all = Tutte +gui.safe = Sicura +gui.war = Guerra +gui.create_zone = + Crea + +# Etichette pagina azioni +gui.act_combat_stats = Statistiche di Combattimento +gui.act_combat_desc = Ripristina uccisioni e morti per TUTTI i giocatori sul server. Questa azione non può essere annullata. +gui.act_reset_kd = Ripristina Tutti U/M +gui.act_economy = Economia +gui.act_economy_desc = Aggiungi o rimuovi denaro da TUTTE le tesorerie delle fazioni contemporaneamente. +gui.act_bulk_adjust = Aggiungi/Rimuovi in Blocco +gui.act_upkeep_collection = Riscossione Mantenimento +gui.act_upkeep_desc = Attiva manualmente la riscossione del mantenimento per tutte le fazioni immediatamente, indipendentemente dal timer programmato. +gui.act_trigger_upkeep = Avvia Mantenimento + +# Etichette pagine segnaposto +gui.backup_heading = Gestione Backup +gui.backup_desc1 = Crea, ripristina e gestisci i backup dei dati delle fazioni. +gui.backup_desc2 = I backup automatici vengono salvati nella cartella data/backups. +gui.config_heading = Editor Configurazione +gui.config_desc1 = Configura le impostazioni di HyperFactions direttamente dalla GUI. +gui.config_desc2 = Per ora, usa /f reload per ricaricare le modifiche alla configurazione. +gui.help_heading = Documentazione Admin +gui.help_desc1 = Visualizza la documentazione admin e il riferimento dei comandi. +gui.help_desc2 = Per assistenza, visita la wiki di HyperFactions. +gui.updates_heading = Centro Aggiornamenti +gui.updates_desc1 = Controlla nuove versioni e visualizza i changelog. +gui.updates_desc2 = Visita la pagina di HyperFactions per gli ultimi aggiornamenti. + +# Etichette pagina versione +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = PERMESSI +gui.ver_placeholders = SEGNAPOSTO +gui.ver_economy_section = ECONOMIA +gui.ver_protection = PROTEZIONE +gui.ver_disabled = Disattivato + +# Intestazioni colonne (condivise tra pagine) +gui.col_faction = Fazione +gui.col_balance = Saldo +gui.col_members = Membri +gui.col_actions = Azioni +gui.col_time = Orario +gui.col_type = Tipo +gui.col_message = Messaggio + +# Etichette pagina economia +gui.econ_total_balance = Saldo Totale +gui.econ_factions = Fazioni +gui.econ_avg_balance = Saldo Medio +gui.econ_in_grace = In Tolleranza +gui.econ_collected = Riscosso (24h) +gui.econ_next_collection = Prossima Riscossione +gui.econ_no_data = Nessuna fazione con dati economici. + +# Etichette registro attività +gui.log_type = Tipo: +gui.log_time = Orario: +gui.log_player = Giocatore: +gui.log_no_logs = Nessun registro attività corrispondente ai filtri. + +# Etichette info giocatore +gui.plr_first_joined = Prima iscrizione: +gui.plr_last_online = Ultimo accesso: +gui.plr_uuid = UUID: +gui.plr_faction = Fazione: +gui.plr_role = Ruolo: +gui.plr_view_faction = Vedi Fazione +gui.plr_power = Potere +gui.plr_max_power = Potere Max +gui.plr_set_power = Imposta +gui.plr_reset_power = Ripristina +gui.plr_set_max = Imposta +gui.plr_reset_max = Ripristina +gui.plr_no_power_loss = Nessuna Perdita Potere +gui.plr_no_claim_decay = Nessun Decadimento Territori +gui.plr_kills = Uccisioni +gui.plr_deaths = Morti +gui.plr_kdr = Rapporto U/M +gui.plr_reset_kd = Ripristina U/M +gui.plr_kick = Espelli +gui.plr_membership_history = Cronologia Appartenenze +gui.plr_no_faction_label = Non in una fazione +gui.plr_power_management = Gestione Potere +gui.plr_combat_stats = Statistiche Combattimento +gui.plr_bypass_flags = Flag di Bypass +gui.plr_admin_controls = Controlli Admin +gui.plr_kd_subtitle = U / M +gui.plr_max_prefix = Max: +gui.plr_view = Vedi +gui.plr_kick_from_faction = Espelli dalla Fazione +gui.plr_set_max_btn = Imposta Max +gui.plr_combat = Combattimento +gui.plr_reason_active = ATTIVO +gui.plr_reason_left = USCITO +gui.plr_reason_kicked = ESPULSO +gui.plr_reason_disbanded = SCIOLTA + +# Etichette voce membro +gui.mem_label_power = Potere: +gui.mem_label_joined = Iscritto: +gui.mem_label_last_death = Ultima Morte: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teletrasporto +gui.mem_btn_promote = Promuovi +gui.mem_btn_demote = Retrocedi +gui.mem_btn_kick = Espelli +gui.econ_not_enabled = Il sistema economico non è attivo. +gui.info_more = +{0} altri +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7g +gui.log_time_all = Tutto +gui.shape_circular = circolare +gui.shape_square = quadrato +gui.nav_title = Pannello Admin +gui.econ_btn_adjust = Regola +gui.econ_btn_info = Info + +# Etichette info fazione +gui.fac_description = Descrizione +gui.fac_power = Potere +gui.fac_claims = Territori +gui.fac_members = Membri +gui.fac_recruitment = Reclutamento +gui.fac_founded = Fondata +gui.fac_allies = Alleati +gui.fac_enemies = Nemici +gui.fac_raidable = Stato Saccheggiabile +gui.fac_treasury = Tesoreria +gui.fac_leader = Capo +gui.fac_officers = Ufficiali +gui.fac_view_members = Vedi Membri +gui.fac_view_relations = Vedi Relazioni +gui.fac_view_settings = Impostazioni +gui.fac_disband = Sciogli Fazione +gui.fac_power_management = Gestione Potere +gui.fac_reset_all_power = Ripristina Tutto il Potere +gui.fac_econ_adjust = Regola Saldo +gui.fac_econ_view_log = Vedi Registro Transazioni +gui.fac_current_max = attuale / max +gui.fac_claimed_max = rivendicati / max +gui.fac_relations = Relazioni +gui.fac_ally_enemy = alleati / nemici +gui.fac_status = Stato +gui.fac_info = Info +gui.fac_treasury_balance = saldo tesoreria +gui.fac_leadership = Leadership +gui.fac_leader_label = Capo: +gui.fac_officers_label = Ufficiali: +gui.fac_econ_mgmt = Gestione Economia +gui.fac_danger_zone = Zona Pericolosa +gui.fac_view_treasury = Vedi Tesoreria + +# Etichette impostazioni fazione +gui.set_editing = Modifica: +gui.set_general = Impostazioni Generali +gui.set_name = Nome +gui.set_tag = Tag +gui.set_description = Descrizione +gui.set_recruitment = Reclutamento +gui.set_home = Posizione Base +gui.set_clear_home = Cancella Base +gui.set_disband_faction = Sciogli Fazione +gui.set_faction_color = Colore Fazione +gui.set_admin_override = [Override Admin] +gui.set_territory_perms = Permessi Territoriali +gui.set_mob_spawning = Generazione Mob +gui.set_faction_settings = Impostazioni Fazione +gui.set_name_label = Nome: +gui.set_tag_label = Tag: +gui.set_desc_label = Desc: +gui.set_edit = Modifica +gui.set_status_label = Stato: +gui.set_location_label = Posizione: +gui.set_danger_zone = Zona Pericolosa +gui.set_irreversible = Questa azione è irreversibile. +gui.set_lock_hint = Alcune opzioni potrebbero essere bloccate dal server e non accetteranno modifiche. +gui.set_appearance = Aspetto +gui.set_color_label = Colore: +gui.set_mob_sub = (sottovoci disattivate quando il principale è spento) +gui.set_back_to_info = Torna alle Info +gui.set_col_out = Est +gui.set_col_ally = All +gui.set_col_mem = Mem +gui.set_col_off = Uff +gui.set_cat_building = COSTRUZIONE +gui.set_cat_interaction = INTERAZIONE +gui.set_cat_interact_sub = (sottovoci disattivate quando Tutti è spento) +gui.set_cat_other = ALTRO +gui.set_perm_break = Distruzione +gui.set_perm_place = Piazzamento +gui.set_perm_all = Tutti +gui.set_perm_door = Porta +gui.set_perm_chest = Cassa +gui.set_perm_bench = Banco +gui.set_perm_processing = Lavorazione +gui.set_perm_seat = Seduta +gui.set_perm_transport = Trasporto +gui.set_perm_crate_use = Uso Casse +gui.set_perm_npc_tame = Addomesticamento NPC +gui.set_perm_pve_damage = Danni PvE +gui.set_perm_mob_spawning = Generazione Mob +gui.set_perm_hostile = Mob Ostili +gui.set_perm_passive = Mob Passivi +gui.set_perm_neutral = Mob Neutrali +gui.set_perm_pvp = PvP nel Territorio +gui.set_perm_officers_edit = Gli ufficiali possono modificare + +# Etichette relazioni fazione +gui.rel_subtitle = Gestisci le relazioni della fazione (senza approvazione) +gui.rel_set_new = Nuova Relazione +gui.rel_btn_ally = Alleato +gui.rel_btn_neutral = Neutrale +gui.rel_btn_enemy = Nemico + +# Etichette pagina zone +gui.zone_sort_name = Nome +gui.zone_sort_type = Tipo +gui.zone_sort_chunks = Chunk +gui.zone_sort_world = Mondo +gui.zone_count_format = {0} {1}zone ({2} chunk) + +# Etichette mappa zona +gui.map_zone_chunk = Chunk Zona +gui.map_empty = Vuoto +gui.map_other_zone = Altra Zona +gui.map_faction_claim = Territorio Fazione +gui.map_protected = Protetto +gui.map_your_pos = La Tua Posizione +gui.map_click_hint = Clicca per rivendicare/rilasciare chunk +gui.map_legend_zone_safe = Questa Zona (Sicura) +gui.map_legend_zone_war = Questa Zona (Guerra) +gui.map_legend_other_safe = Altra SafeZone +gui.map_legend_other_war = Altra WarZone +gui.map_legend_faction = Territorio Fazione +gui.map_legend_unclaimed = Non Rivendicato +gui.map_legend_you_here = Sei qui +gui.map_action_hint = Clic sinistro: Rivendica per zona | Clic destro: Rilascia dalla zona +gui.map_done = Fatto + +# Etichette proprietà zona +gui.zprop_general = Generali +gui.zprop_zone_name = Nome Zona +gui.zprop_zone_type = Tipo Zona +gui.zprop_change_type = Cambia Tipo +gui.zprop_notifications = Notifiche +gui.zprop_show_entry = Mostra Notifica di Ingresso +gui.zprop_upper_title = Titolo Superiore +gui.zprop_upper_desc = Titolo Superiore (testo piccolo sopra il nome della zona) +gui.zprop_lower_title = Titolo Inferiore +gui.zprop_lower_desc = Titolo Inferiore (testo grande del nome della zona) +gui.zprop_edit_flags = Modifica Flag +gui.zprop_back_to_zones = Torna alle Zone +gui.save = Salva +gui.clear = Cancella + +# Etichette economia massiva +gui.bulk_header = Regola Tutte le Tesorerie delle Fazioni +gui.bulk_factions_label = Fazioni: +gui.bulk_total_label = Saldo Totale: +gui.bulk_amount_hint = Importo (positivo per aggiungere, negativo per rimuovere): +gui.bulk_hint = Questo verrà applicato a ogni fazione con una tesoreria +gui.bulk_warning_msg = Attenzione: Questa azione riguarda TUTTE le fazioni e non può essere annullata. +gui.bulk_apply_all = Applica a Tutte +gui.bulk_operation = Operazione +gui.bulk_add = Aggiungi +gui.bulk_remove = Rimuovi +gui.bulk_amount = Importo +gui.bulk_warning = Questo riguarderà TUTTE le tesorerie delle fazioni. +gui.bulk_preview = Anteprima + +# Etichette regolazione economia +gui.ecadj_header = Regola Saldo Tesoreria +gui.ecadj_faction_label = Fazione: +gui.ecadj_current_balance = Saldo Attuale: +gui.ecadj_amount_hint = Importo (positivo per aggiungere, negativo per detrarre): +gui.ecadj_preview_hint = Inserisci un numero per visualizzare l'anteprima della modifica +gui.ecadj_adjustment = Regolazione: +gui.ecadj_set_balance = Imposta Saldo +gui.ecadj_confirm = Conferma +/- +gui.ecadj_operation = Operazione +gui.ecadj_add = Aggiungi +gui.ecadj_remove = Rimuovi +gui.ecadj_set_to = Imposta A +gui.ecadj_amount = Importo +gui.ecadj_new_balance = Nuovo Saldo: + +# Etichette integrazioni pagina versione +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Nativo +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Tombe +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Tesoreria + +# Etichette modale conferma rilascio totale +gui.unclaim_title = Rilascia Tutto il Territorio +gui.unclaim_confirm_msg1 = Sei sicuro di voler rilasciare tutti +gui.unclaim_confirm_msg2 = da +gui.unclaim_warning = Questa azione non può essere annullata! +gui.unclaim_all = Rilascia Tutto + +# Etichette modale rinomina zona +gui.zren_title = Rinomina Zona +gui.zren_current = Attuale: +gui.zren_new_name = Nuovo Nome: + +# Etichette modale cambio tipo zona +gui.ztype_title = Cambia Tipo Zona +gui.ztype_zone_label = Zona: +gui.ztype_current = Attuale: +gui.ztype_will_become = diventerà +gui.ztype_new = Nuovo: +gui.ztype_warning1 = Tipi di zona diversi hanno valori flag predefiniti diversi. +gui.ztype_warning2 = Scegli come gestire le impostazioni flag esistenti: +gui.ztype_keep_desc = Mantieni le personalizzazioni +gui.ztype_keep_flags = Mantieni Flag +gui.ztype_reset_desc = Usa i predefiniti del nuovo tipo +gui.ztype_reset_flags = Ripristina Flag + +# Etichette procedura guidata creazione zona +gui.czw_title = Crea Zona +gui.czw_back = < Indietro +gui.czw_create = Crea Zona +gui.czw_zone_type = Tipo Zona +gui.czw_safe_desc = Protetta, senza PvP +gui.czw_war_desc = Combattimento, PvP attivo +gui.czw_zone_name = Nome Zona +gui.czw_name_desc = Inserisci un nome unico per la zona +gui.czw_claim_method = Metodo di Rivendicazione +gui.czw_method_none_desc = Crea zona vuota +gui.czw_method_none = Nessun territorio +gui.czw_method_single_desc = Il tuo chunk attuale +gui.czw_method_single = Chunk singolo +gui.czw_method_circle_desc = Area circolare +gui.czw_method_circle = Raggio circolare +gui.czw_method_square_desc = Area quadrata +gui.czw_method_square = Raggio quadrato +gui.czw_method_map_desc = Editor chunk interattivo +gui.czw_method_map = Usa mappa territori +gui.czw_radius = Raggio +gui.czw_custom_radius = Personalizzato (1-50): +gui.czw_flags = Flag +gui.czw_flags_defaults_desc = Basati sul tipo di zona +gui.czw_flags_defaults = Usa predefiniti +gui.czw_flags_customize_desc = Apri impostazioni dopo +gui.czw_flags_customize = Personalizza + +# ========== Etichette Voci (Fazione/Giocatore/Zona nell'elenco) ========== + +# Etichette voce fazione +gui.fac_entry_power = potere +gui.fac_entry_claims = territori +gui.fac_entry_members = membri +gui.fac_entry_created = Creata: +gui.fac_entry_home = Base: +gui.fac_entry_tp_home = TP Base +gui.fac_entry_view_info = Vedi Info +gui.fac_entry_members_btn = Membri +gui.fac_entry_settings = Impostazioni +gui.fac_entry_unclaim_all = Rilascia Tutto +gui.fac_entry_disband = Sciogli + +# Etichette voce giocatore +gui.plr_entry_role = Ruolo: +gui.plr_entry_joined = Iscritto: +gui.plr_entry_last_online = Ultimo Accesso: +gui.plr_entry_kdr = U/M/R: +gui.plr_entry_power = Potere: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teletrasporto +gui.plr_entry_na = N/D +gui.plr_entry_unknown = Sconosciuto +gui.plr_entry_ago = {0} fa + +# Etichette voce zona +gui.zone_entry_world = Mondo: +gui.zone_entry_chunks = Chunk: +gui.zone_entry_bounds = Limiti: +gui.zone_entry_created = Creata: +gui.zone_entry_edit_map = Modifica Mappa +gui.zone_entry_flags = Flag +gui.zone_entry_settings = Impostazioni +gui.zone_entry_delete = Elimina diff --git a/src/main/resources/Server/Languages/it-IT/hyperfactions_gui.lang b/src/main/resources/Server/Languages/it-IT/hyperfactions_gui.lang new file mode 100644 index 00000000..acc94d72 --- /dev/null +++ b/src/main/resources/Server/Languages/it-IT/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Traduzioni Italiane +# Formato: chiave = valore +# Nota: Le chiavi sono automaticamente prefissate con "hyperfactions_gui." dal modulo I18n di Hytale + +# ========== Barra di Navigazione ========== +nav.dashboard = Pannello +nav.chat = Chat +nav.members = Membri +nav.invites = Inviti +nav.browser = Esplora +nav.map = Mappa +nav.leaderboard = Classifica +nav.relations = Relazioni +nav.treasury = Tesoreria +nav.settings = Impostazioni +nav.logs = Registro +nav.help = Aiuto +nav.admin = Admin +nav.create = Crea + +# ========== Nomi Categorie Aiuto ========== +help.category.welcome = Benvenuto +help.category.your_faction = La Tua Fazione +help.category.power_land = Potere e Territorio +help.category.diplomacy = Diplomazia +help.category.combat = Combattimento e Sicurezza +help.category.economy = Economia +help.category.quick_ref = Riferimento Rapido + +# ========== Nomi Categorie Aiuto Admin ========== +help.category.admin_overview = Panoramica +help.category.admin_factions = Fazioni +help.category.admin_zones = Zone +help.category.admin_power = Potere +help.category.admin_economy = Economia +help.category.admin_config = Configurazione +help.category.admin_maintenance = Manutenzione +help.category.admin_reference = Riferimento + +# ========== Menu Principale ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = La Mia Fazione +main_menu.section_get_started = Inizia +main_menu.section_territory = Territorio +main_menu.section_browse = Esplora +main_menu.section_admin = Admin +main_menu.claim_hint = Usa /f claim per rivendicare territorio. + +# ========== Pagina Info Fazione ========== +faction_info.title = Info Fazione +faction_info.no_description = Nessuna descrizione impostata. +faction_info.status_open = Aperta +faction_info.status_invite_only = Solo su Invito +faction_info.status_raidable = Saccheggiabile +faction_info.status_protected = Protetta +faction_info.officers_more = +{0} altri +faction_info.power_header = Potere +faction_info.claims_header = Territori +faction_info.members_header = Membri +faction_info.relations_header = Relazioni +faction_info.status_header = Stato +faction_info.treasury_header = Tesoreria +faction_info.current_max = attuale / max +faction_info.claimed_max = rivendicati / max +faction_info.ally_enemy = alleati / nemici +faction_info.faction_balance = saldo fazione +faction_info.leader_label = Capo: +faction_info.officers_label = Ufficiali: +faction_info.view_members_btn = Vedi Membri +faction_info.relations_btn = Relazioni +faction_info.back_btn = Indietro + +# ========== Modale Rinomina ========== +rename.title = Rinomina Fazione +rename.current_label = Attuale: +rename.new_name_label = Nuovo Nome: +rename.no_permission = Non hai il permesso di rinominare la fazione. +rename.enter_name = Inserisci un nome per la fazione. +rename.too_short = Il nome della fazione deve avere almeno {0} caratteri. +rename.too_long = Il nome della fazione non può superare i {0} caratteri. +rename.same_name = È già il nome della tua fazione. +rename.name_taken = Esiste già una fazione con quel nome. +rename.success = Fazione rinominata da {0} a {1}! + +# ========== Modale Descrizione ========== +desc.title = Modifica Descrizione +desc.current_label = Attuale: +desc.new_desc_label = Nuova Descrizione: +desc.no_permission = Non hai il permesso di modificare la descrizione. +desc.display_none = (Nessuna) +desc.cleared = Descrizione della fazione cancellata. +desc.updated = Descrizione della fazione aggiornata! + +# ========== Modale Tag ========== +tag.title = Modifica Tag +tag.current_label = Attuale: +tag.instructions = Tag (1-5 caratteri, solo lettere e numeri): +tag.help_text = I tag appaiono nella chat e sulla mappa +tag.no_permission = Non hai il permesso di modificare il tag. +tag.display_none = (Nessuno) +tag.cleared = Tag della fazione cancellato. +tag.too_short = Il tag deve avere almeno {0} carattere. +tag.too_long = Il tag non può superare i {0} caratteri. +tag.invalid_format = Il tag può contenere solo lettere e numeri. +tag.same_tag = È già il tag della tua fazione. +tag.tag_taken = Esiste già una fazione con quel tag. +tag.success = Tag della fazione impostato su [{0}]! + +# ========== Pagina Pannello ========== +dashboard.title = Pannello della Fazione +dashboard.power_label = Potere +dashboard.land_label = Territori +dashboard.members_label = Membri +dashboard.online_label = Online +dashboard.allies_label = Alleati +dashboard.enemies_label = Nemici +dashboard.relations_label = Relazioni +dashboard.ally_enemy_label = alleati / nemici +dashboard.status_label = Stato +dashboard.invites_label = Inviti +dashboard.sent_requests_label = inviati / richieste +dashboard.treasury_label = Tesoreria +dashboard.upkeep_label = Mantenimento +dashboard.per_cycle = per ciclo +dashboard.your_wallet = Il Tuo Portafoglio +dashboard.personal_balance = saldo personale +dashboard.quick_actions = Azioni Rapide +dashboard.teleport_label = Teletrasporto +dashboard.territory_label = Territorio +dashboard.channel_label = Canale +dashboard.membership_label = Appartenenza +dashboard.recent_activity = Attività Recente +dashboard.view_all = Vedi Tutto +dashboard.income_24h = Entrate (24h) +dashboard.deposits_transfers_in = depositi, trasferimenti in entrata +dashboard.expenses_24h = Spese (24h) +dashboard.withdrawals_transfers_out = prelievi, trasferimenti in uscita +dashboard.faction_gone = La tua fazione non esiste più. +dashboard.available = {0} disponibili +dashboard.at_risk = A Rischio! +dashboard.online_count = {0} online +dashboard.status_invite = Invito +dashboard.in_grace = IN TOLLERANZA +dashboard.billable_chunks = {0} chunk fatturabili +dashboard.btn_home = Base +dashboard.btn_set_home = Imposta Base +dashboard.btn_claim = Rivendica +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Abbandona +dashboard.no_activity = Nessuna attività recente. +dashboard.time_now = ora +dashboard.time_minutes = {0}m fa +dashboard.time_hours = {0}h fa +dashboard.time_days = {0}g fa +dashboard.no_home_hint = La tua fazione non ha una base. Chiedi a un ufficiale di impostarne una. +dashboard.chat_mode_set = Modalità chat: {0} +dashboard.claim_success = Chunk rivendicato a ({0}, {1}) +dashboard.upkeep_in = tra {0} + +# ========== Pagina Principale Fazione ========== +main.no_faction = Nessuna Fazione +main.joined = Ti sei unito alla fazione! +main.join_failed = Impossibile unirsi alla fazione: {0} +main.invite_declined = Invito rifiutato. +main.cooldown = Teletrasporto in attesa! {0}s rimanenti. +main.world_not_found = Impossibile teletrasportarsi - mondo non trovato. +main.leave_failed = Impossibile abbandonare: {0} + +# ========== Etichette Condivise GUI ========== +common.faction_count = {0} fazioni +common.leader_label = Capo: {0} +common.sort_power = Potere +common.sort_members = Membri +common.page_format = {0}/{1} +common.own_faction = (Tu) +common.search = Cerca: +common.sort = Ordina: +common.prev = < Prec +common.next = Succ > +common.treasury_not_available = La tesoreria non è disponibile. + +# ========== Pagina Membri ========== +members.title = Membri +members.search_label = Cerca: +members.sort_label = Ordina: +members.prev_btn = < Prec +members.next_btn = Succ > +members.count = {0} membri +members.sort_role = Ruolo +members.sort_last_online = Ultimo Accesso +members.just_now = adesso +members.ago = {0} fa +members.never = Mai +members.member_not_found = Membro non trovato. +members.promoted = {0} promosso a {1}. +members.promote_failed = Impossibile promuovere: {0} +members.demoted = {0} retrocesso a {1}. +members.demote_failed = Impossibile retrocedere: {0} +members.kicked = {0} espulso dalla fazione. +members.kick_failed = Impossibile espellere: {0} +members.label_power = Potere: +members.label_joined = Iscritto: +members.label_last_death = Ultima Morte: +members.btn_promote = Promuovi +members.btn_demote = Retrocedi +members.btn_kick = Espelli +members.btn_make_leader = Nomina Capo +members.btn_profile = Profilo +members.self_label = (Tu) + +# ========== Pagina Esplora ========== +browser.title = Esplora Fazioni +browser.search_label = Cerca: +browser.sort_label = Ordina: +browser.prev_btn = < Prec +browser.next_btn = Succ > +browser.sort_name = Nome +browser.invalid_faction = Fazione non valida. +browser.label_power = potere +browser.label_claims = territori +browser.label_members = membri +browser.label_recruitment = Reclutamento: +browser.label_created = Creata: +browser.label_description = Descrizione: +browser.view_info_btn = Vedi Info +browser.label_leader = Capo: +browser.no_description = Nessuna descrizione impostata + +# ========== Pagina Classifica ========== +leaderboard.title = Classifica delle Fazioni +leaderboard.rank_by = Ordina per: +leaderboard.col_rank = # +leaderboard.col_faction = Fazione +leaderboard.col_claims = Territori +leaderboard.col_members = Membri +leaderboard.prev_btn = < Prec +leaderboard.next_btn = Succ > +leaderboard.sort_kd = U/M +leaderboard.sort_territory = Territorio +leaderboard.sort_balance = Saldo + +# ========== Pagina Info Giocatore ========== +playerinfo.title = Info Giocatore +playerinfo.first_joined_label = Prima iscrizione: +playerinfo.last_online_label = Ultimo accesso: +playerinfo.faction_label = Fazione: +playerinfo.role_label = Ruolo: +playerinfo.joined_label_static = Iscritto: +playerinfo.not_in_faction = Non fa parte di una fazione +playerinfo.power_header = Potere +playerinfo.current_max = attuale / max +playerinfo.combat_header = Combattimento +playerinfo.kills_deaths = uccisioni / morti +playerinfo.kdr_header = Rapporto U/M +playerinfo.membership_history = Cronologia Appartenenze +playerinfo.view_faction_btn = Vedi Fazione +playerinfo.back_btn = Indietro +playerinfo.now = Ora +playerinfo.history_count = {0} registri +playerinfo.joined_label = Iscritto: {0} +playerinfo.current = Attuale +playerinfo.left_label = Uscito: {0} +playerinfo.no_history = Nessuna cronologia di appartenenza +playerinfo.faction_gone = La fazione non esiste più. +playerinfo.reason_active = ATTIVO +playerinfo.reason_left = USCITO +playerinfo.reason_kicked = ESPULSO +playerinfo.reason_disbanded = SCIOLTA + +# ========== Pagina Relazioni ========== +relations.title = Relazioni +relations.tab_relations = Relazioni +relations.tab_pending = In Sospeso +relations.set_relation_btn = + Imposta Relazione +relations.prev_btn = < Prec +relations.next_btn = Succ > +relations.relation_count = {0} relazioni +relations.request_count = {0} richieste +relations.type_ally = Alleato +relations.type_enemy = Nemico +relations.type_incoming = In entrata +relations.type_outgoing = In uscita +relations.incoming_request = Richiesta in entrata +relations.outgoing_request = Richiesta in uscita +relations.empty_relations = Nessuna relazione ancora. +relations.empty_relations_hint = Nessuna relazione ancora. Clicca + IMPOSTA RELAZIONE per aggiungere alleati o nemici. +relations.empty_pending = Nessuna richiesta di alleanza in sospeso. +relations.today = Oggi +relations.one_day_ago = 1 giorno fa +relations.days_ago = {0} giorni fa +relations.now_neutral = Ora sei neutrale con {0}. +relations.now_enemies = Ora sei nemico di {0}! +relations.request_sent = Richiesta di alleanza inviata a {0}. +relations.now_allied = Ora sei alleato con {0}! +relations.request_declined = Richiesta di alleanza da {0} rifiutata. +relations.request_cancelled = Richiesta di alleanza a {0} annullata. +relations.failed = Fallito: {0} +relations.search_hint = Cerca una fazione per impostare la relazione +relations.no_results = Nessuna fazione trovata per '{0}' +relations.power_display = {0} potere +relations.member_count = {0} membri +relations.label_members = membri +relations.label_power = potere +relations.label_since = Dal: +relations.label_claims = Territori: +relations.label_direction = Direzione: +relations.btn_view = Vedi +relations.btn_neutral = Neutrale +relations.btn_enemy = Nemico +relations.btn_ally = Alleato +relations.btn_accept = Accetta +relations.btn_decline = Rifiuta +relations.btn_cancel = Annulla + +# ========== Pagina Impostazioni ========== +settings.title = Impostazioni Fazione +settings.general = Generali +settings.name_label = Nome: +settings.tag_label = Tag: +settings.desc_label = Desc: +settings.edit_btn = Modifica +settings.recruitment = Reclutamento +settings.status_label = Stato: +settings.home_location = Posizione Base +settings.location_label = Posizione: +settings.set_home_btn = Imposta Base +settings.teleport_btn = Teletrasporto +settings.delete_btn = Elimina +settings.optional_features = Funzionalità Opzionali +settings.configure_modules = Configura moduli opzionali. +settings.modules_btn = Moduli +settings.danger_zone = Zona Pericolosa +settings.irreversible = Questa azione è irreversibile. +settings.disband_btn = Sciogli Fazione +settings.lock_hint = Alcune opzioni potrebbero essere bloccate dal server e non accetteranno modifiche. +settings.territory_permissions = Permessi Territoriali +settings.col_out = Est +settings.col_ally = All +settings.col_mem = Mem +settings.col_off = Uff +settings.cat_building = COSTRUZIONE +settings.perm_break = Distruzione +settings.perm_place = Piazzamento +settings.cat_interaction = INTERAZIONE +settings.interaction_hint = (sottovoci disattivate quando Tutti è spento) +settings.perm_all = Tutti +settings.perm_door = Porta +settings.perm_chest = Cassa +settings.perm_bench = Banco +settings.perm_processing = Lavorazione +settings.perm_seat = Seduta +settings.perm_transport = Trasporto +settings.cat_other = ALTRO +settings.perm_crate = Uso Casse +settings.perm_npc_tame = Addomesticamento NPC +settings.perm_pve = Danni PvE +settings.appearance = Aspetto +settings.color_label = Colore: +settings.mob_spawning = Generazione Mob +settings.mob_spawning_hint = (sottovoci disattivate quando il principale è spento) +settings.mob_spawning_label = Generazione Mob +settings.hostile_mobs = Mob Ostili +settings.passive_mobs = Mob Passivi +settings.neutral_mobs = Mob Neutrali +settings.faction_settings = Impostazioni Fazione +settings.pvp_in_territory = PvP nel Territorio +settings.officers_can_edit = Gli ufficiali possono modificare +settings.leader_only = Solo il capo +settings.officers_only = Solo gli ufficiali e il capo possono modificare le impostazioni della fazione. +settings.display_none = (Nessuno) +settings.home_not_set = Non impostata +settings.no_permission = Non hai il permesso di modificare le impostazioni. +settings.only_leader_disband = Solo il capo può sciogliere la fazione. +settings.perm_locked = Questa impostazione è bloccata dal server. +settings.no_perm_edit = Non hai il permesso di modificare i permessi territoriali. +settings.only_leader_officers = Solo il capo può cambiare l'accesso degli ufficiali. +settings.pvp_enabled = Attivato +settings.pvp_disabled = Disattivato +settings.not_in_territory = Devi essere nel territorio della tua fazione per impostare la base. +settings.home_set = Base della fazione impostata nella tua posizione attuale! +settings.recruitment_set = Reclutamento impostato su {0}. +settings.home_no_set = La tua fazione non ha una base impostata. +settings.home_deleted = Base della fazione eliminata! + +# ========== Pagina Moduli ========== +modules.title = Moduli della Fazione +modules.description = Funzionalità opzionali per migliorare la tua fazione +modules.configure_btn = Configura +modules.back_btn = < Torna alle Impostazioni +modules.treasury_name = Tesoreria +modules.treasury_desc = Sistema bancario e economico della fazione +modules.raids_name = Incursioni +modules.raids_desc = Battaglie programmate tra fazioni +modules.levels_name = Livelli +modules.levels_desc = Progressione e XP della fazione +modules.war_name = Guerra +modules.war_desc = Dichiarazioni di guerra formali +modules.coming_soon = Prossimamente +modules.active = Attivo +modules.view_treasury = Vedi Tesoreria +modules.unavailable = Non disponibile +modules.no_economy = Nessun plugin economico rilevato +modules.disabled = Disattivato +modules.economy_not_available = Le funzionalità economiche non sono disponibili su questo server + +# ========== Pagina Tesoreria ========== +treasury.title = Tesoreria della Fazione +treasury.balance_label = Saldo +treasury.income_24h = Entrate (24h) +treasury.deposits_transfers_in = depositi, trasferimenti in entrata +treasury.expenses_24h = Spese (24h) +treasury.withdrawals_transfers_out = prelievi, trasferimenti in uscita +treasury.maintenance = MANUTENZIONE +treasury.runway_label = Autonomia: +treasury.add_funds = Aggiungi fondi +treasury.deposit_btn = Deposita +treasury.take_funds = Preleva fondi +treasury.withdraw_btn = Preleva +treasury.send_to_faction = Invia a fazione +treasury.transfer_btn = Trasferisci +treasury.treasury_config = Configurazione tesoreria +treasury.settings_btn = Impostazioni +treasury.recent_transactions = Transazioni Recenti +treasury.no_transactions = Nessuna transazione ancora +treasury.col_date = Data +treasury.col_type = Tipo +treasury.col_by = Da +treasury.col_amount = Importo +treasury.col_details = Dettagli +treasury.pay_now_btn = Paga Ora +treasury.cost_7d = 7g: +treasury.cost_14d = 14g: +treasury.cost_30d = 30g: +treasury.settings_title = Impostazioni Tesoreria +treasury.officer_permissions = PERMESSI UFFICIALI +treasury.allow_withdraw = Consenti agli Ufficiali di Prelevare +treasury.allow_transfer = Consenti agli Ufficiali di Trasferire +treasury.limits_section = LIMITI DI PRELIEVO E TRASFERIMENTO +treasury.max_per_withdrawal = Max per prelievo: +treasury.max_withdrawals_per = Max prelievi per periodo: +treasury.max_per_transfer = Max per trasferimento: +treasury.max_transfers_per = Max trasferimenti per periodo: +treasury.limit_period = Periodo limite (ore): +treasury.no_limit_hint = Imposta a 0 per nessun limite +treasury.upkeep_settings = IMPOSTAZIONI MANTENIMENTO +treasury.auto_pay_upkeep = Pagamento automatico mantenimento dalla tesoreria +treasury.back_btn = Indietro +treasury.upkeep_cost_format = {0} ogni {1}h +treasury.upkeep_time_left = {0} rimanenti +treasury.wallet_label = Il tuo portafoglio: {0} +treasury.treasury_label = Saldo tesoreria: {0} +treasury.chunks_detail = {0} gratuiti + {1} chunk fatturabili +treasury.cost_label = Costo: {0} +treasury.pending = In sospeso +treasury.auto_pay_on = Pagamento automatico: ATTIVO +treasury.auto_pay_off = Pagamento automatico: DISATTIVATO +treasury.runway_90_plus = 90+ giorni +treasury.runway_days = {0} giorni +treasury.runway_day = {0} giorno +treasury.runway_less_day = < 1 giorno +treasury.runway_no_funds = Nessun fondo +treasury.grace_expires = La tolleranza scade tra: {0} +treasury.missed_payments = Pagamenti mancati: {0} +treasury.pay_to_clear = Paga {0} per saldare la tolleranza +treasury.system = Sistema +treasury.type_deposit = Deposito +treasury.type_withdrawal = Prelievo +treasury.type_transfer_in = Trasferimento In Entrata +treasury.type_transfer_out = Trasferimento In Uscita +treasury.type_player_transfer = Trasferimento Giocatore +treasury.type_upkeep = Mantenimento +treasury.type_tax = Riscossione Tasse +treasury.type_war_cost = Costo di Guerra +treasury.type_raid_cost = Costo di Incursione +treasury.type_spoils = Bottino +treasury.type_admin = Rettifica Admin +treasury.deposit_title = Deposita nella Tesoreria +treasury.withdraw_title = Preleva dalla Tesoreria +treasury.fee_label = Commissione ({0}%) +treasury.confirm_deposit = Conferma Deposito +treasury.confirm_withdrawal = Conferma Prelievo +treasury.from_wallet = {0} dal portafoglio +treasury.to_wallet = {0} al portafoglio +treasury.enter_valid_amount = Inserisci un importo positivo valido. +treasury.insufficient_wallet = Fondi nel portafoglio insufficienti. Necessari {0}, disponibili {1}. +treasury.wallet_withdraw_failed = Impossibile prelevare dal tuo portafoglio. +treasury.deposit_failed_returned = Impossibile depositare. Denaro restituito. +treasury.deposited = Depositato {0} nella tesoreria. +treasury.deposited_fee = Depositato {0} nella tesoreria. (commissione: {1}) +treasury.no_withdraw_permission = Non hai il permesso di prelevare. +treasury.withdraw_denied = Prelievo negato: {0} +treasury.insufficient_treasury = Fondi insufficienti nella tesoreria. +treasury.withdraw_limit = Limite di prelievo superato. +treasury.withdraw_failed = Prelievo fallito: {0} +treasury.wallet_deposit_warn = Attenzione: Impossibile depositare nel tuo portafoglio. Contatta un amministratore. +treasury.withdrew = Prelevato {0} dalla tesoreria. +treasury.withdrew_fee = Prelevato {0} dalla tesoreria. (commissione: {1}, ricevuto: {2}) +treasury.search_hint = Cerca un giocatore o una fazione +treasury.no_results = Nessun risultato per '{0}' +treasury.tag_player = [Giocatore] +treasury.tag_faction = [Fazione] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Giocatore Hytale +treasury.no_transfer_permission = Non hai il permesso di trasferire. +treasury.transfer_denied = Trasferimento negato: {0} +treasury.invalid_target_faction = Fazione di destinazione non valida. +treasury.target_faction_gone = La fazione di destinazione non esiste più. +treasury.transfer_failed = Trasferimento fallito: {0} +treasury.transfer_failed_returned = Trasferimento fallito. Fondi restituiti. +treasury.transferred = Trasferito {0} a {1}. +treasury.invalid_target_player = Giocatore di destinazione non valido. +treasury.player_transfer_failed = Impossibile depositare nel portafoglio del giocatore. Trasferimento annullato. +treasury.leader_only_perms = Solo il capo può modificare i permessi della tesoreria. +treasury.leader_only_upkeep = Solo il capo può modificare le impostazioni di mantenimento. +treasury.invalid_limit = Numero non valido nei campi limite. Usa 0 per illimitato. + +# ========== Pagine di Conferma ========== +confirm.disband_title = Sciogli Fazione +confirm.disband_prompt = Sei sicuro di voler sciogliere +confirm.disband_warning = Questa azione non può essere annullata! +confirm.leave_title = Abbandona Fazione +confirm.leave_prompt = Sei sicuro di voler abbandonare +confirm.leave_warning = Perderai l'accesso al territorio della fazione. +confirm.leader_leave_title = Abbandona come Capo +confirm.leader_leave_prompt = Stai abbandonando +confirm.transfer_title = Trasferisci Leadership +confirm.transfer_prompt = Sei sicuro di voler trasferire la leadership a +confirm.transfer_warning = Diventerai un Ufficiale. +confirm.disband_not_leader = Solo il capo può sciogliere la fazione. +confirm.disbanded = La fazione '{0}' è stata sciolta. +confirm.disband_failed = Impossibile sciogliere la fazione. +confirm.succession_title = La leadership sarà trasferita a: +confirm.no_members_warning = ATTENZIONE: Nessun altro membro! +confirm.will_disband = Abbandonando si scioglierà la fazione permanentemente. +confirm.not_in_faction = Non fai parte di questa fazione. +confirm.not_leader_anymore = Non sei più il capo. +confirm.no_successor = Nessun successore disponibile. Usa lo scioglimento al suo posto. +confirm.transfer_failed = Impossibile trasferire la leadership: {0} +confirm.leader_left = Leadership trasferita a {0}. Hai abbandonato {1}. +confirm.leave_failed = Impossibile abbandonare la fazione: {0} +confirm.leader_cannot_leave = I capi non possono abbandonare. Trasferisci la leadership o sciogli la fazione. +confirm.left_faction = Hai abbandonato {0}. +confirm.faction_gone = La fazione non esiste più. +confirm.not_leader_transfer = Solo il capo può trasferire la leadership. +confirm.leadership_transferred = Leadership trasferita a {0}. + +# ========== Pagina Registro Attività ========== +logs.title = {0} - Registro Attività +logs.entry_count = {0} voci +logs.filter_label = Filtra: +logs.col_time = Orario +logs.col_type = Tipo +logs.col_message = Messaggio +logs.prev_btn = < Prec +logs.next_btn = Succ > +logs.all_types = Tutti i Tipi +logs.no_logs_type = Nessun registro di questo tipo. +logs.no_logs = Nessun registro attività ancora. +logs.time_just_now = adesso +logs.time_minute = {0} minuto fa +logs.time_minutes = {0} minuti fa +logs.time_hour = {0} ora fa +logs.time_hours = {0} ore fa +logs.time_day = {0} giorno fa +logs.time_days = {0} giorni fa +logs.time_week = {0} settimana fa +logs.time_weeks = {0} settimane fa +logs.type_member_join = Ingresso +logs.type_member_leave = Uscita +logs.type_member_kick = Espulsione +logs.type_member_promote = Promozione +logs.type_member_demote = Retrocessione +logs.type_claim = Rivendicazione +logs.type_unclaim = Rilascio +logs.type_overclaim = Conquista +logs.type_home_set = Base Impostata +logs.type_relation_ally = Alleato +logs.type_relation_enemy = Nemico +logs.type_relation_neutral = Neutrale +logs.type_leader_transfer = Trasferimento +logs.type_settings_change = Impostazioni +logs.type_power_change = Potere +logs.type_economy = Economia +logs.type_admin_power = Potere Admin + +# Modelli messaggi registro (i18n per il contenuto del registro attività) +# Azioni dei giocatori +logs.msg_faction_created = {0} ha creato la fazione +logs.msg_member_joined = {0} si è unito alla fazione +logs.msg_member_left = {0} ha abbandonato la fazione +logs.msg_member_kicked = {0} è stato espulso +logs.msg_member_promoted = {0} promosso a {1} +logs.msg_member_demoted = {0} retrocesso a {1} +logs.msg_leader_transferred = Leadership trasferita a {0} +logs.msg_leader_left_transfer = {0} è uscito, {1} è ora il capo +logs.msg_relation_set = Impostato {0} come {1} +# Territorio +logs.msg_claimed = Chunk rivendicato a {0}, {1} in {2} +logs.msg_unclaimed = Chunk rilasciato a {0}, {1} in {2} +logs.msg_overclaim_lost = Perso chunk a {0}, {1} in favore di {2} +logs.msg_overclaim_taken = Chunk conquistato a {0}, {1} da {2} +logs.msg_all_unclaimed = Tutto il territorio rilasciato +logs.msg_claim_removed_world = Territorio in '{0}' rimosso (il mondo non consente rivendicazioni) +logs.msg_claims_lost_upkeep = Persi {0} territori per mancato mantenimento ({1} pagamenti mancati) +logs.msg_claims_removed_inactive = {0} territori rimossi per inattività ({1} giorni) +# Base +logs.msg_home_set = Base impostata +logs.msg_home_cleared = Base cancellata +logs.msg_home_cleared_world = Base in '{0}' cancellata (il mondo non consente rivendicazioni) +# Impostazioni +logs.msg_renamed = Rinominata da '{0}' a '{1}' +logs.msg_set_open = Fazione impostata come aperta +logs.msg_set_closed = Fazione impostata come solo su invito +logs.msg_desc_set = Descrizione impostata +logs.msg_desc_cleared = Descrizione cancellata +logs.msg_color_changed = Colore cambiato in '{0}' +# Economia +logs.msg_deposit = Deposito: {0} (+{1}) +logs.msg_withdrawal = Prelievo: {0} (-{1}) +logs.msg_upkeep_paid = Mantenimento pagato: {0} ({1} chunk fatturabili) +logs.msg_upkeep_grace_started = Mantenimento fallito: periodo di tolleranza avviato ({0}h) +logs.msg_upkeep_missed = Mantenimento mancato (pagamento {0}), tolleranza scade tra {1} +logs.msg_upkeep_manual = Mantenimento pagato manualmente: {0} ({1} chunk fatturabili, tolleranza saldato) +# Potere admin +logs.msg_admin_power_set = Admin ha impostato il potere di {0} a {1} (era {2}) +logs.msg_admin_power_add = Admin ha aggiunto {0} potere a {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin ha rimosso {0} potere da {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin ha ripristinato il potere di {0} a {1} (era {2}) +logs.msg_admin_power_adjusted = Admin ha regolato il potere di {0} di {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin ha impostato il potere max di {0} a {1} (era {2}) +logs.msg_admin_maxpower_reset = Admin ha ripristinato il potere max di {0} al valore predefinito ({1}) +logs.msg_admin_powerloss_enabled = Admin ha attivato la perdita di potere per {0} +logs.msg_admin_powerloss_disabled = Admin ha disattivato la perdita di potere per {0} +logs.msg_admin_decay_enabled = Admin ha attivato l'esenzione dal decadimento territori per {0} +logs.msg_admin_decay_disabled = Admin ha disattivato l'esenzione dal decadimento territori per {0} +logs.msg_admin_kd_reset = Admin ha ripristinato U/M per {0} +logs.msg_admin_power_set_all = Admin ha impostato il potere di tutti i {0} membri a {1} +logs.msg_admin_power_add_all = Admin ha aggiunto {0} potere a tutti i {1} membri +logs.msg_admin_power_remove_all = Admin ha rimosso {0} potere da tutti i {1} membri +logs.msg_admin_power_reset_all = Admin ha ripristinato il potere di tutti i {0} membri +logs.msg_admin_power_adjusted_all = Admin ha regolato il potere di tutti i {0} membri di {1} +# Admin fazione +logs.msg_admin_kicked = [Admin] {0} è stato espulso +logs.msg_admin_role_set = [Admin] Ruolo di {0} impostato a {1} +logs.msg_admin_leader_kick = [Admin] Leadership trasferita da {0} a {1} (espulsione admin) +logs.msg_admin_econ_added = Admin ha aggiunto: {0} (saldo: {1}) +logs.msg_admin_econ_deducted = Admin ha dedotto: {0} (saldo: {1}) +logs.msg_admin_econ_set = Admin ha impostato il saldo a {0} (era {1}) +# Importazione +logs.msg_left_import = {0} è uscito (importato in un'altra fazione) +logs.msg_leader_import_transfer = {0} è diventato capo (precedente capo importato in un'altra fazione) +logs.msg_imported_from = Fazione importata da {0} + +# ========== Pagina Chat ========== +chat.title = Chat della Fazione +chat.tab_faction = Fazione +chat.tab_ally = Alleato +chat.send_btn = Invia +chat.placeholder = Scrivi un messaggio... +chat.no_messages = Nessun messaggio ancora. +chat.no_ally_permission = Non hai il permesso per la chat alleata. +chat.no_permission = Nessun permesso. +chat.faction_gone = La tua fazione non esiste più. +chat.time_now = ora +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Pagina Inviti ========== +invites.title = Inviti +invites.tab_outgoing = In Uscita +invites.tab_requests = Richieste +invites.prev_btn = < Prec +invites.next_btn = Succ > +invites.invite_count = {0} inviti +invites.request_count = {0} richieste +invites.invited_by = Invitato da: {0} +invites.no_message = Nessun messaggio +invites.expires = Scade: {0} +invites.type_outgoing = In Uscita +invites.type_request = Richiesta +invites.invited_by_label = Invitato da: +invites.empty_outgoing = Nessun invito in uscita. Usa /f invite per invitare qualcuno. +invites.empty_requests = Nessuna richiesta di adesione. I giocatori possono richiedere di unirsi con /f request. +invites.invalid_player = Giocatore non valido. +invites.cancelled_invite = Invito a {0} annullato. +invites.player_joined = {0} si è unito alla fazione! +invites.faction_full = La fazione è piena. Impossibile accettare la richiesta. +invites.add_failed = Impossibile aggiungere il giocatore alla fazione. +invites.request_expired = Richiesta non trovata o scaduta. +invites.request_declined = Richiesta di adesione di {0} rifiutata. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h +invites.label_message = Messaggio: +invites.btn_cancel = Annulla +invites.btn_accept = Accetta +invites.btn_decline = Rifiuta + +# ========== Pagina Mappa ========== +map.title = Mappa del Territorio +map.action_hint = Clic sinistro: Rivendica | Clic destro: Rilascia +map.legend_your = Tuo Territorio +map.legend_ally = Territorio Alleato +map.legend_enemy = Territorio Nemico +map.legend_other = Altra Fazione +map.legend_wilderness = Zona Selvaggia +map.legend_safe = Safe Zone +map.legend_war = War Zone +map.legend_you = Sei qui +map.position = La Tua Posizione: Chunk ({0}, {1}) +map.legend_protected = Protetto +map.claim_stats = Territori: {0}/{1} ({2} Disponibili) +map.overclaimed = CONQUISTATO da {0}! +map.power_display = Potere: {0}/{1} +map.join_to_claim = Unisciti a una fazione per rivendicare +map.claim_success = Chunk rivendicato a ({0}, {1})! +map.claim_not_in_faction = Devi far parte di una fazione per rivendicare territorio. +map.claim_not_officer = Solo gli ufficiali e i capi possono rivendicare territorio. +map.claim_already_yours = Possiedi già questo chunk. +map.claim_already_claimed = Questo chunk è già rivendicato da un'altra fazione. +map.claim_not_adjacent = Puoi rivendicare solo chunk adiacenti al tuo territorio. +map.claim_max = Hai raggiunto il limite massimo di territori. +map.claim_world_not_allowed = La rivendicazione non è permessa in questo mondo. +map.claim_orbisguard = Quest'area è protetta da OrbisGuard. +map.claim_failed = Impossibile rivendicare il chunk. +map.unclaim_success = Chunk rilasciato a ({0}, {1}). +map.unclaim_not_in_faction = Devi far parte di una fazione. +map.unclaim_not_officer = Solo gli ufficiali e i capi possono rilasciare territorio. +map.unclaim_not_claimed = Questo chunk non è rivendicato. +map.unclaim_not_yours = Questo chunk appartiene a un'altra fazione. +map.unclaim_home = Impossibile rilasciare il chunk contenente la base della fazione. +map.unclaim_failed = Impossibile rilasciare il chunk. +map.overclaim_success = Chunk nemico conquistato a ({0}, {1})! +map.overclaim_not_in_faction = Devi far parte di una fazione. +map.overclaim_not_officer = Solo gli ufficiali e i capi possono conquistare territorio. +map.overclaim_already_yours = Possiedi già questo chunk. +map.overclaim_ally = Non puoi conquistare territorio alleato. +map.overclaim_has_power = Questa fazione ha abbastanza potere per difendere il proprio territorio. +map.overclaim_max = Hai raggiunto il limite massimo di territori. +map.overclaim_failed = Impossibile conquistare il chunk. +# ========== Pagina Creazione Fazione ========== +create.title = Crea la Tua Fazione +create.section_preview = Anteprima +create.section_basic_info = Info di Base +create.section_details = Dettagli +create.name_prefix = Nome: +create.faction_name_label = Nome Fazione * +create.tag_label = TAG (2-4 caratteri, automatico se vuoto) +create.desc_label = Descrizione (Opzionale) +create.recruitment_label = Reclutamento +create.section_faction_color = Colore Fazione +create.section_combat = Combattimento +create.create_btn = Crea Fazione +create.preview_name = Il Nome della Tua Fazione +create.leader_prefix = Capo: {0} +create.enter_name = Inserisci un nome per la fazione. +create.name_too_short = Il nome della fazione deve avere almeno {0} caratteri. +create.name_too_long = Il nome della fazione non può superare i {0} caratteri. +create.name_taken = Esiste già una fazione con questo nome. +create.tag_length = Il tag della fazione deve avere da {0} a {1} caratteri. +create.tag_format = Il tag della fazione può contenere solo lettere e numeri. +create.desc_too_long = La descrizione non può superare i {0} caratteri. +create.created = Fazione {0} creata con successo! +create.created_no_dashboard = Fazione creata ma impossibile aprire il pannello. +create.invalid_name = Nome della fazione non valido. +create.create_failed = Impossibile creare la fazione. + +# ========== Pagine Nuovo Giocatore ========== +newplayer.browse_title = Esplora Fazioni +newplayer.invites_title = Inviti e Richieste +newplayer.map_title = Mappa del Territorio +newplayer.view_only_badge = Modalità Solo Visualizzazione +newplayer.legend_label = Legenda: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Fazione +newplayer.legend_wilderness = Zona Selvaggia +newplayer.search_label = Cerca: +newplayer.sort_label = Ordina: +newplayer.prev_btn = < Prec +newplayer.next_btn = Succ > +newplayer.pending_count = {0} in sospeso +newplayer.received_header = INVITI RICEVUTI ({0}) +newplayer.requests_header = LE TUE RICHIESTE ({0}) +newplayer.no_invites = Nessun invito. Esplora le fazioni per trovarne una! +newplayer.no_requests = Nessuna richiesta in sospeso. +newplayer.invited_by = Invitato da: {0} +newplayer.member_count = {0} membri +newplayer.power_count = {0} potere +newplayer.claim_count = {0} territori +newplayer.awaiting_review = In attesa di esame +newplayer.expires_in = Scade tra {0}h +newplayer.time_just_now = adesso +newplayer.time_minutes = {0} min fa +newplayer.time_hours = {0}h fa +newplayer.time_days = {0}g fa +newplayer.invalid_faction = Fazione non valida. +newplayer.invite_expired = Questo invito è scaduto o è stato revocato. +newplayer.faction_gone = La fazione non esiste più. +newplayer.joined = Ti sei unito a {0}! +newplayer.faction_full = Questa fazione è piena. +newplayer.join_failed = Impossibile unirsi alla fazione. +newplayer.invite_declined = Invito rifiutato. +newplayer.request_cancelled = Richiesta di adesione a {0} annullata. +newplayer.faction_count = {0} fazioni +newplayer.browse_subtitle = Trova la tua nuova casa! +newplayer.sort_power = Potere +newplayer.sort_name = Nome +newplayer.sort_members = Membri +newplayer.btn_accept = Accetta +newplayer.btn_pending = In Sospeso +newplayer.btn_join = Unisciti +newplayer.btn_request = Richiedi +newplayer.invite_only_msg = Questa fazione è solo su invito. +newplayer.welcome_hint = Benvenuto! Usa /f per aprire il menu fazione. +newplayer.faction_open_hint = Questa fazione è aperta! Clicca UNISCITI al suo posto. +newplayer.already_requested = Hai già una richiesta in sospeso per questa fazione. +newplayer.has_invite_hint = Hai un invito da questa fazione! Clicca ACCETTA al suo posto. +newplayer.request_sent = Richiesta di adesione inviata a {0}! +newplayer.officer_review = Un ufficiale esaminerà la tua richiesta. +newplayer.map_hint = Solo Visualizzazione - Unisciti a una fazione per rivendicare territorio! + +# Impostazioni Giocatore +nav.player_settings = Giocatore +player_settings.title = Impostazioni Giocatore +player_settings.language_section = Lingua +player_settings.auto_detect = Rileva automaticamente dal client +player_settings.auto_detect_desc = Usa le impostazioni di lingua del tuo client di gioco +player_settings.language_label = Lingua +player_settings.notifications_section = Notifiche +player_settings.territory_alerts = Avvisi Territoriali +player_settings.territory_alerts_desc = Mostra notifiche quando si entra/esce dai territori +player_settings.death_announcements = Annunci di Morte +player_settings.death_announcements_desc = Ricevi annunci sulla posizione di morte dei membri della fazione +player_settings.power_notifications = Variazioni di Potere +player_settings.power_notifications_desc = Mostra messaggi quando il tuo potere cambia +player_settings.language_changed = Lingua cambiata in {0} +player_settings.pref_enabled = {0} attivato +player_settings.pref_disabled = {0} disattivato + +# ========== Pagine di Aiuto ========== +help.center_title = Centro Assistenza +help.getting_started_title = Per Iniziare +help.what_are_factions_title = Cosa Sono le Fazioni? +help.what_are_factions_1 = Le fazioni sono gruppi creati dai giocatori che collaborano +help.what_are_factions_2 = per rivendicare territorio, costruire basi e competere. +help.what_are_factions_bullet_1 = - Territorio protetto per costruire +help.what_are_factions_bullet_2 = - Compagni di squadra con cui giocare +help.what_are_factions_bullet_3 = - Accesso alla chat e alle funzionalità della fazione +help.joining_title = Unirsi a una Fazione +help.joining_desc = Ci sono diversi modi per unirsi a una fazione: +help.joining_bullet_1 = - Esplora - Trova fazioni aperte e clicca UNISCITI +help.joining_bullet_2 = - Inviti - Accetta gli inviti dagli ufficiali +help.joining_bullet_3 = - Richiesta - Chiedi di unirti alle fazioni solo su invito +help.creating_title = Creare una Fazione +help.creating_desc = Vai alla scheda Crea per fondare la tua fazione. +help.creating_bullet_1 = - Invita e gestisci i membri +help.creating_bullet_2 = - Rivendica e proteggi il territorio +help.commands_title = Comandi Rapidi +help.cmd_f = /f - Apri il menu fazione +help.cmd_f_list = /f list - Elenca tutte le fazioni +help.cmd_f_join = /f join - Unisciti a una fazione aperta +help.cmd_f_create = /f create - Crea una nuova fazione +help.cmd_f_help = /f help - Lista completa dei comandi +help.tip = Suggerimento: Esplora le fazioni per trovare un gruppo adatto a te! From 5d9e7f5cc4870cda056680b1302608fcb32e19f2 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:27 -0700 Subject: [PATCH 64/76] i18n: add Dutch (nl-NL) translations Complete Dutch translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/nl-NL/help/combat/death.md | 39 + .../Languages/nl-NL/help/combat/protection.md | 28 + .../nl-NL/help/combat/spawn_protection.md | 27 + .../Languages/nl-NL/help/combat/tagging.md | 29 + .../Languages/nl-NL/help/combat/zones.md | 29 + .../nl-NL/help/diplomacy/alliances.md | 45 + .../Languages/nl-NL/help/diplomacy/enemies.md | 47 + .../nl-NL/help/diplomacy/relations.md | 38 + .../Languages/nl-NL/help/economy/commands.md | 27 + .../Languages/nl-NL/help/economy/funds.md | 42 + .../Languages/nl-NL/help/economy/treasury.md | 26 + .../Languages/nl-NL/help/economy/upkeep.md | 37 + .../nl-NL/help/power_land/claiming.md | 50 + .../nl-NL/help/power_land/losing_territory.md | 50 + .../nl-NL/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../nl-NL/help/quick_ref/all_commands.md | 94 ++ .../nl-NL/help/welcome/getting_started.md | 38 + .../nl-NL/help/welcome/quick_tips.md | 44 + .../nl-NL/help/welcome/what_are_factions.md | 37 + .../nl-NL/help/your_faction/creating.md | 38 + .../nl-NL/help/your_faction/joining.md | 36 + .../nl-NL/help/your_faction/managing.md | 44 + .../nl-NL/help/your_faction/roles.md | 44 + .../Server/Languages/nl-NL/hyperfactions.lang | 453 +++++++++ .../Languages/nl-NL/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/nl-NL/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/nl-NL/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/nl-NL/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/nl-NL/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/death.md b/src/main/resources/Server/Languages/nl-NL/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md b/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md b/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md b/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md b/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md b/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md b/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md b/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/nl-NL/hyperfactions.lang b/src/main/resources/Server/Languages/nl-NL/hyperfactions.lang new file mode 100644 index 00000000..f8061210 --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Nederlandse Vertalingen +# Formaat: sleutel = waarde (of sleutel = "waarde met aanhalingstekens") +# Opmerking: Sleutels krijgen automatisch het voorvoegsel "hyperfactions." door Hytale's I18nModule +# Plaatshouders: {0}, {1}, enz. + +# ========== Algemeen ========== +common.no_permission = Je hebt geen toestemming om dat te doen. +common.not_in_faction = Je zit niet in een factie. +common.already_in_faction = Je zit al in een factie. +common.player_not_found = Speler niet gevonden. +common.faction_not_found = Factie niet gevonden. +common.player_not_online = Die speler is niet online. +common.must_be_leader = Alleen de factieleider kan dat doen. +common.must_be_officer = Je moet een Officier of Leider zijn om dat te doen. +common.combat_tagged = Je kunt dat niet doen terwijl je in gevecht bent. +common.cancel = Annuleren +common.confirm = Bevestigen +common.save = Opslaan +common.close = Sluiten +common.clear = Wissen +common.back = Terug +common.leave = Verlaten +common.transfer = Overdragen +common.disband = Ontbinden +common.world_fallback = wereld +common.yes = Ja +common.no = Nee +common.loading = Laden... +common.online = Online +common.offline = Offline +common.enabled = Ingeschakeld +common.disabled = Uitgeschakeld +common.none = Geen +common.page = Pagina {0} van {1} +common.unknown = Onbekend +common.error_generic = Er is iets misgegaan. Probeer het opnieuw. +common.gui_fallback = Kon GUI niet openen. Gebruik /f help voor commando's. +common.admin_prefix = [Admin] +common.location_error = Kon je locatie niet bepalen. +common.world_error = Kon je wereld niet bepalen. +common.invalid_id = Ongeldig factie-ID. +common.na = N.v.t. + +# ========== Commando's - Aanmaken ========== +cmd.create.no_permission = Je hebt geen toestemming om facties aan te maken. +cmd.create.usage = Gebruik: /f create +cmd.create.success = Factie '{0}' aangemaakt! +cmd.create.already_in_named = Je zit al in {0}. +cmd.create.use_leave_first = Gebruik eerst /f leave als je een nieuwe factie wilt aanmaken. +cmd.create.name_taken = Die factienaam is al in gebruik. +cmd.create.name_too_short = Factienaam is te kort. +cmd.create.name_too_long = Factienaam is te lang. +cmd.create.failed = Factie aanmaken mislukt. + +# ========== Commando's - Ontbinden ========== +cmd.disband.no_permission = Je hebt geen toestemming om facties te ontbinden. +cmd.disband.not_leader = Alleen de factieleider kan ontbinden. +cmd.disband.confirm_prompt = Weet je zeker dat je je factie wilt ontbinden? +cmd.disband.confirm_instruction = Typ /f disband --text opnieuw binnen {0} seconden om te bevestigen. +cmd.disband.success = Je factie is ontbonden. +cmd.disband.failed = Factie ontbinden mislukt. +cmd.disband.cancelled = Vorige bevestiging geannuleerd. Typ opnieuw om ontbinding te bevestigen. + +# ========== Commando's - Hernoemen ========== +cmd.rename.no_permission = Je hebt geen toestemming. +cmd.rename.not_leader = Alleen de leider kan de factie hernoemen. +cmd.rename.usage = Gebruik: /f rename +cmd.rename.too_short = Naam is te kort (min {0} tekens). +cmd.rename.too_long = Naam is te lang (max {0} tekens). +cmd.rename.name_taken = Die naam is al in gebruik. +cmd.rename.success = Factie hernoemd naar {0}! +cmd.rename.broadcast = {0} heeft de factie hernoemd naar {1} + +# ========== Commando's - Beschrijving ========== +cmd.desc.no_permission = Je hebt geen toestemming. +cmd.desc.not_officer = Je moet een officier zijn om de beschrijving in te stellen. +cmd.desc.set = Factiebeschrijving ingesteld! +cmd.desc.cleared = Factiebeschrijving gewist. + +# ========== Commando's - Open / Gesloten ========== +cmd.open.no_permission = Je hebt geen toestemming. +cmd.open.not_leader = Alleen de leider kan deze instelling wijzigen. +cmd.open.already_open = Je factie is al open. +cmd.open.success = Je factie is nu open! Iedereen kan toetreden met /f join. +cmd.open.broadcast = {0} heeft de factie opengesteld voor iedereen. +cmd.close.no_permission = Je hebt geen toestemming. +cmd.close.not_leader = Alleen de leider kan deze instelling wijzigen. +cmd.close.already_closed = Je factie is al gesloten. +cmd.close.success = Je factie is nu alleen op uitnodiging. +cmd.close.broadcast = {0} heeft de factie gesloten voor alleen uitnodigingen. + +# ========== Commando's - Kleur ========== +cmd.color.no_permission = Je hebt geen toestemming. +cmd.color.not_officer = Je moet een officier zijn om de kleur te wijzigen. +cmd.color.colors_disabled = Factiekleuren zijn uitgeschakeld. +cmd.color.usage = Gebruik: /f color +cmd.color.usage_hint = Geldige codes: 0-9, a-f of #RRGGBB hex +cmd.color.invalid = Ongeldige kleur. Gebruik 0-9, a-f, of #RRGGBB. +cmd.color.success = Factiekleur bijgewerkt! + +# ========== Commando's - Claimen ========== +cmd.claim.no_permission = Je hebt geen toestemming om gebieden te claimen. +cmd.claim.already_yours = Je factie bezit dit gebied al. +cmd.claim.cannot_claim_ally = Je kunt bondgenootterritorium niet claimen. +cmd.claim.already_claimed_hint = Dit gebied is al geclaimd. Gebruik /f overclaim als ze plunderbaar zijn. +cmd.claim.success = Gebied geclaimd op {0}, {1}! +cmd.claim.not_officer = Je moet een officier zijn om land te claimen. +cmd.claim.already_claimed = Dit gebied is al geclaimd. +cmd.claim.max_claims = Je factie heeft het maximum aantal gebieden bereikt. Krijg meer kracht! +cmd.claim.not_adjacent = Je moet aangrenzend aan bestaand territorium claimen. +cmd.claim.world_not_allowed = Claimen is niet toegestaan in deze wereld. +cmd.claim.orbisguard = Dit gebied wordt beschermd door OrbisGuard. +cmd.claim.zone_protected = Dit gebied bevindt zich in een SafeZone of WarZone. +cmd.claim.insufficient_power = Je factie heeft niet genoeg kracht om meer land te claimen. +cmd.claim.failed = Gebied claimen mislukt. + +# ========== Commando's - Uitnodigen ========== +cmd.invite.no_permission = Je hebt geen toestemming om spelers uit te nodigen. +cmd.invite.not_officer = Je moet een officier zijn om spelers uit te nodigen. +cmd.invite.usage = Gebruik: /f invite +cmd.invite.player_not_found = Speler '{0}' niet gevonden of offline. +cmd.invite.target_in_faction = Die speler zit al in een factie. +cmd.invite.sent = {0} uitgenodigd voor je factie. +cmd.invite.received = Je bent uitgenodigd om lid te worden van {0}! +cmd.invite.accept_hint = Typ /f accept {0} om toe te treden. + +# ========== Commando's - Accepteren / Toetreden ========== +cmd.join.no_permission = Je hebt geen toestemming om bij facties aan te sluiten. +cmd.join.already_in_named = Je zit al in {0}. +cmd.join.use_leave_hint = Gebruik eerst /f leave als je bij een andere factie wilt aansluiten. +cmd.join.no_invites = Je hebt geen openstaande uitnodigingen. +cmd.join.faction_not_found = Factie '{0}' niet gevonden. +cmd.join.not_invited = Je hebt geen uitnodiging van die factie. +cmd.join.faction_gone = Die factie bestaat niet meer. +cmd.join.success = Je bent toegetreden tot {0}! +cmd.join.broadcast = {0} is toegetreden tot de factie! +cmd.join.faction_full = Die factie is vol. +cmd.join.failed = Toetreden tot factie mislukt. + +# ========== Commando's - Schoppen ========== +cmd.kick.no_permission = Je hebt geen toestemming om leden te schoppen. +cmd.kick.usage = Gebruik: /f kick +cmd.kick.not_in_your_faction = Speler '{0}' zit niet in jouw factie. +cmd.kick.success = {0} uit de factie geschopt. +cmd.kick.broadcast = {0} is uit de factie geschopt. +cmd.kick.kicked = Je bent uit de factie geschopt. +cmd.kick.cannot_kick_higher = Je hebt geen toestemming om die speler te schoppen. +cmd.kick.cannot_kick_leader = Je kunt de factieleider niet schoppen. +cmd.kick.failed = Speler schoppen mislukt. + +# ========== Commando's - Verlaten ========== +cmd.leave.no_permission = Je hebt geen toestemming om facties te verlaten. +cmd.leave.confirm_prompt = Weet je zeker dat je je factie wilt verlaten? +cmd.leave.confirm_instruction = Typ /f leave --text opnieuw binnen {0} seconden om te bevestigen. +cmd.leave.success = Je hebt je factie verlaten. +cmd.leave.broadcast = {0} heeft de factie verlaten. +cmd.leave.failed = Factie verlaten mislukt. +cmd.leave.cancelled = Vorige bevestiging geannuleerd. Typ opnieuw om vertrek te bevestigen. + +# ========== Commando's - Promoveren / Degraderen / Overdragen ========== +cmd.rank.promote_no_permission = Je hebt geen toestemming om leden te promoveren. +cmd.rank.promote_usage = Gebruik: /f promote +cmd.rank.promoted = {0} gepromoveerd tot {1}! +cmd.rank.promote_broadcast = {0} is gepromoveerd tot {1}! +cmd.rank.already_highest = Kan niet verder promoveren. Gebruik /f transfer om de leider te wijzigen. +cmd.rank.promote_failed = Speler promoveren mislukt. +cmd.rank.demote_no_permission = Je hebt geen toestemming om leden te degraderen. +cmd.rank.demote_usage = Gebruik: /f demote +cmd.rank.demoted = {0} gedegradeerd naar {1}. +cmd.rank.demote_broadcast = {0} is gedegradeerd naar {1}. +cmd.rank.already_lowest = Die speler is al een Lid. +cmd.rank.demote_failed = Speler degraderen mislukt. +cmd.rank.transfer_no_permission = Je hebt geen toestemming om het leiderschap over te dragen. +cmd.rank.transfer_usage = Gebruik: /f transfer +cmd.rank.player_not_in_faction = Speler niet gevonden in je factie. +cmd.rank.transfer_confirm = Weet je zeker dat je het leiderschap wilt overdragen aan {0}? +cmd.rank.transfer_confirm_instruction = Typ /f transfer {0} --text opnieuw binnen {1} seconden om te bevestigen. +cmd.rank.transferred = Leiderschap overgedragen aan {0}! +cmd.rank.transfer_broadcast = {0} is nu de factieleider! +cmd.rank.transfer_failed = Leiderschap overdragen mislukt. +cmd.rank.transfer_cancelled = Vorige bevestiging geannuleerd. Typ opnieuw om overdracht te bevestigen. + +# ========== Commando's - Unclaimen ========== +cmd.unclaim.no_permission = Je hebt geen toestemming om gebieden vrij te geven. +cmd.unclaim.success = Gebied vrijgegeven op {0}, {1}. +cmd.unclaim.not_officer = Je moet een officier zijn om land vrij te geven. +cmd.unclaim.chunk_not_claimed = Dit gebied is niet geclaimd. +cmd.unclaim.not_your_claim = Je factie bezit dit gebied niet. +cmd.unclaim.cannot_unclaim_home = Kan het gebied met de factiebasis niet vrijgeven. +cmd.unclaim.would_disconnect = Kan niet vrijgeven — het zou je territorium loskoppelen. +cmd.unclaim.failed = Gebied vrijgeven mislukt. + +# ========== Commando's - Overclaimen ========== +cmd.overclaim.no_permission = Je hebt geen toestemming om gebieden over te nemen. +cmd.overclaim.success = Vijandelijk territorium overgenomen! +cmd.overclaim.not_officer = Je moet een officier zijn om gebieden over te nemen. +cmd.overclaim.not_claimed = Dit gebied is niet geclaimd. Gebruik /f claim. +cmd.overclaim.own_chunk = Je factie bezit dit gebied al. +cmd.overclaim.ally = Je kunt bondgenootterritorium niet overnemen. +cmd.overclaim.target_has_power = Deze factie heeft nog genoeg kracht. +cmd.overclaim.failed = Overnemen mislukt. + +# ========== Commando's - Vastgelopen ========== +cmd.stuck.no_permission = Je hebt geen toestemming om /f stuck te gebruiken. +cmd.stuck.not_stuck = Je zit niet vast — dit is wildernis. +cmd.stuck.combat_tagged = Je kunt /f stuck niet gebruiken tijdens gevecht! +cmd.stuck.no_safe = Kon geen veilige locatie vinden. +cmd.stuck.teleporting = Je wordt over {0} seconden naar veiligheid geteleporteerd. Niet bewegen! + +# ========== Commando's - Thuis ========== +cmd.home.no_permission = Je hebt geen toestemming om naar de factiebasis te teleporteren. +cmd.home.no_home = Je factie heeft geen basis ingesteld. +cmd.home.combat_tagged = Je kunt niet teleporteren tijdens gevecht! +cmd.home.teleported = Geteleporteerd naar de factiebasis! + +# ========== Commando's - Basis Instellen ========== +cmd.sethome.no_permission = Je hebt geen toestemming om de factiebasis in te stellen. +cmd.sethome.world_not_allowed = Kan geen basis instellen in deze wereld. +cmd.sethome.not_in_territory = Je kunt de basis alleen instellen in het territorium van je factie. +cmd.sethome.set = Factiebasis ingesteld! +cmd.sethome.broadcast = {0} heeft de factiebasis ingesteld. +cmd.sethome.not_officer = Je moet een officier zijn om de basis in te stellen. +cmd.sethome.failed = Basis instellen mislukt. + +# ========== Commando's - Basis Verwijderen ========== +cmd.delhome.no_permission = Je hebt geen toestemming om de factiebasis te verwijderen. +cmd.delhome.no_home = Je factie heeft geen basis ingesteld. +cmd.delhome.deleted = Factiebasis verwijderd! +cmd.delhome.broadcast = {0} heeft de factiebasis verwijderd. +cmd.delhome.not_officer = Je moet een officier zijn om de basis te verwijderen. +cmd.delhome.failed = Basis verwijderen mislukt. + +# ========== Commando's - Relatie (Bondgenoot/Vijand/Neutraal/Relaties) ========== +cmd.relation.ally_no_permission = Je hebt geen toestemming om bondgenootschappen te beheren. +cmd.relation.ally_usage = Gebruik: /f ally +cmd.relation.ally_sent = Bondgenootschapsverzoek verstuurd naar {0}! +cmd.relation.ally_formed = Je bent nu bondgenoten met {0}! +cmd.relation.already_ally = Je bent al bondgenoten met die factie. +cmd.relation.ally_failed = Bondgenootschapsverzoek versturen mislukt. +cmd.relation.enemy_no_permission = Je hebt geen toestemming om vijanden te verklaren. +cmd.relation.enemy_usage = Gebruik: /f enemy +cmd.relation.enemy_declared = {0} is nu je vijand! +cmd.relation.already_enemy = Je bent al vijanden met die factie. +cmd.relation.max_enemies = Je hebt het maximale aantal vijanden bereikt. +cmd.relation.enemy_failed = Vijand instellen mislukt. +cmd.relation.neutral_no_permission = Je hebt geen toestemming om neutrale relaties in te stellen. +cmd.relation.neutral_usage = Gebruik: /f neutral +cmd.relation.neutral_set = Je factie is nu neutraal met {0}. +cmd.relation.already_neutral = Je bent al neutraal met die factie. +cmd.relation.neutral_failed = Neutraal instellen mislukt. +cmd.relation.cannot_self = Je kunt geen bondgenootschap sluiten met jezelf. +cmd.relation.max_allies = Je hebt het maximale aantal bondgenoten bereikt. +cmd.relation.view_no_permission = Je hebt geen toestemming om relaties te bekijken. +cmd.relation.header = === Factierelaties === +cmd.relation.allies_count = Bondgenoten ({0}): +cmd.relation.enemies_count = Vijanden ({0}): +cmd.relation.list_entry = - {0} + +# ========== Commando's - Chat ========== +cmd.chat.usage = Gebruik: /f c [f|a|off] +cmd.chat.no_permission = Je hebt geen toestemming voor die chatmodus. +cmd.chat.mode_set = Chatmodus ingesteld op {0} + +# ========== Commando's - Uitnodigingen ========== +cmd.invites.not_officer = Je moet een officier zijn om uitnodigingen te beheren. +cmd.invites.header = === Factie-uitnodigingen === +cmd.invites.no_pending = Geen openstaande uitnodigingen of verzoeken. +cmd.invites.outgoing = Uitgaande Uitnodigingen: +cmd.invites.outgoing_entry = {0} (uitgenodigd door {1}) +cmd.invites.requests = Toetredingsverzoeken: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Jouw Uitnodigingen === +cmd.invites.no_invites = Je hebt geen openstaande uitnodigingen. +cmd.invites.invite_entry = {0} - Gebruik /f accept {1} + +# ========== Commando's - Verzoek ========== +cmd.request.no_permission = Je hebt geen toestemming om lidmaatschap aan te vragen. +cmd.request.already_in_named = Je zit al in {0}. +cmd.request.use_leave_hint = Gebruik eerst /f leave als je bij een andere factie wilt aansluiten. +cmd.request.usage = Gebruik: /f request [bericht] +cmd.request.faction_open = Die factie is open! Gebruik /f accept {0} om direct toe te treden. +cmd.request.already_requested = Je hebt al een openstaand verzoek bij die factie. +cmd.request.has_invite = Je bent al uitgenodigd voor die factie! Gebruik /f accept {0} om toe te treden. +cmd.request.sent = Toetredingsverzoek verstuurd naar {0}! +cmd.request.your_message = Je bericht: "{0}" +cmd.request.officer_review = Een officier zal je verzoek beoordelen. +cmd.request.officer_notify = {0} heeft verzocht om lid te worden van je factie! +cmd.request.officer_review_hint = Gebruik /f gui > Uitnodigingen om te beoordelen. + +# ========== Commando's - Info ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Je hebt geen toestemming om factie-info te bekijken. +cmd.info.faction_not_found = Factie '{0}' niet gevonden. +cmd.info.not_in_faction_hint = Je zit niet in een factie. Gebruik /f info +cmd.info.leader = Leider: {0} +cmd.info.members = Leden: {0}/{1} +cmd.info.power = Kracht: {0} +cmd.info.claims = Gebieden: {0} +cmd.info.raidable = PLUNDERBAAR! +cmd.info.allies = Bondgenoten: {0} +cmd.info.enemies = Vijanden: {0} +cmd.info.they_consider = Zij beschouwen jou als: {0} +cmd.info.you_consider = Jij beschouwt hen als: {0} +cmd.info.members_no_permission = Je hebt geen toestemming om factieleden te bekijken. +cmd.info.members_header = === {0} Leden ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Je hebt geen toestemming om de factielijst te bekijken. +cmd.info.list_empty = Er zijn geen facties. +cmd.info.list_header = === Facties ({0}) === +cmd.info.list_entry = {0} - {1} leden, {2} kracht +cmd.info.list_entry_raidable = {0} - {1} leden, {2} kracht [PLUNDERBAAR] +cmd.info.help_no_permission = Je hebt geen toestemming om de hulp te bekijken. +cmd.info.who_no_permission = Je hebt geen toestemming om spelerinfo te bekijken. +cmd.info.who_faction = Factie: {0} +cmd.info.who_role = Rol: {0} +cmd.info.who_joined = Toegetreden: {0} +cmd.info.who_faction_none = Factie: Geen +cmd.info.who_power = Kracht: {0} +cmd.info.who_status = Status: {0} +cmd.info.who_last_seen = Laatst gezien: {0} +cmd.info.map_no_permission = Je hebt geen toestemming om de kaart te bekijken. +cmd.info.map_header = === Gebiedskaart === +cmd.info.map_legend = Legenda: +Jij /Eigen /Bondgenoot /Vijand -Wildernis +cmd.info.map_gui_hint = Gebruik /f gui voor een interactieve kaart + +# ========== Commando's - Kracht ========== +cmd.power.personal = Persoonlijke Kracht: {0}/{1} +cmd.power.faction = Factiekracht: {0}/{1} +cmd.power.death_loss = Verlies bij Dood: {0} +cmd.power.regen = Herstelsnelheid: {0}/uur +cmd.power.no_permission = Je hebt geen toestemming om kracht-info te bekijken. +cmd.power.header = Kracht van {0}: +cmd.power.current = Huidig: {0} + +# ========== Commando's - Economie ========== +cmd.economy.balance = Saldo: {0} +cmd.economy.deposited = {0} gestort in de factieschatkist. +cmd.economy.withdrawn = {0} opgenomen uit de factieschatkist. +cmd.economy.transferred = {0} overgemaakt naar {1}. +cmd.economy.insufficient = Onvoldoende saldo in de factieschatkist. +cmd.economy.invalid_amount = Ongeldig bedrag: {0} +cmd.economy.economy_disabled = Economie is uitgeschakeld. +cmd.economy.balance_no_permission = Je hebt geen toestemming om saldo's te bekijken. +cmd.economy.treasury_unavailable = Schatkist is niet beschikbaar. +cmd.economy.balance_display = Schatkist van {0}: {1} +cmd.economy.deposit_no_permission = Je hebt geen toestemming om te storten. +cmd.economy.deposit_faction_denied = Je hebt geen factietoestemming om te storten. +cmd.economy.deposit_usage = Gebruik: /f deposit +cmd.economy.amount_positive = Bedrag moet positief zijn. +cmd.economy.wallet_insufficient = Je hebt niet genoeg geld. Portemonnee: {0} +cmd.economy.wallet_withdraw_failed = Opname uit je portemonnee mislukt. +cmd.economy.deposit_failed = Storten in factieschatkist mislukt. Geld teruggestort. +cmd.economy.withdraw_no_permission = Je hebt geen toestemming om op te nemen. +cmd.economy.withdraw_faction_denied = Je hebt geen factietoestemming om op te nemen. +cmd.economy.withdraw_usage = Gebruik: /f withdraw +cmd.economy.withdraw_limit_denied = Opname geweigerd: {0} +cmd.economy.wallet_deposit_failed = Waarschuwing: Storten naar je portemonnee mislukt. Neem contact op met een admin. +cmd.economy.withdraw_limit_exceeded = Opname geweigerd: limiet overschreden. +cmd.economy.withdraw_failed = Opname mislukt: {0} +cmd.economy.transfer_no_permission = Je hebt geen toestemming om over te maken. +cmd.economy.transfer_faction_denied = Je hebt geen factietoestemming om over te maken. +cmd.economy.transfer_usage = Gebruik: /f money transfer +cmd.economy.transfer_self = Kan niet overmaken naar je eigen factie. +cmd.economy.transfer_limit_denied = Overboeking geweigerd: {0} +cmd.economy.transfer_limit_exceeded = Overboeking geweigerd: limiet overschreden. +cmd.economy.transfer_failed = Overboeking mislukt: {0} +cmd.economy.log_no_permission = Je hebt geen toestemming om het transactielog te bekijken. +cmd.economy.log_header = Transactielog (pagina {0}/{1}) +cmd.economy.log_empty = Geen transacties gevonden. +cmd.economy.money_help_header = Schatkistcommando's: +cmd.economy.money_help_balance = /f money balance [factie] - Saldo bekijken +cmd.economy.money_help_deposit = /f money deposit - Storten in schatkist +cmd.economy.money_help_withdraw = /f money withdraw - Opnemen uit schatkist +cmd.economy.money_help_transfer = /f money transfer - Overmaken tussen facties +cmd.economy.money_help_log = /f money log [pagina] [type] - Transactiegeschiedenis bekijken + +# ========== Bescherming - Actie-omschrijvingen ========== +protection.action.generic = Je kunt dat hier niet doen +protection.action.build = Je kunt hier niet bouwen of blokken breken +protection.action.interact = Je kunt daar niet mee interacteren +protection.action.door = Je kunt geen deuren gebruiken +protection.action.container = Je kunt geen opbergvakken openen +protection.action.bench = Je kunt geen werkstations gebruiken +protection.action.processing = Je kunt geen verwerkingsstations gebruiken +protection.action.seat = Je kunt geen zitplaatsen gebruiken +protection.action.light = Je kunt geen verlichting aan/uitzetten +protection.action.teleporter = Je kunt geen teleporters gebruiken +protection.action.crate = Je kunt geen kratten gebruiken +protection.action.tame = Je kunt geen wezens temmen +protection.action.npc = Je kunt niet interacteren met NPC's +protection.action.mount = Je kunt geen wezens berijden +protection.action.pve = Je kunt geen wezens verwonden +protection.action.item_drop = Je kunt geen items laten vallen +protection.action.item_pickup = Je kunt geen items oprapen + +# ========== Bescherming - Weigeringsredenen ========== +protection.denied.safezone = {0} in een SafeZone. +protection.denied.warzone = {0} in een WarZone. +protection.denied.enemy_claim = {0} in vijandelijk territorium. +protection.denied.claimed = {0} in geclaimd territorium. +protection.denied.here = {0} hier. +protection.denied.zone = {0} in deze zone. +protection.denied.faction_perm = {0} hier. (Factietoestemming: {1}) +protection.denied.ally_territory = {0} hier. (Bondgenootterritorium) +protection.denied.error = Beschermingsfout — actie geblokkeerd voor de veiligheid. + +# ========== Bescherming - PvP ========== +protection.pvp.safezone = PvP is uitgeschakeld in SafeZones. +protection.pvp.same_faction = Je kunt factieleden niet aanvallen. +protection.pvp.ally = Je kunt bondgenoten niet aanvallen. +protection.pvp.spawn_protected = Die speler heeft spawnbescherming. +protection.pvp.territory_disabled = PvP is uitgeschakeld in dit territorium. +protection.pvp.generic = Je kunt deze speler niet aanvallen. + +# ========== Bescherming - Schade aan Entiteiten ========== +protection.mob_damage_disabled = Mobschade is uitgeschakeld in deze zone. +protection.pve_damage_disabled = PvE-schade is uitgeschakeld in deze zone. +protection.pve_territory_denied = Je kunt geen mobs verwonden in dit territorium. + +# ========== Bescherming - Gevechtstag ========== +protection.combat_tag_command = Je kunt dat commando niet gebruiken terwijl je in gevecht bent. + +# ========== Serveraankondigingen ========== +# Deze worden uitgezonden naar alle online spelers bij belangrijke factie-evenementen. +# {0}, {1} = dynamische waarden (factienamen, spelernamen) +server_announce.faction_created = {0} heeft de factie {1} opgericht! +server_announce.faction_disbanded = De factie {0} is ontbonden! +server_announce.leadership_transfer = {0} is nu de leider van {1}! +server_announce.overclaim = {0} heeft territorium overgenomen van {1}! +server_announce.war_declared = {0} heeft de oorlog verklaard aan {1}! +server_announce.alliance_formed = {0} en {1} zijn nu bondgenoten! +server_announce.alliance_broken = {0} en {1} zijn geen bondgenoten meer! + +# ========== Teleportsysteem ========== +teleport.cooldown_wait = Je moet {0} wachten voordat je opnieuw kunt teleporteren. +teleport.warmup_start = Teleporteren naar factiebasis over {0} seconden... +teleport.combat_cancelled = Teleportatie geannuleerd - je bent in gevecht! +teleport.success_default = Geteleporteerd naar de factiebasis! +teleport.no_home = Je factie heeft geen basis ingesteld. +teleport.world_not_found = Wereld niet gevonden. +teleport.failed = Teleportatie mislukt. +teleport.countdown = Teleporteren over {0} seconden... +teleport.countdown_one = Teleporteren over 1 seconde... +teleport.moved_cancelled = Teleportatie geannuleerd - je hebt bewogen! +teleport.damage_cancelled = Teleportatie geannuleerd - je hebt schade ontvangen! +teleport.mount_teleport_blocked = Je kunt niet naar die zone teleporteren terwijl je een mount berijdt. +teleport.mount_entry_blocked = Je kunt deze zone niet betreden terwijl je een mount berijdt. + +# ========== Chatweergave ========== +chat.display.public = Openbaar +chat.display.faction = Factie +chat.display.ally = Bondgenoot diff --git a/src/main/resources/Server/Languages/nl-NL/hyperfactions_admin.lang b/src/main/resources/Server/Languages/nl-NL/hyperfactions_admin.lang new file mode 100644 index 00000000..c06a292c --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Nederlandse Vertalingen +# Formaat: sleutel = waarde +# Opmerking: Sleutels krijgen automatisch het voorvoegsel "hyperfactions_admin." door Hytale's I18nModule + +# ========== Admin Navigatiebalk ========== +nav.dashboard = Dashboard +nav.actions = Acties +nav.factions = Facties +nav.players = Spelers +nav.economy = Economie +nav.zones = Zones +nav.config = Configuratie +nav.backups = Back-ups +nav.log = Logboek +nav.updates = Updates +nav.help = Hulp +nav.version = Versie + +# ========== Algemene Admin Labels ========== +common.faction_not_found = Factie Niet Gevonden +common.no_faction = Geen Factie +common.not_set = Niet ingesteld +common.on = Aan +common.off = Uit +common.enable = Inschakelen +common.disable = Uitschakelen +common.none_paren = (Geen) +common.invalid_faction = Ongeldige factie. +common.leader_prefix = Leider: {0} +common.members_suffix = {0} leden +common.claims_suffix = {0} gebieden +common.factions_suffix = {0} facties +common.players_suffix = {0} spelers +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} vermeldingen +common.found_suffix = {0} gevonden +common.power_format = {0}/{1} kracht +common.raidable = Plunderbaar +common.protected = Beschermd +common.no_description = Geen beschrijving ingesteld. +common.officers_more = +{0} meer +common.custom_max = (aangepast max) +common.default_max = (standaard max) +common.now = Nu +common.ago_suffix = {0} geleden +common.just_now = zojuist +common.no_membership_history = Geen lidmaatschapsgeschiedenis + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Facties: {0} +dashboard.members_prefix = Totaal Leden: {0} +dashboard.claims_prefix = Totaal Gebieden: {0} + +# ========== Admin Acties ========== +actions.confirm_reset = Bevestig Reset? +actions.confirm_trigger = Bevestig Trigger? +actions.kd_reset = K/D gereset voor {0} spelers. +actions.kd_reset_failed = K/D resetten mislukt: {0} +actions.upkeep_unavailable = Onderhoudsprocessor is niet beschikbaar. +actions.upkeep_triggered = Onderhoudsinning geactiveerd. +actions.upkeep_failed = Onderhoud mislukt: {0} + +# ========== Admin Ontbinden ========== +disband.faction_gone = Factie bestaat niet meer. +disband.success = Factie '{0}' is ontbonden. +disband.failed = Ontbinden mislukt: {0} +disband.no_leader = Factie heeft geen leider, kan niet ontbinden. + +# ========== Admin Alles Unclaimen ========== +unclaim.removed = [Admin] {0} gebieden verwijderd van {1}. +unclaim.no_claims = {0} had geen gebieden om te verwijderen. + +# ========== Admin Factielijst ========== +factions.home_not_set = Niet ingesteld +factions.teleported = Geteleporteerd naar de basis van {0}. +factions.no_home = Factie heeft geen basis ingesteld. +factions.world_not_found = Doelwereld niet gevonden. + +# ========== Admin Factie-info ========== +info.faction_gone = Deze factie bestaat niet meer. + +# ========== Admin Factieleden ========== +members.sort_role = Rol +members.sort_online = Online +members.sort_name = Naam +members.sort_power = Kracht +members.promoted = [Admin] {0} gepromoveerd tot {1}. +members.demoted = [Admin] {0} gedegradeerd naar {1}. +members.kicked = [Admin] {0} uit de factie geschopt. + +# ========== Admin Factierelaties ========== +relations.allies_header = BONDGENOTEN ({0}) +relations.enemies_header = VIJANDEN ({0}) +relations.no_allies = Geen bondgenoten. +relations.no_enemies = Geen vijanden. +relations.neutral_count = {0} neutrale facties +relations.since_today = Sinds: vandaag +relations.since_one_day = Sinds: 1 dag geleden +relations.since_days = Sinds: {0} dagen geleden +relations.set_ally = [Admin] Wederzijds bondgenootschap ingesteld met {0}. +relations.set_enemy = Wederzijdse vijandschap ingesteld met {0}. +relations.set_neutral = [Admin] Wederzijdse neutraliteit ingesteld met {0}. + +# ========== Admin Factie-instellingen ========== +settings.locked = Deze instelling is vergrendeld door de serverconfiguratie. +settings.perm_toggled = {0} ingesteld op {1}. +settings.color_changed = Factiekleur ingesteld op {0}. +settings.recruitment_set = Werving ingesteld op {0}. +settings.no_home = [Admin] Deze factie heeft geen basis ingesteld. +settings.home_cleared = Factiebasis gewist voor {0}. + +# ========== Sorteer Dropdown Labels ========== +sort.power = Kracht +sort.name = Naam +sort.members = Leden +sort.balance = Saldo + +# ========== Admin Spelers ========== +players.sort_last_online = Laatst Online +players.sort_faction = Factie +players.sort_online = Online +players.not_online = Speler is niet online. +players.world_not_found = Doelwereld niet gevonden. +players.teleported = [Admin] Geteleporteerd naar {0}. + +# ========== Admin Spelerinfo ========== +playerinfo.disband_faction = Factie Ontbinden +playerinfo.kick_leader = Leider Schoppen +playerinfo.enter_valid_number = Voer een geldig getal in. +playerinfo.enter_valid_positive = Voer een geldig positief getal in. +playerinfo.faction_gone = Factie bestaat niet meer. +playerinfo.kd_reset = K/D gereset voor {0}. +playerinfo.kicked_success = {0} geschopt uit {1}. +playerinfo.kicked_leader = Leider {0} geschopt. Leiderschap overgedragen aan {1}. +playerinfo.disbanded_kick = [Admin] Factie '{0}' ontbonden (laatste lid geschopt). + +# ========== Admin Economie ========== +economy.no_data = Geen facties met economiegegevens. +economy.amount_zero = Bedrag mag niet nul zijn. +economy.enter_amount = Voer een bedrag in. +economy.invalid_number = Ongeldig getal: {0} +economy.error = Er is een fout opgetreden. +economy.balance_negative = Saldo kan niet negatief zijn. +economy.failed = Mislukt: {0} +economy.bulk_complete = Bulkaanpassing voltooid: {0} {1} aan {2} facties. +economy.bulk_failures = ({0} mislukt) + +# ========== Admin Zones ========== +zones.not_found = Zone niet gevonden. +zones.invalid_id = Ongeldig zone-ID. +zones.deleted = Zone {0} verwijderd. +zones.delete_failed = Zone verwijderen mislukt: {0} +zones.no_chunks = Geen chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Zone Aanmaakwizard ========== +wizard.enter_name = Voer een zonenaam in. +wizard.name_too_short = Zonenaam moet minstens {0} tekens lang zijn. +wizard.name_too_long = Zonenaam mag niet meer dan {0} tekens bevatten. +wizard.name_taken = Er bestaat al een zone met deze naam. +wizard.radius_range = Radius moet tussen 1 en {0} liggen. +wizard.create_failed = Kon zone niet aanmaken: {0} +wizard.created_not_found = Zone aangemaakt maar kon niet worden gevonden. +wizard.created = {0} '{1}' aangemaakt! +wizard.chunk_claimed = Chunk geclaimd ({0}, {1}). +wizard.chunk_failed = Kon huidige chunk niet claimen: {0} +wizard.radius_claimed = {0} chunks geclaimd in een radius van {1} rond {2}. +wizard.radius_no_claims = Geen chunks konden worden geclaimd (gebied kan bezet zijn). +wizard.no_claims = Zone aangemaakt zonder claims. +wizard.chunks_preview = ~{0} chunks + +# ========== Zone Hernoemen ========== +zone_rename.zone_gone = Zone bestaat niet meer. +zone_rename.enter_name = Voer een zonenaam in. +zone_rename.too_short = Zonenaam moet minstens {0} teken lang zijn. +zone_rename.too_long = Zonenaam mag niet meer dan {0} tekens bevatten. +zone_rename.same_name = Dat is al de naam van deze zone. +zone_rename.renamed = [Admin] Zone hernoemd van {0} naar {1}! +zone_rename.name_taken = Er bestaat al een zone met die naam. +zone_rename.invalid_name = Ongeldige zonenaam. +zone_rename.rename_failed = Zone hernoemen mislukt: {0} + +# ========== Zone Type Wijzigen ========== +zone_type.zone_gone = Zone bestaat niet meer. +zone_type.changed = [Admin] {0} gewijzigd van {1} naar {2} ({3}). +zone_type.failed = Zonetype wijzigen mislukt: {0} +zone_type.flags_reset = vlaggen gereset +zone_type.flags_kept = vlaggen behouden + +# ========== Zone Integratievlaggen ========== +zone_int.zone_not_found = Zone Niet Gevonden +zone_int.no_plugin = (geen plugin) +zone_int.default = (standaard) +zone_int.custom = (aangepast) + +# UI-labels integratievlaggen +gui.zint_cat_gravestones = Grafstenen +gui.zint_gravestones_desc = Indien AAN kunnen niet-eigenaren graven plunderen. Eigenaren kunnen dat altijd. +gui.zint_cat_world_map = Wereldkaart +gui.zint_world_map_desc = Overschrijf kaartverberging voor spelers in deze zone. Indien ingeschakeld, selecteer wie spelers in deze zone kan zien. +gui.zint_visibility_label = Zichtbaarheidsniveau: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = Standaardwaarden Herstellen +gui.zint_back_to_flags = Terug naar Vlaggen +gui.zint_map_vis_faction = Alleen Factie +gui.zint_map_vis_ally = Factie + Bondgenoten +gui.zint_map_vis_all = Alle Spelers + +# ========== Activiteitenlog ========== +log.all_types = Alle Types +log.no_logs = Geen activiteitenlogs die overeenkomen met filters. + +# ========== Versiepagina ========== +version.active = Actief +version.not_found = Niet Gevonden +version.not_detected = Niet Gedetecteerd +version.not_installed = Niet Geinstalleerd +version.active_version = Actief (v{0}) +version.active_compatible = Actief (compatibel) +version.active_claims_only = Actief (alleen claims) +version.installed_no_perm = Geinstalleerd (geen perm provider) +version.active_provider = Actief ({0}) + +# ========== Admin Hoofdpagina ========== +main.reload_hint = Gebruik /f reload om configuratie te herladen. +main.unclaim_hint = Gebruik /f admin unclaim {0} om alle {1} chunks vrij te geven. + +# ========== Zone Vlaggen/Instellingen ========== +zflags.invalid_flag = Ongeldige vlag. +zflags.zone_not_found = Zone niet gevonden. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Integratievlaggen naar standaard herstellen. +zflags.reset_all = Alle vlaggen naar standaard herstellen. +zflags.reset_failed = Vlaggen resetten mislukt: {0} +zflags.back_to_settings = Terug naar Instellingen + +# Zone-instellingen UI-labels +gui.zset_cat_combat = Gevecht +gui.zset_cat_damage = Schade +gui.zset_cat_death = Dood +gui.zset_cat_building = Bouwen +gui.zset_cat_interaction = Interactie +gui.zset_cat_transport = Transport +gui.zset_cat_items = Items +gui.zset_cat_spawning = Mob-spawning +gui.zset_cat_mob_clear = Mob-opruiming +gui.zset_children_hint = (onderliggende opties alleen actief wanneer bovenliggende AAN is) +gui.zset_reset_defaults = Standaardwaarden Herstellen +gui.zset_integration_flags = Integratievlaggen +gui.zset_back_to_zones = Terug naar Zones +gui.zset_chunks = {0} chunks + +# Zone Vlag Weergavenamen +gui.zflag_pvp_enabled = PvP Ingeschakeld +gui.zflag_friendly_fire = Vriendelijk Vuur +gui.zflag_friendly_fire_faction = Factieschade +gui.zflag_friendly_fire_ally = Bondgenootschade +gui.zflag_projectile_damage = Projectielschade +gui.zflag_mob_damage = Mobschade Ontvangen +gui.zflag_pve_damage = Mobschade Uitdelen +gui.zflag_fall_damage = Valschade +gui.zflag_environmental_damage = Omgevingsschade +gui.zflag_explosion_damage = Explosieschade +gui.zflag_fire_spread = Vuurverspreiding +gui.zflag_keep_inventory = Inventaris Behouden +gui.zflag_power_loss = Krachtverlies +gui.zflag_build_allowed = Bouwen Toegestaan +gui.zflag_block_place = Blok Plaatsen +gui.zflag_hammer_use = Hamergebruik +gui.zflag_builder_tools_use = Bouwgereedschap +gui.zflag_block_interact = Blokinteractie +gui.zflag_door_use = Deurgebruik +gui.zflag_container_use = Opberggebruik +gui.zflag_bench_use = Werkbankgebruik +gui.zflag_processing_use = Verwerkingsgebruik +gui.zflag_seat_use = Zitplaatsgebruik +gui.zflag_mount_use = Mountgebruik +gui.zflag_light_use = Verlichtingsgebruik +gui.zflag_npc_use = NPC-interactie +gui.zflag_crate_pickup = Krat Oprapen +gui.zflag_crate_place = Krat Plaatsen +gui.zflag_npc_tame = NPC Temmen +gui.zflag_npc_interact = NPC Interactie +gui.zflag_teleporter_use = Teleportergebruik +gui.zflag_portal_use = Portaalgebruik +gui.zflag_mount_entry = Mount Betreden +gui.zflag_item_drop = Item Laten Vallen +gui.zflag_item_pickup = Automatisch Oprapen +gui.zflag_item_pickup_manual = F-toets Oprapen +gui.zflag_invincible_items = Onverwoestbare Items +gui.zflag_mob_spawning = Mob-spawning +gui.zflag_hostile_mob_spawning = Vijandige Mobs +gui.zflag_passive_mob_spawning = Passieve Mobs +gui.zflag_neutral_mob_spawning = Neutrale Mobs +gui.zflag_npc_spawning = NPC-spawning +gui.zflag_mob_clear = Mob-opruiming +gui.zflag_hostile_mob_clear = Vijandige Mobs Opruimen +gui.zflag_passive_mob_clear = Passieve Mobs Opruimen +gui.zflag_neutral_mob_clear = Neutrale Mobs Opruimen +gui.zflag_gravestone_access = Anderen Plunderen Graven +gui.zflag_show_on_map = Tonen op Kaart +gui.zflag_essentials_homes = Basisgebruik +gui.zflag_essentials_warps = Warpgebruik +gui.zflag_essentials_kits = Kit Claimen + +# ========== Zone Eigenschappen ========== +zprop.current_custom = Huidig: "{0}" (aangepast) +zprop.current_default = Huidig: "{0}" (standaard) +zprop.pvp_disabled = PvP Uitgeschakeld +zprop.pvp_enabled = PvP Ingeschakeld +zprop.name_empty = Naam mag niet leeg zijn. +zprop.renamed = Zone hernoemd naar "{0}". +zprop.name_taken = Er bestaat al een zone met die naam. +zprop.name_invalid = Ongeldige naam (max 32 tekens). +zprop.rename_failed = Hernoemen mislukt: {0} +zprop.upper_empty = Boventitel mag niet leeg zijn. Gebruik Wissen om te resetten. +zprop.upper_set = Boventitel ingesteld. +zprop.upper_reset = Boventitel gereset naar standaard. +zprop.lower_empty = Ondertitel mag niet leeg zijn. Gebruik Wissen om te resetten. +zprop.lower_set = Ondertitel ingesteld. +zprop.lower_reset = Ondertitel gereset naar standaard. + +# ========== Relaties Aanvullend ========== +relations.failed = Mislukt: {0} + +# ========== Leden Aanvullend ========== +members.never = Nooit +members.teleported = [Admin] Geteleporteerd naar {0}. + +# ========== Spelerinfo Aanvullend ========== +playerinfo.records = {0} vermeldingen +playerinfo.joined_date = Toegetreden: {0} +playerinfo.current = Huidig +playerinfo.left_date = Vertrokken: {0} + +# ========== Zonekaart ========== +map.world_warning = WAARSCHUWING: Je bent in '{0}' - zone is in '{1}' +map.position = Jouw Positie: Chunk ({0}, {1}) +map.zone_gone = Zone bestaat niet meer. +map.claimed = Chunk geclaimd ({0}, {1}) voor {2}. +map.claim_failed = Chunk claimen mislukt: {0} +map.unclaimed = Chunk vrijgegeven ({0}, {1}) van {2}. +map.unclaim_failed = Chunk vrijgeven mislukt: {0} +map.chunk_belongs = Dit chunk behoort toe aan {0}. +map.chunk_faction = Dit chunk is geclaimd door een factie. +map.chunk_protected = Dit chunk bevindt zich in een beschermd gebied. +map.another_zone = een andere zone + +# ========== GUI Label Sleutels (voor .ui hardcoded tekst lokalisatie) ========== + +# Paginatitels +gui.title_dashboard = Admin Dashboard +gui.title_main = Facties Admin +gui.title_actions = Admin: Serveracties +gui.title_factions = Factiebeheer +gui.title_players = Spelerbeheer +gui.title_economy = Admin: Servereconomie +gui.title_zones = Zonebeheer +gui.title_backups = Back-ups +gui.title_config = Configuratie +gui.title_help = Admin Hulp +gui.title_updates = Updates +gui.title_version = Versie en Integraties +gui.title_activity_log = Admin: Activiteitenlog +gui.title_player_info = Admin: Spelerinfo +gui.title_faction_info = Admin: Factie-info +gui.title_faction_settings = Admin: Factie-instellingen +gui.title_faction_members = Admin: Leden +gui.title_faction_relations = Admin: Relaties +gui.title_zone_map = Zone Kaarteditor +gui.title_zone_settings = Admin: Zone-instellingen +gui.title_zone_properties = Admin: Zone-eigenschappen +gui.title_bulk_economy = Bulk Schatkist Aanpassen +gui.title_economy_adjust = Admin: Economie + +# Dashboard labels +gui.dash_server_stats = Serverstatistieken +gui.dash_factions = Facties +gui.dash_total_members = Totaal Leden +gui.dash_total_claims = Totaal Gebieden +gui.dash_zones = Zones +gui.dash_safe_war = safe / war +gui.dash_total_power = Totale Kracht +gui.dash_avg_power = Gem. Kracht/Factie +gui.dash_total_economy = Totale Economie +gui.dash_wealthiest = Rijkste +gui.dash_avg_balance = Gem. Saldo +gui.dash_protection_bypass = Beschermingsbypass: + +# Algemene knoppen en labels +gui.search = Zoeken: +gui.sort = Sorteren: +gui.prev = < Vorige +gui.next = Volgende > +gui.back = Terug +gui.done = Klaar +gui.cancel = Annuleren +gui.apply = Toepassen +gui.set = Instellen +gui.reset = Resetten +gui.coming_soon = Binnenkort Beschikbaar +gui.zones_btn = Zones +gui.reload_btn = Herladen +gui.all = Alles +gui.safe = Safe +gui.war = War +gui.create_zone = + Aanmaken + +# Actiepagina labels +gui.act_combat_stats = Gevechtsstatistieken +gui.act_combat_desc = Reset kills en sterfgevallen voor ALLE spelers op de server. Deze actie kan niet ongedaan worden gemaakt. +gui.act_reset_kd = Alle K/D Resetten +gui.act_economy = Economie +gui.act_economy_desc = Voeg geld toe of verwijder geld uit ALLE factieschatkisten tegelijk. +gui.act_bulk_adjust = Bulk Toevoegen/Verwijderen +gui.act_upkeep_collection = Onderhoudsinning +gui.act_upkeep_desc = Activeer handmatig de onderhoudsinning voor alle facties, ongeacht de geplande timer. +gui.act_trigger_upkeep = Onderhoud Activeren + +# Placeholder pagina labels +gui.backup_heading = Back-upbeheer +gui.backup_desc1 = Maak, herstel en beheer back-ups van factiegegevens. +gui.backup_desc2 = Automatische back-ups worden opgeslagen in de map data/backups. +gui.config_heading = Configuratie-editor +gui.config_desc1 = Configureer HyperFactions-instellingen rechtstreeks vanuit de GUI. +gui.config_desc2 = Gebruik voorlopig /f reload om configuratiewijzigingen te herladen. +gui.help_heading = Admin Documentatie +gui.help_desc1 = Bekijk admin-documentatie en commandoreferentie. +gui.help_desc2 = Bezoek de HyperFactions wiki voor hulp. +gui.updates_heading = Updatecentrum +gui.updates_desc1 = Controleer op nieuwe versies en bekijk changelogs. +gui.updates_desc2 = Bezoek de HyperFactions-pagina voor de laatste updates. + +# Versiepagina labels +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = RECHTEN +gui.ver_placeholders = PLAATSHOUDERS +gui.ver_economy_section = ECONOMIE +gui.ver_protection = BESCHERMING +gui.ver_disabled = Uitgeschakeld + +# Kolomkoppen (gedeeld over pagina's) +gui.col_faction = Factie +gui.col_balance = Saldo +gui.col_members = Leden +gui.col_actions = Acties +gui.col_time = Tijd +gui.col_type = Type +gui.col_message = Bericht + +# Economiepagina labels +gui.econ_total_balance = Totaal Saldo +gui.econ_factions = Facties +gui.econ_avg_balance = Gem. Saldo +gui.econ_in_grace = In Uitstel +gui.econ_collected = Geind (24u) +gui.econ_next_collection = Volgende Inning +gui.econ_no_data = Geen facties met economiegegevens. + +# Activiteitenlog labels +gui.log_type = Type: +gui.log_time = Tijd: +gui.log_player = Speler: +gui.log_no_logs = Geen activiteitenlogs die overeenkomen met filters. + +# Spelerinfo labels +gui.plr_first_joined = Eerste keer toegetreden: +gui.plr_last_online = Laatst online: +gui.plr_uuid = UUID: +gui.plr_faction = Factie: +gui.plr_role = Rol: +gui.plr_view_faction = Factie Bekijken +gui.plr_power = Kracht +gui.plr_max_power = Max Kracht +gui.plr_set_power = Instellen +gui.plr_reset_power = Resetten +gui.plr_set_max = Instellen +gui.plr_reset_max = Resetten +gui.plr_no_power_loss = Geen Krachtverlies +gui.plr_no_claim_decay = Geen Claimverval +gui.plr_kills = Kills +gui.plr_deaths = Sterfgevallen +gui.plr_kdr = K/D-ratio +gui.plr_reset_kd = K/D Resetten +gui.plr_kick = Schoppen +gui.plr_membership_history = Lidmaatschapsgeschiedenis +gui.plr_no_faction_label = Niet in een factie +gui.plr_power_management = Krachtbeheer +gui.plr_combat_stats = Gevechtsstatistieken +gui.plr_bypass_flags = Bypassvlaggen +gui.plr_admin_controls = Adminbediening +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Max: +gui.plr_view = Bekijken +gui.plr_kick_from_faction = Uit Factie Schoppen +gui.plr_set_max_btn = Max Instellen +gui.plr_combat = Gevecht +gui.plr_reason_active = ACTIEF +gui.plr_reason_left = VERTROKKEN +gui.plr_reason_kicked = GESCHOPT +gui.plr_reason_disbanded = ONTBONDEN + +# Lid-entry labels +gui.mem_label_power = Kracht: +gui.mem_label_joined = Toegetreden: +gui.mem_label_last_death = Laatste Dood: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teleporteren +gui.mem_btn_promote = Promoveren +gui.mem_btn_demote = Degraderen +gui.mem_btn_kick = Schoppen +gui.econ_not_enabled = Economiesysteem is niet ingeschakeld. +gui.info_more = +{0} meer +gui.log_time_1h = 1u +gui.log_time_24h = 24u +gui.log_time_7d = 7d +gui.log_time_all = Alles +gui.shape_circular = cirkelvormig +gui.shape_square = vierkant +gui.nav_title = Admin Paneel +gui.econ_btn_adjust = Aanpassen +gui.econ_btn_info = Info + +# Factie-info labels +gui.fac_description = Beschrijving +gui.fac_power = Kracht +gui.fac_claims = Gebieden +gui.fac_members = Leden +gui.fac_recruitment = Werving +gui.fac_founded = Opgericht +gui.fac_allies = Bondgenoten +gui.fac_enemies = Vijanden +gui.fac_raidable = Plunderstatus +gui.fac_treasury = Schatkist +gui.fac_leader = Leider +gui.fac_officers = Officieren +gui.fac_view_members = Leden Bekijken +gui.fac_view_relations = Relaties Bekijken +gui.fac_view_settings = Instellingen +gui.fac_disband = Factie Ontbinden +gui.fac_power_management = Krachtbeheer +gui.fac_reset_all_power = Alle Kracht Resetten +gui.fac_econ_adjust = Saldo Aanpassen +gui.fac_econ_view_log = Transactielog Bekijken +gui.fac_current_max = huidig / max +gui.fac_claimed_max = geclaimd / max +gui.fac_relations = Relaties +gui.fac_ally_enemy = bondgenoot / vijand +gui.fac_status = Status +gui.fac_info = Info +gui.fac_treasury_balance = schatkistsaldo +gui.fac_leadership = Leiderschap +gui.fac_leader_label = Leider: +gui.fac_officers_label = Officieren: +gui.fac_econ_mgmt = Economiebeheer +gui.fac_danger_zone = Gevarenzone +gui.fac_view_treasury = Schatkist Bekijken + +# Factie-instellingen labels +gui.set_editing = Bewerken: +gui.set_general = Algemene Instellingen +gui.set_name = Naam +gui.set_tag = Tag +gui.set_description = Beschrijving +gui.set_recruitment = Werving +gui.set_home = Basislocatie +gui.set_clear_home = Basis Wissen +gui.set_disband_faction = Factie Ontbinden +gui.set_faction_color = Factiekleur +gui.set_admin_override = [Admin Overschrijving] +gui.set_territory_perms = Territoriumrechten +gui.set_mob_spawning = Mob-spawning +gui.set_faction_settings = Factie-instellingen +gui.set_name_label = Naam: +gui.set_tag_label = Tag: +gui.set_desc_label = Beschr.: +gui.set_edit = Bewerken +gui.set_status_label = Status: +gui.set_location_label = Locatie: +gui.set_danger_zone = Gevarenzone +gui.set_irreversible = Deze actie is onomkeerbaar. +gui.set_lock_hint = Sommige opties kunnen door de server vergrendeld zijn en accepteren geen wijzigingen. +gui.set_appearance = Uiterlijk +gui.set_color_label = Kleur: +gui.set_mob_sub = (onderliggende opties uitgeschakeld wanneer hoofdschakelaar uit is) +gui.set_back_to_info = Terug naar Info +gui.set_col_out = Buiten +gui.set_col_ally = Bondg. +gui.set_col_mem = Lid +gui.set_col_off = Off. +gui.set_cat_building = BOUWEN +gui.set_cat_interaction = INTERACTIE +gui.set_cat_interact_sub = (onderliggende opties uitgeschakeld wanneer Alles uit is) +gui.set_cat_other = OVERIG +gui.set_perm_break = Breken +gui.set_perm_place = Plaatsen +gui.set_perm_all = Alles +gui.set_perm_door = Deur +gui.set_perm_chest = Kist +gui.set_perm_bench = Werkbank +gui.set_perm_processing = Verwerking +gui.set_perm_seat = Zitplaats +gui.set_perm_transport = Transport +gui.set_perm_crate_use = Kratgebruik +gui.set_perm_npc_tame = NPC Temmen +gui.set_perm_pve_damage = PvE-schade +gui.set_perm_mob_spawning = Mob-spawning +gui.set_perm_hostile = Vijandige Mobs +gui.set_perm_passive = Passieve Mobs +gui.set_perm_neutral = Neutrale Mobs +gui.set_perm_pvp = PvP in Territorium +gui.set_perm_officers_edit = Officieren kunnen bewerken + +# Factierelatie labels +gui.rel_subtitle = Factierelaties beheren (omzeilt goedkeuring) +gui.rel_set_new = Nieuwe Relatie Instellen +gui.rel_btn_ally = Bondgenoot +gui.rel_btn_neutral = Neutraal +gui.rel_btn_enemy = Vijand + +# Zonepagina labels +gui.zone_sort_name = Naam +gui.zone_sort_type = Type +gui.zone_sort_chunks = Chunks +gui.zone_sort_world = Wereld +gui.zone_count_format = {0} {1}zones ({2} chunks) + +# Zonekaart labels +gui.map_zone_chunk = Zone Chunk +gui.map_empty = Leeg +gui.map_other_zone = Andere Zone +gui.map_faction_claim = Factiegebied +gui.map_protected = Beschermd +gui.map_your_pos = Jouw Positie +gui.map_click_hint = Klik om chunks te claimen/unclaimen +gui.map_legend_zone_safe = Deze Zone (Safe) +gui.map_legend_zone_war = Deze Zone (War) +gui.map_legend_other_safe = Andere SafeZone +gui.map_legend_other_war = Andere WarZone +gui.map_legend_faction = Factiegebied +gui.map_legend_unclaimed = Ongeclaimd +gui.map_legend_you_here = Je bent hier +gui.map_action_hint = Linksklik: Claimen voor zone | Rechtsklik: Unclaimen van zone +gui.map_done = Klaar + +# Zone-eigenschappen labels +gui.zprop_general = Algemeen +gui.zprop_zone_name = Zonenaam +gui.zprop_zone_type = Zonetype +gui.zprop_change_type = Type Wijzigen +gui.zprop_notifications = Meldingen +gui.zprop_show_entry = Toegangsmelding Tonen +gui.zprop_upper_title = Boventitel +gui.zprop_upper_desc = Boventitel (kleine tekst boven zonenaam) +gui.zprop_lower_title = Ondertitel +gui.zprop_lower_desc = Ondertitel (grote zonenaamtekst) +gui.zprop_edit_flags = Vlaggen Bewerken +gui.zprop_back_to_zones = Terug naar Zones +gui.save = Opslaan +gui.clear = Wissen + +# Bulk economie labels +gui.bulk_header = Alle Factieschatkisten Aanpassen +gui.bulk_factions_label = Facties: +gui.bulk_total_label = Totaal Saldo: +gui.bulk_amount_hint = Bedrag (positief om toe te voegen, negatief om te verwijderen): +gui.bulk_hint = Dit wordt toegepast op elke factie met een schatkist +gui.bulk_warning_msg = Waarschuwing: Deze actie beinvloedt ALLE facties en kan niet ongedaan worden gemaakt. +gui.bulk_apply_all = Op Alles Toepassen +gui.bulk_operation = Bewerking +gui.bulk_add = Toevoegen +gui.bulk_remove = Verwijderen +gui.bulk_amount = Bedrag +gui.bulk_warning = Dit beinvloedt ALLE factieschatkisten. +gui.bulk_preview = Voorbeeld + +# Economie aanpassen labels +gui.ecadj_header = Schatkistsaldo Aanpassen +gui.ecadj_faction_label = Factie: +gui.ecadj_current_balance = Huidig Saldo: +gui.ecadj_amount_hint = Bedrag (positief om toe te voegen, negatief om af te trekken): +gui.ecadj_preview_hint = Voer een getal in om de wijziging te bekijken +gui.ecadj_adjustment = Aanpassing: +gui.ecadj_set_balance = Saldo Instellen +gui.ecadj_confirm = Bevestig +/- +gui.ecadj_operation = Bewerking +gui.ecadj_add = Toevoegen +gui.ecadj_remove = Verwijderen +gui.ecadj_set_to = Instellen Op +gui.ecadj_amount = Bedrag +gui.ecadj_new_balance = Nieuw Saldo: + +# Versiepagina integratie labels +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Grafstenen +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Schatkist + +# Alles unclaimen bevestigingsmodaal labels +gui.unclaim_title = Alle Gebieden Vrijgeven +gui.unclaim_confirm_msg1 = Weet je zeker dat je alle gebieden wilt vrijgeven +gui.unclaim_confirm_msg2 = van +gui.unclaim_warning = Deze actie kan niet ongedaan worden gemaakt! +gui.unclaim_all = Alles Vrijgeven + +# Zone hernoemen modaal labels +gui.zren_title = Zone Hernoemen +gui.zren_current = Huidig: +gui.zren_new_name = Nieuwe Naam: + +# Zone type wijzigen modaal labels +gui.ztype_title = Zonetype Wijzigen +gui.ztype_zone_label = Zone: +gui.ztype_current = Huidig: +gui.ztype_will_become = wordt +gui.ztype_new = Nieuw: +gui.ztype_warning1 = Verschillende zonetypes hebben verschillende standaard vlagwaarden. +gui.ztype_warning2 = Kies hoe bestaande vlaginstellingen behandeld moeten worden: +gui.ztype_keep_desc = Aangepaste overschrijvingen behouden +gui.ztype_keep_flags = Vlaggen Behouden +gui.ztype_reset_desc = Nieuwe type standaarden gebruiken +gui.ztype_reset_flags = Vlaggen Resetten + +# Zone aanmaakwizard labels +gui.czw_title = Zone Aanmaken +gui.czw_back = < Terug +gui.czw_create = Zone Aanmaken +gui.czw_zone_type = Zonetype +gui.czw_safe_desc = Beschermd, geen PvP +gui.czw_war_desc = Gevecht, PvP ingeschakeld +gui.czw_zone_name = Zonenaam +gui.czw_name_desc = Voer een unieke naam in voor de zone +gui.czw_claim_method = Claimmethode +gui.czw_method_none_desc = Lege zone aanmaken +gui.czw_method_none = Geen claims +gui.czw_method_single_desc = Je huidige chunk +gui.czw_method_single = Enkele chunk +gui.czw_method_circle_desc = Cirkelvormig gebied +gui.czw_method_circle = Cirkelradius +gui.czw_method_square_desc = Vierkant gebied +gui.czw_method_square = Vierkantradius +gui.czw_method_map_desc = Interactieve chunk-editor +gui.czw_method_map = Claimkaart gebruiken +gui.czw_radius = Radius +gui.czw_custom_radius = Aangepast (1-50): +gui.czw_flags = Vlaggen +gui.czw_flags_defaults_desc = Gebaseerd op zonetype +gui.czw_flags_defaults = Standaard gebruiken +gui.czw_flags_customize_desc = Instellingen openen na +gui.czw_flags_customize = Aanpassen + +# ========== Entry Labels (Factie/Speler/Zone lijstvermeldingen) ========== + +# Factie-entry labels +gui.fac_entry_power = kracht +gui.fac_entry_claims = gebieden +gui.fac_entry_members = leden +gui.fac_entry_created = Opgericht: +gui.fac_entry_home = Basis: +gui.fac_entry_tp_home = TP Basis +gui.fac_entry_view_info = Info Bekijken +gui.fac_entry_members_btn = Leden +gui.fac_entry_settings = Instellingen +gui.fac_entry_unclaim_all = Alles Vrijgeven +gui.fac_entry_disband = Ontbinden + +# Speler-entry labels +gui.plr_entry_role = Rol: +gui.plr_entry_joined = Toegetreden: +gui.plr_entry_last_online = Laatst Online: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Kracht: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teleporteren +gui.plr_entry_na = N.v.t. +gui.plr_entry_unknown = Onbekend +gui.plr_entry_ago = {0} geleden + +# Zone-entry labels +gui.zone_entry_world = Wereld: +gui.zone_entry_chunks = Chunks: +gui.zone_entry_bounds = Grenzen: +gui.zone_entry_created = Aangemaakt: +gui.zone_entry_edit_map = Kaart Bewerken +gui.zone_entry_flags = Vlaggen +gui.zone_entry_settings = Instellingen +gui.zone_entry_delete = Verwijderen diff --git a/src/main/resources/Server/Languages/nl-NL/hyperfactions_gui.lang b/src/main/resources/Server/Languages/nl-NL/hyperfactions_gui.lang new file mode 100644 index 00000000..824e7dad --- /dev/null +++ b/src/main/resources/Server/Languages/nl-NL/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Nederlandse Vertalingen +# Formaat: sleutel = waarde +# Opmerking: Sleutels krijgen automatisch het voorvoegsel "hyperfactions_gui." door Hytale's I18nModule + +# ========== Navigatiebalk ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Leden +nav.invites = Uitnodigingen +nav.browser = Bladeren +nav.map = Kaart +nav.leaderboard = Ranglijst +nav.relations = Relaties +nav.treasury = Schatkist +nav.settings = Instellingen +nav.logs = Logboek +nav.help = Hulp +nav.admin = Admin +nav.create = Aanmaken + +# ========== Hulpcategorienamen ========== +help.category.welcome = Welkom +help.category.your_faction = Jouw Factie +help.category.power_land = Kracht & Land +help.category.diplomacy = Diplomatie +help.category.combat = Gevecht & Veiligheid +help.category.economy = Economie +help.category.quick_ref = Snelreferentie + +# ========== Admin Hulpcategorienamen ========== +help.category.admin_overview = Overzicht +help.category.admin_factions = Facties +help.category.admin_zones = Zones +help.category.admin_power = Kracht +help.category.admin_economy = Economie +help.category.admin_config = Configuratie +help.category.admin_maintenance = Onderhoud +help.category.admin_reference = Referentie + +# ========== Hoofdmenu ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Mijn Factie +main_menu.section_get_started = Aan de Slag +main_menu.section_territory = Territorium +main_menu.section_browse = Bladeren +main_menu.section_admin = Admin +main_menu.claim_hint = Gebruik /f claim om territorium te claimen. + +# ========== Factie-infopagina ========== +faction_info.title = Factie-info +faction_info.no_description = Geen beschrijving ingesteld. +faction_info.status_open = Open +faction_info.status_invite_only = Alleen op Uitnodiging +faction_info.status_raidable = Plunderbaar +faction_info.status_protected = Beschermd +faction_info.officers_more = +{0} meer +faction_info.power_header = Kracht +faction_info.claims_header = Gebieden +faction_info.members_header = Leden +faction_info.relations_header = Relaties +faction_info.status_header = Status +faction_info.treasury_header = Schatkist +faction_info.current_max = huidig / max +faction_info.claimed_max = geclaimd / max +faction_info.ally_enemy = bondgenoot / vijand +faction_info.faction_balance = factiesaldo +faction_info.leader_label = Leider: +faction_info.officers_label = Officieren: +faction_info.view_members_btn = Leden Bekijken +faction_info.relations_btn = Relaties +faction_info.back_btn = Terug + +# ========== Hernoemen Modaal ========== +rename.title = Factie Hernoemen +rename.current_label = Huidig: +rename.new_name_label = Nieuwe Naam: +rename.no_permission = Je hebt geen toestemming om de factie te hernoemen. +rename.enter_name = Voer een factienaam in. +rename.too_short = Factienaam moet minstens {0} tekens lang zijn. +rename.too_long = Factienaam mag niet meer dan {0} tekens bevatten. +rename.same_name = Dat is al de naam van je factie. +rename.name_taken = Er bestaat al een factie met die naam. +rename.success = Factie hernoemd van {0} naar {1}! + +# ========== Beschrijving Modaal ========== +desc.title = Beschrijving Bewerken +desc.current_label = Huidig: +desc.new_desc_label = Nieuwe Beschrijving: +desc.no_permission = Je hebt geen toestemming om de beschrijving te bewerken. +desc.display_none = (Geen) +desc.cleared = Factiebeschrijving gewist. +desc.updated = Factiebeschrijving bijgewerkt! + +# ========== Tag Modaal ========== +tag.title = Tag Bewerken +tag.current_label = Huidig: +tag.instructions = Tag (1-5 tekens, alleen letters en cijfers): +tag.help_text = Tags verschijnen in de chat en op de kaart +tag.no_permission = Je hebt geen toestemming om de tag te bewerken. +tag.display_none = (Geen) +tag.cleared = Factietag gewist. +tag.too_short = Tag moet minstens {0} teken lang zijn. +tag.too_long = Tag mag niet meer dan {0} tekens bevatten. +tag.invalid_format = Tag mag alleen letters en cijfers bevatten. +tag.same_tag = Dat is al de tag van je factie. +tag.tag_taken = Er bestaat al een factie met die tag. +tag.success = Factietag ingesteld op [{0}]! + +# ========== Dashboardpagina ========== +dashboard.title = Factiedashboard +dashboard.power_label = Kracht +dashboard.land_label = Gebieden +dashboard.members_label = Leden +dashboard.online_label = Online +dashboard.allies_label = Bondgenoten +dashboard.enemies_label = Vijanden +dashboard.relations_label = Relaties +dashboard.ally_enemy_label = bondgenoot / vijand +dashboard.status_label = Status +dashboard.invites_label = Uitnodigingen +dashboard.sent_requests_label = verstuurd / verzoeken +dashboard.treasury_label = Schatkist +dashboard.upkeep_label = Onderhoud +dashboard.per_cycle = per cyclus +dashboard.your_wallet = Jouw Portemonnee +dashboard.personal_balance = persoonlijk saldo +dashboard.quick_actions = Snelle Acties +dashboard.teleport_label = Teleporteren +dashboard.territory_label = Territorium +dashboard.channel_label = Kanaal +dashboard.membership_label = Lidmaatschap +dashboard.recent_activity = Recente Activiteit +dashboard.view_all = Alles Bekijken +dashboard.income_24h = Inkomsten (24u) +dashboard.deposits_transfers_in = stortingen, binnenkomende overboekingen +dashboard.expenses_24h = Uitgaven (24u) +dashboard.withdrawals_transfers_out = opnames, uitgaande overboekingen +dashboard.faction_gone = Je factie bestaat niet meer. +dashboard.available = {0} beschikbaar +dashboard.at_risk = In Gevaar! +dashboard.online_count = {0} online +dashboard.status_invite = Uitnodiging +dashboard.in_grace = IN UITSTEL +dashboard.billable_chunks = {0} betaalbare gebieden +dashboard.btn_home = Basis +dashboard.btn_set_home = Basis Instellen +dashboard.btn_claim = Claimen +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Verlaten +dashboard.no_activity = Geen recente activiteit. +dashboard.time_now = nu +dashboard.time_minutes = {0}m geleden +dashboard.time_hours = {0}u geleden +dashboard.time_days = {0}d geleden +dashboard.no_home_hint = Je factie heeft geen basis ingesteld. Vraag een officier om er een in te stellen. +dashboard.chat_mode_set = Chatmodus: {0} +dashboard.claim_success = Gebied geclaimd op ({0}, {1}) +dashboard.upkeep_in = over {0} + +# ========== Factie Hoofdpagina ========== +main.no_faction = Geen Factie +main.joined = Je bent toegetreden tot de factie! +main.join_failed = Toetreden tot factie mislukt: {0} +main.invite_declined = Uitnodiging afgewezen. +main.cooldown = Teleport op cooldown! Nog {0}s. +main.world_not_found = Kan niet teleporteren - wereld niet gevonden. +main.leave_failed = Verlaten mislukt: {0} + +# ========== Gedeelde GUI-labels ========== +common.faction_count = {0} facties +common.leader_label = Leider: {0} +common.sort_power = Kracht +common.sort_members = Leden +common.page_format = {0}/{1} +common.own_faction = (Jij) +common.search = Zoeken: +common.sort = Sorteren: +common.prev = < Vorige +common.next = Volgende > +common.treasury_not_available = Schatkist is niet beschikbaar. + +# ========== Ledenpagina ========== +members.title = Leden +members.search_label = Zoeken: +members.sort_label = Sorteren: +members.prev_btn = < Vorige +members.next_btn = Volgende > +members.count = {0} leden +members.sort_role = Rol +members.sort_last_online = Laatst Online +members.just_now = zojuist +members.ago = {0} geleden +members.never = Nooit +members.member_not_found = Lid niet gevonden. +members.promoted = {0} gepromoveerd tot {1}. +members.promote_failed = Promoveren mislukt: {0} +members.demoted = {0} gedegradeerd naar {1}. +members.demote_failed = Degraderen mislukt: {0} +members.kicked = {0} uit de factie geschopt. +members.kick_failed = Schoppen mislukt: {0} +members.label_power = Kracht: +members.label_joined = Toegetreden: +members.label_last_death = Laatste Dood: +members.btn_promote = Promoveren +members.btn_demote = Degraderen +members.btn_kick = Schoppen +members.btn_make_leader = Leider Maken +members.btn_profile = Profiel +members.self_label = (Jij) + +# ========== Bladerpagina ========== +browser.title = Facties Bladeren +browser.search_label = Zoeken: +browser.sort_label = Sorteren: +browser.prev_btn = < Vorige +browser.next_btn = Volgende > +browser.sort_name = Naam +browser.invalid_faction = Ongeldige factie. +browser.label_power = kracht +browser.label_claims = gebieden +browser.label_members = leden +browser.label_recruitment = Werving: +browser.label_created = Opgericht: +browser.label_description = Beschrijving: +browser.view_info_btn = Info Bekijken +browser.label_leader = Leider: +browser.no_description = Geen beschrijving ingesteld + +# ========== Ranglijstpagina ========== +leaderboard.title = Factieranglijst +leaderboard.rank_by = Rangschikken op: +leaderboard.col_rank = # +leaderboard.col_faction = Factie +leaderboard.col_claims = Gebieden +leaderboard.col_members = Leden +leaderboard.prev_btn = < Vorige +leaderboard.next_btn = Volgende > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Territorium +leaderboard.sort_balance = Saldo + +# ========== Spelerinfopagina ========== +playerinfo.title = Spelerinfo +playerinfo.first_joined_label = Eerste keer toegetreden: +playerinfo.last_online_label = Laatst online: +playerinfo.faction_label = Factie: +playerinfo.role_label = Rol: +playerinfo.joined_label_static = Toegetreden: +playerinfo.not_in_faction = Niet in een factie +playerinfo.power_header = Kracht +playerinfo.current_max = huidig / max +playerinfo.combat_header = Gevecht +playerinfo.kills_deaths = kills / sterfgevallen +playerinfo.kdr_header = K/D-ratio +playerinfo.membership_history = Lidmaatschapsgeschiedenis +playerinfo.view_faction_btn = Factie Bekijken +playerinfo.back_btn = Terug +playerinfo.now = Nu +playerinfo.history_count = {0} vermeldingen +playerinfo.joined_label = Toegetreden: {0} +playerinfo.current = Huidig +playerinfo.left_label = Vertrokken: {0} +playerinfo.no_history = Geen lidmaatschapsgeschiedenis +playerinfo.faction_gone = Factie bestaat niet meer. +playerinfo.reason_active = ACTIEF +playerinfo.reason_left = VERTROKKEN +playerinfo.reason_kicked = GESCHOPT +playerinfo.reason_disbanded = ONTBONDEN + +# ========== Relatiepagina ========== +relations.title = Relaties +relations.tab_relations = Relaties +relations.tab_pending = In Afwachting +relations.set_relation_btn = + Relatie Instellen +relations.prev_btn = < Vorige +relations.next_btn = Volgende > +relations.relation_count = {0} relaties +relations.request_count = {0} verzoeken +relations.type_ally = Bondgenoot +relations.type_enemy = Vijand +relations.type_incoming = Inkomend +relations.type_outgoing = Uitgaand +relations.incoming_request = Inkomend verzoek +relations.outgoing_request = Uitgaand verzoek +relations.empty_relations = Nog geen relaties. +relations.empty_relations_hint = Nog geen relaties. Klik op + RELATIE INSTELLEN om bondgenoten of vijanden toe te voegen. +relations.empty_pending = Geen openstaande bondgenootschapsverzoeken. +relations.today = Vandaag +relations.one_day_ago = 1 dag geleden +relations.days_ago = {0} dagen geleden +relations.now_neutral = Nu neutraal met {0}. +relations.now_enemies = Nu vijanden met {0}! +relations.request_sent = Bondgenootschapsverzoek verstuurd naar {0}. +relations.now_allied = Nu bondgenoten met {0}! +relations.request_declined = Bondgenootschapsverzoek van {0} afgewezen. +relations.request_cancelled = Bondgenootschapsverzoek aan {0} geannuleerd. +relations.failed = Mislukt: {0} +relations.search_hint = Zoek een factie om een relatie in te stellen +relations.no_results = Geen facties gevonden die overeenkomen met '{0}' +relations.power_display = {0} kracht +relations.member_count = {0} leden +relations.label_members = leden +relations.label_power = kracht +relations.label_since = Sinds: +relations.label_claims = Gebieden: +relations.label_direction = Richting: +relations.btn_view = Bekijken +relations.btn_neutral = Neutraal +relations.btn_enemy = Vijand +relations.btn_ally = Bondgenoot +relations.btn_accept = Accepteren +relations.btn_decline = Afwijzen +relations.btn_cancel = Annuleren + +# ========== Instellingenpagina ========== +settings.title = Factie-instellingen +settings.general = Algemeen +settings.name_label = Naam: +settings.tag_label = Tag: +settings.desc_label = Beschr.: +settings.edit_btn = Bewerken +settings.recruitment = Werving +settings.status_label = Status: +settings.home_location = Basislocatie +settings.location_label = Locatie: +settings.set_home_btn = Basis Instellen +settings.teleport_btn = Teleporteren +settings.delete_btn = Verwijderen +settings.optional_features = Optionele Functies +settings.configure_modules = Configureer optionele modules. +settings.modules_btn = Modules +settings.danger_zone = Gevarenzone +settings.irreversible = Deze actie is onomkeerbaar. +settings.disband_btn = Factie Ontbinden +settings.lock_hint = Sommige opties kunnen door de server vergrendeld zijn en accepteren geen wijzigingen. +settings.territory_permissions = Territoriumrechten +settings.col_out = Buiten +settings.col_ally = Bondg. +settings.col_mem = Lid +settings.col_off = Off. +settings.cat_building = BOUWEN +settings.perm_break = Breken +settings.perm_place = Plaatsen +settings.cat_interaction = INTERACTIE +settings.interaction_hint = (onderliggende opties uitgeschakeld wanneer Alles uit is) +settings.perm_all = Alles +settings.perm_door = Deur +settings.perm_chest = Kist +settings.perm_bench = Werkbank +settings.perm_processing = Verwerking +settings.perm_seat = Zitplaats +settings.perm_transport = Transport +settings.cat_other = OVERIG +settings.perm_crate = Kratgebruik +settings.perm_npc_tame = NPC Temmen +settings.perm_pve = PvE-schade +settings.appearance = Uiterlijk +settings.color_label = Kleur: +settings.mob_spawning = Mob-spawning +settings.mob_spawning_hint = (onderliggende opties uitgeschakeld wanneer hoofdschakelaar uit is) +settings.mob_spawning_label = Mob-spawning +settings.hostile_mobs = Vijandige Mobs +settings.passive_mobs = Passieve Mobs +settings.neutral_mobs = Neutrale Mobs +settings.faction_settings = Factie-instellingen +settings.pvp_in_territory = PvP in Territorium +settings.officers_can_edit = Officieren kunnen bewerken +settings.leader_only = Alleen leider +settings.officers_only = Alleen officieren en leiders kunnen factie-instellingen wijzigen. +settings.display_none = (Geen) +settings.home_not_set = Niet ingesteld +settings.no_permission = Je hebt geen toestemming om instellingen te wijzigen. +settings.only_leader_disband = Alleen de leider kan de factie ontbinden. +settings.perm_locked = Deze instelling is vergrendeld door de server. +settings.no_perm_edit = Je hebt geen toestemming om territoriumrechten te bewerken. +settings.only_leader_officers = Alleen de leider kan de toegang van officieren wijzigen. +settings.pvp_enabled = Ingeschakeld +settings.pvp_disabled = Uitgeschakeld +settings.not_in_territory = Je moet in het territorium van je factie zijn om de basis in te stellen. +settings.home_set = Factiebasis ingesteld op je huidige locatie! +settings.recruitment_set = Werving ingesteld op {0}. +settings.home_no_set = Je factie heeft geen basis ingesteld. +settings.home_deleted = Factiebasis verwijderd! + +# ========== Modulespagina ========== +modules.title = Factiemodules +modules.description = Optionele functies om je factie te verbeteren +modules.configure_btn = Configureren +modules.back_btn = < Terug naar Instellingen +modules.treasury_name = Schatkist +modules.treasury_desc = Factiebank & economiesysteem +modules.raids_name = Raids +modules.raids_desc = Geplande factiegevechten +modules.levels_name = Niveaus +modules.levels_desc = Factieprogressie & XP +modules.war_name = Oorlog +modules.war_desc = Formele oorlogsverklaringen +modules.coming_soon = Binnenkort Beschikbaar +modules.active = Actief +modules.view_treasury = Schatkist Bekijken +modules.unavailable = Niet Beschikbaar +modules.no_economy = Geen economieplugin gedetecteerd +modules.disabled = Uitgeschakeld +modules.economy_not_available = Economiefuncties zijn niet beschikbaar op deze server + +# ========== Schatkistpagina ========== +treasury.title = Factieschatkist +treasury.balance_label = Saldo +treasury.income_24h = Inkomsten (24u) +treasury.deposits_transfers_in = stortingen, binnenkomende overboekingen +treasury.expenses_24h = Uitgaven (24u) +treasury.withdrawals_transfers_out = opnames, uitgaande overboekingen +treasury.maintenance = ONDERHOUD +treasury.runway_label = Reserve: +treasury.add_funds = Geld toevoegen +treasury.deposit_btn = Storten +treasury.take_funds = Geld opnemen +treasury.withdraw_btn = Opnemen +treasury.send_to_faction = Naar factie sturen +treasury.transfer_btn = Overboeken +treasury.treasury_config = Schatkistconfiguratie +treasury.settings_btn = Instellingen +treasury.recent_transactions = Recente Transacties +treasury.no_transactions = Nog geen transacties +treasury.col_date = Datum +treasury.col_type = Type +treasury.col_by = Door +treasury.col_amount = Bedrag +treasury.col_details = Details +treasury.pay_now_btn = Nu Betalen +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Schatkistinstellingen +treasury.officer_permissions = OFFICIERRECHTEN +treasury.allow_withdraw = Officieren mogen opnemen +treasury.allow_transfer = Officieren mogen overboeken +treasury.limits_section = OPNAME- EN OVERBOEKINGSLIMIETEN +treasury.max_per_withdrawal = Max per opname: +treasury.max_withdrawals_per = Max opnames per periode: +treasury.max_per_transfer = Max per overboeking: +treasury.max_transfers_per = Max overboekingen per periode: +treasury.limit_period = Limietperiode (uren): +treasury.no_limit_hint = Stel in op 0 voor geen limiet +treasury.upkeep_settings = ONDERHOUDSINSTELLINGEN +treasury.auto_pay_upkeep = Automatisch onderhoud betalen uit schatkist +treasury.back_btn = Terug +treasury.upkeep_cost_format = {0} elke {1}u +treasury.upkeep_time_left = nog {0} +treasury.wallet_label = Jouw portemonnee: {0} +treasury.treasury_label = Schatkistsaldo: {0} +treasury.chunks_detail = {0} gratis + {1} betaalbare gebieden +treasury.cost_label = Kosten: {0} +treasury.pending = In Afwachting +treasury.auto_pay_on = Automatisch betalen: AAN +treasury.auto_pay_off = Automatisch betalen: UIT +treasury.runway_90_plus = 90+ dagen +treasury.runway_days = {0} dagen +treasury.runway_day = {0} dag +treasury.runway_less_day = < 1 dag +treasury.runway_no_funds = Geen saldo +treasury.grace_expires = Uitstel vervalt over: {0} +treasury.missed_payments = Gemiste betalingen: {0} +treasury.pay_to_clear = Betaal {0} om uitstel op te heffen +treasury.system = Systeem +treasury.type_deposit = Storting +treasury.type_withdrawal = Opname +treasury.type_transfer_in = Binnenkomende Overboeking +treasury.type_transfer_out = Uitgaande Overboeking +treasury.type_player_transfer = Speleroverboeking +treasury.type_upkeep = Onderhoud +treasury.type_tax = Belastinginning +treasury.type_war_cost = Oorlogskosten +treasury.type_raid_cost = Raidkosten +treasury.type_spoils = Buit +treasury.type_admin = Adminaanpassing +treasury.deposit_title = Storten in Schatkist +treasury.withdraw_title = Opnemen uit Schatkist +treasury.fee_label = Kosten ({0}%) +treasury.confirm_deposit = Storting Bevestigen +treasury.confirm_withdrawal = Opname Bevestigen +treasury.from_wallet = {0} uit portemonnee +treasury.to_wallet = {0} naar portemonnee +treasury.enter_valid_amount = Voer een geldig positief bedrag in. +treasury.insufficient_wallet = Onvoldoende portemanneesaldo. Nodig {0}, heb {1}. +treasury.wallet_withdraw_failed = Opname uit je portemonnee mislukt. +treasury.deposit_failed_returned = Storten mislukt. Geld teruggestort. +treasury.deposited = {0} gestort in de schatkist. +treasury.deposited_fee = {0} gestort in de schatkist. (kosten: {1}) +treasury.no_withdraw_permission = Je hebt geen toestemming om op te nemen. +treasury.withdraw_denied = Opname geweigerd: {0} +treasury.insufficient_treasury = Onvoldoende saldo in de schatkist. +treasury.withdraw_limit = Opnamelimiet overschreden. +treasury.withdraw_failed = Opname mislukt: {0} +treasury.wallet_deposit_warn = Waarschuwing: Storten naar je portemonnee mislukt. Neem contact op met een admin. +treasury.withdrew = {0} opgenomen uit de schatkist. +treasury.withdrew_fee = {0} opgenomen uit de schatkist. (kosten: {1}, ontvangen: {2}) +treasury.search_hint = Zoek een speler of factie +treasury.no_results = Geen resultaten voor '{0}' +treasury.tag_player = [Speler] +treasury.tag_faction = [Factie] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Hytale-speler +treasury.no_transfer_permission = Je hebt geen toestemming om over te boeken. +treasury.transfer_denied = Overboeking geweigerd: {0} +treasury.invalid_target_faction = Ongeldige doelfactie. +treasury.target_faction_gone = Doelfactie bestaat niet meer. +treasury.transfer_failed = Overboeking mislukt: {0} +treasury.transfer_failed_returned = Overboeking mislukt. Geld teruggestort. +treasury.transferred = {0} overgeboekt naar {1}. +treasury.invalid_target_player = Ongeldige doelspeler. +treasury.player_transfer_failed = Storten naar spelerportemonnee mislukt. Overboeking teruggedraaid. +treasury.leader_only_perms = Alleen de leider kan schatkistrechten wijzigen. +treasury.leader_only_upkeep = Alleen de leider kan onderhoudsinstellingen wijzigen. +treasury.invalid_limit = Ongeldig getal in limietvelden. Gebruik 0 voor onbeperkt. + +# ========== Bevestigingspagina's ========== +confirm.disband_title = Factie Ontbinden +confirm.disband_prompt = Weet je zeker dat je wilt ontbinden +confirm.disband_warning = Deze actie kan niet ongedaan worden gemaakt! +confirm.leave_title = Factie Verlaten +confirm.leave_prompt = Weet je zeker dat je wilt verlaten +confirm.leave_warning = Je verliest toegang tot factie-territorium. +confirm.leader_leave_title = Verlaten als Leider +confirm.leader_leave_prompt = Je verlaat +confirm.transfer_title = Leiderschap Overdragen +confirm.transfer_prompt = Weet je zeker dat je het leiderschap wilt overdragen aan +confirm.transfer_warning = Je wordt een Officier. +confirm.disband_not_leader = Alleen de leider kan de factie ontbinden. +confirm.disbanded = Factie '{0}' is ontbonden. +confirm.disband_failed = Factie ontbinden mislukt. +confirm.succession_title = Leiderschap wordt overgedragen aan: +confirm.no_members_warning = WAARSCHUWING: Geen andere leden! +confirm.will_disband = Verlaten zal de factie permanent ontbinden. +confirm.not_in_faction = Je zit niet in deze factie. +confirm.not_leader_anymore = Je bent niet langer de leider. +confirm.no_successor = Geen opvolger beschikbaar. Gebruik ontbinden. +confirm.transfer_failed = Leiderschap overdragen mislukt: {0} +confirm.leader_left = Leiderschap overgedragen aan {0}. Je hebt {1} verlaten. +confirm.leave_failed = Factie verlaten mislukt: {0} +confirm.leader_cannot_leave = Leiders kunnen niet vertrekken. Draag het leiderschap over of ontbind de factie. +confirm.left_faction = Je hebt {0} verlaten. +confirm.faction_gone = Factie bestaat niet meer. +confirm.not_leader_transfer = Alleen de leider kan het leiderschap overdragen. +confirm.leadership_transferred = Leiderschap overgedragen aan {0}. + +# ========== Logboekpagina ========== +logs.title = {0} - Activiteitenlogboek +logs.entry_count = {0} vermeldingen +logs.filter_label = Filter: +logs.col_time = Tijd +logs.col_type = Type +logs.col_message = Bericht +logs.prev_btn = < Vorige +logs.next_btn = Volgende > +logs.all_types = Alle Types +logs.no_logs_type = Geen logs van dit type. +logs.no_logs = Nog geen activiteitenlogs. +logs.time_just_now = zojuist +logs.time_minute = {0} minuut geleden +logs.time_minutes = {0} minuten geleden +logs.time_hour = {0} uur geleden +logs.time_hours = {0} uur geleden +logs.time_day = {0} dag geleden +logs.time_days = {0} dagen geleden +logs.time_week = {0} week geleden +logs.time_weeks = {0} weken geleden +logs.type_member_join = Toetreding +logs.type_member_leave = Vertrek +logs.type_member_kick = Schop +logs.type_member_promote = Promotie +logs.type_member_demote = Degradatie +logs.type_claim = Claim +logs.type_unclaim = Unclaim +logs.type_overclaim = Overclaim +logs.type_home_set = Basis Ingesteld +logs.type_relation_ally = Bondgenoot +logs.type_relation_enemy = Vijand +logs.type_relation_neutral = Neutraal +logs.type_leader_transfer = Overdracht +logs.type_settings_change = Instellingen +logs.type_power_change = Kracht +logs.type_economy = Economie +logs.type_admin_power = Admin Kracht + +# Logberichtsjablonen (i18n voor activiteitenloginhoud) +# Speleracties +logs.msg_faction_created = {0} heeft de factie aangemaakt +logs.msg_member_joined = {0} is toegetreden tot de factie +logs.msg_member_left = {0} heeft de factie verlaten +logs.msg_member_kicked = {0} is geschopt +logs.msg_member_promoted = {0} gepromoveerd tot {1} +logs.msg_member_demoted = {0} gedegradeerd naar {1} +logs.msg_leader_transferred = Leiderschap overgedragen aan {0} +logs.msg_leader_left_transfer = {0} vertrokken, {1} is nu leider +logs.msg_relation_set = {0} ingesteld als {1} +# Territorium +logs.msg_claimed = Gebied geclaimd op {0}, {1} in {2} +logs.msg_unclaimed = Gebied vrijgegeven op {0}, {1} in {2} +logs.msg_overclaim_lost = Gebied verloren op {0}, {1} aan {2} +logs.msg_overclaim_taken = Gebied overgenomen op {0}, {1} van {2} +logs.msg_all_unclaimed = Al het territorium vrijgegeven +logs.msg_claim_removed_world = Claim in '{0}' verwijderd (wereld staat claimen niet toe) +logs.msg_claims_lost_upkeep = {0} claim(s) verloren door onderhoud (gemiste betalingen: {1}) +logs.msg_claims_removed_inactive = {0} claims verwijderd wegens inactiviteit ({1} dagen) +# Basis +logs.msg_home_set = Basis ingesteld +logs.msg_home_cleared = Basis gewist +logs.msg_home_cleared_world = Basis in '{0}' gewist (wereld staat claimen niet toe) +# Instellingen +logs.msg_renamed = Hernoemd van '{0}' naar '{1}' +logs.msg_set_open = Factie op open gezet +logs.msg_set_closed = Factie op alleen uitnodiging gezet +logs.msg_desc_set = Beschrijving ingesteld +logs.msg_desc_cleared = Beschrijving gewist +logs.msg_color_changed = Kleur gewijzigd naar '{0}' +# Economie +logs.msg_deposit = Storting: {0} (+{1}) +logs.msg_withdrawal = Opname: {0} (-{1}) +logs.msg_upkeep_paid = Onderhoud betaald: {0} ({1} betaalbare gebieden) +logs.msg_upkeep_grace_started = Onderhoud mislukt: uitstelperiode gestart ({0}u) +logs.msg_upkeep_missed = Onderhoud gemist (betaling {0}), uitstel vervalt over {1} +logs.msg_upkeep_manual = Onderhoud handmatig betaald: {0} ({1} betaalbare gebieden, uitstel opgeheven) +# Admin kracht +logs.msg_admin_power_set = Admin heeft kracht van {0} ingesteld op {1} (was {2}) +logs.msg_admin_power_add = Admin heeft {0} kracht toegevoegd aan {1} ({2} -> {3}) +logs.msg_admin_power_remove = Admin heeft {0} kracht verwijderd van {1} ({2} -> {3}) +logs.msg_admin_power_reset = Admin heeft kracht van {0} gereset naar {1} (was {2}) +logs.msg_admin_power_adjusted = Admin heeft kracht van {0} aangepast met {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Admin heeft max kracht van {0} ingesteld op {1} (was {2}) +logs.msg_admin_maxpower_reset = Admin heeft max kracht van {0} gereset naar globale standaard ({1}) +logs.msg_admin_powerloss_enabled = Admin heeft krachtverlies ingeschakeld voor {0} +logs.msg_admin_powerloss_disabled = Admin heeft krachtverlies uitgeschakeld voor {0} +logs.msg_admin_decay_enabled = Admin heeft claimverval-uitzondering ingeschakeld voor {0} +logs.msg_admin_decay_disabled = Admin heeft claimverval-uitzondering uitgeschakeld voor {0} +logs.msg_admin_kd_reset = Admin heeft K/D gereset voor {0} +logs.msg_admin_power_set_all = Admin heeft kracht van alle {0} leden ingesteld op {1} +logs.msg_admin_power_add_all = Admin heeft {0} kracht toegevoegd aan alle {1} leden +logs.msg_admin_power_remove_all = Admin heeft {0} kracht verwijderd van alle {1} leden +logs.msg_admin_power_reset_all = Admin heeft kracht gereset voor alle {0} leden +logs.msg_admin_power_adjusted_all = Admin heeft kracht van alle {0} leden aangepast met {1} +# Admin factie +logs.msg_admin_kicked = [Admin] {0} is geschopt +logs.msg_admin_role_set = [Admin] Rol van {0} ingesteld op {1} +logs.msg_admin_leader_kick = [Admin] Leiderschap overgedragen van {0} naar {1} (admin kick) +logs.msg_admin_econ_added = Admin heeft toegevoegd: {0} (saldo: {1}) +logs.msg_admin_econ_deducted = Admin heeft afgetrokken: {0} (saldo: {1}) +logs.msg_admin_econ_set = Admin heeft saldo ingesteld op {0} (was {1}) +# Import +logs.msg_left_import = {0} vertrokken (geimporteerd naar andere factie) +logs.msg_leader_import_transfer = {0} werd leider (vorige leider geimporteerd naar andere factie) +logs.msg_imported_from = Factie geimporteerd van {0} + +# ========== Chatpagina ========== +chat.title = Factiechat +chat.tab_faction = Factie +chat.tab_ally = Bondgenoot +chat.send_btn = Versturen +chat.placeholder = Typ een bericht... +chat.no_messages = Nog geen berichten. +chat.no_ally_permission = Je hebt geen toestemming voor bondgenotenchat. +chat.no_permission = Geen toestemming. +chat.faction_gone = Je factie bestaat niet meer. +chat.time_now = nu +chat.time_minutes = {0}m +chat.time_hours = {0}u + +# ========== Uitnodigingenpagina ========== +invites.title = Uitnodigingen +invites.tab_outgoing = Uitgaand +invites.tab_requests = Verzoeken +invites.prev_btn = < Vorige +invites.next_btn = Volgende > +invites.invite_count = {0} uitnodigingen +invites.request_count = {0} verzoeken +invites.invited_by = Uitgenodigd door: {0} +invites.no_message = Geen bericht +invites.expires = Verloopt: {0} +invites.type_outgoing = Uitgaand +invites.type_request = Verzoek +invites.invited_by_label = Uitgenodigd door: +invites.empty_outgoing = Geen uitgaande uitnodigingen. Gebruik /f invite om iemand uit te nodigen. +invites.empty_requests = Geen toetredingsverzoeken. Spelers kunnen verzoeken met /f request. +invites.invalid_player = Ongeldige speler. +invites.cancelled_invite = Uitnodiging aan {0} geannuleerd. +invites.player_joined = {0} is toegetreden tot de factie! +invites.faction_full = Factie is vol. Kan verzoek niet accepteren. +invites.add_failed = Speler toevoegen aan factie mislukt. +invites.request_expired = Verzoek niet gevonden of verlopen. +invites.request_declined = Toetredingsverzoek van {0} afgewezen. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}u +invites.label_message = Bericht: +invites.btn_cancel = Annuleren +invites.btn_accept = Accepteren +invites.btn_decline = Afwijzen + +# ========== Kaartpagina ========== +map.title = Gebiedskaart +map.action_hint = Linksklik: Claimen | Rechtsklik: Unclaimen +map.legend_your = Jouw Territorium +map.legend_ally = Bondgenootterritorium +map.legend_enemy = Vijandelijk Territorium +map.legend_other = Andere Factie +map.legend_wilderness = Wildernis +map.legend_safe = SafeZone +map.legend_war = WarZone +map.legend_you = Je bent hier +map.position = Jouw Positie: Chunk ({0}, {1}) +map.legend_protected = Beschermd +map.claim_stats = Gebieden: {0}/{1} ({2} Beschikbaar) +map.overclaimed = OVERGENOMEN door {0}! +map.power_display = Kracht: {0}/{1} +map.join_to_claim = Sluit je aan bij een factie om te claimen +map.claim_success = Gebied geclaimd op ({0}, {1})! +map.claim_not_in_faction = Je moet in een factie zitten om territorium te claimen. +map.claim_not_officer = Alleen officieren en leiders kunnen territorium claimen. +map.claim_already_yours = Je bezit dit gebied al. +map.claim_already_claimed = Dit gebied is al geclaimd door een andere factie. +map.claim_not_adjacent = Je kunt alleen gebieden claimen die grenzen aan je territorium. +map.claim_max = Je hebt het maximale aantal claims bereikt. +map.claim_world_not_allowed = Claimen is niet toegestaan in deze wereld. +map.claim_orbisguard = Dit gebied wordt beschermd door OrbisGuard. +map.claim_failed = Gebied claimen mislukt. +map.unclaim_success = Gebied vrijgegeven op ({0}, {1}). +map.unclaim_not_in_faction = Je moet in een factie zitten. +map.unclaim_not_officer = Alleen officieren en leiders kunnen territorium vrijgeven. +map.unclaim_not_claimed = Dit gebied is niet geclaimd. +map.unclaim_not_yours = Dit gebied behoort toe aan een andere factie. +map.unclaim_home = Kan het gebied met je factiebasis niet vrijgeven. +map.unclaim_failed = Gebied vrijgeven mislukt. +map.overclaim_success = Vijandelijk gebied overgenomen op ({0}, {1})! +map.overclaim_not_in_faction = Je moet in een factie zitten. +map.overclaim_not_officer = Alleen officieren en leiders kunnen gebieden overnemen. +map.overclaim_already_yours = Je bezit dit gebied al. +map.overclaim_ally = Je kunt bondgenootterritorium niet overnemen. +map.overclaim_has_power = Deze factie heeft genoeg kracht om hun territorium te verdedigen. +map.overclaim_max = Je hebt het maximale aantal claims bereikt. +map.overclaim_failed = Overnemen mislukt. +# ========== Factie Aanmaken Pagina ========== +create.title = Maak Jouw Factie +create.section_preview = Voorbeeld +create.section_basic_info = Basisinfo +create.section_details = Details +create.name_prefix = Naam: +create.faction_name_label = Factienaam * +create.tag_label = TAG (2-4 tekens, automatisch indien leeg) +create.desc_label = Beschrijving (Optioneel) +create.recruitment_label = Werving +create.section_faction_color = Factiekleur +create.section_combat = Gevecht +create.create_btn = Factie Aanmaken +create.preview_name = Jouw Factienaam +create.leader_prefix = Leider: {0} +create.enter_name = Voer een factienaam in. +create.name_too_short = Factienaam moet minstens {0} tekens lang zijn. +create.name_too_long = Factienaam mag niet meer dan {0} tekens bevatten. +create.name_taken = Er bestaat al een factie met deze naam. +create.tag_length = Factietag moet {0}-{1} tekens lang zijn. +create.tag_format = Factietag mag alleen letters en cijfers bevatten. +create.desc_too_long = Beschrijving mag niet meer dan {0} tekens bevatten. +create.created = Factie {0} succesvol aangemaakt! +create.created_no_dashboard = Factie aangemaakt maar kon dashboard niet openen. +create.invalid_name = Ongeldige factienaam. +create.create_failed = Kon factie niet aanmaken. + +# ========== Nieuwe Speler Pagina's ========== +newplayer.browse_title = Facties Bladeren +newplayer.invites_title = Uitnodigingen & Verzoeken +newplayer.map_title = Gebiedskaart +newplayer.view_only_badge = Alleen Bekijken +newplayer.legend_label = Legenda: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Factie +newplayer.legend_wilderness = Wildernis +newplayer.search_label = Zoeken: +newplayer.sort_label = Sorteren: +newplayer.prev_btn = < Vorige +newplayer.next_btn = Volgende > +newplayer.pending_count = {0} in afwachting +newplayer.received_header = ONTVANGEN UITNODIGINGEN ({0}) +newplayer.requests_header = JOUW VERZOEKEN ({0}) +newplayer.no_invites = Geen uitnodigingen. Blader door facties om er een te vinden! +newplayer.no_requests = Geen openstaande verzoeken. +newplayer.invited_by = Uitgenodigd door: {0} +newplayer.member_count = {0} leden +newplayer.power_count = {0} kracht +newplayer.claim_count = {0} gebieden +newplayer.awaiting_review = In afwachting van beoordeling +newplayer.expires_in = Verloopt over {0}u +newplayer.time_just_now = zojuist +newplayer.time_minutes = {0} min geleden +newplayer.time_hours = {0}u geleden +newplayer.time_days = {0}d geleden +newplayer.invalid_faction = Ongeldige factie. +newplayer.invite_expired = Deze uitnodiging is verlopen of ingetrokken. +newplayer.faction_gone = Factie bestaat niet meer. +newplayer.joined = Je bent toegetreden tot {0}! +newplayer.faction_full = Deze factie is vol. +newplayer.join_failed = Kon niet toetreden tot factie. +newplayer.invite_declined = Uitnodiging afgewezen. +newplayer.request_cancelled = Verzoek om toe te treden tot {0} geannuleerd. +newplayer.faction_count = {0} facties +newplayer.browse_subtitle = Vind je nieuwe thuis! +newplayer.sort_power = Kracht +newplayer.sort_name = Naam +newplayer.sort_members = Leden +newplayer.btn_accept = Accepteren +newplayer.btn_pending = In Afwachting +newplayer.btn_join = Toetreden +newplayer.btn_request = Verzoek +newplayer.invite_only_msg = Deze factie is alleen op uitnodiging. +newplayer.welcome_hint = Welkom! Gebruik /f om het factiemenu te openen. +newplayer.faction_open_hint = Deze factie is open! Klik op TOETREDEN. +newplayer.already_requested = Je hebt al een openstaand verzoek bij deze factie. +newplayer.has_invite_hint = Je hebt een uitnodiging van deze factie! Klik op ACCEPTEREN. +newplayer.request_sent = Toetredingsverzoek verstuurd naar {0}! +newplayer.officer_review = Een officier zal je verzoek beoordelen. +newplayer.map_hint = Alleen Bekijken - Sluit je aan bij een factie om territorium te claimen! + +# Spelerinstellingen +nav.player_settings = Speler +player_settings.title = Spelerinstellingen +player_settings.language_section = Taal +player_settings.auto_detect = Automatisch detecteren vanuit client +player_settings.auto_detect_desc = Gebruikt de taalinstelling van je spelclient +player_settings.language_label = Taal +player_settings.notifications_section = Meldingen +player_settings.territory_alerts = Gebiedsmeldingen +player_settings.territory_alerts_desc = Toon meldingen bij het betreden/verlaten van territoria +player_settings.death_announcements = Sterfgevalmeldingen +player_settings.death_announcements_desc = Ontvang meldingen over sterflocaties van factieleden +player_settings.power_notifications = Krachtwijzigingen +player_settings.power_notifications_desc = Toon berichten wanneer je kracht verandert +player_settings.language_changed = Taal gewijzigd naar {0} +player_settings.pref_enabled = {0} ingeschakeld +player_settings.pref_disabled = {0} uitgeschakeld + +# ========== Hulppagina's ========== +help.center_title = Helpcentrum +help.getting_started_title = Aan de Slag +help.what_are_factions_title = Wat Zijn Facties? +help.what_are_factions_1 = Facties zijn door spelers opgerichte groepen die samenwerken +help.what_are_factions_2 = om territorium te claimen, bases te bouwen en te strijden. +help.what_are_factions_bullet_1 = - Beschermd territorium om te bouwen +help.what_are_factions_bullet_2 = - Teamgenoten om mee te spelen +help.what_are_factions_bullet_3 = - Toegang tot factiechat en functies +help.joining_title = Toetreden tot een Factie +help.joining_desc = Er zijn meerdere manieren om bij een factie aan te sluiten: +help.joining_bullet_1 = - Bladeren - Vind open facties en klik op TOETREDEN +help.joining_bullet_2 = - Uitnodigingen - Accepteer uitnodigingen van officieren +help.joining_bullet_3 = - Verzoek - Vraag aan om toe te treden tot besloten facties +help.creating_title = Een Factie Aanmaken +help.creating_desc = Ga naar het tabblad Aanmaken om je eigen factie te starten. +help.creating_bullet_1 = - Nodig leden uit en beheer ze +help.creating_bullet_2 = - Claim en bescherm territorium +help.commands_title = Snelcommando's +help.cmd_f = /f - Factiemenu openen +help.cmd_f_list = /f list - Alle facties weergeven +help.cmd_f_join = /f join - Toetreden tot een open factie +help.cmd_f_create = /f create - Een nieuwe factie aanmaken +help.cmd_f_help = /f help - Volledige commandolijst +help.tip = Tip: Blader door facties om een groep te vinden die bij je past! From 0fb07ce6b38a9ac0da7adc35f270ef1ab906c849 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:34 -0700 Subject: [PATCH 65/76] i18n: add Filipino/Tagalog (tl-PH) translations Complete Filipino/Tagalog translations for all 3 .lang files: hyperfactions.lang, hyperfactions_gui.lang, hyperfactions_admin.lang --- .../help/admin/admin_config/configuration.md | 41 + .../help/admin/admin_config/world_settings.md | 45 + .../admin_economy/treasury_management.md | 39 + .../admin/admin_economy/upkeep_management.md | 42 + .../help/admin/admin_factions/disbanding.md | 37 + .../admin/admin_factions/managing_factions.md | 38 + .../help/admin/admin_maintenance/backups.md | 48 + .../help/admin/admin_maintenance/imports.md | 48 + .../help/admin/admin_maintenance/updates.md | 45 + .../admin/admin_overview/getting_started.md | 41 + .../help/admin/admin_overview/permissions.md | 37 + .../help/admin/admin_power/power_commands.md | 38 + .../help/admin/admin_power/power_overrides.md | 54 ++ .../admin/admin_reference/all_commands.md | 65 ++ .../admin/admin_reference/integrations.md | 43 + .../help/admin/admin_zones/zone_basics.md | 43 + .../help/admin/admin_zones/zone_commands.md | 43 + .../help/admin/admin_zones/zone_flags.md | 43 + .../Languages/tl-PH/help/combat/death.md | 39 + .../Languages/tl-PH/help/combat/protection.md | 28 + .../tl-PH/help/combat/spawn_protection.md | 27 + .../Languages/tl-PH/help/combat/tagging.md | 29 + .../Languages/tl-PH/help/combat/zones.md | 29 + .../tl-PH/help/diplomacy/alliances.md | 45 + .../Languages/tl-PH/help/diplomacy/enemies.md | 47 + .../tl-PH/help/diplomacy/relations.md | 38 + .../Languages/tl-PH/help/economy/commands.md | 27 + .../Languages/tl-PH/help/economy/funds.md | 42 + .../Languages/tl-PH/help/economy/treasury.md | 26 + .../Languages/tl-PH/help/economy/upkeep.md | 37 + .../tl-PH/help/power_land/claiming.md | 50 + .../tl-PH/help/power_land/losing_territory.md | 50 + .../tl-PH/help/power_land/territory_map.md | 44 + .../help/power_land/understanding_power.md | 45 + .../tl-PH/help/quick_ref/all_commands.md | 94 ++ .../tl-PH/help/welcome/getting_started.md | 38 + .../tl-PH/help/welcome/quick_tips.md | 44 + .../tl-PH/help/welcome/what_are_factions.md | 37 + .../tl-PH/help/your_faction/creating.md | 38 + .../tl-PH/help/your_faction/joining.md | 36 + .../tl-PH/help/your_faction/managing.md | 44 + .../tl-PH/help/your_faction/roles.md | 44 + .../Server/Languages/tl-PH/hyperfactions.lang | 453 +++++++++ .../Languages/tl-PH/hyperfactions_admin.lang | 801 ++++++++++++++++ .../Languages/tl-PH/hyperfactions_gui.lang | 866 ++++++++++++++++++ 45 files changed, 3888 insertions(+) create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/combat/death.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/combat/protection.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/combat/zones.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/economy/commands.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/economy/funds.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md create mode 100644 src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md create mode 100644 src/main/resources/Server/Languages/tl-PH/hyperfactions.lang create mode 100644 src/main/resources/Server/Languages/tl-PH/hyperfactions_admin.lang create mode 100644 src/main/resources/Server/Languages/tl-PH/hyperfactions_gui.lang diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md new file mode 100644 index 00000000..95b6c952 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md @@ -0,0 +1,41 @@ +--- +id: admin_configuration +--- +# Configuration System + +HyperFactions uses a modular JSON config system with 11 configuration files. + +## Admin Config Commands + +| Command | Description | +|---------|-------------| +| `/f admin config` | Open the visual config editor GUI | +| `/f admin reload` | Reload all config files from disk | +| `/f admin sync` | Synchronize faction data to storage | + +## Configuration Files + +| File | Contents | +|------|----------| +| `factions.json` | Roles, power, claims, combat, relations | +| `server.json` | Teleport, auto-save, messages, GUI, permissions | +| `economy.json` | Treasury, upkeep, transaction settings | +| `backup.json` | Backup rotation and retention settings | +| `chat.json` | Faction and ally chat formatting | +| `debug.json` | Debug logging categories | +| `faction-permissions.json` | Per-role permission defaults | +| `announcements.json` | Event broadcast and territory notifications | +| `gravestones.json` | Gravestone integration settings | +| `worldmap.json` | World map refresh modes | +| `worlds.json` | Per-world behavior overrides | + +>[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. + +## Config Location + +All files are stored in: +`mods/com.hyperfactions_HyperFactions/config/` + +>[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. + +>[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md new file mode 100644 index 00000000..47e8dffe --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md @@ -0,0 +1,45 @@ +--- +id: admin_world_settings +--- +# Per-World Settings + +HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. + +## World Commands + +| Command | Description | +|---------|-------------| +| `/f admin world list` | List all world overrides | +| `/f admin world info ` | Show settings for a world | +| `/f admin world set ` | Set a setting | +| `/f admin world reset ` | Reset world to defaults | + +## Available Settings + +| Setting | Type | Description | +|---------|------|-------------| +| claiming_enabled | boolean | Allow faction claims in this world | +| pvp_enabled | boolean | Allow PvP combat in this world | +| power_loss | boolean | Apply power loss on death | +| build_protection | boolean | Enforce claim build protection | +| explosion_protection | boolean | Protect claims from explosions | + +## World Whitelist / Blacklist + +Control which worlds allow faction features through the `worlds.json` config file: + +- **Whitelist mode**: Only listed worlds allow claiming +- **Blacklist mode**: All worlds allow claiming except listed + +>[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. + +## Examples + +- `/f admin world set survival claiming_enabled true` +- `/f admin world set creative claiming_enabled false` +- `/f admin world set pvp_arena pvp_enabled true` +- `/f admin world reset lobby` -- restore all defaults + +>[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. + +>[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md new file mode 100644 index 00000000..b219d330 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md @@ -0,0 +1,39 @@ +--- +id: admin_treasury_management +--- +# Treasury Management + +Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. + +## Treasury Commands + +| Command | Description | +|---------|-------------| +| `/f admin economy balance ` | View faction treasury balance | +| `/f admin economy set ` | Set exact balance | +| `/f admin economy add ` | Add funds to treasury | +| `/f admin economy take ` | Remove funds from treasury | +| `/f admin economy reset ` | Reset treasury to zero | + +## Examples + +- `/f admin economy balance Vikings` -- check balance +- `/f admin economy set Vikings 5000` -- set to 5000 +- `/f admin economy add Vikings 1000` -- deposit 1000 +- `/f admin economy take Vikings 500` -- withdraw 500 +- `/f admin economy reset Vikings` -- zero out balance + +>[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. + +## Use Cases + +| Scenario | Command | +|----------|---------| +| Event prize distribution | `economy add ` | +| Penalty for rule violation | `economy take ` | +| Economy reset after wipe | `economy reset ` | +| Compensation for bugs | `economy add ` | + +>[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. + +>[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md new file mode 100644 index 00000000..7df9b4c7 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md @@ -0,0 +1,42 @@ +--- +id: admin_upkeep_management +--- +# Upkeep Management + +Faction upkeep charges factions periodically based on their territory and member count. + +## Admin Controls + +Upkeep settings are managed through the economy config file or the admin config GUI. + +`/f admin config` +Open the config editor and navigate to economy settings to adjust upkeep values. + +## Default Upkeep Settings + +| Setting | Default | Description | +|---------|---------|-------------| +| Upkeep enabled | false | Master toggle for the system | +| Upkeep interval | 24h | How often upkeep is charged | +| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | +| Per-member cost | 0.0 | Cost per member per cycle | +| Grace period | 72h | New factions are exempt | +| Disband on bankrupt | false | Auto-disband if cannot pay | + +## Monitoring Upkeep + +Use `/f admin info ` to see: +- Current treasury balance +- Estimated upkeep cost per cycle +- Time until next upkeep charge +- Whether the faction can afford upkeep + +>[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. + +>[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. + +## Upkeep Formula + +**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) + +>[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md new file mode 100644 index 00000000..253e05ab --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md @@ -0,0 +1,37 @@ +--- +id: admin_disbanding +--- +# Force Disbanding + +Admins can forcefully disband any faction, regardless of the leader's wishes. + +## Command + +`/f admin disband ` +Force-disband the named faction. A confirmation prompt will appear before the action is executed. + +**Permission**: `hyperfactions.admin.disband` + +>[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. + +## Consequences + +When a faction is disbanded: + +| Effect | Description | +|--------|-------------| +| **Claims** | All territory is released immediately | +| **Members** | All players are removed from the roster | +| **Relations** | All alliances and enemies are cleared | +| **Treasury** | Handled per economy config settings | +| **Home** | Faction home is deleted | +| **Chat** | Faction chat history is removed | + +## Best Practices + +1. Always run `/f admin backup create` before disbanding +2. Notify faction members when possible +3. Document the reason for server records +4. Check `/f admin info ` to review before acting + +>[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md new file mode 100644 index 00000000..b00218c9 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md @@ -0,0 +1,38 @@ +--- +id: admin_managing_factions +--- +# Managing Factions + +Admins can inspect and modify any faction on the server through the dashboard or commands. + +## Browsing Factions + +`/f admin factions` +Opens the admin faction browser. View all factions with member counts, power levels, and territory. + +`/f admin info ` +Opens the admin info panel for a specific faction with full details and management options. + +## Modifying Faction Settings + +With `hyperfactions.admin.modify` permission, you can: + +- **Rename** a faction to resolve conflicts +- **Set color** to fix display issues +- **Toggle open/close** to override join policy +- **Edit description** for moderation purposes + +>[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. + +## Viewing Members and Relations + +The admin info panel shows: + +| Section | Details | +|---------|---------| +| **Members** | Full roster with roles and last seen | +| **Relations** | All ally, enemy, and neutral standings | +| **Territory** | Claimed chunks and power balance | +| **Economy** | Treasury balance and transaction log | + +>[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md new file mode 100644 index 00000000..84a331f7 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md @@ -0,0 +1,48 @@ +--- +id: admin_backups +--- +# Backup System + +HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. + +## Backup Commands + +| Command | Description | +|---------|-------------| +| `/f admin backup create` | Create a manual backup now | +| `/f admin backup list` | List all available backups | +| `/f admin backup restore ` | Restore from a backup | +| `/f admin backup delete ` | Delete a specific backup | + +**Permission**: `hyperfactions.admin.backup` + +## GFS Rotation Defaults + +| Type | Retention | Description | +|------|-----------|-------------| +| Hourly | 24 | Last 24 hourly snapshots | +| Daily | 7 | Last 7 daily snapshots | +| Weekly | 4 | Last 4 weekly snapshots | +| Manual | 10 | Manually created backups | +| Shutdown | 5 | Created on server stop | + +>[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. + +## Backup Contents + +Each backup ZIP archive contains: +- All faction data files +- Player power data +- Zone definitions +- Chat history and economy data +- Invite and join request data +- Configuration files + +>[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. + +## Best Practices + +1. Create a manual backup before major admin actions +2. Review backup retention in `backup.json` +3. Test restore on a staging server first +4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md new file mode 100644 index 00000000..e3bf7548 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md @@ -0,0 +1,48 @@ +--- +id: admin_imports +--- +# Data Import + +Import faction data from other plugins to migrate your server to HyperFactions. + +## Import Command + +`/f admin import [path] [flags]` + +**Permission**: `hyperfactions.admin.use` + +## Supported Sources + +| Source | Description | +|--------|-------------| +| `elbaphfactions` | Import from ElbaphFactions data | +| `hyfactions` | Import from HyFactions v1 data | + +## Import Flags + +| Flag | Description | +|------|-------------| +| `--dry-run` | Validate data without importing anything | +| `--overwrite` | Overwrite existing factions with same name | +| `--no-zones` | Skip zone data during import | +| `--no-power` | Skip power data during import | + +>[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. + +## Import Process + +1. A pre-import backup is created automatically +2. Player name mappings are loaded +3. Factions, claims, and zones are converted +4. Data is validated and saved + +## Examples + +- `/f admin import elbaphfactions --dry-run` +- `/f admin import elbaphfactions --overwrite` +- `/f admin import hyfactions --no-zones --no-power` +- `/f admin import elbaphfactions /custom/path` + +>[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. + +>[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md new file mode 100644 index 00000000..f6dc2880 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md @@ -0,0 +1,45 @@ +--- +id: admin_updates +--- +# Update Checking + +HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. + +## Update Commands + +| Command | Description | +|---------|-------------| +| `/f admin update` | Check for HyperFactions updates | +| `/f admin update mixin` | Check/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Toggle auto-download | +| `/f admin version` | Show current version and build info | + +## Release Channels + +| Channel | Description | +|---------|-------------| +| **Stable** | Recommended for production servers | +| **Pre-release** | Early access to upcoming features | + +>[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. + +## HyperProtect-Mixin + +HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). + +- `/f admin update mixin` checks for the latest version +and downloads it if a newer version is available +- Auto-download can be toggled on or off per server + +>[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. + +## Rollback Procedure + +If an update causes issues: + +1. Stop the server +2. Replace the plugin JAR with the previous version +3. Start the server +4. Verify functionality with `/f admin version` + +>[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md new file mode 100644 index 00000000..bf30a5b4 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md @@ -0,0 +1,41 @@ +--- +id: admin_getting_started +--- +# Getting Started as Admin + +Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. + +## Opening the Admin Dashboard + +`/f admin` +Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. + +>[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. + +## Requirements + +- **With a permission plugin**: Grant `hyperfactions.admin.use` +- **Without a permission plugin**: The player must be a +server operator (`adminRequiresOp=true` by default) + +## First Steps After Install + +1. Run `/f admin` to verify your access +2. Open **Config** to review default faction settings +3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` +4. Optionally create **WarZones** for PvP arenas +5. Review **Backup** settings to ensure data safety + +## Admin Capabilities + +| Area | What You Can Do | +|------|----------------| +| Factions | Inspect, modify, or force-disband any faction | +| Zones | Create SafeZones and WarZones with custom flags | +| Power | Override player/faction power values | +| Economy | Manage faction treasuries and upkeep | +| Config | Edit settings live via GUI or reload from disk | +| Backups | Create, restore, and manage data backups | +| Imports | Migrate data from other faction plugins | + +>[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md new file mode 100644 index 00000000..979e5543 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md @@ -0,0 +1,37 @@ +--- +id: admin_permissions +--- +# Admin Permissions + +All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. + +## Permission Nodes + +| Permission | Description | +|-----------|-------------| +| `hyperfactions.admin.*` | Grants **all** admin permissions | +| `hyperfactions.admin.use` | Access `/f admin` dashboard | +| `hyperfactions.admin.reload` | Reload configuration files | +| `hyperfactions.admin.debug` | Toggle debug logging categories | +| `hyperfactions.admin.zones` | Create, edit, and delete zones | +| `hyperfactions.admin.disband` | Force-disband any faction | +| `hyperfactions.admin.modify` | Modify any faction's settings | +| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | +| `hyperfactions.admin.backup` | Create and restore backups | +| `hyperfactions.admin.power` | Override player power values | +| `hyperfactions.admin.economy` | Manage faction treasuries | + +## Fallback Behavior + +When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). + +>[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. + +## Permission Resolution Order + +1. **VaultUnlocked** provider (if available) +2. **HyperPerms** provider (if available) +3. **LuckPerms** provider (if available) +4. **OP check** for admin nodes (fallback) + +>[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md new file mode 100644 index 00000000..b2c9f463 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md @@ -0,0 +1,38 @@ +--- +id: admin_power_commands +--- +# Power Admin Commands + +Override player and faction power values. All commands require `hyperfactions.admin.power` permission. + +## Player Power Commands + +| Command | Description | +|---------|-------------| +| `/f admin power set ` | Set exact power value | +| `/f admin power add ` | Add power to player | +| `/f admin power remove ` | Remove power from player | +| `/f admin power reset ` | Reset to default starting power | +| `/f admin power info ` | View detailed power breakdown | + +## How Power Affects Factions + +A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. + +| Scenario | Effect | +|----------|--------| +| Power set higher | Faction can claim more territory | +| Power set lower | Faction may become vulnerable to overclaim | +| Power reset | Returns player to default starting value | + +>[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. + +## Examples + +- `/f admin power set Steve 50` -- set to exactly 50 +- `/f admin power add Steve 10` -- increase by 10 +- `/f admin power remove Steve 5` -- decrease by 5 +- `/f admin power reset Steve` -- back to default +- `/f admin power info Steve` -- show full breakdown + +>[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md new file mode 100644 index 00000000..5469f903 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md @@ -0,0 +1,54 @@ +--- +id: admin_power_overrides +--- +# Power Overrides + +Special power commands that change how power behaves for specific players or factions. + +## Override Commands + +| Command | Description | +|---------|-------------| +| `/f admin power setmax ` | Set custom max power cap | +| `/f admin power noloss ` | Toggle death power penalty immunity | +| `/f admin power nodecay ` | Toggle offline power decay immunity | +| `/f admin power info ` | View all overrides and power details | + +## Custom Max Power + +`/f admin power setmax ` +Sets a personal maximum power cap for the player, overriding the server default. + +>[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. + +## No-Loss Mode + +`/f admin power noloss ` +Toggles death power loss immunity. When enabled, the player will **not** lose power on death. + +Useful for: +- New player protection periods +- Event participants +- Staff members + +## No-Decay Mode + +`/f admin power nodecay ` +Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. + +Useful for: +- Players on extended leave +- VIP members +- Seasonal protection + +## Power Info + +`/f admin power info ` +Shows a complete breakdown: + +- Current power and max power +- Active overrides (noloss, nodecay, custom max) +- Last death time and power lost +- Faction contribution percentage + +>[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md new file mode 100644 index 00000000..bd0b0fa6 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md @@ -0,0 +1,65 @@ +--- +id: admin_quickref_commands +--- +# Admin Command Reference + +Complete list of all `/f admin` subcommands with syntax and required permissions. + +## Dashboard and General + +| Command | Permission | +|---------|-----------| +| `/f admin` | admin.use | +| `/f admin version` | admin.use | +| `/f admin reload` | admin.reload | +| `/f admin sync` | admin.use | +| `/f admin sentry` | admin.use | + +## Faction Management + +| Command | Permission | +|---------|-----------| +| `/f admin factions` | admin.use | +| `/f admin info ` | admin.use | +| `/f admin who ` | admin.use | +| `/f admin disband ` | admin.disband | +| `/f admin log` | admin.use | + +## Zone Management + +| Command | Permission | +|---------|-----------| +| `/f admin safezone ` | admin.zones | +| `/f admin warzone ` | admin.zones | +| `/f admin removezone ` | admin.zones | +| `/f admin zone create/delete/claim/unclaim` | admin.zones | +| `/f admin zone radius ` | admin.zones | +| `/f admin zone list` | admin.zones | +| `/f admin zone notify ` | admin.zones | +| `/f admin zone title upper/lower ` | admin.zones | +| `/f admin zone properties ` | admin.zones | +| `/f admin zoneflag ` | admin.zones | + +## Power and Economy + +| Command | Permission | +|---------|-----------| +| `/f admin power set/add/remove/reset [amt]` | admin.power | +| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | +| `/f admin power info ` | admin.power | +| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | + +## Maintenance + +| Command | Permission | +|---------|-----------| +| `/f admin backup create/list/restore/delete` | admin.backup | +| `/f admin import [flags]` | admin.use | +| `/f admin update` | admin.use | +| `/f admin update mixin` | admin.use | +| `/f admin config` | admin.use | +| `/f admin world list/info/set/reset` | admin.use | +| `/f admin debug toggle ` | admin.debug | +| `/f admin integration` | admin.use | + +>[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md new file mode 100644 index 00000000..c39bfb3b --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md @@ -0,0 +1,43 @@ +--- +id: admin_integrations +--- +# Plugin Integrations + +HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. + +## Checking Integration Status + +`/f admin version` +Shows current version and detected integrations. + +`/f admin integration` +Opens the integration management panel with detailed status for each detected plugin. + +## Integration Table + +| Plugin | Type | Description | +|--------|------|-------------| +| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | +| **LuckPerms** | Permissions | Alternative permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | +| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control in zones | +| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +| **KyuubiSoft Core** | Framework | Core library integration | +| **Sentry** | Monitoring | Error tracking and diagnostics | + +## Permission Provider Priority + +1. **VaultUnlocked** (highest priority) +2. **HyperPerms** +3. **LuckPerms** +4. **OP fallback** (if no provider found) + +>[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. + +>[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. + +>[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md new file mode 100644 index 00000000..933a9b2d --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_basics +--- +# Zone Basics + +Zones are admin-controlled territories with custom rules that override normal faction protection. + +## Zone Types + +- **SafeZone** -- No PvP, no building, no damage. +Ideal for spawn areas and trading hubs. +- **WarZone** -- PvP always enabled, no building. +Ideal for arenas and contested battle areas. + +## Creating Zones + +`/f admin safezone ` +Creates a SafeZone and claims your current chunk. + +`/f admin warzone ` +Creates a WarZone and claims your current chunk. + +After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. + +## Managing Zone Chunks + +`/f admin zone claim ` +Add the current chunk to the named zone. + +`/f admin zone unclaim ` +Remove the current chunk from the named zone. + +`/f admin zone radius ` +Claim a square of chunks around your position. + +## Deleting Zones + +`/f admin removezone ` +Permanently deletes the zone and releases all its claimed chunks. + +>[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. + +>[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md new file mode 100644 index 00000000..403b6b63 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_commands +--- +# Zone Command Reference + +Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. + +## Quick Creation + +| Command | Description | +|---------|-------------| +| `/f admin safezone ` | Create a SafeZone at current chunk | +| `/f admin warzone ` | Create a WarZone at current chunk | +| `/f admin removezone ` | Delete a zone and release chunks | + +## Zone Management + +| Command | Description | +|---------|-------------| +| `/f admin zone create ` | Create a zone (safezone/warzone) | +| `/f admin zone delete ` | Delete a zone | +| `/f admin zone claim ` | Add current chunk to zone | +| `/f admin zone unclaim ` | Remove current chunk from zone | +| `/f admin zone radius ` | Claim square radius of chunks | +| `/f admin zone list` | List all zones with chunk counts | +| `/f admin zone notify ` | Toggle entry/leave messages | +| `/f admin zone title upper/lower ` | Set zone title text | +| `/f admin zone properties ` | Open zone properties GUI | + +## Flag Management + +| Command | Description | +|---------|-------------| +| `/f admin zoneflag ` | Set a specific flag | + +>[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. + +## Examples + +- `/f admin safezone Spawn` -- create spawn protection +- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- allow doors +- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md new file mode 100644 index 00000000..368a4ec9 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md @@ -0,0 +1,43 @@ +--- +id: admin_zone_flags +--- +# Zone Flags + +Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. + +## Flag Categories Overview + +| Category | Count | Key Flags | +|----------|-------|-----------| +| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Damage | 4 | fall_damage, explosion_damage, fire_spread | +| Death | 2 | keep_inventory, power_loss | +| Building | 4 | build_allowed, block_place, hammer_use | +| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Transport | 3 | teleporter_use, portal_use, mount_entry | +| Items | 4 | item_drop, item_pickup, invincible_items | +| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Integration | 5 | gravestone_access, show_on_map, essentials_homes | + +## Default Values (SafeZone vs WarZone) + +| Flag | SafeZone | WarZone | +|------|----------|---------| +| pvp_enabled | false | **true** | +| build_allowed | false | false | +| fall_damage | false | **true** | +| keep_inventory | **true** | false | +| power_loss | false | **true** | +| mob_spawning | false | **true** | +| item_drop | false | **true** | +| door_use | **true** | **true** | +| container_use | false | **true** | + +>[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. + +## Setting Flags + +`/f admin zoneflag ` + +>[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/death.md b/src/main/resources/Server/Languages/tl-PH/help/combat/death.md new file mode 100644 index 00000000..8690b43a --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/death.md @@ -0,0 +1,39 @@ +--- +id: combat_death +commands: home, sethome, stuck +--- +# Death and Recovery + +Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. + +## Power Loss + +Each death costs -1.0 power from your personal total. This lowers the faction's combined power. + +| Event | Power Change | +|-------|-------------| +| Death (any cause) | -1.0 | +| Online regen | +0.1 per minute | +| Combat logout | -1.0 (killed) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## Example Scenarios + +*5 members at 10.0 power each = 50 total, 20 claims.* +*One member dies twice: 8.0 power, faction total 48.* +*Three members die once each: total drops to 47.* + +>[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. + +## Recovery + +Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. + +--- + +## All Death Types + +Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. + +>[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md b/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md new file mode 100644 index 00000000..e564ec2d --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md @@ -0,0 +1,28 @@ +--- +id: combat_protection +--- +# Territory Protection + +Claimed territory provides several layers of defense for your faction's builds and resources. + +## Block Protection + +Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. + +## Container Protection + +Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. + +## Entry Alerts + +When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. + +--- + +## Ally Access + +Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. + +>[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. + +>[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md new file mode 100644 index 00000000..f0b2ab76 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md @@ -0,0 +1,27 @@ +--- +id: combat_spawn_protection +--- +# Spawn Protection + +After respawning from death, you receive temporary protection to prevent spawn camping. + +## How It Works + +- Protection lasts 5 seconds after respawn +- You cannot take damage during this period +- A visual indicator shows your protected status + +## Protection Breaks + +Spawn protection ends early if you: + +- Attack another player or entity +- Move from your spawn position + +This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. + +--- + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md b/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md new file mode 100644 index 00000000..e45cbdb3 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md @@ -0,0 +1,29 @@ +--- +id: combat_tagging +--- +# Combat Tagging + +When you attack or are attacked by another player, you become combat tagged for 15 seconds. + +## While Tagged + +- No /f home or /f stuck teleports +- No server teleport commands +- Tag resets with each new combat action +- A timer displays your remaining tag duration + +--- + +## Logout Penalty + +>[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. + +Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. + +## How the Timer Works + +The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md b/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md new file mode 100644 index 00000000..d1d957d2 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md @@ -0,0 +1,29 @@ +--- +id: combat_zones +--- +# Special Zones + +Admins can designate areas with special rules that override normal faction territory protection. + +## SafeZone + +No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. + +## WarZone + +PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. + +--- + +## Zone Comparison + +| Feature | SafeZone | WarZone | Faction Land | +|---------|----------|---------|--------------| +| PvP | Disabled | Always On | Relation-based | +| Block Break | Disabled | Allowed | Members Only | +| Containers | Protected | Open | Members Only | +| Best For | Spawn/Trade | Arenas | Bases | + +>[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. + +>[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md new file mode 100644 index 00000000..45da7756 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md @@ -0,0 +1,45 @@ +--- +id: diplomacy_alliances +commands: ally +--- +# Forming Alliances + +Alliances are mutual agreements between two factions that provide protection and cooperation benefits. + +--- + +## How to Form an Alliance + +`/f ally ` + +Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. + +## How to Break an Alliance + +`/f neutral ` + +Either side can unilaterally end an alliance by resetting the relation to neutral. + +--- + +## Alliance Benefits + +| Benefit | Details | +|---------|---------| +| No friendly fire | Allied players cannot damage each other | +| Shared map visibility | Allied territory shows in blue on the territory map | +| Territory interaction | Allies can use doors, seats, and transport in your territory | +| Ally chat | Cycle to ally chat mode for cross-faction communication | +| Overclaim protection | Allies cannot overclaim each other's territory | + +>[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. + +--- + +## Alliance Etiquette + +>[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. + +- Alliances work both ways -- if you benefit from protection, your allies expect the same +- Breaking an alliance during wartime may damage your faction's reputation +- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md new file mode 100644 index 00000000..70688ad4 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md @@ -0,0 +1,47 @@ +--- +id: diplomacy_enemies +commands: enemy, neutral +--- +# Enemy Factions + +Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. + +--- + +## Declaring an Enemy + +`/f enemy ` + +Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. + +## Resetting to Neutral + +`/f neutral ` + +Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. + +--- + +## What Enemy Status Enables + +| Effect | Details | +|--------|---------| +| PvP in territory | Full PvP is enabled in both factions' territory | +| Overclaiming | You can overclaim their chunks if they are in a power deficit | +| Map marking | Enemy territory shows in red on the territory map | +| No protection | Standard territory protection does not prevent enemy PvP | + +>[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. + +--- + +## Strategic Considerations + +- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile +- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead +- Weaken enemies through repeated combat to drain their power, then overclaim their land +- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky + +>[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. + +>[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md new file mode 100644 index 00000000..89711eee --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md @@ -0,0 +1,38 @@ +--- +id: diplomacy_relations +commands: relations +--- +# Faction Relations + +Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. + +--- + +## Relation Comparison + +| Effect | Ally | Neutral | Enemy | +|--------|------|---------|-------| +| PvP in territory | Disabled | Standard rules | Enabled | +| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | +| Friendly fire | Disabled | N/A | Enabled everywhere | +| Map color | Blue | Gray | Red | +| How to set | Mutual agreement | Default state | One-way declaration | +| Chat access | Ally chat channel | None | None | + +--- + +## Viewing Relations + +`/f relations` + +Shows all your current alliances, enemies, and any pending alliance requests. + +## How Relations Work + +- Neutral is the default state between all factions. Standard server rules apply. +- Alliance requires both factions to agree. Either side can break it unilaterally. +- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. + +>[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. + +>[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md b/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md new file mode 100644 index 00000000..020190cd --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md @@ -0,0 +1,27 @@ +--- +id: economy_commands +--- +# Economy Commands + +Quick reference for all faction economy commands. + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury balance | Any | +| /f deposit (amount) | Deposit into treasury | Any | +| /f withdraw (amount) | Withdraw from treasury | Officer+ | +| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | +| /f money log [page] | View transaction history | Officer+ | + +--- + +## Command Aliases + +- /f balance can also be used as /f bal +- /f deposit and /f withdraw accept decimal amounts + +## Role Requirements + +Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. + +>[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md b/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md new file mode 100644 index 00000000..4fe4539c --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md @@ -0,0 +1,42 @@ +--- +id: economy_funds +commands: deposit, withdraw +--- +# Managing Funds + +Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. + +## Depositing + +Any member can deposit personal funds into the faction treasury. + +`/f deposit ` +Deposit from your personal balance into the treasury. + +## Withdrawing + +Officers and the Leader can withdraw funds back to their personal balance. + +`/f withdraw ` +Withdraw from the treasury to your balance. (Officer+) + +## Transferring + +Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. + +`/f money transfer ` +Send funds to another faction's treasury. (Officer+) + +--- + +## Fees + +| Transaction | Fee | +|------------|-----| +| Deposit | 0% | +| Withdraw | 0% | +| Transfer | 0% | + +>[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. + +>[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md b/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md new file mode 100644 index 00000000..e4e7307b --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md @@ -0,0 +1,26 @@ +--- +id: economy_treasury +commands: balance +--- +# Faction Treasury + +Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. + +## Starting Balance + +New factions start with 0 in their treasury. Members must deposit funds to build up reserves. + +## Who Can Manage + +- Any member can deposit funds +- Officers and Leader can withdraw and transfer +- Leader has full treasury control + +--- + +`/f balance` +Check your faction's current treasury balance. Also available as /f bal. + +>[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. + +>[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md b/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md new file mode 100644 index 00000000..8a2d12e4 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md @@ -0,0 +1,37 @@ +--- +id: economy_upkeep +--- +# Territory Upkeep + +Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. + +## Upkeep Costs + +| Setting | Default | +|---------|---------| +| Cost per chunk | 2.0 per cycle | +| Payment interval | Every 24 hours | +| Free chunks | 3 (no cost) | +| Scaling mode | Flat rate | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. + +## Auto-Pay + +Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. + +--- + +## Grace Period + +If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. + +>[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. + +## Example + +*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* + +>[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md new file mode 100644 index 00000000..f70427cb --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md @@ -0,0 +1,50 @@ +--- +id: power_claiming +commands: claim, unclaim +--- +# Claiming Territory + +Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. + +--- + +## How to Claim + +`/f claim` + +Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. + +## How to Unclaim + +`/f unclaim` + +Releases the chunk you are standing in back to wilderness. Also requires Officer+. + +--- + +## Claim Rules + +| Rule | Default | +|------|---------| +| Power cost per claim | 2.0 power | +| Maximum claims | 100 per faction | +| Adjacent only | No (you can claim anywhere) | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. + +--- + +## What Protection Provides + +Inside claimed territory, the following is enforced by default: + +- Outsiders cannot break, place, or interact with blocks +- Allies can use doors, seats, and transport but cannot break or place blocks +- Members and Officers have full access to build, break, and use everything +- Container access (chests, crates) is restricted to members only + +>[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. + +>[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md new file mode 100644 index 00000000..ea39186b --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md @@ -0,0 +1,50 @@ +--- +id: power_losing +commands: overclaim +--- +# Losing Territory + +When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. + +--- + +## How Overclaiming Works + +`/f overclaim` + +An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. + +## The Math + +Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +>[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). + +--- + +## Example Scenario + +| Factor | Value | +|--------|-------| +| Members | 5 players | +| Power per member | 10 each (starting) | +| Total power | 50 | +| Claims | 30 chunks | +| Power needed (30 x 2.0) | 60 | +| Deficit | 10 power short | + +In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. + +--- + +## How to Prevent Overclaiming + +- Do not over-expand -- always keep total power above your claim cost with a buffer +- Stay active -- power only regenerates while online (+0.1/min) +- Avoid unnecessary deaths -- each death costs 1.0 power +- Recruit more members -- more players means more total power +- Unclaim unused chunks -- free up power with /f unclaim + +>[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md new file mode 100644 index 00000000..207c041d --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md @@ -0,0 +1,44 @@ +--- +id: power_map +commands: map +--- +# The Territory Map + +The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. + +--- + +## Opening the Map + +`/f map` + +Opens the territory map GUI centered on your current location. + +--- + +## Color Legend + +| Color | Meaning | +|-------|---------| +| [#55FF55] Your faction's color | Territory claimed by your faction | +| [#5555FF] Blue | Allied faction territory | +| [#FF5555] Red | Enemy faction territory | +| [#AAAAAA] Gray | Neutral faction territory | +| [#333333] Dark | Wilderness (unclaimed land) | +| [#FFAA00] Gold | Special zones (safezone, warzone) | + +>[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. + +--- + +## Click to Claim + +The map is not just for viewing -- you can interact with it directly. + +- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) +- Click a claimed chunk to see which faction owns it +- Scroll or pan to explore the area around you + +>[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. + +>[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md new file mode 100644 index 00000000..ae158ed5 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md @@ -0,0 +1,45 @@ +--- +id: power_understanding +commands: power +--- +# Understanding Power + +Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. + +--- + +## Default Power Values + +| Setting | Value | +|---------|-------| +| Maximum power per player | 20 | +| Starting power | 10 | +| Death penalty | -1.0 per death | +| Kill reward | 0.0 | +| Regen rate | +0.1 per minute (while online) | +| Power cost per claim | 2.0 | +| Logout while tagged | -1.0 additional | + +>[!NOTE] These are default values. Your server administrator may have configured different settings. + +## How It Works + +Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. + +>[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. + +--- + +## Checking Your Power + +`/f power` + +Shows your personal power, your faction's total power, and how much is needed to maintain current claims. + +## The Danger Zone + +If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. + +>[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. + +>[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md new file mode 100644 index 00000000..0540d550 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md @@ -0,0 +1,94 @@ +--- +id: quickref_commands +--- +# All Commands + +## Core + +| Command | Description | Role | +|---------|-------------|------| +| /f | Open faction menu | Any | +| /f help | Open help center | Any | +| /f create (name) | Create a faction | Any | +| /f disband | Delete your faction | Leader | +| /f leave | Leave your faction | Any | + +## Membership + +| Command | Description | Role | +|---------|-------------|------| +| /f invite (player) | Invite a player | Officer+ | +| /f accept [faction] | Accept an invite | Any | +| /f request (faction) | Request to join | Any | +| /f kick (player) | Remove a member | Officer+ | +| /f promote (player) | Promote to Officer | Leader | +| /f demote (player) | Demote to Member | Leader | +| /f transfer (player) | Transfer leadership | Leader | + +## Territory + +| Command | Description | Role | +|---------|-------------|------| +| /f claim | Claim current chunk | Officer+ | +| /f unclaim | Release current chunk | Officer+ | +| /f overclaim | Take weakened chunk | Officer+ | +| /f map | Open territory map | Any | + +## Teleport + +| Command | Description | Role | +|---------|-------------|------| +| /f home | Teleport to faction home | Any | +| /f sethome | Set faction home | Officer+ | +| /f delhome | Delete faction home | Officer+ | +| /f stuck | Escape enemy territory | Any | + +## Information + +| Command | Description | Role | +|---------|-------------|------| +| /f info [faction] | View faction details | Any | +| /f list | Browse all factions | Any | +| /f members | View roster | Any | +| /f who [player] | View player info | Any | +| /f power [player] | Check power levels | Any | +| /f invites | Manage invites/requests | Any | +| /f relations | View diplomatic relations | Any | + +## Diplomacy + +| Command | Description | Role | +|---------|-------------|------| +| /f ally (faction) | Request alliance | Officer+ | +| /f enemy (faction) | Declare enemy | Officer+ | +| /f neutral (faction) | Reset to neutral | Officer+ | + +## Settings + +| Command | Description | Role | +|---------|-------------|------| +| /f settings | Open settings GUI | Officer+ | +| /f rename (name) | Rename faction | Leader | +| /f desc [text] | Set description | Officer+ | +| /f color (code) | Set faction color | Officer+ | +| /f open | Allow anyone to join | Leader | +| /f close | Require invitation | Leader | + +## Economy + +| Command | Description | Role | +|---------|-------------|------| +| /f balance | View treasury | Any | +| /f deposit (amount) | Deposit funds | Any | +| /f withdraw (amount) | Withdraw funds | Officer+ | +| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f money log [page] | Transaction history | Officer+ | + +## Chat + +| Command | Description | Role | +|---------|-------------|------| +| /f c | Cycle chat mode | Any | +| /f c f | Set faction chat | Any | +| /f c a | Set ally chat | Any | +| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md new file mode 100644 index 00000000..2155ff0c --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md @@ -0,0 +1,38 @@ +--- +id: welcome_started +commands: gui, menu +--- +# Getting Started + +Welcome to HyperFactions! Here is how to get up and running in just a few steps. + +--- + +## Step 1: Open the Faction Menu + +Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. + +## Step 2: Choose Your Path + +| Option | How | +|--------|-----| +| Browse open factions | Click Browse in the menu and hit Join on any open faction. | +| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | +| Create your own | Click Create Faction, pick a name, and you are the Leader. | + +## Step 3: Explore Your Faction + +Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. + +>[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. + +--- + +## Essential First Commands + +- /f -- Opens the faction GUI +- /f home -- Teleport to your faction's home base +- /f c -- Cycle chat mode between Normal, Faction, and Ally +- /f map -- View the territory map around you + +>[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md new file mode 100644 index 00000000..dcd1df1a --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md @@ -0,0 +1,44 @@ +--- +id: welcome_tips +--- +# Quick Tips + +Handy advice organized by category to help you thrive. + +--- + +## Territory + +- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** +- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support +- Use `/f map` to scout nearby claims and find safe spots to build +- Unclaim chunks you no longer need with `/f unclaim` to free up power + +## Combat + +- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit +- You have **5 seconds of spawn protection** after respawning +- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power +- Friendly fire is **disabled** between faction members and allies by default + +>[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. + +## Social + +- Use `/f c` to cycle through chat modes so faction talk stays private +- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** +- Form alliances with `/f ally ` for mutual protection and shared map visibility +- Check `/f relations` to see your full diplomatic status + +## Economy + +>[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. + +- Deposit funds with the treasury GUI to strengthen your faction +- A wealthier faction can afford more claims and recover from setbacks faster + +## General + +- Type `/f` anytime to open your faction dashboard -- everything is accessible from there +- Promote active members to Officer so they can help claim and manage territory +- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md new file mode 100644 index 00000000..5fedf54c --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md @@ -0,0 +1,37 @@ +--- +id: welcome_what +--- +# What Are Factions? + +Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. + +>[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. + +--- + +## Core Mechanics + +| Mechanic | What It Does | +|----------|-------------| +| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | +| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | +| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | +| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | + +--- + +## How Strength Works + +Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. + +>[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. + +--- + +## Diplomacy at a Glance + +- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory +- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming +- **Neutral** -- The default state between all factions with standard rules + +>[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md new file mode 100644 index 00000000..e1eaa33b --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md @@ -0,0 +1,38 @@ +--- +id: faction_creating +commands: create +--- +# Creating a Faction + +Starting your own faction makes you the Leader with full control over settings, members, and territory. + +--- + +## How to Create + +`/f create ` + +This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. + +## Name Rules + +| Rule | Requirement | +|------|------------| +| Length | Between 3 and 24 characters | +| Characters | Letters, numbers, and spaces only | +| Uniqueness | No two factions can share the same name | + +>[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. + +--- + +## What Happens on Creation + +- You become the Leader (highest rank) +- Your faction starts with 0 claims and your personal power (10 by default) +- The faction dashboard opens automatically +- You can immediately invite players, claim territory, and set a faction home + +>[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. + +>[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md new file mode 100644 index 00000000..7dbabdcd --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md @@ -0,0 +1,36 @@ +--- +id: faction_joining +commands: accept, join, request +--- +# Joining a Faction + +There are three ways to join an existing faction, depending on how the faction is configured. + +--- + +## Methods Compared + +| Method | How | Requires | +|--------|-----|----------| +| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | +| Accept Invite | Check Invites tab in /f menu | Active invitation | +| Request to Join | Use /f request, wait for approval | Officer or Leader approves | + +--- + +## Invite Details + +- Invitations are sent by Officers or Leaders +- Invitations expire after 5 minutes -- accept promptly +- View your pending invites in the Invites tab of the faction menu +- Accept with the GUI or /f accept + +## Join Requests + +- Use /f request to request membership in a closed faction +- Requests expire after 24 hours if not acted on +- Officers and Leaders can approve or deny requests from the faction dashboard + +>[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. + +>[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md new file mode 100644 index 00000000..870c6133 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md @@ -0,0 +1,44 @@ +--- +id: faction_managing +commands: invite, kick, promote, demote, transfer +--- +# Managing Members + +Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. + +--- + +## Commands + +| Command | What It Does | Required Role | +|---------|-------------|---------------| +| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | +| `/f kick ` | Removes a member from the faction | Officer+ (see note) | +| `/f promote ` | Promotes a Member to Officer | Leader only | +| `/f demote ` | Demotes an Officer to Member | Leader only | +| `/f transfer ` | Transfers faction ownership | Leader only | + +>[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. + +--- + +## Invitations + +- Invitations expire after 5 minutes if not accepted +- The invited player sees it in their Invites tab when they open /f +- There is no limit to how many invitations you can send at once +- Your faction can hold up to 50 members total + +## Promotions and Demotions + +- Only the Leader can promote or demote +- /f promote raises a Member to Officer +- /f demote lowers an Officer back to Member + +## Transferring Leadership + +>[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. + +`/f transfer ` + +The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md new file mode 100644 index 00000000..67bb5962 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md @@ -0,0 +1,44 @@ +--- +id: faction_roles +--- +# Roles and Ranks + +Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. + +--- + +## Permission Breakdown + +| Action | Leader | Officer | Member | +|--------|--------|---------|--------| +| Build in territory | Yes | Yes | Yes | +| Use faction home | Yes | Yes | Yes | +| Faction and ally chat | Yes | Yes | Yes | +| Invite players | Yes | Yes | No | +| Kick members | Yes | Yes (Members only) | No | +| Claim / unclaim land | Yes | Yes | No | +| Overclaim enemy territory | Yes | Yes | No | +| Set faction home | Yes | Yes | No | +| Delete faction home | Yes | Yes | No | +| Manage relations (ally/enemy) | Yes | Yes | No | +| View faction logs | Yes | Yes | No | +| Promote to Officer | Yes | No | No | +| Demote from Officer | Yes | No | No | +| Rename faction | Yes | No | No | +| Set description / tag / color | Yes | No | No | +| Open / close faction | Yes | No | No | +| Access faction settings | Yes | No | No | +| Transfer leadership | Yes | No | No | +| Disband faction | Yes | No | No | + +>[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. + +--- + +## Role Details + +- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. +- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. +- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. + +>[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/tl-PH/hyperfactions.lang b/src/main/resources/Server/Languages/tl-PH/hyperfactions.lang new file mode 100644 index 00000000..7a248789 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/hyperfactions.lang @@ -0,0 +1,453 @@ +# HyperFactions - Filipino (Tagalog) na mga Salin +# Format: key = value (o key = "quoted value") +# Note: Ang mga key ay awtomatikong may prefix na "hyperfactions." mula sa I18nModule ng Hytale +# Mga Placeholder: {0}, {1}, atbp. + +# ========== Karaniwan ========== +common.no_permission = Wala kang pahintulot na gawin iyan. +common.not_in_faction = Wala ka sa isang paksyon. +common.already_in_faction = Kasapi ka na ng isang paksyon. +common.player_not_found = Hindi nahanap ang manlalaro. +common.faction_not_found = Hindi nahanap ang paksyon. +common.player_not_online = Ang manlalaro ay hindi online. +common.must_be_leader = Tanging ang pinuno ng paksyon lamang ang makakagawa niyan. +common.must_be_officer = Dapat ikaw ay isang Opisyal o Pinuno upang gawin iyan. +common.combat_tagged = Hindi mo magagawa iyan habang may combat tag. +common.cancel = Kanselahin +common.confirm = Kumpirmahin +common.save = I-save +common.close = Isara +common.clear = I-clear +common.back = Bumalik +common.leave = Umalis +common.transfer = Ilipat +common.disband = Buwagin +common.world_fallback = mundo +common.yes = Oo +common.no = Hindi +common.loading = Naglo-load... +common.online = Online +common.offline = Offline +common.enabled = Naka-enable +common.disabled = Naka-disable +common.none = Wala +common.page = Pahina {0} ng {1} +common.unknown = Hindi alam +common.error_generic = May nangyaring mali. Pakisubukan muli. +common.gui_fallback = Hindi ma-access ang GUI. Gamitin ang /f help para sa mga utos. +common.admin_prefix = [Admin] +common.location_error = Hindi matukoy ang iyong lokasyon. +common.world_error = Hindi matukoy ang iyong mundo. +common.invalid_id = Hindi wastong faction ID. +common.na = N/A + +# ========== Mga Utos - Gumawa ========== +cmd.create.no_permission = Wala kang pahintulot na gumawa ng mga paksyon. +cmd.create.usage = Paggamit: /f create +cmd.create.success = Nalikha ang paksyon na '{0}'! +cmd.create.already_in_named = Kasapi ka na ng {0}. +cmd.create.use_leave_first = Gamitin muna ang /f leave kung gusto mong gumawa ng bagong paksyon. +cmd.create.name_taken = Ang pangalan ng paksyon na iyon ay nakuha na. +cmd.create.name_too_short = Masyadong maikli ang pangalan ng paksyon. +cmd.create.name_too_long = Masyadong mahaba ang pangalan ng paksyon. +cmd.create.failed = Nabigo ang paggawa ng paksyon. + +# ========== Mga Utos - Buwagin ========== +cmd.disband.no_permission = Wala kang pahintulot na buwagin ang mga paksyon. +cmd.disband.not_leader = Tanging ang pinuno ng paksyon lamang ang maaaring bumuag. +cmd.disband.confirm_prompt = Sigurado ka bang gusto mong buwagin ang iyong paksyon? +cmd.disband.confirm_instruction = I-type ang /f disband --text muli sa loob ng {0} segundo upang kumpirmahin. +cmd.disband.success = Ang iyong paksyon ay nabuag na. +cmd.disband.failed = Nabigo ang pagbuag ng paksyon. +cmd.disband.cancelled = Kinansela ang nakaraang kumpirmasyon. I-type muli upang kumpirmahin ang pagbuag. + +# ========== Mga Utos - Palitan ang Pangalan ========== +cmd.rename.no_permission = Wala kang pahintulot. +cmd.rename.not_leader = Tanging ang pinuno lamang ang maaaring magpalit ng pangalan ng paksyon. +cmd.rename.usage = Paggamit: /f rename +cmd.rename.too_short = Masyadong maikli ang pangalan (minimum {0} karakter). +cmd.rename.too_long = Masyadong mahaba ang pangalan (maximum {0} karakter). +cmd.rename.name_taken = Ang pangalan na iyon ay nakuha na. +cmd.rename.success = Ang paksyon ay pinalitan ng pangalan sa {0}! +cmd.rename.broadcast = Pinalitan ni {0} ang pangalan ng paksyon sa {1} + +# ========== Mga Utos - Deskripsyon ========== +cmd.desc.no_permission = Wala kang pahintulot. +cmd.desc.not_officer = Dapat ikaw ay isang opisyal upang magtakda ng deskripsyon. +cmd.desc.set = Naitakda na ang deskripsyon ng paksyon! +cmd.desc.cleared = Na-clear na ang deskripsyon ng paksyon. + +# ========== Mga Utos - Buksan / Isara ========== +cmd.open.no_permission = Wala kang pahintulot. +cmd.open.not_leader = Tanging ang pinuno lamang ang maaaring magbago ng setting na ito. +cmd.open.already_open = Bukas na ang iyong paksyon. +cmd.open.success = Bukas na ang iyong paksyon! Kahit sino ay maaaring sumali gamit ang /f join. +cmd.open.broadcast = Binuksan ni {0} ang paksyon para sa malayang pagsali. +cmd.close.no_permission = Wala kang pahintulot. +cmd.close.not_leader = Tanging ang pinuno lamang ang maaaring magbago ng setting na ito. +cmd.close.already_closed = Sarado na ang iyong paksyon. +cmd.close.success = Ang iyong paksyon ay sa pamamagitan na lamang ng imbitasyon. +cmd.close.broadcast = Isinara ni {0} ang paksyon sa pamamagitan lamang ng imbitasyon. + +# ========== Mga Utos - Kulay ========== +cmd.color.no_permission = Wala kang pahintulot. +cmd.color.not_officer = Dapat ikaw ay isang opisyal upang magpalit ng kulay. +cmd.color.colors_disabled = Ang mga kulay ng paksyon ay naka-disable. +cmd.color.usage = Paggamit: /f color +cmd.color.usage_hint = Mga wastong code: 0-9, a-f o #RRGGBB hex +cmd.color.invalid = Hindi wastong kulay. Gamitin ang 0-9, a-f, o #RRGGBB. +cmd.color.success = Na-update na ang kulay ng paksyon! + +# ========== Mga Utos - Claim ========== +cmd.claim.no_permission = Wala kang pahintulot na mag-claim ng teritoryo. +cmd.claim.already_yours = Pagmamay-ari na ng iyong paksyon ang chunk na ito. +cmd.claim.cannot_claim_ally = Hindi mo maaaring i-claim ang teritoryo ng kakampi. +cmd.claim.already_claimed_hint = Ang chunk na ito ay naka-claim na. Gamitin ang /f overclaim kung sila ay raidable. +cmd.claim.success = Na-claim ang chunk sa {0}, {1}! +cmd.claim.not_officer = Dapat ikaw ay isang opisyal upang mag-claim ng lupa. +cmd.claim.already_claimed = Ang chunk na ito ay naka-claim na. +cmd.claim.max_claims = Naabot na ng iyong paksyon ang maximum na claim. Kumuha ng higit pang kapangyarihan! +cmd.claim.not_adjacent = Dapat kang mag-claim na katabi ng umiiral na teritoryo. +cmd.claim.world_not_allowed = Hindi pinapayagan ang pag-claim sa mundong ito. +cmd.claim.orbisguard = Ang lugar na ito ay protektado ng OrbisGuard. +cmd.claim.zone_protected = Ang chunk na ito ay nasa safezone o warzone. +cmd.claim.insufficient_power = Kulang ang kapangyarihan ng iyong paksyon upang mag-claim ng higit pang lupa. +cmd.claim.failed = Nabigo ang pag-claim ng chunk. + +# ========== Mga Utos - Imbitahan ========== +cmd.invite.no_permission = Wala kang pahintulot na mag-imbita ng mga manlalaro. +cmd.invite.not_officer = Dapat ikaw ay isang opisyal upang mag-imbita ng mga manlalaro. +cmd.invite.usage = Paggamit: /f invite +cmd.invite.player_not_found = Hindi nahanap o offline ang manlalaro na si '{0}'. +cmd.invite.target_in_faction = Ang manlalarong iyon ay kasapi na ng isang paksyon. +cmd.invite.sent = Inimbitahan si {0} sa iyong paksyon. +cmd.invite.received = Inimbitahan ka na sumali sa {0}! +cmd.invite.accept_hint = I-type ang /f accept {0} upang sumali. + +# ========== Mga Utos - Tanggapin / Sumali ========== +cmd.join.no_permission = Wala kang pahintulot na sumali sa mga paksyon. +cmd.join.already_in_named = Kasapi ka na ng {0}. +cmd.join.use_leave_hint = Gamitin muna ang /f leave kung gusto mong sumali sa ibang paksyon. +cmd.join.no_invites = Wala kang mga nakabinbing imbitasyon. +cmd.join.faction_not_found = Hindi nahanap ang paksyon na '{0}'. +cmd.join.not_invited = Wala kang imbitasyon mula sa paksyon na iyon. +cmd.join.faction_gone = Ang paksyon na iyon ay wala na. +cmd.join.success = Sumali ka na sa {0}! +cmd.join.broadcast = Sumali na si {0} sa paksyon! +cmd.join.faction_full = Puno na ang paksyon na iyon. +cmd.join.failed = Nabigo ang pagsali sa paksyon. + +# ========== Mga Utos - Paalisin ========== +cmd.kick.no_permission = Wala kang pahintulot na magpaalis ng mga kasapi. +cmd.kick.usage = Paggamit: /f kick +cmd.kick.not_in_your_faction = Ang manlalaro na si '{0}' ay wala sa iyong paksyon. +cmd.kick.success = Pinalayas si {0} mula sa paksyon. +cmd.kick.broadcast = Pinalayas si {0} mula sa paksyon. +cmd.kick.kicked = Pinalayas ka mula sa paksyon. +cmd.kick.cannot_kick_higher = Wala kang pahintulot na paalisin ang manlalarong iyon. +cmd.kick.cannot_kick_leader = Hindi mo maaaring paalisin ang pinuno ng paksyon. +cmd.kick.failed = Nabigo ang pagpaalis ng manlalaro. + +# ========== Mga Utos - Umalis ========== +cmd.leave.no_permission = Wala kang pahintulot na umalis sa mga paksyon. +cmd.leave.confirm_prompt = Sigurado ka bang gusto mong umalis sa iyong paksyon? +cmd.leave.confirm_instruction = I-type ang /f leave --text muli sa loob ng {0} segundo upang kumpirmahin. +cmd.leave.success = Umalis ka na sa iyong paksyon. +cmd.leave.broadcast = Umalis na si {0} sa paksyon. +cmd.leave.failed = Nabigo ang pag-alis sa paksyon. +cmd.leave.cancelled = Kinansela ang nakaraang kumpirmasyon. I-type muli upang kumpirmahin ang pag-alis. + +# ========== Mga Utos - I-promote / I-demote / Ilipat ========== +cmd.rank.promote_no_permission = Wala kang pahintulot na mag-promote ng mga kasapi. +cmd.rank.promote_usage = Paggamit: /f promote +cmd.rank.promoted = Na-promote si {0} sa {1}! +cmd.rank.promote_broadcast = Na-promote si {0} sa {1}! +cmd.rank.already_highest = Hindi na maaaring mag-promote pa. Gamitin ang /f transfer upang palitan ang pinuno. +cmd.rank.promote_failed = Nabigo ang pag-promote ng manlalaro. +cmd.rank.demote_no_permission = Wala kang pahintulot na mag-demote ng mga kasapi. +cmd.rank.demote_usage = Paggamit: /f demote +cmd.rank.demoted = Na-demote si {0} sa {1}. +cmd.rank.demote_broadcast = Na-demote si {0} sa {1}. +cmd.rank.already_lowest = Ang manlalarong iyon ay kasapi na sa pinakamababang ranggo. +cmd.rank.demote_failed = Nabigo ang pag-demote ng manlalaro. +cmd.rank.transfer_no_permission = Wala kang pahintulot na ilipat ang pamumuno. +cmd.rank.transfer_usage = Paggamit: /f transfer +cmd.rank.player_not_in_faction = Hindi nahanap ang manlalaro sa iyong paksyon. +cmd.rank.transfer_confirm = Sigurado ka bang gusto mong ilipat ang pamumuno kay {0}? +cmd.rank.transfer_confirm_instruction = I-type ang /f transfer {0} --text muli sa loob ng {1} segundo upang kumpirmahin. +cmd.rank.transferred = Nailipat na ang pamumuno kay {0}! +cmd.rank.transfer_broadcast = Si {0} na ang pinuno ng paksyon! +cmd.rank.transfer_failed = Nabigo ang paglipat ng pamumuno. +cmd.rank.transfer_cancelled = Kinansela ang nakaraang kumpirmasyon. I-type muli upang kumpirmahin ang paglipat. + +# ========== Mga Utos - I-unclaim ========== +cmd.unclaim.no_permission = Wala kang pahintulot na mag-unclaim ng teritoryo. +cmd.unclaim.success = Na-unclaim ang chunk sa {0}, {1}. +cmd.unclaim.not_officer = Dapat ikaw ay isang opisyal upang mag-unclaim ng lupa. +cmd.unclaim.chunk_not_claimed = Ang chunk na ito ay hindi naka-claim. +cmd.unclaim.not_your_claim = Ang iyong paksyon ay hindi nagmamay-ari ng chunk na ito. +cmd.unclaim.cannot_unclaim_home = Hindi maaaring i-unclaim ang chunk na may faction home. +cmd.unclaim.would_disconnect = Hindi maaaring i-unclaim — maaari nitong ihiwalay ang iyong teritoryo. +cmd.unclaim.failed = Nabigo ang pag-unclaim ng chunk. + +# ========== Mga Utos - Overclaim ========== +cmd.overclaim.no_permission = Wala kang pahintulot na mag-overclaim ng teritoryo. +cmd.overclaim.success = Na-overclaim ang teritoryo ng kalaban! +cmd.overclaim.not_officer = Dapat ikaw ay isang opisyal upang mag-overclaim. +cmd.overclaim.not_claimed = Ang chunk na ito ay hindi naka-claim. Gamitin ang /f claim. +cmd.overclaim.own_chunk = Pagmamay-ari na ng iyong paksyon ang chunk na ito. +cmd.overclaim.ally = Hindi mo maaaring i-overclaim ang teritoryo ng kakampi. +cmd.overclaim.target_has_power = Ang paksyon na ito ay may sapat pa rin na kapangyarihan. +cmd.overclaim.failed = Nabigo ang pag-overclaim. + +# ========== Mga Utos - Stuck ========== +cmd.stuck.no_permission = Wala kang pahintulot na gamitin ang /f stuck. +cmd.stuck.not_stuck = Hindi ka na-stuck - ito ay ilang. +cmd.stuck.combat_tagged = Hindi mo magagamit ang /f stuck habang nasa labanan! +cmd.stuck.no_safe = Hindi mahanap ang ligtas na lokasyon. +cmd.stuck.teleporting = Magta-teleport sa ligtas na lugar sa loob ng {0} segundo. Huwag gumalaw! + +# ========== Mga Utos - Home ========== +cmd.home.no_permission = Wala kang pahintulot na mag-teleport sa faction home. +cmd.home.no_home = Walang home ang iyong paksyon. +cmd.home.combat_tagged = Hindi ka maaaring mag-teleport habang nasa labanan! +cmd.home.teleported = Na-teleport sa faction home! + +# ========== Mga Utos - SetHome ========== +cmd.sethome.no_permission = Wala kang pahintulot na magtakda ng faction home. +cmd.sethome.world_not_allowed = Hindi maaaring magtakda ng home sa mundong ito. +cmd.sethome.not_in_territory = Maaari ka lamang magtakda ng home sa teritoryo ng iyong paksyon. +cmd.sethome.set = Naitakda na ang faction home! +cmd.sethome.broadcast = Itinakda ni {0} ang faction home. +cmd.sethome.not_officer = Dapat ikaw ay isang opisyal upang magtakda ng home. +cmd.sethome.failed = Nabigo ang pagtakda ng home. + +# ========== Mga Utos - DelHome ========== +cmd.delhome.no_permission = Wala kang pahintulot na magtanggal ng faction home. +cmd.delhome.no_home = Walang itinakdang home ang iyong paksyon. +cmd.delhome.deleted = Natanggal na ang faction home! +cmd.delhome.broadcast = Tinanggal ni {0} ang faction home. +cmd.delhome.not_officer = Dapat ikaw ay isang opisyal upang magtanggal ng home. +cmd.delhome.failed = Nabigo ang pagtanggal ng home. + +# ========== Mga Utos - Relasyon (Kakampi/Kalaban/Neutral/Mga Relasyon) ========== +cmd.relation.ally_no_permission = Wala kang pahintulot na mamahala ng mga alyansa. +cmd.relation.ally_usage = Paggamit: /f ally +cmd.relation.ally_sent = Naipadala ang kahilingan ng alyansa sa {0}! +cmd.relation.ally_formed = Kakampi ka na ng {0}! +cmd.relation.already_ally = Kakampi mo na ang paksyon na iyon. +cmd.relation.ally_failed = Nabigo ang pagpapadala ng kahilingan ng alyansa. +cmd.relation.enemy_no_permission = Wala kang pahintulot na magdeklara ng mga kalaban. +cmd.relation.enemy_usage = Paggamit: /f enemy +cmd.relation.enemy_declared = Kalaban mo na ang {0}! +cmd.relation.already_enemy = Kalaban mo na ang paksyon na iyon. +cmd.relation.max_enemies = Naabot mo na ang maximum na bilang ng mga kalaban. +cmd.relation.enemy_failed = Nabigo ang pagtakda ng kalaban. +cmd.relation.neutral_no_permission = Wala kang pahintulot na magtakda ng neutral na relasyon. +cmd.relation.neutral_usage = Paggamit: /f neutral +cmd.relation.neutral_set = Ang iyong paksyon ay neutral na sa {0}. +cmd.relation.already_neutral = Neutral ka na sa paksyon na iyon. +cmd.relation.neutral_failed = Nabigo ang pagtakda ng neutral. +cmd.relation.cannot_self = Hindi mo maaaring makipag-alyansa sa iyong sarili. +cmd.relation.max_allies = Naabot mo na ang maximum na bilang ng mga kakampi. +cmd.relation.view_no_permission = Wala kang pahintulot na tingnan ang mga relasyon. +cmd.relation.header = === Mga Relasyon ng Paksyon === +cmd.relation.allies_count = Mga Kakampi ({0}): +cmd.relation.enemies_count = Mga Kalaban ({0}): +cmd.relation.list_entry = - {0} + +# ========== Mga Utos - Chat ========== +cmd.chat.usage = Paggamit: /f c [f|a|off] +cmd.chat.no_permission = Wala kang pahintulot para sa chat mode na iyon. +cmd.chat.mode_set = Ang chat mode ay naitakda sa {0} + +# ========== Mga Utos - Mga Imbitasyon ========== +cmd.invites.not_officer = Dapat ikaw ay isang opisyal upang mamahala ng mga imbitasyon. +cmd.invites.header = === Mga Imbitasyon ng Paksyon === +cmd.invites.no_pending = Walang nakabinbing imbitasyon o kahilingan. +cmd.invites.outgoing = Mga Papalabas na Imbitasyon: +cmd.invites.outgoing_entry = {0} (inimbitahan ni {1}) +cmd.invites.requests = Mga Kahilingan na Sumali: +cmd.invites.request_entry = {0}{1} +cmd.invites.your_invites_header = === Ang Iyong mga Imbitasyon === +cmd.invites.no_invites = Wala kang mga nakabinbing imbitasyon. +cmd.invites.invite_entry = {0} - Gamitin ang /f accept {1} + +# ========== Mga Utos - Kahilingan ========== +cmd.request.no_permission = Wala kang pahintulot na humiling ng pagsapi sa paksyon. +cmd.request.already_in_named = Kasapi ka na ng {0}. +cmd.request.use_leave_hint = Gamitin muna ang /f leave kung gusto mong sumali sa ibang paksyon. +cmd.request.usage = Paggamit: /f request [mensahe] +cmd.request.faction_open = Bukas ang paksyon na iyon! Gamitin ang /f accept {0} upang direktang sumali. +cmd.request.already_requested = Mayroon ka nang nakabinbing kahilingan sa paksyon na iyon. +cmd.request.has_invite = Inimbitahan ka na ng paksyon na iyon! Gamitin ang /f accept {0} upang sumali. +cmd.request.sent = Naipadala ang kahilingan na sumali sa {0}! +cmd.request.your_message = Ang iyong mensahe: "{0}" +cmd.request.officer_review = Susuriin ng isang opisyal ang iyong kahilingan. +cmd.request.officer_notify = Humiling si {0} na sumali sa iyong paksyon! +cmd.request.officer_review_hint = Gamitin ang /f gui > Invites upang suriin. + +# ========== Mga Utos - Impormasyon ========== +cmd.info.faction_header = === {0} === +cmd.info.player_header = === {0} === +cmd.info.no_permission = Wala kang pahintulot na tingnan ang impormasyon ng paksyon. +cmd.info.faction_not_found = Hindi nahanap ang paksyon na '{0}'. +cmd.info.not_in_faction_hint = Wala ka sa isang paksyon. Gamitin ang /f info +cmd.info.leader = Pinuno: {0} +cmd.info.members = Mga Kasapi: {0}/{1} +cmd.info.power = Kapangyarihan: {0} +cmd.info.claims = Mga Claim: {0} +cmd.info.raidable = RAIDABLE! +cmd.info.allies = Mga Kakampi: {0} +cmd.info.enemies = Mga Kalaban: {0} +cmd.info.they_consider = Itinuturing ka nila bilang: {0} +cmd.info.you_consider = Itinuturing mo sila bilang: {0} +cmd.info.members_no_permission = Wala kang pahintulot na tingnan ang mga kasapi ng paksyon. +cmd.info.members_header = === Mga Kasapi ng {0} ({1}) === +cmd.info.member_online = [Online] +cmd.info.list_no_permission = Wala kang pahintulot na tingnan ang listahan ng mga paksyon. +cmd.info.list_empty = Walang mga paksyon. +cmd.info.list_header = === Mga Paksyon ({0}) === +cmd.info.list_entry = {0} - {1} kasapi, {2} kapangyarihan +cmd.info.list_entry_raidable = {0} - {1} kasapi, {2} kapangyarihan [RAIDABLE] +cmd.info.help_no_permission = Wala kang pahintulot na tingnan ang tulong. +cmd.info.who_no_permission = Wala kang pahintulot na tingnan ang impormasyon ng manlalaro. +cmd.info.who_faction = Paksyon: {0} +cmd.info.who_role = Tungkulin: {0} +cmd.info.who_joined = Sumali: {0} +cmd.info.who_faction_none = Paksyon: Wala +cmd.info.who_power = Kapangyarihan: {0} +cmd.info.who_status = Katayuan: {0} +cmd.info.who_last_seen = Huling nakita: {0} +cmd.info.map_no_permission = Wala kang pahintulot na tingnan ang mapa. +cmd.info.map_header = === Mapa ng Teritoryo === +cmd.info.map_legend = Alamat: +Ikaw /Sarili /Kakampi /Kalaban -Ilang +cmd.info.map_gui_hint = Gamitin ang /f gui para sa interactive na mapa + +# ========== Mga Utos - Kapangyarihan ========== +cmd.power.personal = Personal na Kapangyarihan: {0}/{1} +cmd.power.faction = Kapangyarihan ng Paksyon: {0}/{1} +cmd.power.death_loss = Pagkawala sa Kamatayan: {0} +cmd.power.regen = Bilis ng Pagbawi: {0}/oras +cmd.power.no_permission = Wala kang pahintulot na tingnan ang impormasyon ng kapangyarihan. +cmd.power.header = Kapangyarihan ni {0}: +cmd.power.current = Kasalukuyan: {0} + +# ========== Mga Utos - Ekonomiya ========== +cmd.economy.balance = Balanse: {0} +cmd.economy.deposited = Nagdeposito ng {0} sa kaban ng yaman ng paksyon. +cmd.economy.withdrawn = Nag-withdraw ng {0} mula sa kaban ng yaman ng paksyon. +cmd.economy.transferred = Naglipat ng {0} sa {1}. +cmd.economy.insufficient = Kulang ang pondo sa kaban ng yaman ng paksyon. +cmd.economy.invalid_amount = Hindi wastong halaga: {0} +cmd.economy.economy_disabled = Ang ekonomiya ay naka-disable. +cmd.economy.balance_no_permission = Wala kang pahintulot na tingnan ang mga balanse. +cmd.economy.treasury_unavailable = Hindi magagamit ang kaban ng yaman. +cmd.economy.balance_display = Kaban ng yaman ng {0}: {1} +cmd.economy.deposit_no_permission = Wala kang pahintulot na magdeposito. +cmd.economy.deposit_faction_denied = Wala kang pahintulot sa paksyon upang magdeposito. +cmd.economy.deposit_usage = Paggamit: /f deposit +cmd.economy.amount_positive = Ang halaga ay dapat positibo. +cmd.economy.wallet_insufficient = Kulang ang iyong pera. Wallet: {0} +cmd.economy.wallet_withdraw_failed = Nabigo ang pag-withdraw mula sa iyong wallet. +cmd.economy.deposit_failed = Nabigo ang pagdeposito sa kaban ng yaman ng paksyon. Ibinalik ang pera. +cmd.economy.withdraw_no_permission = Wala kang pahintulot na mag-withdraw. +cmd.economy.withdraw_faction_denied = Wala kang pahintulot sa paksyon upang mag-withdraw. +cmd.economy.withdraw_usage = Paggamit: /f withdraw +cmd.economy.withdraw_limit_denied = Tinanggihan ang pag-withdraw: {0} +cmd.economy.wallet_deposit_failed = Babala: Nabigo ang pagdeposito sa iyong wallet. Kontakin ang admin. +cmd.economy.withdraw_limit_exceeded = Tinanggihan ang pag-withdraw: lumampas sa limitasyon. +cmd.economy.withdraw_failed = Nabigo ang pag-withdraw: {0} +cmd.economy.transfer_no_permission = Wala kang pahintulot na maglipat. +cmd.economy.transfer_faction_denied = Wala kang pahintulot sa paksyon upang maglipat. +cmd.economy.transfer_usage = Paggamit: /f money transfer +cmd.economy.transfer_self = Hindi maaaring maglipat sa sarili mong paksyon. +cmd.economy.transfer_limit_denied = Tinanggihan ang paglipat: {0} +cmd.economy.transfer_limit_exceeded = Tinanggihan ang paglipat: lumampas sa limitasyon. +cmd.economy.transfer_failed = Nabigo ang paglipat: {0} +cmd.economy.log_no_permission = Wala kang pahintulot na tingnan ang talaan ng mga transaksyon. +cmd.economy.log_header = Talaan ng mga Transaksyon (pahina {0}/{1}) +cmd.economy.log_empty = Walang nahanap na mga transaksyon. +cmd.economy.money_help_header = Mga Utos sa Kaban ng Yaman: +cmd.economy.money_help_balance = /f money balance [paksyon] - Tingnan ang balanse +cmd.economy.money_help_deposit = /f money deposit - Magdeposito sa kaban ng yaman +cmd.economy.money_help_withdraw = /f money withdraw - Mag-withdraw mula sa kaban ng yaman +cmd.economy.money_help_transfer = /f money transfer - Maglipat sa pagitan ng mga paksyon +cmd.economy.money_help_log = /f money log [pahina] [uri] - Tingnan ang kasaysayan ng transaksyon + +# ========== Proteksyon - Mga Parirala ng Aksyon ========== +protection.action.generic = Hindi mo magagawa iyan +protection.action.build = Hindi ka maaaring magtayo o magsira ng mga bloke +protection.action.interact = Hindi mo magagamit iyan +protection.action.door = Hindi mo magagamit ang mga pinto +protection.action.container = Hindi mo mabubuksan ang mga lalagyan +protection.action.bench = Hindi mo magagamit ang mga crafting station +protection.action.processing = Hindi mo magagamit ang mga processing station +protection.action.seat = Hindi mo magagamit ang mga upuan +protection.action.light = Hindi mo maaaring i-toggle ang mga ilaw +protection.action.teleporter = Hindi mo magagamit ang mga teleporter +protection.action.crate = Hindi mo magagamit ang mga crate +protection.action.tame = Hindi mo maaaring i-tame ang mga nilalang +protection.action.npc = Hindi ka maaaring makipag-ugnayan sa mga NPC +protection.action.mount = Hindi mo maaaring sakyan ang mga nilalang +protection.action.pve = Hindi mo maaaring saktan ang mga nilalang +protection.action.item_drop = Hindi ka maaaring mag-drop ng mga bagay +protection.action.item_pickup = Hindi ka maaaring pumili ng mga bagay + +# ========== Proteksyon - Mga Dahilan ng Pagtanggi ========== +protection.denied.safezone = {0} sa isang SafeZone. +protection.denied.warzone = {0} sa isang WarZone. +protection.denied.enemy_claim = {0} sa teritoryo ng kalaban. +protection.denied.claimed = {0} sa naka-claim na teritoryo. +protection.denied.here = {0} dito. +protection.denied.zone = {0} sa zone na ito. +protection.denied.faction_perm = {0} dito. (Pahintulot ng paksyon: {1}) +protection.denied.ally_territory = {0} dito. (Teritoryo ng kakampi) +protection.denied.error = Error sa proteksyon — na-block ang aksyon para sa kaligtasan. + +# ========== Proteksyon - PvP ========== +protection.pvp.safezone = Ang PvP ay naka-disable sa mga SafeZone. +protection.pvp.same_faction = Hindi mo maaaring atakehin ang mga kasapi ng paksyon. +protection.pvp.ally = Hindi mo maaaring atakehin ang mga kakampi. +protection.pvp.spawn_protected = Ang manlalarong iyon ay may spawn protection. +protection.pvp.territory_disabled = Ang PvP ay naka-disable sa teritoryong ito. +protection.pvp.generic = Hindi mo maaaring atakehin ang manlalarong ito. + +# ========== Proteksyon - Pinsala sa Entity ========== +protection.mob_damage_disabled = Ang pinsala mula sa mga mob ay naka-disable sa zone na ito. +protection.pve_damage_disabled = Ang PvE na pinsala ay naka-disable sa zone na ito. +protection.pve_territory_denied = Hindi mo maaaring saktan ang mga mob sa teritoryong ito. + +# ========== Proteksyon - Combat Tag ========== +protection.combat_tag_command = Hindi mo magagamit ang utos na iyon habang may combat tag. + +# ========== Mga Anunsyo sa Server ========== +# Ito ay ibinabalita sa lahat ng mga online na manlalaro para sa mga makabuluhang pangyayari sa paksyon. +# {0}, {1} = mga dynamic na halaga (mga pangalan ng paksyon, mga pangalan ng manlalaro) +server_announce.faction_created = Itinatag ni {0} ang paksyon na {1}! +server_announce.faction_disbanded = Ang paksyon na {0} ay nabuag na! +server_announce.leadership_transfer = Si {0} na ang pinuno ng {1}! +server_announce.overclaim = Na-overclaim ni {0} ang teritoryo mula sa {1}! +server_announce.war_declared = Nagdeklara ng digmaan ang {0} laban sa {1}! +server_announce.alliance_formed = Ang {0} at {1} ay mga kakampi na! +server_announce.alliance_broken = Ang {0} at {1} ay hindi na mga kakampi! + +# ========== Sistema ng Teleport ========== +teleport.cooldown_wait = Kailangan mong maghintay ng {0} bago mag-teleport muli. +teleport.warmup_start = Magta-teleport sa faction home sa loob ng {0} segundo... +teleport.combat_cancelled = Kinansela ang teleportation - ikaw ay nasa labanan! +teleport.success_default = Na-teleport sa faction home! +teleport.no_home = Walang home ang iyong paksyon. +teleport.world_not_found = Hindi nahanap ang mundo. +teleport.failed = Nabigo ang teleportation. +teleport.countdown = Magta-teleport sa loob ng {0} segundo... +teleport.countdown_one = Magta-teleport sa loob ng 1 segundo... +teleport.moved_cancelled = Kinansela ang teleportation - gumalaw ka! +teleport.damage_cancelled = Kinansela ang teleportation - tinamaan ka! +teleport.mount_teleport_blocked = Hindi ka maaaring mag-teleport sa zone na iyon habang nakasakay. +teleport.mount_entry_blocked = Hindi ka maaaring pumasok sa zone na ito habang nakasakay. + +# ========== Pagpapakita ng Chat ========== +chat.display.public = Publiko +chat.display.faction = Paksyon +chat.display.ally = Kakampi diff --git a/src/main/resources/Server/Languages/tl-PH/hyperfactions_admin.lang b/src/main/resources/Server/Languages/tl-PH/hyperfactions_admin.lang new file mode 100644 index 00000000..0708fde8 --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/hyperfactions_admin.lang @@ -0,0 +1,801 @@ +# HyperFactions Admin GUI - Filipino (Tagalog) na mga Salin +# Format: key = value +# Note: Ang mga key ay awtomatikong may prefix na "hyperfactions_admin." mula sa I18nModule ng Hytale + +# ========== Admin Navigation Bar ========== +nav.dashboard = Dashboard +nav.actions = Mga Aksyon +nav.factions = Mga Paksyon +nav.players = Mga Manlalaro +nav.economy = Ekonomiya +nav.zones = Mga Zone +nav.config = Config +nav.backups = Mga Backup +nav.log = Talaan +nav.updates = Mga Update +nav.help = Tulong +nav.version = Bersyon + +# ========== Mga Karaniwang Label ng Admin ========== +common.faction_not_found = Hindi Nahanap ang Paksyon +common.no_faction = Walang Paksyon +common.not_set = Hindi pa naitakda +common.on = Bukas +common.off = Sarado +common.enable = I-enable +common.disable = I-disable +common.none_paren = (Wala) +common.invalid_faction = Hindi wastong paksyon. +common.leader_prefix = Pinuno: {0} +common.members_suffix = {0} kasapi +common.claims_suffix = {0} claim +common.factions_suffix = {0} paksyon +common.players_suffix = {0} manlalaro +common.chunks_suffix = {0} chunks +common.entries_suffix = {0} tala +common.found_suffix = {0} nahanap +common.power_format = {0}/{1} kapangyarihan +common.raidable = Raidable +common.protected = Protektado +common.no_description = Walang itinakdang deskripsyon. +common.officers_more = +{0} pa +common.custom_max = (custom max) +common.default_max = (default max) +common.now = Ngayon +common.ago_suffix = {0} nakalipas +common.just_now = ngayon lang +common.no_membership_history = Walang kasaysayan ng pagsapi + +# ========== Admin Dashboard ========== +dashboard.factions_prefix = Mga Paksyon: {0} +dashboard.members_prefix = Kabuuang Kasapi: {0} +dashboard.claims_prefix = Kabuuang Claim: {0} + +# ========== Mga Aksyon ng Admin ========== +actions.confirm_reset = Kumpirmahin ang Reset? +actions.confirm_trigger = Kumpirmahin ang Trigger? +actions.kd_reset = Na-reset ang K/D para sa {0} manlalaro. +actions.kd_reset_failed = Nabigo ang pag-reset ng K/D: {0} +actions.upkeep_unavailable = Hindi magagamit ang upkeep processor. +actions.upkeep_triggered = Na-trigger ang koleksyon ng sustento. +actions.upkeep_failed = Nabigo ang sustento: {0} + +# ========== Admin Buwagin ========== +disband.faction_gone = Wala na ang paksyon. +disband.success = Ang paksyon na '{0}' ay nabuag na. +disband.failed = Nabigo ang pagbuag: {0} +disband.no_leader = Walang pinuno ang paksyon, hindi maaaring buwagin. + +# ========== Admin Unclaim Lahat ========== +unclaim.removed = [Admin] Tinanggal ang {0} claim mula sa {1}. +unclaim.no_claims = Walang claim na tinatanggal ang {0}. + +# ========== Listahan ng mga Paksyon ng Admin ========== +factions.home_not_set = Hindi pa naitakda +factions.teleported = Na-teleport sa home ng {0}. +factions.no_home = Walang itinakdang home ang paksyon. +factions.world_not_found = Hindi nahanap ang target na mundo. + +# ========== Impormasyon ng Paksyon ng Admin ========== +info.faction_gone = Wala na ang paksyon na ito. + +# ========== Mga Kasapi ng Paksyon ng Admin ========== +members.sort_role = Tungkulin +members.sort_online = Online +members.sort_name = Pangalan +members.sort_power = Kapangyarihan +members.promoted = [Admin] Na-promote si {0} sa {1}. +members.demoted = [Admin] Na-demote si {0} sa {1}. +members.kicked = [Admin] Pinalayas si {0} mula sa paksyon. + +# ========== Mga Relasyon ng Paksyon ng Admin ========== +relations.allies_header = MGA KAKAMPI ({0}) +relations.enemies_header = MGA KALABAN ({0}) +relations.no_allies = Walang mga kakampi. +relations.no_enemies = Walang mga kalaban. +relations.neutral_count = {0} neutral na paksyon +relations.since_today = Mula noong: ngayon +relations.since_one_day = Mula noong: 1 araw nakalipas +relations.since_days = Mula noong: {0} araw nakalipas +relations.set_ally = [Admin] Itinakda ang mutual na kakampi status sa {0}. +relations.set_enemy = Itinakda ang mutual na kalaban status sa {0}. +relations.set_neutral = [Admin] Itinakda ang mutual na neutral status sa {0}. + +# ========== Mga Setting ng Paksyon ng Admin ========== +settings.locked = Ang setting na ito ay naka-lock ng konpigurasyon ng server. +settings.perm_toggled = Itinakda ang {0} sa {1}. +settings.color_changed = Itinakda ang kulay ng paksyon sa {0}. +settings.recruitment_set = Itinakda ang recruitment sa {0}. +settings.no_home = [Admin] Walang itinakdang home ang paksyon na ito. +settings.home_cleared = Na-clear ang faction home para sa {0}. + +# ========== Mga Label ng Sort Dropdown ========== +sort.power = Kapangyarihan +sort.name = Pangalan +sort.members = Mga Kasapi +sort.balance = Balanse + +# ========== Mga Manlalaro ng Admin ========== +players.sort_last_online = Huling Online +players.sort_faction = Paksyon +players.sort_online = Online +players.not_online = Ang manlalaro ay hindi online. +players.world_not_found = Hindi nahanap ang target na mundo. +players.teleported = [Admin] Na-teleport kay {0}. + +# ========== Impormasyon ng Manlalaro ng Admin ========== +playerinfo.disband_faction = Buwagin ang Paksyon +playerinfo.kick_leader = Paalisin ang Pinuno +playerinfo.enter_valid_number = Maglagay ng wastong numero. +playerinfo.enter_valid_positive = Maglagay ng wastong positibong numero. +playerinfo.faction_gone = Wala na ang paksyon. +playerinfo.kd_reset = Na-reset ang K/D para kay {0}. +playerinfo.kicked_success = Pinalayas si {0} mula sa {1}. +playerinfo.kicked_leader = Pinalayas ang pinuno na si {0}. Nailipat ang pamumuno kay {1}. +playerinfo.disbanded_kick = [Admin] Ang paksyon na '{0}' ay nabuag (huling kasapi ay pinalayas). + +# ========== Ekonomiya ng Admin ========== +economy.no_data = Walang mga paksyon na may datos ng ekonomiya. +economy.amount_zero = Ang halaga ay hindi maaaring zero. +economy.enter_amount = Pakilagay ng halaga. +economy.invalid_number = Hindi wastong numero: {0} +economy.error = May naganap na error. +economy.balance_negative = Ang balanse ay hindi maaaring negatibo. +economy.failed = Nabigo: {0} +economy.bulk_complete = Nakumpleto ang bulk adjust: {0} {1} sa {2} paksyon. +economy.bulk_failures = ({0} nabigo) + +# ========== Mga Zone ng Admin ========== +zones.not_found = Hindi nahanap ang zone. +zones.invalid_id = Hindi wastong zone ID. +zones.deleted = Natanggal ang zone na {0}. +zones.delete_failed = Nabigo ang pagtanggal ng zone: {0} +zones.no_chunks = Walang chunks +zones.chunks_suffix = {0} ({1} chunks) + +# ========== Wizard ng Paggawa ng Zone ========== +wizard.enter_name = Pakilagay ng pangalan ng zone. +wizard.name_too_short = Ang pangalan ng zone ay dapat hindi bababa sa {0} karakter. +wizard.name_too_long = Ang pangalan ng zone ay hindi maaaring lumampas sa {0} karakter. +wizard.name_taken = Mayroon nang zone na may ganitong pangalan. +wizard.radius_range = Ang radius ay dapat nasa pagitan ng 1 at {0}. +wizard.create_failed = Hindi malikha ang zone: {0} +wizard.created_not_found = Nalikha ang zone ngunit hindi nahanap. +wizard.created = Nalikha ang {0} na '{1}'! +wizard.chunk_claimed = Na-claim ang chunk ({0}, {1}). +wizard.chunk_failed = Hindi ma-claim ang kasalukuyang chunk: {0} +wizard.radius_claimed = Na-claim ang {0} chunks sa {1} radius ng {2}. +wizard.radius_no_claims = Walang chunks na na-claim (maaaring okupado ang lugar). +wizard.no_claims = Nalikha ang zone na walang claim. +wizard.chunks_preview = ~{0} chunks + +# ========== Pagpapalit ng Pangalan ng Zone ========== +zone_rename.zone_gone = Wala na ang zone. +zone_rename.enter_name = Pakilagay ng pangalan ng zone. +zone_rename.too_short = Ang pangalan ng zone ay dapat hindi bababa sa {0} karakter. +zone_rename.too_long = Ang pangalan ng zone ay hindi maaaring lumampas sa {0} karakter. +zone_rename.same_name = Iyan na ang pangalan ng zone na ito. +zone_rename.renamed = [Admin] Pinalitan ang pangalan ng zone mula {0} sa {1}! +zone_rename.name_taken = Mayroon nang zone na may ganitong pangalan. +zone_rename.invalid_name = Hindi wastong pangalan ng zone. +zone_rename.rename_failed = Nabigo ang pagpalit ng pangalan ng zone: {0} + +# ========== Pagpapalit ng Uri ng Zone ========== +zone_type.zone_gone = Wala na ang zone. +zone_type.changed = [Admin] Pinalitan ang {0} mula {1} sa {2} ({3}). +zone_type.failed = Nabigo ang pagpalit ng uri ng zone: {0} +zone_type.flags_reset = na-reset ang mga flag +zone_type.flags_kept = napanatili ang mga flag + +# ========== Mga Integration Flag ng Zone ========== +zone_int.zone_not_found = Hindi Nahanap ang Zone +zone_int.no_plugin = (walang plugin) +zone_int.default = (default) +zone_int.custom = (custom) + +# Mga label ng UI ng integration flags +gui.zint_cat_gravestones = Mga Lapida +gui.zint_gravestones_desc = Kapag BUKAS, ang mga hindi may-ari ay maaaring mag-loot ng mga lapida. Ang mga may-ari ay palaging maaari. +gui.zint_cat_world_map = Mapa ng Mundo +gui.zint_world_map_desc = I-override ang pagtatago sa mapa para sa mga manlalaro sa zone na ito. Kapag naka-enable, piliin kung sino ang makakakita ng mga manlalaro sa zone na ito. +gui.zint_visibility_label = Antas ng Visibility: +gui.zint_cat_essentials = HyperEssentials +gui.zint_reset_defaults = I-reset sa Defaults +gui.zint_back_to_flags = Bumalik sa mga Flag +gui.zint_map_vis_faction = Paksyon Lamang +gui.zint_map_vis_ally = Paksyon + Mga Kakampi +gui.zint_map_vis_all = Lahat ng Manlalaro + +# ========== Talaan ng Aktibidad ========== +log.all_types = Lahat ng Uri +log.no_logs = Walang mga talaan ng aktibidad na tumutugma sa mga filter. + +# ========== Pahina ng Bersyon ========== +version.active = Aktibo +version.not_found = Hindi Nahanap +version.not_detected = Hindi Natukoy +version.not_installed = Hindi Naka-install +version.active_version = Aktibo (v{0}) +version.active_compatible = Aktibo (compatible) +version.active_claims_only = Aktibo (claims lamang) +version.installed_no_perm = Naka-install (walang perm provider) +version.active_provider = Aktibo ({0}) + +# ========== Pangunahing Pahina ng Admin ========== +main.reload_hint = Gamitin ang /f reload upang i-reload ang konpigurasyon. +main.unclaim_hint = Gamitin ang /f admin unclaim {0} upang i-unclaim ang lahat ng {1} chunks. + +# ========== Mga Flag/Setting ng Zone ========== +zflags.invalid_flag = Hindi wastong flag. +zflags.zone_not_found = Hindi nahanap ang zone. +zflags.conflict = (conflict) +zflags.mixin = (mixin) +zflags.reset_int = Na-reset ang mga integration flag sa defaults. +zflags.reset_all = Na-reset ang lahat ng flag sa defaults. +zflags.reset_failed = Nabigo ang pag-reset ng mga flag: {0} +zflags.back_to_settings = Bumalik sa mga Setting + +# Mga label ng UI ng zone settings +gui.zset_cat_combat = Labanan +gui.zset_cat_damage = Pinsala +gui.zset_cat_death = Kamatayan +gui.zset_cat_building = Pagtatayo +gui.zset_cat_interaction = Interaksyon +gui.zset_cat_transport = Transport +gui.zset_cat_items = Mga Bagay +gui.zset_cat_spawning = Pag-spawn ng Mob +gui.zset_cat_mob_clear = Pag-clear ng Mob +gui.zset_children_hint = (mga anak ay nalalapat lamang kapag BUKAS ang parent) +gui.zset_reset_defaults = I-reset sa Defaults +gui.zset_integration_flags = Mga Integration Flag +gui.zset_back_to_zones = Bumalik sa mga Zone +gui.zset_chunks = {0} chunks + +# Mga Display Name ng Zone Flag +gui.zflag_pvp_enabled = PvP Naka-enable +gui.zflag_friendly_fire = Friendly Fire +gui.zflag_friendly_fire_faction = Pinsala ng Paksyon +gui.zflag_friendly_fire_ally = Pinsala ng Kakampi +gui.zflag_projectile_damage = Pinsala ng Projectile +gui.zflag_mob_damage = Tumanggap ng Pinsala mula sa Mob +gui.zflag_pve_damage = Magbigay ng Pinsala sa Mob +gui.zflag_fall_damage = Pinsala sa Pagkahulog +gui.zflag_environmental_damage = Pinsala ng Kapaligiran +gui.zflag_explosion_damage = Pinsala ng Pagsabog +gui.zflag_fire_spread = Pagkalat ng Apoy +gui.zflag_keep_inventory = Panatilihin ang Inventory +gui.zflag_power_loss = Pagkawala ng Kapangyarihan +gui.zflag_build_allowed = Pinapayagan ang Pagtatayo +gui.zflag_block_place = Paglalagay ng Block +gui.zflag_hammer_use = Paggamit ng Hammer +gui.zflag_builder_tools_use = Mga Builder Tool +gui.zflag_block_interact = Interaksyon ng Block +gui.zflag_door_use = Paggamit ng Pinto +gui.zflag_container_use = Paggamit ng Lalagyan +gui.zflag_bench_use = Paggamit ng Bench +gui.zflag_processing_use = Paggamit ng Processing +gui.zflag_seat_use = Paggamit ng Upuan +gui.zflag_mount_use = Paggamit ng Mount +gui.zflag_light_use = Paggamit ng Ilaw +gui.zflag_npc_use = Interaksyon ng NPC +gui.zflag_crate_pickup = Pagpili ng Crate +gui.zflag_crate_place = Paglalagay ng Crate +gui.zflag_npc_tame = Pag-tame ng NPC +gui.zflag_npc_interact = Pakikipag-ugnayan sa NPC +gui.zflag_teleporter_use = Paggamit ng Teleporter +gui.zflag_portal_use = Paggamit ng Portal +gui.zflag_mount_entry = Pagsakay sa Mount +gui.zflag_item_drop = Pag-drop ng Bagay +gui.zflag_item_pickup = Auto Pickup +gui.zflag_item_pickup_manual = F-Key Pickup +gui.zflag_invincible_items = Mga Di-masisira na Bagay +gui.zflag_mob_spawning = Pag-spawn ng Mob +gui.zflag_hostile_mob_spawning = Mga Agresibong Mob +gui.zflag_passive_mob_spawning = Mga Pasibong Mob +gui.zflag_neutral_mob_spawning = Mga Neutral na Mob +gui.zflag_npc_spawning = Pag-spawn ng NPC +gui.zflag_mob_clear = Pag-clear ng Mob +gui.zflag_hostile_mob_clear = I-clear ang mga Agresibong Mob +gui.zflag_passive_mob_clear = I-clear ang mga Pasibong Mob +gui.zflag_neutral_mob_clear = I-clear ang mga Neutral na Mob +gui.zflag_gravestone_access = Iba ang Mag-loot ng Lapida +gui.zflag_show_on_map = Ipakita sa Mapa +gui.zflag_essentials_homes = Paggamit ng Home +gui.zflag_essentials_warps = Paggamit ng Warp +gui.zflag_essentials_kits = Pag-claim ng Kit + +# ========== Mga Katangian ng Zone ========== +zprop.current_custom = Kasalukuyan: "{0}" (custom) +zprop.current_default = Kasalukuyan: "{0}" (default) +zprop.pvp_disabled = PvP Naka-disable +zprop.pvp_enabled = PvP Naka-enable +zprop.name_empty = Ang pangalan ay hindi maaaring walang laman. +zprop.renamed = Ang zone ay pinalitan ng pangalan sa "{0}". +zprop.name_taken = Mayroon nang zone na may ganitong pangalan. +zprop.name_invalid = Hindi wastong pangalan (maximum 32 karakter). +zprop.rename_failed = Nabigo ang pagpalit ng pangalan: {0} +zprop.upper_empty = Ang upper title ay hindi maaaring walang laman. Gamitin ang Clear upang i-reset. +zprop.upper_set = Naitakda ang upper title. +zprop.upper_reset = Na-reset ang upper title sa default. +zprop.lower_empty = Ang lower title ay hindi maaaring walang laman. Gamitin ang Clear upang i-reset. +zprop.lower_set = Naitakda ang lower title. +zprop.lower_reset = Na-reset ang lower title sa default. + +# ========== Karagdagang Relasyon ========== +relations.failed = Nabigo: {0} + +# ========== Karagdagang Kasapi ========== +members.never = Kailanman +members.teleported = [Admin] Na-teleport kay {0}. + +# ========== Karagdagang Impormasyon ng Manlalaro ========== +playerinfo.records = {0} tala +playerinfo.joined_date = Sumali: {0} +playerinfo.current = Kasalukuyan +playerinfo.left_date = Umalis: {0} + +# ========== Mapa ng Zone ========== +map.world_warning = BABALA: Ikaw ay nasa '{0}' - ang zone ay nasa '{1}' +map.position = Iyong Posisyon: Chunk ({0}, {1}) +map.zone_gone = Wala na ang zone. +map.claimed = Na-claim ang chunk ({0}, {1}) para sa {2}. +map.claim_failed = Nabigo ang pag-claim ng chunk: {0} +map.unclaimed = Na-unclaim ang chunk ({0}, {1}) mula sa {2}. +map.unclaim_failed = Nabigo ang pag-unclaim ng chunk: {0} +map.chunk_belongs = Ang chunk na ito ay pag-aari ng {0}. +map.chunk_faction = Ang chunk na ito ay naka-claim ng isang paksyon. +map.chunk_protected = Ang chunk na ito ay nasa protektadong rehiyon. +map.another_zone = ibang zone + +# ========== Mga GUI Label Key (para sa lokalisasyon ng hardcoded text sa .ui) ========== + +# Mga Pamagat ng Pahina +gui.title_dashboard = Admin Dashboard +gui.title_main = Admin ng mga Paksyon +gui.title_actions = Admin: Mga Aksyon sa Server +gui.title_factions = Pamamahala ng Paksyon +gui.title_players = Pamamahala ng Manlalaro +gui.title_economy = Admin: Ekonomiya ng Server +gui.title_zones = Pamamahala ng Zone +gui.title_backups = Mga Backup +gui.title_config = Konpigurasyon +gui.title_help = Tulong ng Admin +gui.title_updates = Mga Update +gui.title_version = Bersyon at mga Integrasyon +gui.title_activity_log = Admin: Talaan ng Aktibidad +gui.title_player_info = Admin: Impormasyon ng Manlalaro +gui.title_faction_info = Admin: Impormasyon ng Paksyon +gui.title_faction_settings = Admin: Mga Setting ng Paksyon +gui.title_faction_members = Admin: Mga Kasapi +gui.title_faction_relations = Admin: Mga Relasyon +gui.title_zone_map = Editor ng Mapa ng Zone +gui.title_zone_settings = Admin: Mga Setting ng Zone +gui.title_zone_properties = Admin: Mga Katangian ng Zone +gui.title_bulk_economy = Bulk na Pagsasaayos ng Kaban ng Yaman +gui.title_economy_adjust = Admin: Ekonomiya + +# Mga label ng Dashboard +gui.dash_server_stats = Mga Estadistika ng Server +gui.dash_factions = Mga Paksyon +gui.dash_total_members = Kabuuang Kasapi +gui.dash_total_claims = Kabuuang Claim +gui.dash_zones = Mga Zone +gui.dash_safe_war = safe / war +gui.dash_total_power = Kabuuang Kapangyarihan +gui.dash_avg_power = Avg na Kapangyarihan/Paksyon +gui.dash_total_economy = Kabuuang Ekonomiya +gui.dash_wealthiest = Pinakamayaman +gui.dash_avg_balance = Avg na Balanse +gui.dash_protection_bypass = Protection Bypass: + +# Mga karaniwang button at label +gui.search = Maghanap: +gui.sort = Ayusin: +gui.prev = < Nakaraang +gui.next = Susunod > +gui.back = Bumalik +gui.done = Tapos +gui.cancel = Kanselahin +gui.apply = Ilapat +gui.set = Itakda +gui.reset = I-reset +gui.coming_soon = Malapit Na +gui.zones_btn = Mga Zone +gui.reload_btn = I-reload +gui.all = Lahat +gui.safe = Safe +gui.war = War +gui.create_zone = + Gumawa + +# Mga label ng pahina ng mga aksyon +gui.act_combat_stats = Mga Estadistika ng Labanan +gui.act_combat_desc = I-reset ang mga patay at kamatayan para sa LAHAT ng manlalaro sa server. Ang aksyon na ito ay hindi na maaaring ibalik. +gui.act_reset_kd = I-reset ang Lahat ng K/D +gui.act_economy = Ekonomiya +gui.act_economy_desc = Magdagdag o magtanggal ng pera mula sa LAHAT ng kaban ng yaman ng paksyon nang sabay-sabay. +gui.act_bulk_adjust = Bulk na Dagdag/Tanggal +gui.act_upkeep_collection = Koleksyon ng Sustento +gui.act_upkeep_desc = Manu-manong i-trigger ang koleksyon ng sustento para sa lahat ng paksyon ngayon din, anuman ang naka-iskedyul na timer. +gui.act_trigger_upkeep = I-trigger ang Sustento + +# Mga label ng placeholder na pahina +gui.backup_heading = Pamamahala ng Backup +gui.backup_desc1 = Gumawa, i-restore, at mamahala ng mga backup ng datos ng paksyon. +gui.backup_desc2 = Ang mga awtomatikong backup ay naka-save sa data/backups folder. +gui.config_heading = Editor ng Konpigurasyon +gui.config_desc1 = I-configure ang mga setting ng HyperFactions nang direkta mula sa GUI. +gui.config_desc2 = Sa ngayon, gamitin ang /f reload upang i-reload ang mga pagbabago sa konpigurasyon. +gui.help_heading = Dokumentasyon ng Admin +gui.help_desc1 = Tingnan ang dokumentasyon ng admin at sanggunian ng mga utos. +gui.help_desc2 = Para sa tulong, bisitahin ang wiki ng HyperFactions. +gui.updates_heading = Sentro ng mga Update +gui.updates_desc1 = Tingnan kung may mga bagong bersyon at tingnan ang mga changelog. +gui.updates_desc2 = Bisitahin ang pahina ng HyperFactions para sa mga pinakabagong update. + +# Mga label ng pahina ng bersyon +gui.ver_hyperfactions = HyperFactions +gui.ver_hytale_server = Hytale Server +gui.ver_java = Java +gui.ver_permissions = MGA PAHINTULOT +gui.ver_placeholders = MGA PLACEHOLDER +gui.ver_economy_section = EKONOMIYA +gui.ver_protection = PROTEKSYON +gui.ver_disabled = Naka-disable + +# Mga header ng column (ginagamit sa iba't ibang pahina) +gui.col_faction = Paksyon +gui.col_balance = Balanse +gui.col_members = Mga Kasapi +gui.col_actions = Mga Aksyon +gui.col_time = Oras +gui.col_type = Uri +gui.col_message = Mensahe + +# Mga label ng pahina ng ekonomiya +gui.econ_total_balance = Kabuuang Balanse +gui.econ_factions = Mga Paksyon +gui.econ_avg_balance = Avg na Balanse +gui.econ_in_grace = Nasa Grace +gui.econ_collected = Nakolekta (24h) +gui.econ_next_collection = Susunod na Koleksyon +gui.econ_no_data = Walang mga paksyon na may datos ng ekonomiya. + +# Mga label ng activity log +gui.log_type = Uri: +gui.log_time = Oras: +gui.log_player = Manlalaro: +gui.log_no_logs = Walang mga talaan ng aktibidad na tumutugma sa mga filter. + +# Mga label ng impormasyon ng manlalaro +gui.plr_first_joined = Unang sumali: +gui.plr_last_online = Huling online: +gui.plr_uuid = UUID: +gui.plr_faction = Paksyon: +gui.plr_role = Tungkulin: +gui.plr_view_faction = Tingnan ang Paksyon +gui.plr_power = Kapangyarihan +gui.plr_max_power = Max na Kapangyarihan +gui.plr_set_power = Itakda +gui.plr_reset_power = I-reset +gui.plr_set_max = Itakda +gui.plr_reset_max = I-reset +gui.plr_no_power_loss = Walang Pagkawala ng Kapangyarihan +gui.plr_no_claim_decay = Walang Claim Decay +gui.plr_kills = Mga Patay +gui.plr_deaths = Mga Kamatayan +gui.plr_kdr = K/D Ratio +gui.plr_reset_kd = I-reset ang K/D +gui.plr_kick = Paalisin +gui.plr_membership_history = Kasaysayan ng Pagsapi +gui.plr_no_faction_label = Wala sa isang paksyon +gui.plr_power_management = Pamamahala ng Kapangyarihan +gui.plr_combat_stats = Mga Estadistika ng Labanan +gui.plr_bypass_flags = Mga Bypass Flag +gui.plr_admin_controls = Mga Kontrol ng Admin +gui.plr_kd_subtitle = K / D +gui.plr_max_prefix = Max: +gui.plr_view = Tingnan +gui.plr_kick_from_faction = Paalisin mula sa Paksyon +gui.plr_set_max_btn = Itakda ang Max +gui.plr_combat = Labanan +gui.plr_reason_active = AKTIBO +gui.plr_reason_left = UMALIS +gui.plr_reason_kicked = PINALAYAS +gui.plr_reason_disbanded = NABUAG + +# Mga label ng entry ng kasapi +gui.mem_label_power = Kapangyarihan: +gui.mem_label_joined = Sumali: +gui.mem_label_last_death = Huling Kamatayan: +gui.mem_label_uuid = UUID: +gui.mem_btn_info = Info +gui.mem_btn_teleport = Teleport +gui.mem_btn_promote = I-promote +gui.mem_btn_demote = I-demote +gui.mem_btn_kick = Paalisin +gui.econ_not_enabled = Ang sistema ng ekonomiya ay hindi naka-enable. +gui.info_more = +{0} pa +gui.log_time_1h = 1h +gui.log_time_24h = 24h +gui.log_time_7d = 7d +gui.log_time_all = Lahat +gui.shape_circular = bilog +gui.shape_square = parisukat +gui.nav_title = Panel ng Admin +gui.econ_btn_adjust = Isaayos +gui.econ_btn_info = Info + +# Mga label ng impormasyon ng paksyon +gui.fac_description = Deskripsyon +gui.fac_power = Kapangyarihan +gui.fac_claims = Mga Claim +gui.fac_members = Mga Kasapi +gui.fac_recruitment = Recruitment +gui.fac_founded = Itinatag +gui.fac_allies = Mga Kakampi +gui.fac_enemies = Mga Kalaban +gui.fac_raidable = Katayuan ng Raidable +gui.fac_treasury = Kaban ng Yaman +gui.fac_leader = Pinuno +gui.fac_officers = Mga Opisyal +gui.fac_view_members = Tingnan ang mga Kasapi +gui.fac_view_relations = Tingnan ang mga Relasyon +gui.fac_view_settings = Mga Setting +gui.fac_disband = Buwagin ang Paksyon +gui.fac_power_management = Pamamahala ng Kapangyarihan +gui.fac_reset_all_power = I-reset ang Lahat ng Kapangyarihan +gui.fac_econ_adjust = Isaayos ang Balanse +gui.fac_econ_view_log = Tingnan ang Talaan ng Transaksyon +gui.fac_current_max = kasalukuyan / maximum +gui.fac_claimed_max = naka-claim / maximum +gui.fac_relations = Mga Relasyon +gui.fac_ally_enemy = kakampi / kalaban +gui.fac_status = Katayuan +gui.fac_info = Info +gui.fac_treasury_balance = balanse ng kaban ng yaman +gui.fac_leadership = Pamumuno +gui.fac_leader_label = Pinuno: +gui.fac_officers_label = Mga Opisyal: +gui.fac_econ_mgmt = Pamamahala ng Ekonomiya +gui.fac_danger_zone = Mapanganib na Zone +gui.fac_view_treasury = Tingnan ang Kaban ng Yaman + +# Mga label ng setting ng paksyon +gui.set_editing = Ine-edit: +gui.set_general = Mga Pangkalahatang Setting +gui.set_name = Pangalan +gui.set_tag = Tag +gui.set_description = Deskripsyon +gui.set_recruitment = Recruitment +gui.set_home = Lokasyon ng Home +gui.set_clear_home = I-clear ang Home +gui.set_disband_faction = Buwagin ang Paksyon +gui.set_faction_color = Kulay ng Paksyon +gui.set_admin_override = [Admin Override] +gui.set_territory_perms = Mga Pahintulot sa Teritoryo +gui.set_mob_spawning = Pag-spawn ng Mob +gui.set_faction_settings = Mga Setting ng Paksyon +gui.set_name_label = Pangalan: +gui.set_tag_label = Tag: +gui.set_desc_label = Desk: +gui.set_edit = I-edit +gui.set_status_label = Katayuan: +gui.set_location_label = Lokasyon: +gui.set_danger_zone = Mapanganib na Zone +gui.set_irreversible = Ang aksyon na ito ay hindi na maaaring ibalik. +gui.set_lock_hint = Ang ilang opsyon ay maaaring naka-lock ng server at hindi tatanggap ng mga pagbabago. +gui.set_appearance = Hitsura +gui.set_color_label = Kulay: +gui.set_mob_sub = (mga anak ay naka-disable kapag naka-off ang master) +gui.set_back_to_info = Bumalik sa Info +gui.set_col_out = Labas +gui.set_col_ally = Kakampi +gui.set_col_mem = Kasapi +gui.set_col_off = Opisyal +gui.set_cat_building = PAGTATAYO +gui.set_cat_interaction = INTERAKSYON +gui.set_cat_interact_sub = (mga anak ay naka-disable kapag naka-off ang Lahat) +gui.set_cat_other = IBA PA +gui.set_perm_break = Sirain +gui.set_perm_place = Ilagay +gui.set_perm_all = Lahat +gui.set_perm_door = Pinto +gui.set_perm_chest = Chest +gui.set_perm_bench = Bench +gui.set_perm_processing = Processing +gui.set_perm_seat = Upuan +gui.set_perm_transport = Transport +gui.set_perm_crate_use = Paggamit ng Crate +gui.set_perm_npc_tame = Pag-tame ng NPC +gui.set_perm_pve_damage = PvE Damage +gui.set_perm_mob_spawning = Pag-spawn ng Mob +gui.set_perm_hostile = Mga Agresibong Mob +gui.set_perm_passive = Mga Pasibong Mob +gui.set_perm_neutral = Mga Neutral na Mob +gui.set_perm_pvp = PvP sa Teritoryo +gui.set_perm_officers_edit = Maaaring mag-edit ang mga opisyal + +# Mga label ng relasyon ng paksyon +gui.rel_subtitle = Pamahalaan ang mga relasyon ng paksyon (nilalampasan ang pag-apruba) +gui.rel_set_new = Magtakda ng Bagong Relasyon +gui.rel_btn_ally = Kakampi +gui.rel_btn_neutral = Neutral +gui.rel_btn_enemy = Kalaban + +# Mga label ng pahina ng zone +gui.zone_sort_name = Pangalan +gui.zone_sort_type = Uri +gui.zone_sort_chunks = Mga Chunk +gui.zone_sort_world = Mundo +gui.zone_count_format = {0} {1}zones ({2} chunks) + +# Mga label ng mapa ng zone +gui.map_zone_chunk = Chunk ng Zone +gui.map_empty = Walang laman +gui.map_other_zone = Ibang Zone +gui.map_faction_claim = Claim ng Paksyon +gui.map_protected = Protektado +gui.map_your_pos = Iyong Posisyon +gui.map_click_hint = I-click upang mag-claim/mag-unclaim ng mga chunk +gui.map_legend_zone_safe = Itong Zone (Safe) +gui.map_legend_zone_war = Itong Zone (War) +gui.map_legend_other_safe = Ibang SafeZone +gui.map_legend_other_war = Ibang WarZone +gui.map_legend_faction = Claim ng Paksyon +gui.map_legend_unclaimed = Hindi naka-claim +gui.map_legend_you_here = Narito ka +gui.map_action_hint = Left-click: I-claim para sa zone | Right-click: I-unclaim mula sa zone +gui.map_done = Tapos + +# Mga label ng katangian ng zone +gui.zprop_general = Pangkalahatan +gui.zprop_zone_name = Pangalan ng Zone +gui.zprop_zone_type = Uri ng Zone +gui.zprop_change_type = Palitan ang Uri +gui.zprop_notifications = Mga Notipikasyon +gui.zprop_show_entry = Ipakita ang Entry Notification +gui.zprop_upper_title = Upper Title +gui.zprop_upper_desc = Upper Title (maliit na teksto sa itaas ng pangalan ng zone) +gui.zprop_lower_title = Lower Title +gui.zprop_lower_desc = Lower Title (malaking teksto ng pangalan ng zone) +gui.zprop_edit_flags = I-edit ang mga Flag +gui.zprop_back_to_zones = Bumalik sa mga Zone +gui.save = I-save +gui.clear = I-clear + +# Mga label ng bulk economy +gui.bulk_header = Isaayos ang Lahat ng Kaban ng Yaman ng Paksyon +gui.bulk_factions_label = Mga Paksyon: +gui.bulk_total_label = Kabuuang Balanse: +gui.bulk_amount_hint = Halaga (positibo upang magdagdag, negatibo upang magtanggal): +gui.bulk_hint = Ito ay ilalapat sa bawat paksyon na may kaban ng yaman +gui.bulk_warning_msg = Babala: Ang aksyon na ito ay nakakaapekto sa LAHAT ng paksyon at hindi na maaaring ibalik. +gui.bulk_apply_all = Ilapat sa Lahat +gui.bulk_operation = Operasyon +gui.bulk_add = Magdagdag +gui.bulk_remove = Magtanggal +gui.bulk_amount = Halaga +gui.bulk_warning = Ito ay makakaapekto sa LAHAT ng kaban ng yaman ng paksyon. +gui.bulk_preview = Preview + +# Mga label ng pagsasaayos ng ekonomiya +gui.ecadj_header = Isaayos ang Balanse ng Kaban ng Yaman +gui.ecadj_faction_label = Paksyon: +gui.ecadj_current_balance = Kasalukuyang Balanse: +gui.ecadj_amount_hint = Halaga (positibo upang magdagdag, negatibo upang ibawas): +gui.ecadj_preview_hint = Maglagay ng numero upang i-preview ang pagbabago +gui.ecadj_adjustment = Pagsasaayos: +gui.ecadj_set_balance = Itakda ang Balanse +gui.ecadj_confirm = Kumpirmahin +/- +gui.ecadj_operation = Operasyon +gui.ecadj_add = Magdagdag +gui.ecadj_remove = Magtanggal +gui.ecadj_set_to = Itakda Sa +gui.ecadj_amount = Halaga +gui.ecadj_new_balance = Bagong Balanse: + +# Mga label ng integrasyon ng pahina ng bersyon +gui.ver_hyperperms = HyperPerms +gui.ver_luckperms = LuckPerms +gui.ver_vault = VaultUnlocked +gui.ver_native = Hytale Native +gui.ver_hyperprotect = HyperProtect +gui.ver_orbisguard_mixins = OrbisGuard Mixins +gui.ver_orbisguard_api = OrbisGuard API +gui.ver_mixin_hooks = Mixin Hooks +gui.ver_gravestones = Mga Lapida +gui.ver_kyuubisoft = KyuubiSoft +gui.ver_placeholder_api = PlaceholderAPI +gui.ver_wiflow_papi = WiFlow PAPI +gui.ver_treasury = Kaban ng Yaman + +# Mga label ng modal ng kumpirmasyon ng unclaim lahat +gui.unclaim_title = I-unclaim ang Lahat ng Teritoryo +gui.unclaim_confirm_msg1 = Sigurado ka bang gusto mong i-unclaim ang lahat ng +gui.unclaim_confirm_msg2 = mula sa +gui.unclaim_warning = Ang aksyon na ito ay hindi na maaaring ibalik! +gui.unclaim_all = I-unclaim Lahat + +# Mga label ng modal ng pagpapalit ng pangalan ng zone +gui.zren_title = Palitan ang Pangalan ng Zone +gui.zren_current = Kasalukuyan: +gui.zren_new_name = Bagong Pangalan: + +# Mga label ng modal ng pagpapalit ng uri ng zone +gui.ztype_title = Palitan ang Uri ng Zone +gui.ztype_zone_label = Zone: +gui.ztype_current = Kasalukuyan: +gui.ztype_will_become = ay magiging +gui.ztype_new = Bago: +gui.ztype_warning1 = Ang iba't ibang uri ng zone ay may iba't ibang default na halaga ng flag. +gui.ztype_warning2 = Piliin kung paano pangasiwaan ang mga umiiral na setting ng flag: +gui.ztype_keep_desc = Panatilihin ang mga custom override +gui.ztype_keep_flags = Panatilihin ang mga Flag +gui.ztype_reset_desc = Gamitin ang mga default ng bagong uri +gui.ztype_reset_flags = I-reset ang mga Flag + +# Mga label ng wizard ng paggawa ng zone +gui.czw_title = Gumawa ng Zone +gui.czw_back = < Bumalik +gui.czw_create = Gumawa ng Zone +gui.czw_zone_type = Uri ng Zone +gui.czw_safe_desc = Protektado, walang PvP +gui.czw_war_desc = Labanan, PvP naka-enable +gui.czw_zone_name = Pangalan ng Zone +gui.czw_name_desc = Maglagay ng natatanging pangalan para sa zone +gui.czw_claim_method = Paraan ng Pag-claim +gui.czw_method_none_desc = Gumawa ng walang laman na zone +gui.czw_method_none = Walang claim +gui.czw_method_single_desc = Ang iyong kasalukuyang chunk +gui.czw_method_single = Isang chunk +gui.czw_method_circle_desc = Bilog na lugar +gui.czw_method_circle = Radius ng bilog +gui.czw_method_square_desc = Parisukat na lugar +gui.czw_method_square = Radius ng parisukat +gui.czw_method_map_desc = Interactive na chunk editor +gui.czw_method_map = Gamitin ang claim map +gui.czw_radius = Radius +gui.czw_custom_radius = Custom (1-50): +gui.czw_flags = Mga Flag +gui.czw_flags_defaults_desc = Batay sa uri ng zone +gui.czw_flags_defaults = Gamitin ang mga default +gui.czw_flags_customize_desc = Buksan ang mga setting pagkatapos +gui.czw_flags_customize = I-customize + +# ========== Mga Label ng Entry (mga listahan ng Paksyon/Manlalaro/Zone) ========== + +# Mga label ng entry ng paksyon +gui.fac_entry_power = kapangyarihan +gui.fac_entry_claims = mga claim +gui.fac_entry_members = mga kasapi +gui.fac_entry_created = Nilikha: +gui.fac_entry_home = Home: +gui.fac_entry_tp_home = TP Home +gui.fac_entry_view_info = Tingnan ang Info +gui.fac_entry_members_btn = Mga Kasapi +gui.fac_entry_settings = Mga Setting +gui.fac_entry_unclaim_all = I-unclaim Lahat +gui.fac_entry_disband = Buwagin + +# Mga label ng entry ng manlalaro +gui.plr_entry_role = Tungkulin: +gui.plr_entry_joined = Sumali: +gui.plr_entry_last_online = Huling Online: +gui.plr_entry_kdr = K/D/R: +gui.plr_entry_power = Kapangyarihan: +gui.plr_entry_uuid = UUID: +gui.plr_entry_info = Info +gui.plr_entry_teleport = Teleport +gui.plr_entry_na = N/A +gui.plr_entry_unknown = Hindi alam +gui.plr_entry_ago = {0} nakalipas + +# Mga label ng entry ng zone +gui.zone_entry_world = Mundo: +gui.zone_entry_chunks = Mga Chunk: +gui.zone_entry_bounds = Hangganan: +gui.zone_entry_created = Nilikha: +gui.zone_entry_edit_map = I-edit ang Mapa +gui.zone_entry_flags = Mga Flag +gui.zone_entry_settings = Mga Setting +gui.zone_entry_delete = Tanggalin diff --git a/src/main/resources/Server/Languages/tl-PH/hyperfactions_gui.lang b/src/main/resources/Server/Languages/tl-PH/hyperfactions_gui.lang new file mode 100644 index 00000000..c9b39c6b --- /dev/null +++ b/src/main/resources/Server/Languages/tl-PH/hyperfactions_gui.lang @@ -0,0 +1,866 @@ +# HyperFactions GUI - Filipino (Tagalog) na mga Salin +# Format: key = value +# Note: Ang mga key ay awtomatikong may prefix na "hyperfactions_gui." mula sa I18nModule ng Hytale + +# ========== Navigation Bar ========== +nav.dashboard = Dashboard +nav.chat = Chat +nav.members = Mga Kasapi +nav.invites = Mga Imbitasyon +nav.browser = Mag-browse +nav.map = Mapa +nav.leaderboard = Leaderboard +nav.relations = Mga Relasyon +nav.treasury = Kaban ng Yaman +nav.settings = Mga Setting +nav.logs = Mga Talaan +nav.help = Tulong +nav.admin = Admin +nav.create = Gumawa + +# ========== Mga Pangalan ng Kategorya ng Tulong ========== +help.category.welcome = Maligayang Pagdating +help.category.your_faction = Ang Iyong Paksyon +help.category.power_land = Kapangyarihan at Lupa +help.category.diplomacy = Diplomasya +help.category.combat = Labanan at Kaligtasan +help.category.economy = Ekonomiya +help.category.quick_ref = Mabilisang Sanggunian + +# ========== Mga Pangalan ng Kategorya ng Admin Help ========== +help.category.admin_overview = Pangkalahatang-tanaw +help.category.admin_factions = Mga Paksyon +help.category.admin_zones = Mga Zone +help.category.admin_power = Kapangyarihan +help.category.admin_economy = Ekonomiya +help.category.admin_config = Konpigurasyon +help.category.admin_maintenance = Pagpapanatili +help.category.admin_reference = Sanggunian + +# ========== Pangunahing Menu ========== +main_menu.title = HyperFactions +main_menu.section_my_faction = Aking Paksyon +main_menu.section_get_started = Magsimula +main_menu.section_territory = Teritoryo +main_menu.section_browse = Mag-browse +main_menu.section_admin = Admin +main_menu.claim_hint = Gamitin ang /f claim upang mag-claim ng teritoryo. + +# ========== Pahina ng Impormasyon ng Paksyon ========== +faction_info.title = Impormasyon ng Paksyon +faction_info.no_description = Walang itinakdang deskripsyon. +faction_info.status_open = Bukas +faction_info.status_invite_only = Sa Imbitasyon Lamang +faction_info.status_raidable = Raidable +faction_info.status_protected = Protektado +faction_info.officers_more = +{0} pa +faction_info.power_header = Kapangyarihan +faction_info.claims_header = Mga Claim +faction_info.members_header = Mga Kasapi +faction_info.relations_header = Mga Relasyon +faction_info.status_header = Katayuan +faction_info.treasury_header = Kaban ng Yaman +faction_info.current_max = kasalukuyan / maximum +faction_info.claimed_max = naka-claim / maximum +faction_info.ally_enemy = kakampi / kalaban +faction_info.faction_balance = balanse ng paksyon +faction_info.leader_label = Pinuno: +faction_info.officers_label = Mga Opisyal: +faction_info.view_members_btn = Tingnan ang mga Kasapi +faction_info.relations_btn = Mga Relasyon +faction_info.back_btn = Bumalik + +# ========== Modal ng Pagpapalit ng Pangalan ========== +rename.title = Palitan ang Pangalan ng Paksyon +rename.current_label = Kasalukuyan: +rename.new_name_label = Bagong Pangalan: +rename.no_permission = Wala kang pahintulot na palitan ang pangalan ng paksyon. +rename.enter_name = Pakilagay ng pangalan ng paksyon. +rename.too_short = Ang pangalan ng paksyon ay dapat hindi bababa sa {0} karakter. +rename.too_long = Ang pangalan ng paksyon ay hindi maaaring lumampas sa {0} karakter. +rename.same_name = Iyan na ang pangalan ng iyong paksyon. +rename.name_taken = Mayroon nang paksyon na may ganitong pangalan. +rename.success = Ang paksyon ay pinalitan ng pangalan mula {0} sa {1}! + +# ========== Modal ng Deskripsyon ========== +desc.title = I-edit ang Deskripsyon +desc.current_label = Kasalukuyan: +desc.new_desc_label = Bagong Deskripsyon: +desc.no_permission = Wala kang pahintulot na i-edit ang deskripsyon. +desc.display_none = (Wala) +desc.cleared = Na-clear na ang deskripsyon ng paksyon. +desc.updated = Na-update na ang deskripsyon ng paksyon! + +# ========== Modal ng Tag ========== +tag.title = I-edit ang Tag +tag.current_label = Kasalukuyan: +tag.instructions = Tag (1-5 karakter, mga letra at numero lamang): +tag.help_text = Ang mga tag ay lumalabas sa chat at sa mapa +tag.no_permission = Wala kang pahintulot na i-edit ang tag. +tag.display_none = (Wala) +tag.cleared = Na-clear na ang tag ng paksyon. +tag.too_short = Ang tag ay dapat hindi bababa sa {0} karakter. +tag.too_long = Ang tag ay hindi maaaring lumampas sa {0} karakter. +tag.invalid_format = Ang tag ay maaari lamang maglaman ng mga letra at numero. +tag.same_tag = Iyan na ang tag ng iyong paksyon. +tag.tag_taken = Mayroon nang paksyon na may ganitong tag. +tag.success = Ang tag ng paksyon ay naitakda sa [{0}]! + +# ========== Pahina ng Dashboard ========== +dashboard.title = Dashboard ng Paksyon +dashboard.power_label = Kapangyarihan +dashboard.land_label = Mga Claim +dashboard.members_label = Mga Kasapi +dashboard.online_label = Online +dashboard.allies_label = Mga Kakampi +dashboard.enemies_label = Mga Kalaban +dashboard.relations_label = Mga Relasyon +dashboard.ally_enemy_label = kakampi / kalaban +dashboard.status_label = Katayuan +dashboard.invites_label = Mga Imbitasyon +dashboard.sent_requests_label = naipadala / mga kahilingan +dashboard.treasury_label = Kaban ng Yaman +dashboard.upkeep_label = Sustento +dashboard.per_cycle = bawat siklo +dashboard.your_wallet = Ang Iyong Wallet +dashboard.personal_balance = personal na balanse +dashboard.quick_actions = Mga Mabilisang Aksyon +dashboard.teleport_label = Teleport +dashboard.territory_label = Teritoryo +dashboard.channel_label = Channel +dashboard.membership_label = Pagsapi +dashboard.recent_activity = Kamakailang Aktibidad +dashboard.view_all = Tingnan Lahat +dashboard.income_24h = Kita (24h) +dashboard.deposits_transfers_in = mga deposito, mga papasok na paglipat +dashboard.expenses_24h = Mga Gastos (24h) +dashboard.withdrawals_transfers_out = mga withdrawal, mga papalabas na paglipat +dashboard.faction_gone = Wala na ang iyong paksyon. +dashboard.available = {0} magagamit +dashboard.at_risk = Nasa Panganib! +dashboard.online_count = {0} online +dashboard.status_invite = Imbitasyon +dashboard.in_grace = SA GRACE +dashboard.billable_chunks = {0} billable chunks +dashboard.btn_home = Home +dashboard.btn_set_home = Itakda ang Home +dashboard.btn_claim = Claim +dashboard.chat_prefix = Chat: {0} +dashboard.btn_leave = Umalis +dashboard.no_activity = Walang kamakailang aktibidad. +dashboard.time_now = ngayon +dashboard.time_minutes = {0}m nakalipas +dashboard.time_hours = {0}h nakalipas +dashboard.time_days = {0}d nakalipas +dashboard.no_home_hint = Walang home ang iyong paksyon. Hilingin sa isang opisyal na magtakda ng isa. +dashboard.chat_mode_set = Chat mode: {0} +dashboard.claim_success = Na-claim ang chunk sa ({0}, {1}) +dashboard.upkeep_in = sa loob ng {0} + +# ========== Pangunahing Pahina ng Paksyon ========== +main.no_faction = Walang Paksyon +main.joined = Sumali ka na sa paksyon! +main.join_failed = Nabigo ang pagsali sa paksyon: {0} +main.invite_declined = Tinanggihan ang imbitasyon. +main.cooldown = Nasa cooldown ang teleport! {0}s ang natitira. +main.world_not_found = Hindi maaaring mag-teleport - hindi nahanap ang mundo. +main.leave_failed = Nabigo ang pag-alis: {0} + +# ========== Mga Ibinahaging Label ng GUI ========== +common.faction_count = {0} mga paksyon +common.leader_label = Pinuno: {0} +common.sort_power = Kapangyarihan +common.sort_members = Mga Kasapi +common.page_format = {0}/{1} +common.own_faction = (Ikaw) +common.search = Maghanap: +common.sort = Ayusin: +common.prev = < Nakaraang +common.next = Susunod > +common.treasury_not_available = Hindi magagamit ang kaban ng yaman. + +# ========== Pahina ng mga Kasapi ========== +members.title = Mga Kasapi +members.search_label = Maghanap: +members.sort_label = Ayusin: +members.prev_btn = < Nakaraang +members.next_btn = Susunod > +members.count = {0} kasapi +members.sort_role = Tungkulin +members.sort_last_online = Huling Online +members.just_now = ngayon lang +members.ago = {0} nakalipas +members.never = Kailanman +members.member_not_found = Hindi nahanap ang kasapi. +members.promoted = Na-promote si {0} sa {1}. +members.promote_failed = Nabigo ang pag-promote: {0} +members.demoted = Na-demote si {0} sa {1}. +members.demote_failed = Nabigo ang pag-demote: {0} +members.kicked = Pinalayas si {0} mula sa paksyon. +members.kick_failed = Nabigo ang pagpaalis: {0} +members.label_power = Kapangyarihan: +members.label_joined = Sumali: +members.label_last_death = Huling Kamatayan: +members.btn_promote = I-promote +members.btn_demote = I-demote +members.btn_kick = Paalisin +members.btn_make_leader = Gawing Pinuno +members.btn_profile = Profile +members.self_label = (Ikaw) + +# ========== Pahina ng Browser ========== +browser.title = Mag-browse ng mga Paksyon +browser.search_label = Maghanap: +browser.sort_label = Ayusin: +browser.prev_btn = < Nakaraang +browser.next_btn = Susunod > +browser.sort_name = Pangalan +browser.invalid_faction = Hindi wastong paksyon. +browser.label_power = kapangyarihan +browser.label_claims = mga claim +browser.label_members = mga kasapi +browser.label_recruitment = Recruitment: +browser.label_created = Nilikha: +browser.label_description = Deskripsyon: +browser.view_info_btn = Tingnan ang Info +browser.label_leader = Pinuno: +browser.no_description = Walang itinakdang deskripsyon + +# ========== Pahina ng Leaderboard ========== +leaderboard.title = Leaderboard ng Paksyon +leaderboard.rank_by = Ranggo ayon sa: +leaderboard.col_rank = # +leaderboard.col_faction = Paksyon +leaderboard.col_claims = Mga Claim +leaderboard.col_members = Mga Kasapi +leaderboard.prev_btn = < Nakaraang +leaderboard.next_btn = Susunod > +leaderboard.sort_kd = K/D +leaderboard.sort_territory = Teritoryo +leaderboard.sort_balance = Balanse + +# ========== Pahina ng Impormasyon ng Manlalaro ========== +playerinfo.title = Impormasyon ng Manlalaro +playerinfo.first_joined_label = Unang sumali: +playerinfo.last_online_label = Huling online: +playerinfo.faction_label = Paksyon: +playerinfo.role_label = Tungkulin: +playerinfo.joined_label_static = Sumali: +playerinfo.not_in_faction = Wala sa isang paksyon +playerinfo.power_header = Kapangyarihan +playerinfo.current_max = kasalukuyan / maximum +playerinfo.combat_header = Labanan +playerinfo.kills_deaths = mga patay / mga kamatayan +playerinfo.kdr_header = K/D Ratio +playerinfo.membership_history = Kasaysayan ng Pagsapi +playerinfo.view_faction_btn = Tingnan ang Paksyon +playerinfo.back_btn = Bumalik +playerinfo.now = Ngayon +playerinfo.history_count = {0} tala +playerinfo.joined_label = Sumali: {0} +playerinfo.current = Kasalukuyan +playerinfo.left_label = Umalis: {0} +playerinfo.no_history = Walang kasaysayan ng pagsapi +playerinfo.faction_gone = Wala na ang paksyon. +playerinfo.reason_active = AKTIBO +playerinfo.reason_left = UMALIS +playerinfo.reason_kicked = PINALAYAS +playerinfo.reason_disbanded = NABUAG + +# ========== Pahina ng mga Relasyon ========== +relations.title = Mga Relasyon +relations.tab_relations = Mga Relasyon +relations.tab_pending = Nakabinbin +relations.set_relation_btn = + Itakda ang Relasyon +relations.prev_btn = < Nakaraang +relations.next_btn = Susunod > +relations.relation_count = {0} relasyon +relations.request_count = {0} kahilingan +relations.type_ally = Kakampi +relations.type_enemy = Kalaban +relations.type_incoming = Papasok +relations.type_outgoing = Papalabas +relations.incoming_request = Papasok na kahilingan +relations.outgoing_request = Papalabas na kahilingan +relations.empty_relations = Wala pang mga relasyon. +relations.empty_relations_hint = Wala pang mga relasyon. I-click ang + ITAKDA ANG RELASYON upang magdagdag ng mga kakampi o kalaban. +relations.empty_pending = Walang nakabinbing kahilingan ng alyansa. +relations.today = Ngayon +relations.one_day_ago = 1 araw nakalipas +relations.days_ago = {0} araw nakalipas +relations.now_neutral = Neutral na sa {0}. +relations.now_enemies = Kalaban na ng {0}! +relations.request_sent = Naipadala ang kahilingan ng alyansa sa {0}. +relations.now_allied = Kakampi na ng {0}! +relations.request_declined = Tinanggihan ang kahilingan ng alyansa mula sa {0}. +relations.request_cancelled = Kinansela ang kahilingan ng alyansa sa {0}. +relations.failed = Nabigo: {0} +relations.search_hint = Maghanap ng paksyon upang itakda ang relasyon +relations.no_results = Walang nahanap na paksyon na tumutugma sa '{0}' +relations.power_display = {0} kapangyarihan +relations.member_count = {0} kasapi +relations.label_members = mga kasapi +relations.label_power = kapangyarihan +relations.label_since = Mula noong: +relations.label_claims = Mga Claim: +relations.label_direction = Direksyon: +relations.btn_view = Tingnan +relations.btn_neutral = Neutral +relations.btn_enemy = Kalaban +relations.btn_ally = Kakampi +relations.btn_accept = Tanggapin +relations.btn_decline = Tanggihan +relations.btn_cancel = Kanselahin + +# ========== Pahina ng mga Setting ========== +settings.title = Mga Setting ng Paksyon +settings.general = Pangkalahatan +settings.name_label = Pangalan: +settings.tag_label = Tag: +settings.desc_label = Desk: +settings.edit_btn = I-edit +settings.recruitment = Recruitment +settings.status_label = Katayuan: +settings.home_location = Lokasyon ng Home +settings.location_label = Lokasyon: +settings.set_home_btn = Itakda ang Home +settings.teleport_btn = Teleport +settings.delete_btn = Tanggalin +settings.optional_features = Mga Opsyonal na Feature +settings.configure_modules = I-configure ang mga opsyonal na module. +settings.modules_btn = Mga Module +settings.danger_zone = Mapanganib na Zone +settings.irreversible = Ang aksyon na ito ay hindi na maaaring ibalik. +settings.disband_btn = Buwagin ang Paksyon +settings.lock_hint = Ang ilang opsyon ay maaaring naka-lock ng server at hindi tatanggap ng mga pagbabago. +settings.territory_permissions = Mga Pahintulot sa Teritoryo +settings.col_out = Labas +settings.col_ally = Kakampi +settings.col_mem = Kasapi +settings.col_off = Opisyal +settings.cat_building = PAGTATAYO +settings.perm_break = Sirain +settings.perm_place = Ilagay +settings.cat_interaction = INTERAKSYON +settings.interaction_hint = (mga anak ay naka-disable kapag naka-off ang Lahat) +settings.perm_all = Lahat +settings.perm_door = Pinto +settings.perm_chest = Chest +settings.perm_bench = Bench +settings.perm_processing = Processing +settings.perm_seat = Upuan +settings.perm_transport = Transport +settings.cat_other = IBA PA +settings.perm_crate = Paggamit ng Crate +settings.perm_npc_tame = Pag-tame ng NPC +settings.perm_pve = PvE Damage +settings.appearance = Hitsura +settings.color_label = Kulay: +settings.mob_spawning = Pag-spawn ng Mob +settings.mob_spawning_hint = (mga anak ay naka-disable kapag naka-off ang master) +settings.mob_spawning_label = Pag-spawn ng Mob +settings.hostile_mobs = Mga Agresibong Mob +settings.passive_mobs = Mga Pasibong Mob +settings.neutral_mobs = Mga Neutral na Mob +settings.faction_settings = Mga Setting ng Paksyon +settings.pvp_in_territory = PvP sa Teritoryo +settings.officers_can_edit = Maaaring mag-edit ang mga opisyal +settings.leader_only = Pinuno lamang +settings.officers_only = Tanging mga opisyal at pinuno lamang ang maaaring magbago ng mga setting ng paksyon. +settings.display_none = (Wala) +settings.home_not_set = Hindi pa naitakda +settings.no_permission = Wala kang pahintulot na baguhin ang mga setting. +settings.only_leader_disband = Tanging ang pinuno lamang ang maaaring bumuag ng paksyon. +settings.perm_locked = Ang setting na ito ay naka-lock ng server. +settings.no_perm_edit = Wala kang pahintulot na i-edit ang mga pahintulot sa teritoryo. +settings.only_leader_officers = Tanging ang pinuno lamang ang maaaring magbago ng access ng opisyal. +settings.pvp_enabled = Naka-enable +settings.pvp_disabled = Naka-disable +settings.not_in_territory = Dapat ikaw ay nasa teritoryo ng iyong paksyon upang magtakda ng home. +settings.home_set = Ang faction home ay naitakda sa iyong kasalukuyang lokasyon! +settings.recruitment_set = Ang recruitment ay naitakda sa {0}. +settings.home_no_set = Walang itinakdang home ang iyong paksyon. +settings.home_deleted = Natanggal na ang faction home! + +# ========== Pahina ng mga Module ========== +modules.title = Mga Module ng Paksyon +modules.description = Mga opsyonal na feature upang pahusayin ang iyong paksyon +modules.configure_btn = I-configure +modules.back_btn = < Bumalik sa mga Setting +modules.treasury_name = Kaban ng Yaman +modules.treasury_desc = Sistema ng bangko at ekonomiya ng paksyon +modules.raids_name = Mga Raid +modules.raids_desc = Mga naka-iskedyul na labanan ng paksyon +modules.levels_name = Mga Antas +modules.levels_desc = Pag-unlad at XP ng paksyon +modules.war_name = Digmaan +modules.war_desc = Pormal na deklarasyon ng digmaan +modules.coming_soon = Malapit Na +modules.active = Aktibo +modules.view_treasury = Tingnan ang Kaban ng Yaman +modules.unavailable = Hindi Magagamit +modules.no_economy = Walang nakitang economy plugin +modules.disabled = Naka-disable +modules.economy_not_available = Ang mga feature ng ekonomiya ay hindi magagamit sa server na ito + +# ========== Pahina ng Kaban ng Yaman ========== +treasury.title = Kaban ng Yaman ng Paksyon +treasury.balance_label = Balanse +treasury.income_24h = Kita (24h) +treasury.deposits_transfers_in = mga deposito, mga papasok na paglipat +treasury.expenses_24h = Mga Gastos (24h) +treasury.withdrawals_transfers_out = mga withdrawal, mga papalabas na paglipat +treasury.maintenance = PAGPAPANATILI +treasury.runway_label = Runway: +treasury.add_funds = Magdagdag ng pondo +treasury.deposit_btn = Magdeposito +treasury.take_funds = Kumuha ng pondo +treasury.withdraw_btn = Mag-withdraw +treasury.send_to_faction = Ipadala sa paksyon +treasury.transfer_btn = Ilipat +treasury.treasury_config = Konpigurasyon ng kaban ng yaman +treasury.settings_btn = Mga Setting +treasury.recent_transactions = Mga Kamakailang Transaksyon +treasury.no_transactions = Wala pang mga transaksyon +treasury.col_date = Petsa +treasury.col_type = Uri +treasury.col_by = Ni +treasury.col_amount = Halaga +treasury.col_details = Mga Detalye +treasury.pay_now_btn = Magbayad Ngayon +treasury.cost_7d = 7d: +treasury.cost_14d = 14d: +treasury.cost_30d = 30d: +treasury.settings_title = Mga Setting ng Kaban ng Yaman +treasury.officer_permissions = MGA PAHINTULOT NG OPISYAL +treasury.allow_withdraw = Payagan ang mga Opisyal na Mag-withdraw +treasury.allow_transfer = Payagan ang mga Opisyal na Maglipat +treasury.limits_section = MGA LIMITASYON SA WITHDRAWAL AT PAGLIPAT +treasury.max_per_withdrawal = Maximum bawat withdrawal: +treasury.max_withdrawals_per = Maximum na withdrawal bawat period: +treasury.max_per_transfer = Maximum bawat paglipat: +treasury.max_transfers_per = Maximum na paglipat bawat period: +treasury.limit_period = Period ng limitasyon (oras): +treasury.no_limit_hint = Itakda sa 0 para walang limitasyon +treasury.upkeep_settings = MGA SETTING NG SUSTENTO +treasury.auto_pay_upkeep = Awtomatikong magbayad ng sustento mula sa kaban ng yaman +treasury.back_btn = Bumalik +treasury.upkeep_cost_format = {0} bawat {1}h +treasury.upkeep_time_left = {0} na lang +treasury.wallet_label = Ang iyong wallet: {0} +treasury.treasury_label = Balanse ng kaban ng yaman: {0} +treasury.chunks_detail = {0} libre + {1} billable chunks +treasury.cost_label = Halaga: {0} +treasury.pending = Nakabinbin +treasury.auto_pay_on = Auto-pay: BUKAS +treasury.auto_pay_off = Auto-pay: SARADO +treasury.runway_90_plus = 90+ araw +treasury.runway_days = {0} araw +treasury.runway_day = {0} araw +treasury.runway_less_day = < 1 araw +treasury.runway_no_funds = Walang pondo +treasury.grace_expires = Ang grace ay mag-e-expire sa: {0} +treasury.missed_payments = Mga napalampas na bayad: {0} +treasury.pay_to_clear = Magbayad ng {0} upang i-clear ang grace +treasury.system = Sistema +treasury.type_deposit = Deposito +treasury.type_withdrawal = Withdrawal +treasury.type_transfer_in = Papasok na Paglipat +treasury.type_transfer_out = Papalabas na Paglipat +treasury.type_player_transfer = Paglipat ng Manlalaro +treasury.type_upkeep = Sustento +treasury.type_tax = Koleksyon ng Buwis +treasury.type_war_cost = Gastos sa Digmaan +treasury.type_raid_cost = Gastos sa Raid +treasury.type_spoils = Mga Nakuha +treasury.type_admin = Pagsasaayos ng Admin +treasury.deposit_title = Magdeposito sa Kaban ng Yaman +treasury.withdraw_title = Mag-withdraw mula sa Kaban ng Yaman +treasury.fee_label = Bayarin ({0}%) +treasury.confirm_deposit = Kumpirmahin ang Deposito +treasury.confirm_withdrawal = Kumpirmahin ang Withdrawal +treasury.from_wallet = {0} mula sa wallet +treasury.to_wallet = {0} papunta sa wallet +treasury.enter_valid_amount = Maglagay ng wastong positibong halaga. +treasury.insufficient_wallet = Kulang ang pondo sa wallet. Kailangan ng {0}, mayroon ng {1}. +treasury.wallet_withdraw_failed = Nabigo ang pag-withdraw mula sa iyong wallet. +treasury.deposit_failed_returned = Nabigo ang pagdeposito. Ibinalik ang pera. +treasury.deposited = Nagdeposito ng {0} sa kaban ng yaman. +treasury.deposited_fee = Nagdeposito ng {0} sa kaban ng yaman. (bayarin: {1}) +treasury.no_withdraw_permission = Wala kang pahintulot na mag-withdraw. +treasury.withdraw_denied = Tinanggihan ang withdrawal: {0} +treasury.insufficient_treasury = Kulang ang pondo sa kaban ng yaman. +treasury.withdraw_limit = Lumampas sa limitasyon ng withdrawal. +treasury.withdraw_failed = Nabigo ang withdrawal: {0} +treasury.wallet_deposit_warn = Babala: Nabigo ang pagdeposito sa iyong wallet. Kontakin ang admin. +treasury.withdrew = Nag-withdraw ng {0} mula sa kaban ng yaman. +treasury.withdrew_fee = Nag-withdraw ng {0} mula sa kaban ng yaman. (bayarin: {1}, natanggap: {2}) +treasury.search_hint = Maghanap ng manlalaro o paksyon +treasury.no_results = Walang resulta para sa '{0}' +treasury.tag_player = [Manlalaro] +treasury.tag_faction = [Paksyon] +treasury.source_online = Online +treasury.source_offline = Offline +treasury.source_player_db = Manlalaro ng Hytale +treasury.no_transfer_permission = Wala kang pahintulot na maglipat. +treasury.transfer_denied = Tinanggihan ang paglipat: {0} +treasury.invalid_target_faction = Hindi wastong target na paksyon. +treasury.target_faction_gone = Wala na ang target na paksyon. +treasury.transfer_failed = Nabigo ang paglipat: {0} +treasury.transfer_failed_returned = Nabigo ang paglipat. Ibinalik ang pondo. +treasury.transferred = Naglipat ng {0} sa {1}. +treasury.invalid_target_player = Hindi wastong target na manlalaro. +treasury.player_transfer_failed = Nabigo ang pagdeposito sa wallet ng manlalaro. Ibinalik ang paglipat. +treasury.leader_only_perms = Tanging ang pinuno lamang ang maaaring magbago ng mga pahintulot sa kaban ng yaman. +treasury.leader_only_upkeep = Tanging ang pinuno lamang ang maaaring magbago ng mga setting ng sustento. +treasury.invalid_limit = Hindi wastong numero sa mga field ng limitasyon. Gamitin ang 0 para walang limitasyon. + +# ========== Mga Pahina ng Kumpirmasyon ========== +confirm.disband_title = Buwagin ang Paksyon +confirm.disband_prompt = Sigurado ka bang gusto mong buwagin ang +confirm.disband_warning = Ang aksyon na ito ay hindi na maaaring ibalik! +confirm.leave_title = Umalis sa Paksyon +confirm.leave_prompt = Sigurado ka bang gusto mong umalis sa +confirm.leave_warning = Mawawala ang iyong access sa teritoryo ng paksyon. +confirm.leader_leave_title = Umalis bilang Pinuno +confirm.leader_leave_prompt = Umaalis ka sa +confirm.transfer_title = Ilipat ang Pamumuno +confirm.transfer_prompt = Sigurado ka bang gusto mong ilipat ang pamumuno kay +confirm.transfer_warning = Ikaw ay magiging Opisyal. +confirm.disband_not_leader = Tanging ang pinuno lamang ang maaaring bumuag ng paksyon. +confirm.disbanded = Ang paksyon na '{0}' ay nabuag na. +confirm.disband_failed = Nabigo ang pagbuag ng paksyon. +confirm.succession_title = Ang pamumuno ay ililipat sa: +confirm.no_members_warning = BABALA: Walang ibang kasapi! +confirm.will_disband = Ang pag-alis ay permanenteng bubuwag sa paksyon. +confirm.not_in_faction = Wala ka sa paksyon na ito. +confirm.not_leader_anymore = Hindi ka na ang pinuno. +confirm.no_successor = Walang magpapalit. Gamitin na lang ang buwagin. +confirm.transfer_failed = Nabigo ang paglipat ng pamumuno: {0} +confirm.leader_left = Ang pamumuno ay nailipat kay {0}. Umalis ka na sa {1}. +confirm.leave_failed = Nabigo ang pag-alis sa paksyon: {0} +confirm.leader_cannot_leave = Ang mga pinuno ay hindi maaaring umalis. Ilipat ang pamumuno o buwagin ang paksyon. +confirm.left_faction = Umalis ka na sa {0}. +confirm.faction_gone = Wala na ang paksyon. +confirm.not_leader_transfer = Tanging ang pinuno lamang ang maaaring maglipat ng pamumuno. +confirm.leadership_transferred = Nailipat ang pamumuno kay {0}. + +# ========== Pahina ng Tagatingin ng mga Talaan ========== +logs.title = {0} - Mga Talaan ng Aktibidad +logs.entry_count = {0} tala +logs.filter_label = I-filter: +logs.col_time = Oras +logs.col_type = Uri +logs.col_message = Mensahe +logs.prev_btn = < Nakaraang +logs.next_btn = Susunod > +logs.all_types = Lahat ng Uri +logs.no_logs_type = Walang mga talaan ng ganitong uri. +logs.no_logs = Wala pang mga talaan ng aktibidad. +logs.time_just_now = ngayon lang +logs.time_minute = {0} minuto nakalipas +logs.time_minutes = {0} minuto nakalipas +logs.time_hour = {0} oras nakalipas +logs.time_hours = {0} oras nakalipas +logs.time_day = {0} araw nakalipas +logs.time_days = {0} araw nakalipas +logs.time_week = {0} linggo nakalipas +logs.time_weeks = {0} linggo nakalipas +logs.type_member_join = Sumali +logs.type_member_leave = Umalis +logs.type_member_kick = Paalis +logs.type_member_promote = Promote +logs.type_member_demote = Demote +logs.type_claim = Claim +logs.type_unclaim = Unclaim +logs.type_overclaim = Overclaim +logs.type_home_set = Home Naitakda +logs.type_relation_ally = Kakampi +logs.type_relation_enemy = Kalaban +logs.type_relation_neutral = Neutral +logs.type_leader_transfer = Paglipat +logs.type_settings_change = Mga Setting +logs.type_power_change = Kapangyarihan +logs.type_economy = Ekonomiya +logs.type_admin_power = Admin Power + +# Mga template ng mensahe sa log (i18n para sa nilalaman ng activity log) +# Mga aksyon ng manlalaro +logs.msg_faction_created = Nilikha ni {0} ang paksyon +logs.msg_member_joined = Sumali si {0} sa paksyon +logs.msg_member_left = Umalis si {0} sa paksyon +logs.msg_member_kicked = Pinalayas si {0} +logs.msg_member_promoted = Na-promote si {0} sa {1} +logs.msg_member_demoted = Na-demote si {0} sa {1} +logs.msg_leader_transferred = Nailipat ang pamumuno kay {0} +logs.msg_leader_left_transfer = Umalis si {0}, si {1} na ang pinuno +logs.msg_relation_set = Itinakda ang {0} bilang {1} +# Teritoryo +logs.msg_claimed = Na-claim ang chunk sa {0}, {1} sa {2} +logs.msg_unclaimed = Na-unclaim ang chunk sa {0}, {1} sa {2} +logs.msg_overclaim_lost = Nawala ang chunk sa {0}, {1} sa {2} +logs.msg_overclaim_taken = Na-overclaim ang chunk sa {0}, {1} mula sa {2} +logs.msg_all_unclaimed = Lahat ng teritoryo ay na-unclaim +logs.msg_claim_removed_world = Ang claim sa '{0}' ay tinanggal (hindi pinapayagan ng mundo ang pag-claim) +logs.msg_claims_lost_upkeep = Nawala ang {0} claim dahil sa sustento (napalampasan ang {1} bayad) +logs.msg_claims_removed_inactive = {0} claim ang tinanggal dahil sa kawalan ng aktibidad ({1} araw) +# Home +logs.msg_home_set = Naitakda ang home +logs.msg_home_cleared = Na-clear ang home +logs.msg_home_cleared_world = Ang home sa '{0}' ay na-clear (hindi pinapayagan ng mundo ang pag-claim) +# Mga Setting +logs.msg_renamed = Pinalitan ang pangalan mula '{0}' sa '{1}' +logs.msg_set_open = Ang paksyon ay itinakda sa bukas +logs.msg_set_closed = Ang paksyon ay itinakda sa imbitasyon lamang +logs.msg_desc_set = Naitakda ang deskripsyon +logs.msg_desc_cleared = Na-clear ang deskripsyon +logs.msg_color_changed = Pinalitan ang kulay sa '{0}' +# Ekonomiya +logs.msg_deposit = Deposito: {0} (+{1}) +logs.msg_withdrawal = Withdrawal: {0} (-{1}) +logs.msg_upkeep_paid = Naibayad ang sustento: {0} ({1} billable chunks) +logs.msg_upkeep_grace_started = Nabigo ang sustento: nagsimula ang grace period ({0}h) +logs.msg_upkeep_missed = Napalampasan ang sustento (bayad {0}), ang grace ay mag-e-expire sa {1} +logs.msg_upkeep_manual = Naibayad ang sustento nang mano-mano: {0} ({1} billable chunks, na-clear ang grace) +# Admin power +logs.msg_admin_power_set = Itinakda ng Admin ang kapangyarihan ni {0} sa {1} (dating {2}) +logs.msg_admin_power_add = Nagdagdag ang Admin ng {0} kapangyarihan kay {1} ({2} -> {3}) +logs.msg_admin_power_remove = Tinanggal ng Admin ang {0} kapangyarihan mula kay {1} ({2} -> {3}) +logs.msg_admin_power_reset = Na-reset ng Admin ang kapangyarihan ni {0} sa {1} (dating {2}) +logs.msg_admin_power_adjusted = In-adjust ng Admin ang kapangyarihan ni {0} ng {1} ({2} -> {3}) +logs.msg_admin_maxpower_set = Itinakda ng Admin ang max power ni {0} sa {1} (dating {2}) +logs.msg_admin_maxpower_reset = Na-reset ng Admin ang max power ni {0} sa global default ({1}) +logs.msg_admin_powerloss_enabled = In-enable ng Admin ang power loss para kay {0} +logs.msg_admin_powerloss_disabled = In-disable ng Admin ang power loss para kay {0} +logs.msg_admin_decay_enabled = In-enable ng Admin ang claim decay exemption para kay {0} +logs.msg_admin_decay_disabled = In-disable ng Admin ang claim decay exemption para kay {0} +logs.msg_admin_kd_reset = Na-reset ng Admin ang K/D para kay {0} +logs.msg_admin_power_set_all = Itinakda ng Admin ang kapangyarihan ng lahat ng {0} kasapi sa {1} +logs.msg_admin_power_add_all = Nagdagdag ang Admin ng {0} kapangyarihan sa lahat ng {1} kasapi +logs.msg_admin_power_remove_all = Tinanggal ng Admin ang {0} kapangyarihan mula sa lahat ng {1} kasapi +logs.msg_admin_power_reset_all = Na-reset ng Admin ang kapangyarihan ng lahat ng {0} kasapi +logs.msg_admin_power_adjusted_all = In-adjust ng Admin ang kapangyarihan ng lahat ng {0} kasapi ng {1} +# Admin faction +logs.msg_admin_kicked = [Admin] Pinalayas si {0} +logs.msg_admin_role_set = [Admin] Itinakda ang tungkulin ni {0} sa {1} +logs.msg_admin_leader_kick = [Admin] Nailipat ang pamumuno mula kay {0} kay {1} (admin kick) +logs.msg_admin_econ_added = Idinagdag ng Admin: {0} (balanse: {1}) +logs.msg_admin_econ_deducted = Ibinawas ng Admin: {0} (balanse: {1}) +logs.msg_admin_econ_set = Itinakda ng Admin ang balanse sa {0} (dating {1}) +# Import +logs.msg_left_import = Umalis si {0} (na-import sa ibang paksyon) +logs.msg_leader_import_transfer = Si {0} ay naging pinuno (ang dating pinuno ay na-import sa ibang paksyon) +logs.msg_imported_from = Ang paksyon ay na-import mula sa {0} + +# ========== Pahina ng Chat ========== +chat.title = Chat ng Paksyon +chat.tab_faction = Paksyon +chat.tab_ally = Kakampi +chat.send_btn = Ipadala +chat.placeholder = Mag-type ng mensahe... +chat.no_messages = Wala pang mga mensahe. +chat.no_ally_permission = Wala kang pahintulot para sa ally chat. +chat.no_permission = Walang pahintulot. +chat.faction_gone = Wala na ang iyong paksyon. +chat.time_now = ngayon +chat.time_minutes = {0}m +chat.time_hours = {0}h + +# ========== Pahina ng mga Imbitasyon ========== +invites.title = Mga Imbitasyon +invites.tab_outgoing = Papalabas +invites.tab_requests = Mga Kahilingan +invites.prev_btn = < Nakaraang +invites.next_btn = Susunod > +invites.invite_count = {0} imbitasyon +invites.request_count = {0} kahilingan +invites.invited_by = Inimbitahan ni: {0} +invites.no_message = Walang mensahe +invites.expires = Mag-e-expire: {0} +invites.type_outgoing = Papalabas +invites.type_request = Kahilingan +invites.invited_by_label = Inimbitahan ni: +invites.empty_outgoing = Walang papalabas na imbitasyon. Gamitin ang /f invite upang mag-imbita. +invites.empty_requests = Walang mga kahilingan na sumali. Ang mga manlalaro ay maaaring humiling na sumali gamit ang /f request. +invites.invalid_player = Hindi wastong manlalaro. +invites.cancelled_invite = Kinansela ang imbitasyon kay {0}. +invites.player_joined = Sumali na si {0} sa paksyon! +invites.faction_full = Puno na ang paksyon. Hindi maaaring tanggapin ang kahilingan. +invites.add_failed = Nabigo ang pagdagdag ng manlalaro sa paksyon. +invites.request_expired = Hindi nahanap o nag-expire na ang kahilingan. +invites.request_declined = Tinanggihan ang kahilingan na sumali mula kay {0}. +invites.time_seconds = {0}s +invites.time_minutes = {0}m +invites.time_hours = {0}h +invites.label_message = Mensahe: +invites.btn_cancel = Kanselahin +invites.btn_accept = Tanggapin +invites.btn_decline = Tanggihan + +# ========== Pahina ng Mapa ========== +map.title = Mapa ng Teritoryo +map.action_hint = Left-click: Claim | Right-click: Unclaim +map.legend_your = Iyong Teritoryo +map.legend_ally = Teritoryo ng Kakampi +map.legend_enemy = Teritoryo ng Kalaban +map.legend_other = Ibang Paksyon +map.legend_wilderness = Ilang +map.legend_safe = Safe Zone +map.legend_war = War Zone +map.legend_you = Narito Ka +map.position = Iyong Posisyon: Chunk ({0}, {1}) +map.legend_protected = Protektado +map.claim_stats = Mga Claim: {0}/{1} ({2} Magagamit) +map.overclaimed = NA-OVERCLAIM ng {0}! +map.power_display = Kapangyarihan: {0}/{1} +map.join_to_claim = Sumali sa isang paksyon upang mag-claim +map.claim_success = Na-claim ang chunk sa ({0}, {1})! +map.claim_not_in_faction = Dapat ikaw ay nasa isang paksyon upang mag-claim ng teritoryo. +map.claim_not_officer = Tanging mga opisyal at pinuno lamang ang maaaring mag-claim ng teritoryo. +map.claim_already_yours = Pagmamay-ari mo na ang chunk na ito. +map.claim_already_claimed = Ang chunk na ito ay naka-claim na ng ibang paksyon. +map.claim_not_adjacent = Maaari ka lamang mag-claim ng mga chunk na katabi ng iyong teritoryo. +map.claim_max = Naabot mo na ang maximum na claim limit. +map.claim_world_not_allowed = Hindi pinapayagan ang pag-claim sa mundong ito. +map.claim_orbisguard = Ang lugar na ito ay protektado ng OrbisGuard. +map.claim_failed = Nabigo ang pag-claim ng chunk. +map.unclaim_success = Na-unclaim ang chunk sa ({0}, {1}). +map.unclaim_not_in_faction = Dapat ikaw ay nasa isang paksyon. +map.unclaim_not_officer = Tanging mga opisyal at pinuno lamang ang maaaring mag-unclaim ng teritoryo. +map.unclaim_not_claimed = Ang chunk na ito ay hindi naka-claim. +map.unclaim_not_yours = Ang chunk na ito ay pag-aari ng ibang paksyon. +map.unclaim_home = Hindi maaaring i-unclaim ang chunk na naglalaman ng iyong faction home. +map.unclaim_failed = Nabigo ang pag-unclaim ng chunk. +map.overclaim_success = Na-overclaim ang chunk ng kalaban sa ({0}, {1})! +map.overclaim_not_in_faction = Dapat ikaw ay nasa isang paksyon. +map.overclaim_not_officer = Tanging mga opisyal at pinuno lamang ang maaaring mag-overclaim ng teritoryo. +map.overclaim_already_yours = Pagmamay-ari mo na ang chunk na ito. +map.overclaim_ally = Hindi mo maaaring i-overclaim ang teritoryo ng kakampi. +map.overclaim_has_power = Ang paksyon na ito ay may sapat na kapangyarihan upang ipagtanggol ang kanilang teritoryo. +map.overclaim_max = Naabot mo na ang maximum na claim limit. +map.overclaim_failed = Nabigo ang pag-overclaim ng chunk. +# ========== Pahina ng Paggawa ng Paksyon ========== +create.title = Gumawa ng Iyong Paksyon +create.section_preview = Preview +create.section_basic_info = Pangunahing Impormasyon +create.section_details = Mga Detalye +create.name_prefix = Pangalan: +create.faction_name_label = Pangalan ng Paksyon * +create.tag_label = TAG (2-4 karakter, awtomatiko kung walang laman) +create.desc_label = Deskripsyon (Opsyonal) +create.recruitment_label = Recruitment +create.section_faction_color = Kulay ng Paksyon +create.section_combat = Labanan +create.create_btn = Gumawa ng Paksyon +create.preview_name = Pangalan ng Iyong Paksyon +create.leader_prefix = Pinuno: {0} +create.enter_name = Pakilagay ng pangalan ng paksyon. +create.name_too_short = Ang pangalan ng paksyon ay dapat hindi bababa sa {0} karakter. +create.name_too_long = Ang pangalan ng paksyon ay hindi maaaring lumampas sa {0} karakter. +create.name_taken = Mayroon nang paksyon na may ganitong pangalan. +create.tag_length = Ang tag ng paksyon ay dapat {0}-{1} karakter. +create.tag_format = Ang tag ng paksyon ay maaari lamang maglaman ng mga letra at numero. +create.desc_too_long = Ang deskripsyon ay hindi maaaring lumampas sa {0} karakter. +create.created = Matagumpay na nalikha ang paksyon na {0}! +create.created_no_dashboard = Nalikha ang paksyon ngunit hindi mabuksan ang dashboard. +create.invalid_name = Hindi wastong pangalan ng paksyon. +create.create_failed = Hindi malikha ang paksyon. + +# ========== Mga Pahina para sa Bagong Manlalaro ========== +newplayer.browse_title = Mag-browse ng mga Paksyon +newplayer.invites_title = Mga Imbitasyon at Kahilingan +newplayer.map_title = Mapa ng Teritoryo +newplayer.view_only_badge = Tingnan Lamang +newplayer.legend_label = Alamat: +newplayer.legend_safezone = SafeZone +newplayer.legend_warzone = WarZone +newplayer.legend_faction = Paksyon +newplayer.legend_wilderness = Ilang +newplayer.search_label = Maghanap: +newplayer.sort_label = Ayusin: +newplayer.prev_btn = < Nakaraang +newplayer.next_btn = Susunod > +newplayer.pending_count = {0} nakabinbin +newplayer.received_header = MGA NATANGGAP NA IMBITASYON ({0}) +newplayer.requests_header = MGA KAHILINGAN MO ({0}) +newplayer.no_invites = Walang imbitasyon. Mag-browse ng mga paksyon upang makahanap ng isa! +newplayer.no_requests = Walang nakabinbing kahilingan. +newplayer.invited_by = Inimbitahan ni: {0} +newplayer.member_count = {0} kasapi +newplayer.power_count = {0} kapangyarihan +newplayer.claim_count = {0} claim +newplayer.awaiting_review = Hinihintay ang pagsusuri +newplayer.expires_in = Mag-e-expire sa {0}h +newplayer.time_just_now = ngayon lang +newplayer.time_minutes = {0} min nakalipas +newplayer.time_hours = {0}h nakalipas +newplayer.time_days = {0}d nakalipas +newplayer.invalid_faction = Hindi wastong paksyon. +newplayer.invite_expired = Ang imbitasyong ito ay nag-expire na o binawi. +newplayer.faction_gone = Wala na ang paksyon. +newplayer.joined = Sumali ka na sa {0}! +newplayer.faction_full = Puno na ang paksyon na ito. +newplayer.join_failed = Hindi makasali sa paksyon. +newplayer.invite_declined = Tinanggihan ang imbitasyon. +newplayer.request_cancelled = Kinansela ang kahilingan na sumali sa {0}. +newplayer.faction_count = {0} mga paksyon +newplayer.browse_subtitle = Hanapin ang iyong bagong tahanan! +newplayer.sort_power = Kapangyarihan +newplayer.sort_name = Pangalan +newplayer.sort_members = Mga Kasapi +newplayer.btn_accept = Tanggapin +newplayer.btn_pending = Nakabinbin +newplayer.btn_join = Sumali +newplayer.btn_request = Humiling +newplayer.invite_only_msg = Ang paksyon na ito ay sa imbitasyon lamang. +newplayer.welcome_hint = Maligayang pagdating! Gamitin ang /f upang buksan ang menu ng paksyon. +newplayer.faction_open_hint = Bukas ang paksyon na ito! I-click ang SUMALI sa halip. +newplayer.already_requested = Mayroon ka nang nakabinbing kahilingan sa paksyon na ito. +newplayer.has_invite_hint = May imbitasyon ka mula sa paksyon na ito! I-click ang TANGGAPIN sa halip. +newplayer.request_sent = Naipadala ang kahilingan na sumali sa {0}! +newplayer.officer_review = Susuriin ng isang opisyal ang iyong kahilingan. +newplayer.map_hint = Tingnan Lamang - Sumali sa isang paksyon upang mag-claim ng teritoryo! + +# Mga Setting ng Manlalaro +nav.player_settings = Manlalaro +player_settings.title = Mga Setting ng Manlalaro +player_settings.language_section = Wika +player_settings.auto_detect = Awtomatikong tuklasin mula sa client +player_settings.auto_detect_desc = Ginagamit ang setting ng wika ng iyong game client +player_settings.language_label = Wika +player_settings.notifications_section = Mga Notipikasyon +player_settings.territory_alerts = Mga Alerto sa Teritoryo +player_settings.territory_alerts_desc = Magpakita ng mga notipikasyon kapag pumapasok/umaalis sa mga teritoryo +player_settings.death_announcements = Mga Broadcast ng Kamatayan +player_settings.death_announcements_desc = Tumanggap ng mga anunsyo ng lokasyon ng kamatayan ng kasapi ng paksyon +player_settings.power_notifications = Mga Pagbabago sa Kapangyarihan +player_settings.power_notifications_desc = Magpakita ng mga mensahe kapag nagbabago ang iyong kapangyarihan +player_settings.language_changed = Ang wika ay pinalitan sa {0} +player_settings.pref_enabled = Na-enable ang {0} +player_settings.pref_disabled = Na-disable ang {0} + +# ========== Mga Pahina ng Tulong ========== +help.center_title = Sentro ng Tulong +help.getting_started_title = Pagsisimula +help.what_are_factions_title = Ano ang mga Paksyon? +help.what_are_factions_1 = Ang mga paksyon ay mga grupong ginawa ng manlalaro na nagtutulungan +help.what_are_factions_2 = upang mag-claim ng teritoryo, magtayo ng mga base, at makipagkompetensya. +help.what_are_factions_bullet_1 = - Protektadong teritoryo para sa pagtatayo +help.what_are_factions_bullet_2 = - Mga kakampi na makakalaro +help.what_are_factions_bullet_3 = - Access sa faction chat at mga feature +help.joining_title = Pagsali sa isang Paksyon +help.joining_desc = Mayroong ilang paraan upang sumali sa isang paksyon: +help.joining_bullet_1 = - Browse - Maghanap ng bukas na paksyon at i-click ang SUMALI +help.joining_bullet_2 = - Imbitasyon - Tanggapin ang mga imbitasyon mula sa mga opisyal +help.joining_bullet_3 = - Humiling - Humingi na sumali sa mga paksyon na sa imbitasyon lamang +help.creating_title = Paggawa ng Paksyon +help.creating_desc = Pumunta sa tab na Gumawa upang magsimula ng iyong sariling paksyon. +help.creating_bullet_1 = - Mag-imbita at mamahala ng mga kasapi +help.creating_bullet_2 = - Mag-claim at protektahan ang teritoryo +help.commands_title = Mga Mabilisang Utos +help.cmd_f = /f - Buksan ang menu ng paksyon +help.cmd_f_list = /f list - Ilista ang lahat ng mga paksyon +help.cmd_f_join = /f join - Sumali sa isang bukas na paksyon +help.cmd_f_create = /f create - Gumawa ng bagong paksyon +help.cmd_f_help = /f help - Buong listahan ng mga utos +help.tip = Tip: Mag-browse ng mga paksyon upang makahanap ng grupong bagay sa iyo! From 8ad07b737c394bfbe61e343abacea437013ffb9a Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:13:42 -0700 Subject: [PATCH 66/76] i18n: add all 13 locales to settings dropdown and CI verification - Update AVAILABLE_LOCALES to include all 13 supported languages - Update fallback.lang documentation with all locale statuses - Add GitHub Action to verify missing translation keys on push/PR --- .github/workflows/check-translations.yml | 85 +++++++++++++++++++ .../gui/shared/page/PlayerSettingsPage.java | 13 ++- .../resources/Server/Languages/fallback.lang | 24 ++++-- 3 files changed, 113 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/check-translations.yml diff --git a/.github/workflows/check-translations.yml b/.github/workflows/check-translations.yml new file mode 100644 index 00000000..e83358eb --- /dev/null +++ b/.github/workflows/check-translations.yml @@ -0,0 +1,85 @@ +name: Check Translations + +on: + push: + paths: + - 'src/main/resources/Server/Languages/**/*.lang' + pull_request: + paths: + - 'src/main/resources/Server/Languages/**/*.lang' + +jobs: + check-translations: + name: Verify locale keys + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Check for missing translation keys + run: | + LANG_DIR="src/main/resources/Server/Languages" + EN_DIR="$LANG_DIR/en-US" + EXIT_CODE=0 + TOTAL_MISSING=0 + + if [ ! -d "$EN_DIR" ]; then + echo "::error::No en-US directory found at $EN_DIR" + exit 1 + fi + + # Collect en-US keys per file + for en_file in "$EN_DIR"/*.lang; do + [ -f "$en_file" ] || continue + filename=$(basename "$en_file") + + # Extract keys (non-blank, non-comment lines before '=') + en_keys=$(grep -v '^\s*#' "$en_file" | grep -v '^\s*$' | sed 's/=.*//' | sed 's/\s*$//' | sort) + en_count=$(echo "$en_keys" | wc -l) + + # Check each locale + for locale_dir in "$LANG_DIR"/*/; do + locale=$(basename "$locale_dir") + [ "$locale" = "en-US" ] && continue + + locale_file="$locale_dir/$filename" + + if [ ! -f "$locale_file" ]; then + echo "::error file=$locale_file::[$locale] MISSING FILE: $filename ($en_count keys)" + TOTAL_MISSING=$((TOTAL_MISSING + en_count)) + EXIT_CODE=1 + continue + fi + + # Extract locale keys + locale_keys=$(grep -v '^\s*#' "$locale_file" | grep -v '^\s*$' | sed 's/=.*//' | sed 's/\s*$//' | sort) + + # Find missing keys + missing=$(comm -23 <(echo "$en_keys") <(echo "$locale_keys")) + + if [ -n "$missing" ]; then + count=$(echo "$missing" | wc -l) + echo "::warning file=$locale_file::[$locale] $filename: $count missing key(s)" + echo "$missing" | while read -r key; do + echo " - $key" + done + TOTAL_MISSING=$((TOTAL_MISSING + count)) + EXIT_CODE=1 + fi + + # Find extra keys (in locale but not in en-US) + extra=$(comm -13 <(echo "$en_keys") <(echo "$locale_keys")) + if [ -n "$extra" ]; then + extra_count=$(echo "$extra" | wc -l) + echo "::notice file=$locale_file::[$locale] $filename: $extra_count extra key(s) not in en-US" + fi + done + done + + echo "" + if [ $TOTAL_MISSING -gt 0 ]; then + echo "::error::Total missing keys across all locales: $TOTAL_MISSING" + else + echo "All locales have complete key coverage." + fi + + exit $EXIT_CODE diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index cc50794f..244e558c 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -41,7 +41,18 @@ public class PlayerSettingsPage extends InteractiveCustomUIPage AVAILABLE_LOCALES = List.of( "en-US", - "es-ES" + "es-ES", + "de-DE", + "fr-FR", + "pt-BR", + "zh-CN", + "ja-JP", + "ru-RU", + "ko-KR", + "pl-PL", + "it-IT", + "nl-NL", + "tl-PH" ); /** diff --git a/src/main/resources/Server/Languages/fallback.lang b/src/main/resources/Server/Languages/fallback.lang index 28fe8461..bfd09c14 100644 --- a/src/main/resources/Server/Languages/fallback.lang +++ b/src/main/resources/Server/Languages/fallback.lang @@ -16,14 +16,22 @@ # # Supported locales (directories under Server/Languages/): # en-US — English (United States) [base language, complete] -# de-DE — German (Germany) [stub — untranslated] -# es-ES — Spanish (Spain) [stub — untranslated] -# fr-FR — French (France) [stub — untranslated] -# ja-JP — Japanese (Japan) [stub — untranslated] -# pt-BR — Portuguese (Brazil) [stub — untranslated] -# ru-RU — Russian (Russia) [stub — untranslated] -# tr-TR — Turkish (Turkey) [stub — untranslated] -# zh-CN — Chinese Simplified (China) [stub — untranslated] +# es-ES — Spanish (Spain) [complete] +# de-DE — German (Germany) [complete] +# fr-FR — French (France) [complete] +# pt-BR — Portuguese (Brazil) [complete] +# zh-CN — Chinese Simplified (China) [complete] +# ja-JP — Japanese (Japan) [complete] +# ru-RU — Russian (Russia) [complete] +# ko-KR — Korean (South Korea) [complete] +# pl-PL — Polish (Poland) [complete] +# it-IT — Italian (Italy) [complete] +# nl-NL — Dutch (Netherlands) [complete] +# tl-PH — Filipino/Tagalog (Philippines) [complete] +# +# Note: tl-PH is not natively supported by the Hytale client. Players must +# select it manually via /f settings > Language. HFMessages falls back to +# en-US automatically for any locale not loaded by I18nModule. # # To add a new locale: # ./scripts/new-translation.sh From f13d53022a98871ef761a315dd1a1b47bfe40d02 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 17:59:43 -0700 Subject: [PATCH 67/76] i18n: remove zh-CN, ja-JP, ko-KR locales Hytale client does not currently support CJK characters, so these translations cannot render in-game. Removed until character support is added. --- .../gui/shared/page/PlayerSettingsPage.java | 3 - .../resources/Server/Languages/fallback.lang | 3 - .../help/admin/admin_config/configuration.md | 41 - .../help/admin/admin_config/world_settings.md | 45 - .../admin_economy/treasury_management.md | 39 - .../admin/admin_economy/upkeep_management.md | 42 - .../help/admin/admin_factions/disbanding.md | 37 - .../admin/admin_factions/managing_factions.md | 38 - .../help/admin/admin_maintenance/backups.md | 48 - .../help/admin/admin_maintenance/imports.md | 48 - .../help/admin/admin_maintenance/updates.md | 45 - .../admin/admin_overview/getting_started.md | 41 - .../help/admin/admin_overview/permissions.md | 37 - .../help/admin/admin_power/power_commands.md | 38 - .../help/admin/admin_power/power_overrides.md | 54 -- .../admin/admin_reference/all_commands.md | 65 -- .../admin/admin_reference/integrations.md | 43 - .../help/admin/admin_zones/zone_basics.md | 43 - .../help/admin/admin_zones/zone_commands.md | 43 - .../help/admin/admin_zones/zone_flags.md | 43 - .../Languages/ja-JP/help/combat/death.md | 39 - .../Languages/ja-JP/help/combat/protection.md | 28 - .../ja-JP/help/combat/spawn_protection.md | 27 - .../Languages/ja-JP/help/combat/tagging.md | 29 - .../Languages/ja-JP/help/combat/zones.md | 29 - .../ja-JP/help/diplomacy/alliances.md | 45 - .../Languages/ja-JP/help/diplomacy/enemies.md | 47 - .../ja-JP/help/diplomacy/relations.md | 38 - .../Languages/ja-JP/help/economy/commands.md | 27 - .../Languages/ja-JP/help/economy/funds.md | 42 - .../Languages/ja-JP/help/economy/treasury.md | 26 - .../Languages/ja-JP/help/economy/upkeep.md | 37 - .../ja-JP/help/power_land/claiming.md | 50 - .../ja-JP/help/power_land/losing_territory.md | 50 - .../ja-JP/help/power_land/territory_map.md | 44 - .../help/power_land/understanding_power.md | 45 - .../ja-JP/help/quick_ref/all_commands.md | 94 -- .../ja-JP/help/welcome/getting_started.md | 38 - .../ja-JP/help/welcome/quick_tips.md | 44 - .../ja-JP/help/welcome/what_are_factions.md | 37 - .../ja-JP/help/your_faction/creating.md | 38 - .../ja-JP/help/your_faction/joining.md | 36 - .../ja-JP/help/your_faction/managing.md | 44 - .../ja-JP/help/your_faction/roles.md | 44 - .../Server/Languages/ja-JP/hyperfactions.lang | 453 --------- .../Languages/ja-JP/hyperfactions_admin.lang | 801 ---------------- .../Languages/ja-JP/hyperfactions_gui.lang | 866 ------------------ .../help/admin/admin_config/configuration.md | 41 - .../help/admin/admin_config/world_settings.md | 45 - .../admin_economy/treasury_management.md | 39 - .../admin/admin_economy/upkeep_management.md | 42 - .../help/admin/admin_factions/disbanding.md | 37 - .../admin/admin_factions/managing_factions.md | 38 - .../help/admin/admin_maintenance/backups.md | 48 - .../help/admin/admin_maintenance/imports.md | 48 - .../help/admin/admin_maintenance/updates.md | 45 - .../admin/admin_overview/getting_started.md | 41 - .../help/admin/admin_overview/permissions.md | 37 - .../help/admin/admin_power/power_commands.md | 38 - .../help/admin/admin_power/power_overrides.md | 54 -- .../admin/admin_reference/all_commands.md | 65 -- .../admin/admin_reference/integrations.md | 43 - .../help/admin/admin_zones/zone_basics.md | 43 - .../help/admin/admin_zones/zone_commands.md | 43 - .../help/admin/admin_zones/zone_flags.md | 43 - .../Languages/ko-KR/help/combat/death.md | 39 - .../Languages/ko-KR/help/combat/protection.md | 28 - .../ko-KR/help/combat/spawn_protection.md | 27 - .../Languages/ko-KR/help/combat/tagging.md | 29 - .../Languages/ko-KR/help/combat/zones.md | 29 - .../ko-KR/help/diplomacy/alliances.md | 45 - .../Languages/ko-KR/help/diplomacy/enemies.md | 47 - .../ko-KR/help/diplomacy/relations.md | 38 - .../Languages/ko-KR/help/economy/commands.md | 27 - .../Languages/ko-KR/help/economy/funds.md | 42 - .../Languages/ko-KR/help/economy/treasury.md | 26 - .../Languages/ko-KR/help/economy/upkeep.md | 37 - .../ko-KR/help/power_land/claiming.md | 50 - .../ko-KR/help/power_land/losing_territory.md | 50 - .../ko-KR/help/power_land/territory_map.md | 44 - .../help/power_land/understanding_power.md | 45 - .../ko-KR/help/quick_ref/all_commands.md | 94 -- .../ko-KR/help/welcome/getting_started.md | 38 - .../ko-KR/help/welcome/quick_tips.md | 44 - .../ko-KR/help/welcome/what_are_factions.md | 37 - .../ko-KR/help/your_faction/creating.md | 38 - .../ko-KR/help/your_faction/joining.md | 36 - .../ko-KR/help/your_faction/managing.md | 44 - .../ko-KR/help/your_faction/roles.md | 44 - .../Server/Languages/ko-KR/hyperfactions.lang | 453 --------- .../Languages/ko-KR/hyperfactions_admin.lang | 801 ---------------- .../Languages/ko-KR/hyperfactions_gui.lang | 866 ------------------ .../help/admin/admin_config/configuration.md | 41 - .../help/admin/admin_config/world_settings.md | 45 - .../admin_economy/treasury_management.md | 39 - .../admin/admin_economy/upkeep_management.md | 42 - .../help/admin/admin_factions/disbanding.md | 37 - .../admin/admin_factions/managing_factions.md | 38 - .../help/admin/admin_maintenance/backups.md | 48 - .../help/admin/admin_maintenance/imports.md | 48 - .../help/admin/admin_maintenance/updates.md | 45 - .../admin/admin_overview/getting_started.md | 41 - .../help/admin/admin_overview/permissions.md | 37 - .../help/admin/admin_power/power_commands.md | 38 - .../help/admin/admin_power/power_overrides.md | 54 -- .../admin/admin_reference/all_commands.md | 65 -- .../admin/admin_reference/integrations.md | 43 - .../help/admin/admin_zones/zone_basics.md | 43 - .../help/admin/admin_zones/zone_commands.md | 43 - .../help/admin/admin_zones/zone_flags.md | 43 - .../Languages/zh-CN/help/combat/death.md | 39 - .../Languages/zh-CN/help/combat/protection.md | 28 - .../zh-CN/help/combat/spawn_protection.md | 27 - .../Languages/zh-CN/help/combat/tagging.md | 29 - .../Languages/zh-CN/help/combat/zones.md | 29 - .../zh-CN/help/diplomacy/alliances.md | 45 - .../Languages/zh-CN/help/diplomacy/enemies.md | 47 - .../zh-CN/help/diplomacy/relations.md | 38 - .../Languages/zh-CN/help/economy/commands.md | 27 - .../Languages/zh-CN/help/economy/funds.md | 42 - .../Languages/zh-CN/help/economy/treasury.md | 26 - .../Languages/zh-CN/help/economy/upkeep.md | 37 - .../zh-CN/help/power_land/claiming.md | 50 - .../zh-CN/help/power_land/losing_territory.md | 50 - .../zh-CN/help/power_land/territory_map.md | 44 - .../help/power_land/understanding_power.md | 45 - .../zh-CN/help/quick_ref/all_commands.md | 94 -- .../zh-CN/help/welcome/getting_started.md | 38 - .../zh-CN/help/welcome/quick_tips.md | 44 - .../zh-CN/help/welcome/what_are_factions.md | 37 - .../zh-CN/help/your_faction/creating.md | 38 - .../zh-CN/help/your_faction/joining.md | 36 - .../zh-CN/help/your_faction/managing.md | 44 - .../zh-CN/help/your_faction/roles.md | 44 - .../Server/Languages/zh-CN/hyperfactions.lang | 453 --------- .../Languages/zh-CN/hyperfactions_admin.lang | 801 ---------------- .../Languages/zh-CN/hyperfactions_gui.lang | 866 ------------------ 137 files changed, 11670 deletions(-) delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/configuration.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/death.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/protection.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/combat/zones.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/commands.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/funds.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/death.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/protection.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/combat/zones.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/commands.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/funds.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md delete mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/death.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/protection.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/combat/zones.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/commands.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/funds.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang delete mode 100644 src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang diff --git a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java index 244e558c..93720adb 100644 --- a/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java +++ b/src/main/java/com/hyperfactions/gui/shared/page/PlayerSettingsPage.java @@ -45,10 +45,7 @@ public class PlayerSettingsPage extends InteractiveCustomUIPage[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: -`mods/com.hyperfactions_HyperFactions/config/` - ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. - ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md deleted file mode 100644 index 47e8dffe..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_config/world_settings.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_world_settings ---- -# Per-World Settings - -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. - -## World Commands - -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | - -## Available Settings - -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | - -## World Whitelist / Blacklist - -Control which worlds allow faction features through the `worlds.json` config file: - -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed - ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. - -## Examples - -- `/f admin world set survival claiming_enabled true` -- `/f admin world set creative claiming_enabled false` -- `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults - ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. - ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md deleted file mode 100644 index b219d330..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/treasury_management.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: admin_treasury_management ---- -# Treasury Management - -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. - -## Treasury Commands - -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | - -## Examples - -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance - ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. - -## Use Cases - -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | - ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. - ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md deleted file mode 100644 index 7df9b4c7..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_economy/upkeep_management.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: admin_upkeep_management ---- -# Upkeep Management - -Faction upkeep charges factions periodically based on their territory and member count. - -## Admin Controls - -Upkeep settings are managed through the economy config file or the admin config GUI. - -`/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. - -## Default Upkeep Settings - -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | - -## Monitoring Upkeep - -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep - ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. - ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. - -## Upkeep Formula - -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) - ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md deleted file mode 100644 index 253e05ab..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/disbanding.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_disbanding ---- -# Force Disbanding - -Admins can forcefully disband any faction, regardless of the leader's wishes. - -## Command - -`/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. - -**Permission**: `hyperfactions.admin.disband` - ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. - -## Consequences - -When a faction is disbanded: - -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | - -## Best Practices - -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting - ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md deleted file mode 100644 index b00218c9..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_factions/managing_factions.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_managing_factions ---- -# Managing Factions - -Admins can inspect and modify any faction on the server through the dashboard or commands. - -## Browsing Factions - -`/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. - -`/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. - -## Modifying Faction Settings - -With `hyperfactions.admin.modify` permission, you can: - -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes - ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. - -## Viewing Members and Relations - -The admin info panel shows: - -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | - ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md deleted file mode 100644 index 84a331f7..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/backups.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_backups ---- -# Backup System - -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. - -## Backup Commands - -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | - -**Permission**: `hyperfactions.admin.backup` - -## GFS Rotation Defaults - -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | - ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. - -## Backup Contents - -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files - ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. - -## Best Practices - -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md deleted file mode 100644 index e3bf7548..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/imports.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_imports ---- -# Data Import - -Import faction data from other plugins to migrate your server to HyperFactions. - -## Import Command - -`/f admin import [path] [flags]` - -**Permission**: `hyperfactions.admin.use` - -## Supported Sources - -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | - -## Import Flags - -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | - ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. - -## Import Process - -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved - -## Examples - -- `/f admin import elbaphfactions --dry-run` -- `/f admin import elbaphfactions --overwrite` -- `/f admin import hyfactions --no-zones --no-power` -- `/f admin import elbaphfactions /custom/path` - ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. - ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md deleted file mode 100644 index f6dc2880..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_maintenance/updates.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_updates ---- -# Update Checking - -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. - -## Update Commands - -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | - -## Release Channels - -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | - ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. - -## HyperProtect-Mixin - -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). - -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server - ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. - -## Rollback Procedure - -If an update causes issues: - -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` - ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md deleted file mode 100644 index bf30a5b4..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/getting_started.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: admin_getting_started ---- -# Getting Started as Admin - -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. - -## Opening the Admin Dashboard - -`/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. - ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. - -## Requirements - -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) - -## First Steps After Install - -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety - -## Admin Capabilities - -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md deleted file mode 100644 index 979e5543..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_overview/permissions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_permissions ---- -# Admin Permissions - -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. - -## Permission Nodes - -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | - -## Fallback Behavior - -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). - ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. - -## Permission Resolution Order - -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) - ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md deleted file mode 100644 index b2c9f463..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_commands.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_power_commands ---- -# Power Admin Commands - -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. - -## Player Power Commands - -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | - -## How Power Affects Factions - -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. - -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | - ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. - -## Examples - -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown - ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md deleted file mode 100644 index 5469f903..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_power/power_overrides.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: admin_power_overrides ---- -# Power Overrides - -Special power commands that change how power behaves for specific players or factions. - -## Override Commands - -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | - -## Custom Max Power - -`/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. - ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. - -## No-Loss Mode - -`/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. - -Useful for: -- New player protection periods -- Event participants -- Staff members - -## No-Decay Mode - -`/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. - -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection - -## Power Info - -`/f admin power info ` -Shows a complete breakdown: - -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage - ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md deleted file mode 100644 index bd0b0fa6..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/all_commands.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: admin_quickref_commands ---- -# Admin Command Reference - -Complete list of all `/f admin` subcommands with syntax and required permissions. - -## Dashboard and General - -| Command | Permission | -|---------|-----------| -| `/f admin` | admin.use | -| `/f admin version` | admin.use | -| `/f admin reload` | admin.reload | -| `/f admin sync` | admin.use | -| `/f admin sentry` | admin.use | - -## Faction Management - -| Command | Permission | -|---------|-----------| -| `/f admin factions` | admin.use | -| `/f admin info ` | admin.use | -| `/f admin who ` | admin.use | -| `/f admin disband ` | admin.disband | -| `/f admin log` | admin.use | - -## Zone Management - -| Command | Permission | -|---------|-----------| -| `/f admin safezone ` | admin.zones | -| `/f admin warzone ` | admin.zones | -| `/f admin removezone ` | admin.zones | -| `/f admin zone create/delete/claim/unclaim` | admin.zones | -| `/f admin zone radius ` | admin.zones | -| `/f admin zone list` | admin.zones | -| `/f admin zone notify ` | admin.zones | -| `/f admin zone title upper/lower ` | admin.zones | -| `/f admin zone properties ` | admin.zones | -| `/f admin zoneflag ` | admin.zones | - -## Power and Economy - -| Command | Permission | -|---------|-----------| -| `/f admin power set/add/remove/reset [amt]` | admin.power | -| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | -| `/f admin power info ` | admin.power | -| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | - -## Maintenance - -| Command | Permission | -|---------|-----------| -| `/f admin backup create/list/restore/delete` | admin.backup | -| `/f admin import [flags]` | admin.use | -| `/f admin update` | admin.use | -| `/f admin update mixin` | admin.use | -| `/f admin config` | admin.use | -| `/f admin world list/info/set/reset` | admin.use | -| `/f admin debug toggle ` | admin.debug | -| `/f admin integration` | admin.use | - ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md deleted file mode 100644 index c39bfb3b..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_reference/integrations.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_integrations ---- -# Plugin Integrations - -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. - -## Checking Integration Status - -`/f admin version` -Shows current version and detected integrations. - -`/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) -2. **HyperPerms** -3. **LuckPerms** -4. **OP fallback** (if no provider found) - ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. - ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. - ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md deleted file mode 100644 index 933a9b2d..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_basics.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_basics ---- -# Zone Basics - -Zones are admin-controlled territories with custom rules that override normal faction protection. - -## Zone Types - -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. - -## Creating Zones - -`/f admin safezone ` -Creates a SafeZone and claims your current chunk. - -`/f admin warzone ` -Creates a WarZone and claims your current chunk. - -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. - -## Managing Zone Chunks - -`/f admin zone claim ` -Add the current chunk to the named zone. - -`/f admin zone unclaim ` -Remove the current chunk from the named zone. - -`/f admin zone radius ` -Claim a square of chunks around your position. - -## Deleting Zones - -`/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. - ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. - ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md deleted file mode 100644 index 403b6b63..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_commands.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_commands ---- -# Zone Command Reference - -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. - -## Quick Creation - -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | - -## Zone Management - -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | - ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. - -## Examples - -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md deleted file mode 100644 index 368a4ec9..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/admin/admin_zones/zone_flags.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_flags ---- -# Zone Flags - -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. - -## Flag Categories Overview - -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | - -## Default Values (SafeZone vs WarZone) - -| Flag | SafeZone | WarZone | -|------|----------|---------| -| pvp_enabled | false | **true** | -| build_allowed | false | false | -| fall_damage | false | **true** | -| keep_inventory | **true** | false | -| power_loss | false | **true** | -| mob_spawning | false | **true** | -| item_drop | false | **true** | -| door_use | **true** | **true** | -| container_use | false | **true** | - ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. - -## Setting Flags - -`/f admin zoneflag ` - ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/death.md b/src/main/resources/Server/Languages/ja-JP/help/combat/death.md deleted file mode 100644 index 8690b43a..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/combat/death.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: combat_death -commands: home, sethome, stuck ---- -# Death and Recovery - -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. - -## Power Loss - -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. - -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## Example Scenarios - -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* - ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. - -## Recovery - -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. - ---- - -## All Death Types - -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. - ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md b/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md deleted file mode 100644 index e564ec2d..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/combat/protection.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: combat_protection ---- -# Territory Protection - -Claimed territory provides several layers of defense for your faction's builds and resources. - -## Block Protection - -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. - -## Container Protection - -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. - -## Entry Alerts - -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. - ---- - -## Ally Access - -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. - ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. - ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md deleted file mode 100644 index f0b2ab76..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/combat/spawn_protection.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: combat_spawn_protection ---- -# Spawn Protection - -After respawning from death, you receive temporary protection to prevent spawn camping. - -## How It Works - -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status - -## Protection Breaks - -Spawn protection ends early if you: - -- Attack another player or entity -- Move from your spawn position - -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. - ---- - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md b/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md deleted file mode 100644 index e45cbdb3..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/combat/tagging.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_tagging ---- -# Combat Tagging - -When you attack or are attacked by another player, you become combat tagged for 15 seconds. - -## While Tagged - -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration - ---- - -## Logout Penalty - ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. - -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. - -## How the Timer Works - -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md b/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md deleted file mode 100644 index d1d957d2..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/combat/zones.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_zones ---- -# Special Zones - -Admins can designate areas with special rules that override normal faction territory protection. - -## SafeZone - -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. - -## WarZone - -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. - ---- - -## Zone Comparison - -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | - ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. - ->[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md deleted file mode 100644 index 45da7756..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/alliances.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: diplomacy_alliances -commands: ally ---- -# Forming Alliances - -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. - ---- - -## How to Form an Alliance - -`/f ally ` - -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. - -## How to Break an Alliance - -`/f neutral ` - -Either side can unilaterally end an alliance by resetting the relation to neutral. - ---- - -## Alliance Benefits - -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | - ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. - ---- - -## Alliance Etiquette - ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. - -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md deleted file mode 100644 index 70688ad4..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/enemies.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: diplomacy_enemies -commands: enemy, neutral ---- -# Enemy Factions - -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. - ---- - -## Declaring an Enemy - -`/f enemy ` - -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. - -## Resetting to Neutral - -`/f neutral ` - -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. - ---- - -## What Enemy Status Enables - -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | - ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. - ---- - -## Strategic Considerations - -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky - ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. - ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md deleted file mode 100644 index 89711eee..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/diplomacy/relations.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: diplomacy_relations -commands: relations ---- -# Faction Relations - -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. - ---- - -## Relation Comparison - -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | - ---- - -## Viewing Relations - -`/f relations` - -Shows all your current alliances, enemies, and any pending alliance requests. - -## How Relations Work - -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. - ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. - ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md b/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md deleted file mode 100644 index 020190cd..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/economy/commands.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: economy_commands ---- -# Economy Commands - -Quick reference for all faction economy commands. - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | - ---- - -## Command Aliases - -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts - -## Role Requirements - -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. - ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md b/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md deleted file mode 100644 index 4fe4539c..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/economy/funds.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: economy_funds -commands: deposit, withdraw ---- -# Managing Funds - -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. - -## Depositing - -Any member can deposit personal funds into the faction treasury. - -`/f deposit ` -Deposit from your personal balance into the treasury. - -## Withdrawing - -Officers and the Leader can withdraw funds back to their personal balance. - -`/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) - -## Transferring - -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. - -`/f money transfer ` -Send funds to another faction's treasury. (Officer+) - ---- - -## Fees - -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | - ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. - ->[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md b/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md deleted file mode 100644 index e4e7307b..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/economy/treasury.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: economy_treasury -commands: balance ---- -# Faction Treasury - -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. - -## Starting Balance - -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. - -## Who Can Manage - -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control - ---- - -`/f balance` -Check your faction's current treasury balance. Also available as /f bal. - ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. - ->[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md b/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md deleted file mode 100644 index 8a2d12e4..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/economy/upkeep.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: economy_upkeep ---- -# Territory Upkeep - -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. - -## Upkeep Costs - -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. - -## Auto-Pay - -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. - ---- - -## Grace Period - -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. - ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. - -## Example - -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* - ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md deleted file mode 100644 index f70427cb..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/power_land/claiming.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_claiming -commands: claim, unclaim ---- -# Claiming Territory - -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. - ---- - -## How to Claim - -`/f claim` - -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. - -## How to Unclaim - -`/f unclaim` - -Releases the chunk you are standing in back to wilderness. Also requires Officer+. - ---- - -## Claim Rules - -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. - ---- - -## What Protection Provides - -Inside claimed territory, the following is enforced by default: - -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only - ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. - ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md deleted file mode 100644 index ea39186b..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/power_land/losing_territory.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_losing -commands: overclaim ---- -# Losing Territory - -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. - ---- - -## How Overclaiming Works - -`/f overclaim` - -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. - -## The Math - -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). - ---- - -## Example Scenario - -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | - -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. - ---- - -## How to Prevent Overclaiming - -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim - ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md deleted file mode 100644 index 207c041d..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/power_land/territory_map.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: power_map -commands: map ---- -# The Territory Map - -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. - ---- - -## Opening the Map - -`/f map` - -Opens the territory map GUI centered on your current location. - ---- - -## Color Legend - -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | - ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. - ---- - -## Click to Claim - -The map is not just for viewing -- you can interact with it directly. - -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you - ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. - ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md deleted file mode 100644 index ae158ed5..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/power_land/understanding_power.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: power_understanding -commands: power ---- -# Understanding Power - -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. - ---- - -## Default Power Values - -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## How It Works - -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. - ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. - ---- - -## Checking Your Power - -`/f power` - -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. - -## The Danger Zone - -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. - ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. - ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md deleted file mode 100644 index 0540d550..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/quick_ref/all_commands.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: quickref_commands ---- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | - -## Chat - -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md deleted file mode 100644 index 2155ff0c..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/welcome/getting_started.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: welcome_started -commands: gui, menu ---- -# Getting Started - -Welcome to HyperFactions! Here is how to get up and running in just a few steps. - ---- - -## Step 1: Open the Faction Menu - -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. - -## Step 2: Choose Your Path - -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | - -## Step 3: Explore Your Faction - -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. - ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. - ---- - -## Essential First Commands - -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you - ->[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md deleted file mode 100644 index dcd1df1a..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/welcome/quick_tips.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: welcome_tips ---- -# Quick Tips - -Handy advice organized by category to help you thrive. - ---- - -## Territory - -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power - -## Combat - -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default - ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. - -## Social - -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status - -## Economy - ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. - -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster - -## General - -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md deleted file mode 100644 index 5fedf54c..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/welcome/what_are_factions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: welcome_what ---- -# What Are Factions? - -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. - ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. - ---- - -## Core Mechanics - -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | - ---- - -## How Strength Works - -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. - ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. - ---- - -## Diplomacy at a Glance - -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules - ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md deleted file mode 100644 index e1eaa33b..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/your_faction/creating.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: faction_creating -commands: create ---- -# Creating a Faction - -Starting your own faction makes you the Leader with full control over settings, members, and territory. - ---- - -## How to Create - -`/f create ` - -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. - -## Name Rules - -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | - ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. - ---- - -## What Happens on Creation - -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home - ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. - ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md deleted file mode 100644 index 7dbabdcd..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/your_faction/joining.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: faction_joining -commands: accept, join, request ---- -# Joining a Faction - -There are three ways to join an existing faction, depending on how the faction is configured. - ---- - -## Methods Compared - -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | - ---- - -## Invite Details - -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept - -## Join Requests - -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard - ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. - ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md deleted file mode 100644 index 870c6133..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/your_faction/managing.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_managing -commands: invite, kick, promote, demote, transfer ---- -# Managing Members - -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. - ---- - -## Commands - -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | - ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. - ---- - -## Invitations - -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total - -## Promotions and Demotions - -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member - -## Transferring Leadership - ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. - -`/f transfer ` - -The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md b/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md deleted file mode 100644 index 67bb5962..00000000 --- a/src/main/resources/Server/Languages/ja-JP/help/your_faction/roles.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_roles ---- -# Roles and Ranks - -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. - ---- - -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. - ---- - -## Role Details - -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. - ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang deleted file mode 100644 index 6c8d184d..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions.lang +++ /dev/null @@ -1,453 +0,0 @@ -# HyperFactions - 日本語翻訳 -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== 共通 ========== -common.no_permission = その操作を行う権限がありません。 -common.not_in_faction = 派閥に所属していません。 -common.already_in_faction = すでに派閥に所属しています。 -common.player_not_found = プレイヤーが見つかりません。 -common.faction_not_found = 派閥が見つかりません。 -common.player_not_online = そのプレイヤーはオンラインではありません。 -common.must_be_leader = リーダーのみがその操作を行えます。 -common.must_be_officer = 幹部またはリーダーのみがその操作を行えます。 -common.combat_tagged = 戦闘中はその操作を行えません。 -common.cancel = キャンセル -common.confirm = 確認 -common.save = 保存 -common.close = 閉じる -common.clear = クリア -common.back = 戻る -common.leave = 脱退 -common.transfer = 譲渡 -common.disband = 解散 -common.world_fallback = ワールド -common.yes = はい -common.no = いいえ -common.loading = 読み込み中... -common.online = オンライン -common.offline = オフライン -common.enabled = 有効 -common.disabled = 無効 -common.none = なし -common.page = ページ {0} / {1} -common.unknown = 不明 -common.error_generic = エラーが発生しました。もう一度お試しください。 -common.gui_fallback = GUIにアクセスできませんでした。コマンドは /f help をご利用ください。 -common.admin_prefix = [Admin] -common.location_error = 現在地を特定できませんでした。 -common.world_error = ワールドを特定できませんでした。 -common.invalid_id = 無効な派閥IDです。 -common.na = N/A - -# ========== コマンド - 作成 ========== -cmd.create.no_permission = 派閥を作成する権限がありません。 -cmd.create.usage = 使い方: /f create <名前> -cmd.create.success = 派閥「{0}」を作成しました! -cmd.create.already_in_named = すでに {0} に所属しています。 -cmd.create.use_leave_first = 新しい派閥を作成するには、まず /f leave で脱退してください。 -cmd.create.name_taken = その派閥名はすでに使用されています。 -cmd.create.name_too_short = 派閥名が短すぎます。 -cmd.create.name_too_long = 派閥名が長すぎます。 -cmd.create.failed = 派閥の作成に失敗しました。 - -# ========== コマンド - 解散 ========== -cmd.disband.no_permission = 派閥を解散する権限がありません。 -cmd.disband.not_leader = リーダーのみが派閥を解散できます。 -cmd.disband.confirm_prompt = 本当に派閥を解散しますか? -cmd.disband.confirm_instruction = {0}秒以内に /f disband --text をもう一度入力して確認してください。 -cmd.disband.success = 派閥が解散されました。 -cmd.disband.failed = 派閥の解散に失敗しました。 -cmd.disband.cancelled = 前回の確認がキャンセルされました。もう一度入力して解散を確認してください。 - -# ========== コマンド - 名前変更 ========== -cmd.rename.no_permission = 権限がありません。 -cmd.rename.not_leader = リーダーのみが派閥名を変更できます。 -cmd.rename.usage = 使い方: /f rename <名前> -cmd.rename.too_short = 名前が短すぎます(最小{0}文字)。 -cmd.rename.too_long = 名前が長すぎます(最大{0}文字)。 -cmd.rename.name_taken = その名前はすでに使用されています。 -cmd.rename.success = 派閥名を {0} に変更しました! -cmd.rename.broadcast = {0} が派閥名を {1} に変更しました - -# ========== コマンド - 説明 ========== -cmd.desc.no_permission = 権限がありません。 -cmd.desc.not_officer = 説明を設定するには幹部である必要があります。 -cmd.desc.set = 派閥の説明を設定しました! -cmd.desc.cleared = 派閥の説明をクリアしました。 - -# ========== コマンド - 公開 / 非公開 ========== -cmd.open.no_permission = 権限がありません。 -cmd.open.not_leader = リーダーのみがこの設定を変更できます。 -cmd.open.already_open = 派閥はすでに公開されています。 -cmd.open.success = 派閥が公開されました!誰でも /f join で参加できます。 -cmd.open.broadcast = {0} が派閥を公開参加に変更しました。 -cmd.close.no_permission = 権限がありません。 -cmd.close.not_leader = リーダーのみがこの設定を変更できます。 -cmd.close.already_closed = 派閥はすでに招待制です。 -cmd.close.success = 派閥が招待制になりました。 -cmd.close.broadcast = {0} が派閥を招待制に変更しました。 - -# ========== コマンド - カラー ========== -cmd.color.no_permission = 権限がありません。 -cmd.color.not_officer = カラーを変更するには幹部である必要があります。 -cmd.color.colors_disabled = 派閥カラーは無効になっています。 -cmd.color.usage = 使い方: /f color <コード|#hex> -cmd.color.usage_hint = 有効なコード: 0-9, a-f または #RRGGBB hex -cmd.color.invalid = 無効なカラーです。0-9, a-f, または #RRGGBB を使用してください。 -cmd.color.success = 派閥カラーを更新しました! - -# ========== コマンド - 領地確保 ========== -cmd.claim.no_permission = テリトリーを確保する権限がありません。 -cmd.claim.already_yours = このチャンクはすでに派閥の領地です。 -cmd.claim.cannot_claim_ally = 同盟のテリトリーは確保できません。 -cmd.claim.already_claimed_hint = このチャンクは確保済みです。相手が略奪可能な場合は /f overclaim を使用してください。 -cmd.claim.success = チャンク {0}, {1} を確保しました! -cmd.claim.not_officer = 領地を確保するには幹部である必要があります。 -cmd.claim.already_claimed = このチャンクはすでに確保されています。 -cmd.claim.max_claims = 派閥の最大領地数に達しました。パワーを増やしましょう! -cmd.claim.not_adjacent = 既存のテリトリーに隣接するチャンクのみ確保できます。 -cmd.claim.world_not_allowed = このワールドでは領地確保が許可されていません。 -cmd.claim.orbisguard = このエリアは OrbisGuard によって保護されています。 -cmd.claim.zone_protected = このチャンクは SafeZone または WarZone 内にあります。 -cmd.claim.insufficient_power = 派閥のパワーが不足しており、これ以上領地を確保できません。 -cmd.claim.failed = チャンクの確保に失敗しました。 - -# ========== コマンド - 招待 ========== -cmd.invite.no_permission = プレイヤーを招待する権限がありません。 -cmd.invite.not_officer = プレイヤーを招待するには幹部である必要があります。 -cmd.invite.usage = 使い方: /f invite <プレイヤー> -cmd.invite.player_not_found = プレイヤー「{0}」が見つからないかオフラインです。 -cmd.invite.target_in_faction = そのプレイヤーはすでに派閥に所属しています。 -cmd.invite.sent = {0} を派閥に招待しました。 -cmd.invite.received = {0} への参加招待を受け取りました! -cmd.invite.accept_hint = /f accept {0} と入力して参加してください。 - -# ========== コマンド - 承諾 / 参加 ========== -cmd.join.no_permission = 派閥に参加する権限がありません。 -cmd.join.already_in_named = すでに {0} に所属しています。 -cmd.join.use_leave_hint = 別の派閥に参加するには、まず /f leave で脱退してください。 -cmd.join.no_invites = 保留中の招待はありません。 -cmd.join.faction_not_found = 派閥「{0}」が見つかりません。 -cmd.join.not_invited = その派閥からの招待はありません。 -cmd.join.faction_gone = その派閥はもう存在しません。 -cmd.join.success = {0} に参加しました! -cmd.join.broadcast = {0} が派閥に参加しました! -cmd.join.faction_full = その派閥は満員です。 -cmd.join.failed = 派閥への参加に失敗しました。 - -# ========== コマンド - キック ========== -cmd.kick.no_permission = メンバーをキックする権限がありません。 -cmd.kick.usage = 使い方: /f kick <プレイヤー> -cmd.kick.not_in_your_faction = プレイヤー「{0}」はあなたの派閥のメンバーではありません。 -cmd.kick.success = {0} を派閥からキックしました。 -cmd.kick.broadcast = {0} が派閥からキックされました。 -cmd.kick.kicked = 派閥からキックされました。 -cmd.kick.cannot_kick_higher = そのプレイヤーをキックする権限がありません。 -cmd.kick.cannot_kick_leader = 派閥のリーダーをキックすることはできません。 -cmd.kick.failed = プレイヤーのキックに失敗しました。 - -# ========== コマンド - 脱退 ========== -cmd.leave.no_permission = 派閥を脱退する権限がありません。 -cmd.leave.confirm_prompt = 本当に派閥を脱退しますか? -cmd.leave.confirm_instruction = {0}秒以内に /f leave --text をもう一度入力して確認してください。 -cmd.leave.success = 派閥を脱退しました。 -cmd.leave.broadcast = {0} が派閥を脱退しました。 -cmd.leave.failed = 派閥の脱退に失敗しました。 -cmd.leave.cancelled = 前回の確認がキャンセルされました。もう一度入力して脱退を確認してください。 - -# ========== コマンド - 昇格 / 降格 / 譲渡 ========== -cmd.rank.promote_no_permission = メンバーを昇格する権限がありません。 -cmd.rank.promote_usage = 使い方: /f promote <プレイヤー> -cmd.rank.promoted = {0} を {1} に昇格しました! -cmd.rank.promote_broadcast = {0} が {1} に昇格しました! -cmd.rank.already_highest = これ以上昇格できません。リーダーを変更するには /f transfer を使用してください。 -cmd.rank.promote_failed = プレイヤーの昇格に失敗しました。 -cmd.rank.demote_no_permission = メンバーを降格する権限がありません。 -cmd.rank.demote_usage = 使い方: /f demote <プレイヤー> -cmd.rank.demoted = {0} を {1} に降格しました。 -cmd.rank.demote_broadcast = {0} が {1} に降格されました。 -cmd.rank.already_lowest = そのプレイヤーはすでにメンバーです。 -cmd.rank.demote_failed = プレイヤーの降格に失敗しました。 -cmd.rank.transfer_no_permission = リーダーシップを譲渡する権限がありません。 -cmd.rank.transfer_usage = 使い方: /f transfer <プレイヤー> -cmd.rank.player_not_in_faction = 派閥内にそのプレイヤーが見つかりません。 -cmd.rank.transfer_confirm = 本当に {0} にリーダーシップを譲渡しますか? -cmd.rank.transfer_confirm_instruction = {1}秒以内に /f transfer {0} --text をもう一度入力して確認してください。 -cmd.rank.transferred = {0} にリーダーシップを譲渡しました! -cmd.rank.transfer_broadcast = {0} が新しい派閥リーダーになりました! -cmd.rank.transfer_failed = リーダーシップの譲渡に失敗しました。 -cmd.rank.transfer_cancelled = 前回の確認がキャンセルされました。もう一度入力して譲渡を確認してください。 - -# ========== コマンド - 領地放棄 ========== -cmd.unclaim.no_permission = テリトリーを放棄する権限がありません。 -cmd.unclaim.success = チャンク {0}, {1} を放棄しました。 -cmd.unclaim.not_officer = 領地を放棄するには幹部である必要があります。 -cmd.unclaim.chunk_not_claimed = このチャンクは確保されていません。 -cmd.unclaim.not_your_claim = このチャンクは派閥の領地ではありません。 -cmd.unclaim.cannot_unclaim_home = 派閥ホームのあるチャンクは放棄できません。 -cmd.unclaim.would_disconnect = 放棄できません — テリトリーが分断されます。 -cmd.unclaim.failed = チャンクの放棄に失敗しました。 - -# ========== コマンド - 強制確保 ========== -cmd.overclaim.no_permission = テリトリーを強制確保する権限がありません。 -cmd.overclaim.success = 敵のテリトリーを強制確保しました! -cmd.overclaim.not_officer = 強制確保するには幹部である必要があります。 -cmd.overclaim.not_claimed = このチャンクは確保されていません。/f claim を使用してください。 -cmd.overclaim.own_chunk = このチャンクはすでに派閥の領地です。 -cmd.overclaim.ally = 同盟のテリトリーは強制確保できません。 -cmd.overclaim.target_has_power = この派閥はまだ十分なパワーを持っています。 -cmd.overclaim.failed = 強制確保に失敗しました。 - -# ========== コマンド - スタック ========== -cmd.stuck.no_permission = /f stuck を使用する権限がありません。 -cmd.stuck.not_stuck = スタックしていません - ここは荒野です。 -cmd.stuck.combat_tagged = 戦闘中は /f stuck を使用できません! -cmd.stuck.no_safe = 安全な場所が見つかりませんでした。 -cmd.stuck.teleporting = {0}秒後に安全な場所にテレポートします。動かないでください! - -# ========== コマンド - ホーム ========== -cmd.home.no_permission = 派閥ホームにテレポートする権限がありません。 -cmd.home.no_home = 派閥ホームが設定されていません。 -cmd.home.combat_tagged = 戦闘中はテレポートできません! -cmd.home.teleported = 派閥ホームにテレポートしました! - -# ========== コマンド - ホーム設定 ========== -cmd.sethome.no_permission = 派閥ホームを設定する権限がありません。 -cmd.sethome.world_not_allowed = このワールドではホームを設定できません。 -cmd.sethome.not_in_territory = 派閥のテリトリー内でのみホームを設定できます。 -cmd.sethome.set = 派閥ホームを設定しました! -cmd.sethome.broadcast = {0} が派閥ホームを設定しました。 -cmd.sethome.not_officer = ホームを設定するには幹部である必要があります。 -cmd.sethome.failed = ホームの設定に失敗しました。 - -# ========== コマンド - ホーム削除 ========== -cmd.delhome.no_permission = 派閥ホームを削除する権限がありません。 -cmd.delhome.no_home = 派閥ホームが設定されていません。 -cmd.delhome.deleted = 派閥ホームを削除しました! -cmd.delhome.broadcast = {0} が派閥ホームを削除しました。 -cmd.delhome.not_officer = ホームを削除するには幹部である必要があります。 -cmd.delhome.failed = ホームの削除に失敗しました。 - -# ========== コマンド - 関係(同盟/敵/中立/関係一覧) ========== -cmd.relation.ally_no_permission = 同盟を管理する権限がありません。 -cmd.relation.ally_usage = 使い方: /f ally <派閥> -cmd.relation.ally_sent = {0} に同盟リクエストを送信しました! -cmd.relation.ally_formed = {0} と同盟を結びました! -cmd.relation.already_ally = すでにその派閥と同盟を結んでいます。 -cmd.relation.ally_failed = 同盟リクエストの送信に失敗しました。 -cmd.relation.enemy_no_permission = 敵対宣言を行う権限がありません。 -cmd.relation.enemy_usage = 使い方: /f enemy <派閥> -cmd.relation.enemy_declared = {0} が敵になりました! -cmd.relation.already_enemy = すでにその派閥と敵対しています。 -cmd.relation.max_enemies = 敵の最大数に達しました。 -cmd.relation.enemy_failed = 敵対の設定に失敗しました。 -cmd.relation.neutral_no_permission = 中立関係を設定する権限がありません。 -cmd.relation.neutral_usage = 使い方: /f neutral <派閥> -cmd.relation.neutral_set = {0} と中立になりました。 -cmd.relation.already_neutral = すでにその派閥と中立です。 -cmd.relation.neutral_failed = 中立の設定に失敗しました。 -cmd.relation.cannot_self = 自分の派閥と同盟を結ぶことはできません。 -cmd.relation.max_allies = 同盟の最大数に達しました。 -cmd.relation.view_no_permission = 関係を表示する権限がありません。 -cmd.relation.header = === 派閥関係 === -cmd.relation.allies_count = 同盟 ({0}): -cmd.relation.enemies_count = 敵 ({0}): -cmd.relation.list_entry = - {0} - -# ========== コマンド - チャット ========== -cmd.chat.usage = 使い方: /f c [f|a|off] -cmd.chat.no_permission = そのチャットモードの権限がありません。 -cmd.chat.mode_set = チャットモードを {0} に設定しました - -# ========== コマンド - 招待管理 ========== -cmd.invites.not_officer = 招待を管理するには幹部である必要があります。 -cmd.invites.header = === 派閥招待 === -cmd.invites.no_pending = 保留中の招待やリクエストはありません。 -cmd.invites.outgoing = 送信済み招待: -cmd.invites.outgoing_entry = {0} ({1} が招待) -cmd.invites.requests = 参加リクエスト: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === あなたの招待 === -cmd.invites.no_invites = 保留中の招待はありません。 -cmd.invites.invite_entry = {0} - /f accept {1} で参加 - -# ========== コマンド - リクエスト ========== -cmd.request.no_permission = 派閥への参加リクエストを送信する権限がありません。 -cmd.request.already_in_named = すでに {0} に所属しています。 -cmd.request.use_leave_hint = 別の派閥に参加するには、まず /f leave で脱退してください。 -cmd.request.usage = 使い方: /f request <派閥> [メッセージ] -cmd.request.faction_open = その派閥は公開されています! /f accept {0} で直接参加できます。 -cmd.request.already_requested = すでにその派閥にリクエストを送信済みです。 -cmd.request.has_invite = その派閥から招待されています! /f accept {0} で参加してください。 -cmd.request.sent = {0} に参加リクエストを送信しました! -cmd.request.your_message = メッセージ: 「{0}」 -cmd.request.officer_review = 幹部がリクエストを確認します。 -cmd.request.officer_notify = {0} が派閥への参加をリクエストしました! -cmd.request.officer_review_hint = /f gui > 招待 で確認してください。 - -# ========== コマンド - 情報 ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = 派閥情報を表示する権限がありません。 -cmd.info.faction_not_found = 派閥「{0}」が見つかりません。 -cmd.info.not_in_faction_hint = 派閥に所属していません。/f info <派閥> を使用してください -cmd.info.leader = リーダー: {0} -cmd.info.members = メンバー: {0}/{1} -cmd.info.power = パワー: {0} -cmd.info.claims = 領地: {0} -cmd.info.raidable = 略奪可能! -cmd.info.allies = 同盟: {0} -cmd.info.enemies = 敵: {0} -cmd.info.they_consider = 相手からの評価: {0} -cmd.info.you_consider = こちらからの評価: {0} -cmd.info.members_no_permission = 派閥メンバーを表示する権限がありません。 -cmd.info.members_header = === {0} メンバー ({1}) === -cmd.info.member_online = [オンライン] -cmd.info.list_no_permission = 派閥一覧を表示する権限がありません。 -cmd.info.list_empty = 派閥はありません。 -cmd.info.list_header = === 派閥一覧 ({0}) === -cmd.info.list_entry = {0} - {1} メンバー, {2} パワー -cmd.info.list_entry_raidable = {0} - {1} メンバー, {2} パワー [略奪可能] -cmd.info.help_no_permission = ヘルプを表示する権限がありません。 -cmd.info.who_no_permission = プレイヤー情報を表示する権限がありません。 -cmd.info.who_faction = 派閥: {0} -cmd.info.who_role = 役職: {0} -cmd.info.who_joined = 参加日: {0} -cmd.info.who_faction_none = 派閥: なし -cmd.info.who_power = パワー: {0} -cmd.info.who_status = 状態: {0} -cmd.info.who_last_seen = 最終ログイン: {0} -cmd.info.map_no_permission = マップを表示する権限がありません。 -cmd.info.map_header = === テリトリーマップ === -cmd.info.map_legend = 凡例: +自分 /所有 /同盟 /敵 -荒野 -cmd.info.map_gui_hint = インタラクティブマップは /f gui をご利用ください - -# ========== コマンド - パワー ========== -cmd.power.personal = 個人パワー: {0}/{1} -cmd.power.faction = 派閥パワー: {0}/{1} -cmd.power.death_loss = 死亡時パワー減少: {0} -cmd.power.regen = 回復速度: {0}/時間 -cmd.power.no_permission = パワー情報を表示する権限がありません。 -cmd.power.header = {0} のパワー: -cmd.power.current = 現在: {0} - -# ========== コマンド - 経済 ========== -cmd.economy.balance = 残高: {0} -cmd.economy.deposited = {0} を派閥の資金庫に入金しました。 -cmd.economy.withdrawn = {0} を派閥の資金庫から出金しました。 -cmd.economy.transferred = {0} を {1} に送金しました。 -cmd.economy.insufficient = 派閥の資金庫に十分な資金がありません。 -cmd.economy.invalid_amount = 無効な金額: {0} -cmd.economy.economy_disabled = 経済機能は無効になっています。 -cmd.economy.balance_no_permission = 残高を表示する権限がありません。 -cmd.economy.treasury_unavailable = 資金庫は利用できません。 -cmd.economy.balance_display = {0} の資金庫: {1} -cmd.economy.deposit_no_permission = 入金する権限がありません。 -cmd.economy.deposit_faction_denied = 入金する派閥権限がありません。 -cmd.economy.deposit_usage = 使い方: /f deposit <金額> -cmd.economy.amount_positive = 金額は正の値である必要があります。 -cmd.economy.wallet_insufficient = 所持金が不足しています。ウォレット: {0} -cmd.economy.wallet_withdraw_failed = ウォレットからの引き出しに失敗しました。 -cmd.economy.deposit_failed = 派閥資金庫への入金に失敗しました。資金は返還されました。 -cmd.economy.withdraw_no_permission = 出金する権限がありません。 -cmd.economy.withdraw_faction_denied = 出金する派閥権限がありません。 -cmd.economy.withdraw_usage = 使い方: /f withdraw <金額> -cmd.economy.withdraw_limit_denied = 出金が拒否されました: {0} -cmd.economy.wallet_deposit_failed = 警告: ウォレットへの入金に失敗しました。管理者にお問い合わせください。 -cmd.economy.withdraw_limit_exceeded = 出金が拒否されました: 上限を超過しています。 -cmd.economy.withdraw_failed = 出金に失敗しました: {0} -cmd.economy.transfer_no_permission = 送金する権限がありません。 -cmd.economy.transfer_faction_denied = 送金する派閥権限がありません。 -cmd.economy.transfer_usage = 使い方: /f money transfer <派閥> <金額> -cmd.economy.transfer_self = 自分の派閥には送金できません。 -cmd.economy.transfer_limit_denied = 送金が拒否されました: {0} -cmd.economy.transfer_limit_exceeded = 送金が拒否されました: 上限を超過しています。 -cmd.economy.transfer_failed = 送金に失敗しました: {0} -cmd.economy.log_no_permission = 取引履歴を表示する権限がありません。 -cmd.economy.log_header = 取引履歴 (ページ {0}/{1}) -cmd.economy.log_empty = 取引が見つかりません。 -cmd.economy.money_help_header = 資金庫コマンド: -cmd.economy.money_help_balance = /f money balance [派閥] - 残高を確認 -cmd.economy.money_help_deposit = /f money deposit <金額> - 資金庫に入金 -cmd.economy.money_help_withdraw = /f money withdraw <金額> - 資金庫から出金 -cmd.economy.money_help_transfer = /f money transfer <派閥> <金額> - 派閥間で送金 -cmd.economy.money_help_log = /f money log [ページ] [種類] - 取引履歴を表示 - -# ========== 保護 - アクションフレーズ ========== -protection.action.generic = その操作はできません -protection.action.build = ブロックの設置や破壊はできません -protection.action.interact = それとインタラクトできません -protection.action.door = ドアを使用できません -protection.action.container = コンテナを開けません -protection.action.bench = 作業台を使用できません -protection.action.processing = 加工台を使用できません -protection.action.seat = 座席を使用できません -protection.action.light = 照明を切り替えできません -protection.action.teleporter = テレポーターを使用できません -protection.action.crate = クレートを使用できません -protection.action.tame = クリーチャーをテイムできません -protection.action.npc = NPCとインタラクトできません -protection.action.mount = クリーチャーに騎乗できません -protection.action.pve = クリーチャーにダメージを与えられません -protection.action.item_drop = アイテムをドロップできません -protection.action.item_pickup = アイテムを拾えません - -# ========== 保護 - 拒否理由 ========== -protection.denied.safezone = SafeZone では{0}。 -protection.denied.warzone = WarZone では{0}。 -protection.denied.enemy_claim = 敵のテリトリーでは{0}。 -protection.denied.claimed = 確保済みテリトリーでは{0}。 -protection.denied.here = ここでは{0}。 -protection.denied.zone = このゾーンでは{0}。 -protection.denied.faction_perm = ここでは{0}。(派閥権限: {1}) -protection.denied.ally_territory = ここでは{0}。(同盟テリトリー) -protection.denied.error = 保護エラー — 安全のため操作がブロックされました。 - -# ========== 保護 - PvP ========== -protection.pvp.safezone = SafeZone では PvP が無効です。 -protection.pvp.same_faction = 派閥メンバーを攻撃することはできません。 -protection.pvp.ally = 同盟を攻撃することはできません。 -protection.pvp.spawn_protected = そのプレイヤーはスポーン保護中です。 -protection.pvp.territory_disabled = このテリトリーでは PvP が無効です。 -protection.pvp.generic = このプレイヤーを攻撃することはできません。 - -# ========== 保護 - エンティティダメージ ========== -protection.mob_damage_disabled = このゾーンではモブダメージが無効です。 -protection.pve_damage_disabled = このゾーンでは PvE ダメージが無効です。 -protection.pve_territory_denied = このテリトリーではモブにダメージを与えられません。 - -# ========== 保護 - 戦闘タグ ========== -protection.combat_tag_command = 戦闘タグ中はそのコマンドを使用できません。 - -# ========== サーバーアナウンス ========== -# 重要な派閥イベント時にオンラインの全プレイヤーに配信されます。 -# {0}, {1} = 動的な値(派閥名、プレイヤー名) -server_announce.faction_created = {0} が派閥 {1} を設立しました! -server_announce.faction_disbanded = 派閥 {0} が解散しました! -server_announce.leadership_transfer = {0} が {1} の新しいリーダーになりました! -server_announce.overclaim = {0} が {1} のテリトリーを強制確保しました! -server_announce.war_declared = {0} が {1} に宣戦布告しました! -server_announce.alliance_formed = {0} と {1} が同盟を結びました! -server_announce.alliance_broken = {0} と {1} の同盟が解消されました! - -# ========== テレポートシステム ========== -teleport.cooldown_wait = テレポートするには {0} 待つ必要があります。 -teleport.warmup_start = {0}秒後に派閥ホームにテレポートします... -teleport.combat_cancelled = テレポートがキャンセルされました - 戦闘中です! -teleport.success_default = 派閥ホームにテレポートしました! -teleport.no_home = 派閥ホームが設定されていません。 -teleport.world_not_found = ワールドが見つかりません。 -teleport.failed = テレポートに失敗しました。 -teleport.countdown = {0}秒後にテレポートします... -teleport.countdown_one = 1秒後にテレポートします... -teleport.moved_cancelled = テレポートがキャンセルされました - 移動しました! -teleport.damage_cancelled = テレポートがキャンセルされました - ダメージを受けました! -teleport.mount_teleport_blocked = 騎乗中はそのゾーンにテレポートできません。 -teleport.mount_entry_blocked = 騎乗中はこのゾーンに入れません。 - -# ========== チャット表示 ========== -chat.display.public = 公開 -chat.display.faction = 派閥 -chat.display.ally = 同盟 diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang deleted file mode 100644 index adf28344..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions_admin.lang +++ /dev/null @@ -1,801 +0,0 @@ -# HyperFactions Admin GUI - 日本語翻訳 -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== 管理者ナビゲーションバー ========== -nav.dashboard = ダッシュボード -nav.actions = アクション -nav.factions = 派閥 -nav.players = プレイヤー -nav.economy = 経済 -nav.zones = ゾーン -nav.config = 設定 -nav.backups = バックアップ -nav.log = ログ -nav.updates = アップデート -nav.help = ヘルプ -nav.version = バージョン - -# ========== 共通管理者ラベル ========== -common.faction_not_found = 派閥が見つかりません -common.no_faction = 派閥なし -common.not_set = 未設定 -common.on = オン -common.off = オフ -common.enable = 有効化 -common.disable = 無効化 -common.none_paren = (なし) -common.invalid_faction = 無効な派閥です。 -common.leader_prefix = リーダー: {0} -common.members_suffix = {0} メンバー -common.claims_suffix = {0} 領地 -common.factions_suffix = {0} 派閥 -common.players_suffix = {0} プレイヤー -common.chunks_suffix = {0} チャンク -common.entries_suffix = {0} 件 -common.found_suffix = {0} 件見つかりました -common.power_format = {0}/{1} パワー -common.raidable = 略奪可能 -common.protected = 保護中 -common.no_description = 説明が設定されていません。 -common.officers_more = 他{0}名 -common.custom_max = (カスタム最大値) -common.default_max = (デフォルト最大値) -common.now = 現在 -common.ago_suffix = {0}前 -common.just_now = たった今 -common.no_membership_history = 所属履歴はありません - -# ========== 管理者ダッシュボード ========== -dashboard.factions_prefix = 派閥: {0} -dashboard.members_prefix = 総メンバー: {0} -dashboard.claims_prefix = 総領地: {0} - -# ========== 管理者アクション ========== -actions.confirm_reset = リセットしますか? -actions.confirm_trigger = 実行しますか? -actions.kd_reset = {0} プレイヤーのK/Dをリセットしました。 -actions.kd_reset_failed = K/Dのリセットに失敗しました: {0} -actions.upkeep_unavailable = 維持費プロセッサーが利用できません。 -actions.upkeep_triggered = 維持費の徴収を実行しました。 -actions.upkeep_failed = 維持費の徴収に失敗しました: {0} - -# ========== 管理者 - 解散 ========== -disband.faction_gone = 派閥はもう存在しません。 -disband.success = 派閥「{0}」が解散されました。 -disband.failed = 解散に失敗しました: {0} -disband.no_leader = 派閥にリーダーがいないため、解散できません。 - -# ========== 管理者 - 全領地放棄 ========== -unclaim.removed = [Admin] {1} から {0} 件の領地を削除しました。 -unclaim.no_claims = {0} には削除する領地がありませんでした。 - -# ========== 管理者 - 派閥一覧 ========== -factions.home_not_set = 未設定 -factions.teleported = {0} のホームにテレポートしました。 -factions.no_home = 派閥ホームが設定されていません。 -factions.world_not_found = テレポート先のワールドが見つかりません。 - -# ========== 管理者 - 派閥情報 ========== -info.faction_gone = この派閥はもう存在しません。 - -# ========== 管理者 - 派閥メンバー ========== -members.sort_role = 役職 -members.sort_online = オンライン -members.sort_name = 名前 -members.sort_power = パワー -members.promoted = [Admin] {0} を {1} に昇格しました。 -members.demoted = [Admin] {0} を {1} に降格しました。 -members.kicked = [Admin] {0} を派閥からキックしました。 - -# ========== 管理者 - 派閥関係 ========== -relations.allies_header = 同盟 ({0}) -relations.enemies_header = 敵 ({0}) -relations.no_allies = 同盟はありません。 -relations.no_enemies = 敵はありません。 -relations.neutral_count = {0} 中立派閥 -relations.since_today = 開始日: 今日 -relations.since_one_day = 開始日: 1日前 -relations.since_days = 開始日: {0}日前 -relations.set_ally = [Admin] {0} と相互同盟を設定しました。 -relations.set_enemy = {0} と相互敵対を設定しました。 -relations.set_neutral = [Admin] {0} と相互中立を設定しました。 - -# ========== 管理者 - 派閥設定 ========== -settings.locked = この設定はサーバー設定によりロックされています。 -settings.perm_toggled = {0} を {1} に設定しました。 -settings.color_changed = 派閥カラーを {0} に設定しました。 -settings.recruitment_set = 募集を {0} に設定しました。 -settings.no_home = [Admin] この派閥にはホームが設定されていません。 -settings.home_cleared = {0} の派閥ホームをクリアしました。 - -# ========== ソートドロップダウンラベル ========== -sort.power = パワー -sort.name = 名前 -sort.members = メンバー -sort.balance = 残高 - -# ========== 管理者 - プレイヤー ========== -players.sort_last_online = 最終ログイン -players.sort_faction = 派閥 -players.sort_online = オンライン -players.not_online = プレイヤーはオンラインではありません。 -players.world_not_found = テレポート先のワールドが見つかりません。 -players.teleported = [Admin] {0} にテレポートしました。 - -# ========== 管理者 - プレイヤー情報 ========== -playerinfo.disband_faction = 派閥を解散 -playerinfo.kick_leader = リーダーをキック -playerinfo.enter_valid_number = 有効な数値を入力してください。 -playerinfo.enter_valid_positive = 有効な正の数値を入力してください。 -playerinfo.faction_gone = 派閥はもう存在しません。 -playerinfo.kd_reset = {0} のK/Dをリセットしました。 -playerinfo.kicked_success = {0} を {1} からキックしました。 -playerinfo.kicked_leader = リーダー {0} をキックしました。リーダーシップが {1} に移行されました。 -playerinfo.disbanded_kick = [Admin] 派閥「{0}」が解散されました(最後のメンバーがキック)。 - -# ========== 管理者 - 経済 ========== -economy.no_data = 経済データのある派閥はありません。 -economy.amount_zero = 金額はゼロにできません。 -economy.enter_amount = 金額を入力してください。 -economy.invalid_number = 無効な数値: {0} -economy.error = エラーが発生しました。 -economy.balance_negative = 残高はマイナスにできません。 -economy.failed = 失敗しました: {0} -economy.bulk_complete = 一括調整完了: {2} 派閥に {0} を {1}。 -economy.bulk_failures = ({0} 件失敗) - -# ========== 管理者 - ゾーン ========== -zones.not_found = ゾーンが見つかりません。 -zones.invalid_id = 無効なゾーンIDです。 -zones.deleted = ゾーン {0} を削除しました。 -zones.delete_failed = ゾーンの削除に失敗しました: {0} -zones.no_chunks = チャンクなし -zones.chunks_suffix = {0}({1} チャンク) - -# ========== ゾーン作成ウィザード ========== -wizard.enter_name = ゾーン名を入力してください。 -wizard.name_too_short = ゾーン名は{0}文字以上である必要があります。 -wizard.name_too_long = ゾーン名は{0}文字以内である必要があります。 -wizard.name_taken = その名前のゾーンはすでに存在します。 -wizard.radius_range = 半径は1から{0}の間である必要があります。 -wizard.create_failed = ゾーンを作成できませんでした: {0} -wizard.created_not_found = ゾーンを作成しましたが、見つかりませんでした。 -wizard.created = {0}「{1}」を作成しました! -wizard.chunk_claimed = チャンク ({0}, {1}) を確保しました。 -wizard.chunk_failed = 現在のチャンクを確保できませんでした: {0} -wizard.radius_claimed = {2} を中心に半径 {1} で {0} チャンクを確保しました。 -wizard.radius_no_claims = チャンクを確保できませんでした(エリアが占有されている可能性があります)。 -wizard.no_claims = ゾーンは領地なしで作成されました。 -wizard.chunks_preview = 約{0}チャンク - -# ========== ゾーン名変更 ========== -zone_rename.zone_gone = ゾーンはもう存在しません。 -zone_rename.enter_name = ゾーン名を入力してください。 -zone_rename.too_short = ゾーン名は{0}文字以上である必要があります。 -zone_rename.too_long = ゾーン名は{0}文字以内である必要があります。 -zone_rename.same_name = それはすでに現在のゾーン名です。 -zone_rename.renamed = [Admin] ゾーン名を {0} から {1} に変更しました! -zone_rename.name_taken = その名前のゾーンはすでに存在します。 -zone_rename.invalid_name = 無効なゾーン名です。 -zone_rename.rename_failed = ゾーンの名前変更に失敗しました: {0} - -# ========== ゾーンタイプ変更 ========== -zone_type.zone_gone = ゾーンはもう存在しません。 -zone_type.changed = [Admin] {0} を {1} から {2} に変更しました({3})。 -zone_type.failed = ゾーンタイプの変更に失敗しました: {0} -zone_type.flags_reset = フラグをリセット -zone_type.flags_kept = フラグを保持 - -# ========== ゾーン連携フラグ ========== -zone_int.zone_not_found = ゾーンが見つかりません -zone_int.no_plugin = (プラグインなし) -zone_int.default = (デフォルト) -zone_int.custom = (カスタム) - -# 連携フラグUIラベル -gui.zint_cat_gravestones = 墓石 -gui.zint_gravestones_desc = オンの場合、非所有者が墓を略奪できます。所有者は常に略奪可能です。 -gui.zint_cat_world_map = ワールドマップ -gui.zint_world_map_desc = このゾーン内のプレイヤーのマップ非表示を上書きします。有効にすると、このゾーン内のプレイヤーを表示する対象を選択します。 -gui.zint_visibility_label = 表示レベル: -gui.zint_cat_essentials = HyperEssentials -gui.zint_reset_defaults = デフォルトにリセット -gui.zint_back_to_flags = フラグに戻る -gui.zint_map_vis_faction = 派閥のみ -gui.zint_map_vis_ally = 派閥+同盟 -gui.zint_map_vis_all = 全プレイヤー - -# ========== アクティビティログ ========== -log.all_types = すべての種類 -log.no_logs = フィルターに一致するアクティビティログはありません。 - -# ========== バージョンページ ========== -version.active = アクティブ -version.not_found = 見つかりません -version.not_detected = 検出されません -version.not_installed = インストールされていません -version.active_version = アクティブ (v{0}) -version.active_compatible = アクティブ(互換) -version.active_claims_only = アクティブ(領地のみ) -version.installed_no_perm = インストール済み(権限プロバイダーなし) -version.active_provider = アクティブ ({0}) - -# ========== 管理者メインページ ========== -main.reload_hint = /f reload で設定をリロードします。 -main.unclaim_hint = /f admin unclaim {0} で全 {1} チャンクを放棄します。 - -# ========== ゾーンフラグ/設定 ========== -zflags.invalid_flag = 無効なフラグです。 -zflags.zone_not_found = ゾーンが見つかりません。 -zflags.conflict = (競合) -zflags.mixin = (Mixin) -zflags.reset_int = 連携フラグをデフォルトにリセットします。 -zflags.reset_all = すべてのフラグをデフォルトにリセットします。 -zflags.reset_failed = フラグのリセットに失敗しました: {0} -zflags.back_to_settings = 設定に戻る - -# ゾーン設定UIラベル -gui.zset_cat_combat = 戦闘 -gui.zset_cat_damage = ダメージ -gui.zset_cat_death = 死亡 -gui.zset_cat_building = 建築 -gui.zset_cat_interaction = インタラクション -gui.zset_cat_transport = 輸送 -gui.zset_cat_items = アイテム -gui.zset_cat_spawning = モブスポーン -gui.zset_cat_mob_clear = モブクリア -gui.zset_children_hint = (子項目は親がオンの場合のみ適用) -gui.zset_reset_defaults = デフォルトにリセット -gui.zset_integration_flags = 連携フラグ -gui.zset_back_to_zones = ゾーンに戻る -gui.zset_chunks = {0} チャンク - -# ゾーンフラグ表示名 -gui.zflag_pvp_enabled = PvP有効 -gui.zflag_friendly_fire = フレンドリーファイア -gui.zflag_friendly_fire_faction = 派閥ダメージ -gui.zflag_friendly_fire_ally = 同盟ダメージ -gui.zflag_projectile_damage = 飛び道具ダメージ -gui.zflag_mob_damage = モブからのダメージ -gui.zflag_pve_damage = モブへのダメージ -gui.zflag_fall_damage = 落下ダメージ -gui.zflag_environmental_damage = 環境ダメージ -gui.zflag_explosion_damage = 爆発ダメージ -gui.zflag_fire_spread = 火の延焼 -gui.zflag_keep_inventory = インベントリ保持 -gui.zflag_power_loss = パワー減少 -gui.zflag_build_allowed = 建築許可 -gui.zflag_block_place = ブロック設置 -gui.zflag_hammer_use = ハンマー使用 -gui.zflag_builder_tools_use = ビルダーツール -gui.zflag_block_interact = ブロックインタラクション -gui.zflag_door_use = ドア使用 -gui.zflag_container_use = コンテナ使用 -gui.zflag_bench_use = 作業台使用 -gui.zflag_processing_use = 加工台使用 -gui.zflag_seat_use = 座席使用 -gui.zflag_mount_use = 騎乗使用 -gui.zflag_light_use = 照明使用 -gui.zflag_npc_use = NPCインタラクション -gui.zflag_crate_pickup = クレート拾得 -gui.zflag_crate_place = クレート設置 -gui.zflag_npc_tame = NPCテイム -gui.zflag_npc_interact = NPCインタラクト -gui.zflag_teleporter_use = テレポーター使用 -gui.zflag_portal_use = ポータル使用 -gui.zflag_mount_entry = 騎乗進入 -gui.zflag_item_drop = アイテムドロップ -gui.zflag_item_pickup = 自動拾得 -gui.zflag_item_pickup_manual = Fキー拾得 -gui.zflag_invincible_items = アイテム無敵 -gui.zflag_mob_spawning = モブスポーン -gui.zflag_hostile_mob_spawning = 敵対モブ -gui.zflag_passive_mob_spawning = 友好モブ -gui.zflag_neutral_mob_spawning = 中立モブ -gui.zflag_npc_spawning = NPCスポーン -gui.zflag_mob_clear = モブクリア -gui.zflag_hostile_mob_clear = 敵対モブクリア -gui.zflag_passive_mob_clear = 友好モブクリア -gui.zflag_neutral_mob_clear = 中立モブクリア -gui.zflag_gravestone_access = 他者の墓略奪 -gui.zflag_show_on_map = マップに表示 -gui.zflag_essentials_homes = ホーム使用 -gui.zflag_essentials_warps = ワープ使用 -gui.zflag_essentials_kits = キット取得 - -# ========== ゾーンプロパティ ========== -zprop.current_custom = 現在: 「{0}」(カスタム) -zprop.current_default = 現在: 「{0}」(デフォルト) -zprop.pvp_disabled = PvP無効 -zprop.pvp_enabled = PvP有効 -zprop.name_empty = 名前を空にすることはできません。 -zprop.renamed = ゾーン名を「{0}」に変更しました。 -zprop.name_taken = その名前のゾーンはすでに存在します。 -zprop.name_invalid = 無効な名前です(最大32文字)。 -zprop.rename_failed = 名前の変更に失敗しました: {0} -zprop.upper_empty = 上部タイトルを空にすることはできません。クリアでリセットしてください。 -zprop.upper_set = 上部タイトルを設定しました。 -zprop.upper_reset = 上部タイトルをデフォルトにリセットしました。 -zprop.lower_empty = 下部タイトルを空にすることはできません。クリアでリセットしてください。 -zprop.lower_set = 下部タイトルを設定しました。 -zprop.lower_reset = 下部タイトルをデフォルトにリセットしました。 - -# ========== 関係 追加 ========== -relations.failed = 失敗しました: {0} - -# ========== メンバー 追加 ========== -members.never = なし -members.teleported = [Admin] {0} にテレポートしました。 - -# ========== プレイヤー情報 追加 ========== -playerinfo.records = {0} 件 -playerinfo.joined_date = 参加: {0} -playerinfo.current = 現在 -playerinfo.left_date = 脱退: {0} - -# ========== ゾーンマップ ========== -map.world_warning = 警告: あなたは「{0}」にいますが、ゾーンは「{1}」にあります -map.position = 現在地: チャンク ({0}, {1}) -map.zone_gone = ゾーンはもう存在しません。 -map.claimed = {2} のチャンク ({0}, {1}) を確保しました。 -map.claim_failed = チャンクの確保に失敗しました: {0} -map.unclaimed = {2} のチャンク ({0}, {1}) を放棄しました。 -map.unclaim_failed = チャンクの放棄に失敗しました: {0} -map.chunk_belongs = このチャンクは {0} に属しています。 -map.chunk_faction = このチャンクは派閥に確保されています。 -map.chunk_protected = このチャンクは保護リージョン内にあります。 -map.another_zone = 別のゾーン - -# ========== GUIラベルキー(.uiハードコードテキストのローカライズ用) ========== - -# ページタイトル -gui.title_dashboard = 管理者ダッシュボード -gui.title_main = 派閥管理 -gui.title_actions = 管理: サーバーアクション -gui.title_factions = 派閥管理 -gui.title_players = プレイヤー管理 -gui.title_economy = 管理: サーバー経済 -gui.title_zones = ゾーン管理 -gui.title_backups = バックアップ -gui.title_config = 設定 -gui.title_help = 管理者ヘルプ -gui.title_updates = アップデート -gui.title_version = バージョンと連携 -gui.title_activity_log = 管理: アクティビティログ -gui.title_player_info = 管理: プレイヤー情報 -gui.title_faction_info = 管理: 派閥情報 -gui.title_faction_settings = 管理: 派閥設定 -gui.title_faction_members = 管理: メンバー -gui.title_faction_relations = 管理: 関係 -gui.title_zone_map = ゾーンマップエディタ -gui.title_zone_settings = 管理: ゾーン設定 -gui.title_zone_properties = 管理: ゾーンプロパティ -gui.title_bulk_economy = 一括資金庫調整 -gui.title_economy_adjust = 管理: 経済 - -# ダッシュボードラベル -gui.dash_server_stats = サーバー統計 -gui.dash_factions = 派閥 -gui.dash_total_members = 総メンバー -gui.dash_total_claims = 総領地 -gui.dash_zones = ゾーン -gui.dash_safe_war = 安全 / 戦闘 -gui.dash_total_power = 総パワー -gui.dash_avg_power = 平均パワー/派閥 -gui.dash_total_economy = 総経済 -gui.dash_wealthiest = 最高資産 -gui.dash_avg_balance = 平均残高 -gui.dash_protection_bypass = 保護バイパス: - -# 共通ボタンとラベル -gui.search = 検索: -gui.sort = ソート: -gui.prev = < 前へ -gui.next = 次へ > -gui.back = 戻る -gui.done = 完了 -gui.cancel = キャンセル -gui.apply = 適用 -gui.set = 設定 -gui.reset = リセット -gui.coming_soon = 近日公開 -gui.zones_btn = ゾーン -gui.reload_btn = リロード -gui.all = すべて -gui.safe = 安全 -gui.war = 戦闘 -gui.create_zone = + 作成 - -# アクションページラベル -gui.act_combat_stats = 戦闘統計 -gui.act_combat_desc = サーバー上の全プレイヤーのキルとデスをリセットします。この操作は取り消せません。 -gui.act_reset_kd = 全K/Dをリセット -gui.act_economy = 経済 -gui.act_economy_desc = 全派閥の資金庫に一括で資金を追加または削除します。 -gui.act_bulk_adjust = 一括追加/削除 -gui.act_upkeep_collection = 維持費徴収 -gui.act_upkeep_desc = スケジュールされたタイマーに関係なく、今すぐ全派閥の維持費徴収を手動実行します。 -gui.act_trigger_upkeep = 維持費を徴収 - -# プレースホルダーページラベル -gui.backup_heading = バックアップ管理 -gui.backup_desc1 = 派閥データのバックアップを作成、復元、管理します。 -gui.backup_desc2 = 自動バックアップは data/backups フォルダに保存されます。 -gui.config_heading = 設定エディタ -gui.config_desc1 = GUIから直接 HyperFactions の設定を構成します。 -gui.config_desc2 = 現在は /f reload で設定変更をリロードしてください。 -gui.help_heading = 管理者ドキュメント -gui.help_desc1 = 管理者ドキュメントとコマンドリファレンスを表示します。 -gui.help_desc2 = ヘルプについては HyperFactions wiki をご覧ください。 -gui.updates_heading = アップデートセンター -gui.updates_desc1 = 新バージョンの確認と変更履歴を表示します。 -gui.updates_desc2 = 最新のアップデートは HyperFactions ページをご覧ください。 - -# バージョンページラベル -gui.ver_hyperfactions = HyperFactions -gui.ver_hytale_server = Hytale Server -gui.ver_java = Java -gui.ver_permissions = 権限 -gui.ver_placeholders = プレースホルダー -gui.ver_economy_section = 経済 -gui.ver_protection = 保護 -gui.ver_disabled = 無効 - -# 列ヘッダー(ページ間共有) -gui.col_faction = 派閥 -gui.col_balance = 残高 -gui.col_members = メンバー -gui.col_actions = アクション -gui.col_time = 時間 -gui.col_type = 種類 -gui.col_message = メッセージ - -# 経済ページラベル -gui.econ_total_balance = 総残高 -gui.econ_factions = 派閥 -gui.econ_avg_balance = 平均残高 -gui.econ_in_grace = 猶予中 -gui.econ_collected = 徴収済み (24時間) -gui.econ_next_collection = 次回徴収 -gui.econ_no_data = 経済データのある派閥はありません。 - -# アクティビティログラベル -gui.log_type = 種類: -gui.log_time = 時間: -gui.log_player = プレイヤー: -gui.log_no_logs = フィルターに一致するアクティビティログはありません。 - -# プレイヤー情報ラベル -gui.plr_first_joined = 初回参加: -gui.plr_last_online = 最終ログイン: -gui.plr_uuid = UUID: -gui.plr_faction = 派閥: -gui.plr_role = 役職: -gui.plr_view_faction = 派閥を表示 -gui.plr_power = パワー -gui.plr_max_power = 最大パワー -gui.plr_set_power = 設定 -gui.plr_reset_power = リセット -gui.plr_set_max = 設定 -gui.plr_reset_max = リセット -gui.plr_no_power_loss = パワー減少なし -gui.plr_no_claim_decay = 領地減衰なし -gui.plr_kills = キル -gui.plr_deaths = デス -gui.plr_kdr = K/D比率 -gui.plr_reset_kd = K/Dリセット -gui.plr_kick = キック -gui.plr_membership_history = 所属履歴 -gui.plr_no_faction_label = 派閥に所属していません -gui.plr_power_management = パワー管理 -gui.plr_combat_stats = 戦闘統計 -gui.plr_bypass_flags = バイパスフラグ -gui.plr_admin_controls = 管理者コントロール -gui.plr_kd_subtitle = K / D -gui.plr_max_prefix = 最大: -gui.plr_view = 表示 -gui.plr_kick_from_faction = 派閥からキック -gui.plr_set_max_btn = 最大値設定 -gui.plr_combat = 戦闘 -gui.plr_reason_active = アクティブ -gui.plr_reason_left = 脱退 -gui.plr_reason_kicked = キック -gui.plr_reason_disbanded = 解散 - -# メンバーエントリラベル -gui.mem_label_power = パワー: -gui.mem_label_joined = 参加日: -gui.mem_label_last_death = 最終死亡: -gui.mem_label_uuid = UUID: -gui.mem_btn_info = 情報 -gui.mem_btn_teleport = テレポート -gui.mem_btn_promote = 昇格 -gui.mem_btn_demote = 降格 -gui.mem_btn_kick = キック -gui.econ_not_enabled = 経済システムが有効になっていません。 -gui.info_more = 他{0}名 -gui.log_time_1h = 1時間 -gui.log_time_24h = 24時間 -gui.log_time_7d = 7日 -gui.log_time_all = すべて -gui.shape_circular = 円形 -gui.shape_square = 四角形 -gui.nav_title = 管理パネル -gui.econ_btn_adjust = 調整 -gui.econ_btn_info = 情報 - -# 派閥情報ラベル -gui.fac_description = 説明 -gui.fac_power = パワー -gui.fac_claims = 領地 -gui.fac_members = メンバー -gui.fac_recruitment = 募集 -gui.fac_founded = 設立日 -gui.fac_allies = 同盟 -gui.fac_enemies = 敵 -gui.fac_raidable = 略奪可能状態 -gui.fac_treasury = 資金庫 -gui.fac_leader = リーダー -gui.fac_officers = 幹部 -gui.fac_view_members = メンバーを表示 -gui.fac_view_relations = 関係を表示 -gui.fac_view_settings = 設定 -gui.fac_disband = 派閥を解散 -gui.fac_power_management = パワー管理 -gui.fac_reset_all_power = 全パワーをリセット -gui.fac_econ_adjust = 残高を調整 -gui.fac_econ_view_log = 取引履歴を表示 -gui.fac_current_max = 現在 / 最大 -gui.fac_claimed_max = 確保済 / 最大 -gui.fac_relations = 関係 -gui.fac_ally_enemy = 同盟 / 敵 -gui.fac_status = ステータス -gui.fac_info = 情報 -gui.fac_treasury_balance = 資金庫残高 -gui.fac_leadership = リーダーシップ -gui.fac_leader_label = リーダー: -gui.fac_officers_label = 幹部: -gui.fac_econ_mgmt = 経済管理 -gui.fac_danger_zone = 危険ゾーン -gui.fac_view_treasury = 資金庫を表示 - -# 派閥設定ラベル -gui.set_editing = 編集中: -gui.set_general = 一般設定 -gui.set_name = 名前 -gui.set_tag = タグ -gui.set_description = 説明 -gui.set_recruitment = 募集 -gui.set_home = ホームの場所 -gui.set_clear_home = ホームをクリア -gui.set_disband_faction = 派閥を解散 -gui.set_faction_color = 派閥カラー -gui.set_admin_override = [管理者オーバーライド] -gui.set_territory_perms = テリトリー権限 -gui.set_mob_spawning = モブスポーン -gui.set_faction_settings = 派閥設定 -gui.set_name_label = 名前: -gui.set_tag_label = タグ: -gui.set_desc_label = 説明: -gui.set_edit = 編集 -gui.set_status_label = ステータス: -gui.set_location_label = 場所: -gui.set_danger_zone = 危険ゾーン -gui.set_irreversible = この操作は取り消せません。 -gui.set_lock_hint = 一部のオプションはサーバーによってロックされており、変更できない場合があります。 -gui.set_appearance = 外観 -gui.set_color_label = カラー: -gui.set_mob_sub = (マスターがオフの場合、子項目は無効になります) -gui.set_back_to_info = 情報に戻る -gui.set_col_out = 外部 -gui.set_col_ally = 同盟 -gui.set_col_mem = メンバー -gui.set_col_off = 幹部 -gui.set_cat_building = 建築 -gui.set_cat_interaction = インタラクション -gui.set_cat_interact_sub = (「全て」がオフの場合、子項目は無効になります) -gui.set_cat_other = その他 -gui.set_perm_break = 破壊 -gui.set_perm_place = 設置 -gui.set_perm_all = 全て -gui.set_perm_door = ドア -gui.set_perm_chest = チェスト -gui.set_perm_bench = 作業台 -gui.set_perm_processing = 加工台 -gui.set_perm_seat = 座席 -gui.set_perm_transport = 輸送 -gui.set_perm_crate_use = クレート使用 -gui.set_perm_npc_tame = NPCテイム -gui.set_perm_pve_damage = PvEダメージ -gui.set_perm_mob_spawning = モブスポーン -gui.set_perm_hostile = 敵対モブ -gui.set_perm_passive = 友好モブ -gui.set_perm_neutral = 中立モブ -gui.set_perm_pvp = テリトリー内PvP -gui.set_perm_officers_edit = 幹部が編集可能 - -# 派閥関係ラベル -gui.rel_subtitle = 派閥関係を管理(承認をバイパス) -gui.rel_set_new = 新しい関係を設定 -gui.rel_btn_ally = 同盟 -gui.rel_btn_neutral = 中立 -gui.rel_btn_enemy = 敵 - -# ゾーンページラベル -gui.zone_sort_name = 名前 -gui.zone_sort_type = タイプ -gui.zone_sort_chunks = チャンク -gui.zone_sort_world = ワールド -gui.zone_count_format = {0} {1}ゾーン({2} チャンク) - -# ゾーンマップラベル -gui.map_zone_chunk = ゾーンチャンク -gui.map_empty = 空き -gui.map_other_zone = 他のゾーン -gui.map_faction_claim = 派閥領地 -gui.map_protected = 保護中 -gui.map_your_pos = 現在地 -gui.map_click_hint = クリックでチャンクを確保/放棄 -gui.map_legend_zone_safe = このゾーン(安全) -gui.map_legend_zone_war = このゾーン(戦闘) -gui.map_legend_other_safe = 他のSafeZone -gui.map_legend_other_war = 他のWarZone -gui.map_legend_faction = 派閥領地 -gui.map_legend_unclaimed = 未確保 -gui.map_legend_you_here = 現在地 -gui.map_action_hint = 左クリック: ゾーンに確保 | 右クリック: ゾーンから放棄 -gui.map_done = 完了 - -# ゾーンプロパティラベル -gui.zprop_general = 一般 -gui.zprop_zone_name = ゾーン名 -gui.zprop_zone_type = ゾーンタイプ -gui.zprop_change_type = タイプ変更 -gui.zprop_notifications = 通知 -gui.zprop_show_entry = 入場通知を表示 -gui.zprop_upper_title = 上部タイトル -gui.zprop_upper_desc = 上部タイトル(ゾーン名の上の小さなテキスト) -gui.zprop_lower_title = 下部タイトル -gui.zprop_lower_desc = 下部タイトル(大きなゾーン名テキスト) -gui.zprop_edit_flags = フラグを編集 -gui.zprop_back_to_zones = ゾーンに戻る -gui.save = 保存 -gui.clear = クリア - -# 一括経済ラベル -gui.bulk_header = 全派閥の資金庫を調整 -gui.bulk_factions_label = 派閥: -gui.bulk_total_label = 総残高: -gui.bulk_amount_hint = 金額(正で追加、負で削除): -gui.bulk_hint = 資金庫を持つすべての派閥に適用されます -gui.bulk_warning_msg = 警告: この操作は全派閥に影響し、取り消すことはできません。 -gui.bulk_apply_all = すべてに適用 -gui.bulk_operation = 操作 -gui.bulk_add = 追加 -gui.bulk_remove = 削除 -gui.bulk_amount = 金額 -gui.bulk_warning = 全派閥の資金庫に影響します。 -gui.bulk_preview = プレビュー - -# 経済調整ラベル -gui.ecadj_header = 資金庫残高を調整 -gui.ecadj_faction_label = 派閥: -gui.ecadj_current_balance = 現在の残高: -gui.ecadj_amount_hint = 金額(正で追加、負で差し引き): -gui.ecadj_preview_hint = 変更をプレビューするには数値を入力してください -gui.ecadj_adjustment = 調整: -gui.ecadj_set_balance = 残高を設定 -gui.ecadj_confirm = +/- を確認 -gui.ecadj_operation = 操作 -gui.ecadj_add = 追加 -gui.ecadj_remove = 削除 -gui.ecadj_set_to = に設定 -gui.ecadj_amount = 金額 -gui.ecadj_new_balance = 新しい残高: - -# バージョンページ連携ラベル -gui.ver_hyperperms = HyperPerms -gui.ver_luckperms = LuckPerms -gui.ver_vault = VaultUnlocked -gui.ver_native = Hytale Native -gui.ver_hyperprotect = HyperProtect -gui.ver_orbisguard_mixins = OrbisGuard Mixins -gui.ver_orbisguard_api = OrbisGuard API -gui.ver_mixin_hooks = Mixin Hooks -gui.ver_gravestones = Gravestones -gui.ver_kyuubisoft = KyuubiSoft -gui.ver_placeholder_api = PlaceholderAPI -gui.ver_wiflow_papi = WiFlow PAPI -gui.ver_treasury = 資金庫 - -# 全領地放棄確認モーダルラベル -gui.unclaim_title = すべてのテリトリーを放棄 -gui.unclaim_confirm_msg1 = 本当にすべての領地を放棄しますか -gui.unclaim_confirm_msg2 = から -gui.unclaim_warning = この操作は取り消せません! -gui.unclaim_all = すべて放棄 - -# ゾーン名変更モーダルラベル -gui.zren_title = ゾーン名変更 -gui.zren_current = 現在: -gui.zren_new_name = 新しい名前: - -# ゾーンタイプ変更モーダルラベル -gui.ztype_title = ゾーンタイプ変更 -gui.ztype_zone_label = ゾーン: -gui.ztype_current = 現在: -gui.ztype_will_become = に変更 -gui.ztype_new = 新規: -gui.ztype_warning1 = ゾーンタイプが異なると、デフォルトのフラグ値も異なります。 -gui.ztype_warning2 = 既存のフラグ設定の扱いを選択してください: -gui.ztype_keep_desc = カスタムオーバーライドを保持 -gui.ztype_keep_flags = フラグを保持 -gui.ztype_reset_desc = 新しいタイプのデフォルトを使用 -gui.ztype_reset_flags = フラグをリセット - -# ゾーン作成ウィザードラベル -gui.czw_title = ゾーンを作成 -gui.czw_back = < 戻る -gui.czw_create = ゾーンを作成 -gui.czw_zone_type = ゾーンタイプ -gui.czw_safe_desc = 保護あり、PvPなし -gui.czw_war_desc = 戦闘あり、PvP有効 -gui.czw_zone_name = ゾーン名 -gui.czw_name_desc = ゾーンの一意な名前を入力してください -gui.czw_claim_method = 確保方法 -gui.czw_method_none_desc = 空のゾーンを作成 -gui.czw_method_none = 領地なし -gui.czw_method_single_desc = 現在のチャンク -gui.czw_method_single = 単一チャンク -gui.czw_method_circle_desc = 円形エリア -gui.czw_method_circle = 円形半径 -gui.czw_method_square_desc = 四角形エリア -gui.czw_method_square = 四角形半径 -gui.czw_method_map_desc = インタラクティブチャンクエディタ -gui.czw_method_map = クレームマップを使用 -gui.czw_radius = 半径 -gui.czw_custom_radius = カスタム (1-50): -gui.czw_flags = フラグ -gui.czw_flags_defaults_desc = ゾーンタイプに基づく -gui.czw_flags_defaults = デフォルトを使用 -gui.czw_flags_customize_desc = 作成後に設定を開く -gui.czw_flags_customize = カスタマイズ - -# ========== エントリラベル(派閥/プレイヤー/ゾーンリスト) ========== - -# 派閥エントリラベル -gui.fac_entry_power = パワー -gui.fac_entry_claims = 領地 -gui.fac_entry_members = メンバー -gui.fac_entry_created = 設立日: -gui.fac_entry_home = ホーム: -gui.fac_entry_tp_home = ホームにTP -gui.fac_entry_view_info = 情報を見る -gui.fac_entry_members_btn = メンバー -gui.fac_entry_settings = 設定 -gui.fac_entry_unclaim_all = すべて放棄 -gui.fac_entry_disband = 解散 - -# プレイヤーエントリラベル -gui.plr_entry_role = 役職: -gui.plr_entry_joined = 参加日: -gui.plr_entry_last_online = 最終ログイン: -gui.plr_entry_kdr = K/D/R: -gui.plr_entry_power = パワー: -gui.plr_entry_uuid = UUID: -gui.plr_entry_info = 情報 -gui.plr_entry_teleport = テレポート -gui.plr_entry_na = N/A -gui.plr_entry_unknown = 不明 -gui.plr_entry_ago = {0}前 - -# ゾーンエントリラベル -gui.zone_entry_world = ワールド: -gui.zone_entry_chunks = チャンク: -gui.zone_entry_bounds = 範囲: -gui.zone_entry_created = 作成日: -gui.zone_entry_edit_map = マップを編集 -gui.zone_entry_flags = フラグ -gui.zone_entry_settings = 設定 -gui.zone_entry_delete = 削除 diff --git a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang deleted file mode 100644 index 67dfaeca..00000000 --- a/src/main/resources/Server/Languages/ja-JP/hyperfactions_gui.lang +++ /dev/null @@ -1,866 +0,0 @@ -# HyperFactions GUI - 日本語翻訳 -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== ナビゲーションバー ========== -nav.dashboard = ダッシュボード -nav.chat = チャット -nav.members = メンバー -nav.invites = 招待 -nav.browser = 検索 -nav.map = マップ -nav.leaderboard = ランキング -nav.relations = 関係 -nav.treasury = 資金庫 -nav.settings = 設定 -nav.logs = ログ -nav.help = ヘルプ -nav.admin = 管理 -nav.create = 作成 - -# ========== ヘルプカテゴリ名 ========== -help.category.welcome = ようこそ -help.category.your_faction = あなたの派閥 -help.category.power_land = パワーと領地 -help.category.diplomacy = 外交 -help.category.combat = 戦闘と安全 -help.category.economy = 経済 -help.category.quick_ref = クイックリファレンス - -# ========== 管理者ヘルプカテゴリ名 ========== -help.category.admin_overview = 概要 -help.category.admin_factions = 派閥 -help.category.admin_zones = ゾーン -help.category.admin_power = パワー -help.category.admin_economy = 経済 -help.category.admin_config = 設定 -help.category.admin_maintenance = メンテナンス -help.category.admin_reference = リファレンス - -# ========== メインメニュー ========== -main_menu.title = HyperFactions -main_menu.section_my_faction = マイ派閥 -main_menu.section_get_started = はじめに -main_menu.section_territory = テリトリー -main_menu.section_browse = 検索 -main_menu.section_admin = 管理 -main_menu.claim_hint = /f claim でテリトリーを確保できます。 - -# ========== 派閥情報ページ ========== -faction_info.title = 派閥情報 -faction_info.no_description = 説明が設定されていません。 -faction_info.status_open = 公開 -faction_info.status_invite_only = 招待制 -faction_info.status_raidable = 略奪可能 -faction_info.status_protected = 保護中 -faction_info.officers_more = 他{0}名 -faction_info.power_header = パワー -faction_info.claims_header = 領地 -faction_info.members_header = メンバー -faction_info.relations_header = 関係 -faction_info.status_header = ステータス -faction_info.treasury_header = 資金庫 -faction_info.current_max = 現在 / 最大 -faction_info.claimed_max = 確保済 / 最大 -faction_info.ally_enemy = 同盟 / 敵 -faction_info.faction_balance = 派閥残高 -faction_info.leader_label = リーダー: -faction_info.officers_label = 幹部: -faction_info.view_members_btn = メンバー一覧 -faction_info.relations_btn = 関係 -faction_info.back_btn = 戻る - -# ========== 名前変更モーダル ========== -rename.title = 派閥名変更 -rename.current_label = 現在: -rename.new_name_label = 新しい名前: -rename.no_permission = 派閥名を変更する権限がありません。 -rename.enter_name = 派閥名を入力してください。 -rename.too_short = 派閥名は{0}文字以上である必要があります。 -rename.too_long = 派閥名は{0}文字以内である必要があります。 -rename.same_name = それはすでに現在の派閥名です。 -rename.name_taken = その名前の派閥はすでに存在します。 -rename.success = 派閥名を {0} から {1} に変更しました! - -# ========== 説明モーダル ========== -desc.title = 説明を編集 -desc.current_label = 現在: -desc.new_desc_label = 新しい説明: -desc.no_permission = 説明を編集する権限がありません。 -desc.display_none = (なし) -desc.cleared = 派閥の説明をクリアしました。 -desc.updated = 派閥の説明を更新しました! - -# ========== タグモーダル ========== -tag.title = タグを編集 -tag.current_label = 現在: -tag.instructions = タグ(1-5文字、英数字のみ): -tag.help_text = タグはチャットやマップに表示されます -tag.no_permission = タグを編集する権限がありません。 -tag.display_none = (なし) -tag.cleared = 派閥タグをクリアしました。 -tag.too_short = タグは{0}文字以上である必要があります。 -tag.too_long = タグは{0}文字以内である必要があります。 -tag.invalid_format = タグには英数字のみ使用できます。 -tag.same_tag = それはすでに現在のタグです。 -tag.tag_taken = そのタグの派閥はすでに存在します。 -tag.success = 派閥タグを [{0}] に設定しました! - -# ========== ダッシュボードページ ========== -dashboard.title = 派閥ダッシュボード -dashboard.power_label = パワー -dashboard.land_label = 領地 -dashboard.members_label = メンバー -dashboard.online_label = オンライン -dashboard.allies_label = 同盟 -dashboard.enemies_label = 敵 -dashboard.relations_label = 関係 -dashboard.ally_enemy_label = 同盟 / 敵 -dashboard.status_label = ステータス -dashboard.invites_label = 招待 -dashboard.sent_requests_label = 送信 / リクエスト -dashboard.treasury_label = 資金庫 -dashboard.upkeep_label = 維持費 -dashboard.per_cycle = サイクルごと -dashboard.your_wallet = あなたのウォレット -dashboard.personal_balance = 個人残高 -dashboard.quick_actions = クイックアクション -dashboard.teleport_label = テレポート -dashboard.territory_label = テリトリー -dashboard.channel_label = チャンネル -dashboard.membership_label = 所属 -dashboard.recent_activity = 最近のアクティビティ -dashboard.view_all = すべて表示 -dashboard.income_24h = 収入 (24時間) -dashboard.deposits_transfers_in = 入金、受取送金 -dashboard.expenses_24h = 支出 (24時間) -dashboard.withdrawals_transfers_out = 出金、送出送金 -dashboard.faction_gone = 派閥はもう存在しません。 -dashboard.available = {0} 利用可能 -dashboard.at_risk = 危険! -dashboard.online_count = {0} オンライン -dashboard.status_invite = 招待制 -dashboard.in_grace = 猶予期間中 -dashboard.billable_chunks = {0} 課金チャンク -dashboard.btn_home = ホーム -dashboard.btn_set_home = ホーム設定 -dashboard.btn_claim = 確保 -dashboard.chat_prefix = チャット: {0} -dashboard.btn_leave = 脱退 -dashboard.no_activity = 最近のアクティビティはありません。 -dashboard.time_now = たった今 -dashboard.time_minutes = {0}分前 -dashboard.time_hours = {0}時間前 -dashboard.time_days = {0}日前 -dashboard.no_home_hint = 派閥ホームが設定されていません。幹部に設定を依頼してください。 -dashboard.chat_mode_set = チャットモード: {0} -dashboard.claim_success = チャンク ({0}, {1}) を確保しました -dashboard.upkeep_in = あと{0} - -# ========== 派閥メインページ ========== -main.no_faction = 派閥なし -main.joined = 派閥に参加しました! -main.join_failed = 派閥への参加に失敗しました: {0} -main.invite_declined = 招待を辞退しました。 -main.cooldown = テレポートのクールダウン中です!残り{0}秒。 -main.world_not_found = テレポートできません - ワールドが見つかりません。 -main.leave_failed = 脱退に失敗しました: {0} - -# ========== 共有GUIラベル ========== -common.faction_count = {0} 派閥 -common.leader_label = リーダー: {0} -common.sort_power = パワー -common.sort_members = メンバー -common.page_format = {0}/{1} -common.own_faction = (自分) -common.search = 検索: -common.sort = ソート: -common.prev = < 前へ -common.next = 次へ > -common.treasury_not_available = 資金庫は利用できません。 - -# ========== メンバーページ ========== -members.title = メンバー -members.search_label = 検索: -members.sort_label = ソート: -members.prev_btn = < 前へ -members.next_btn = 次へ > -members.count = {0} メンバー -members.sort_role = 役職 -members.sort_last_online = 最終ログイン -members.just_now = たった今 -members.ago = {0}前 -members.never = なし -members.member_not_found = メンバーが見つかりません。 -members.promoted = {0} を {1} に昇格しました。 -members.promote_failed = 昇格に失敗しました: {0} -members.demoted = {0} を {1} に降格しました。 -members.demote_failed = 降格に失敗しました: {0} -members.kicked = {0} を派閥からキックしました。 -members.kick_failed = キックに失敗しました: {0} -members.label_power = パワー: -members.label_joined = 参加日: -members.label_last_death = 最終死亡: -members.btn_promote = 昇格 -members.btn_demote = 降格 -members.btn_kick = キック -members.btn_make_leader = リーダーに任命 -members.btn_profile = プロフィール -members.self_label = (自分) - -# ========== ブラウザページ ========== -browser.title = 派閥を検索 -browser.search_label = 検索: -browser.sort_label = ソート: -browser.prev_btn = < 前へ -browser.next_btn = 次へ > -browser.sort_name = 名前 -browser.invalid_faction = 無効な派閥です。 -browser.label_power = パワー -browser.label_claims = 領地 -browser.label_members = メンバー -browser.label_recruitment = 募集: -browser.label_created = 設立日: -browser.label_description = 説明: -browser.view_info_btn = 情報を見る -browser.label_leader = リーダー: -browser.no_description = 説明が設定されていません - -# ========== ランキングページ ========== -leaderboard.title = 派閥ランキング -leaderboard.rank_by = ランク基準: -leaderboard.col_rank = # -leaderboard.col_faction = 派閥 -leaderboard.col_claims = 領地 -leaderboard.col_members = メンバー -leaderboard.prev_btn = < 前へ -leaderboard.next_btn = 次へ > -leaderboard.sort_kd = K/D -leaderboard.sort_territory = テリトリー -leaderboard.sort_balance = 残高 - -# ========== プレイヤー情報ページ ========== -playerinfo.title = プレイヤー情報 -playerinfo.first_joined_label = 初回参加: -playerinfo.last_online_label = 最終ログイン: -playerinfo.faction_label = 派閥: -playerinfo.role_label = 役職: -playerinfo.joined_label_static = 参加日: -playerinfo.not_in_faction = 派閥に所属していません -playerinfo.power_header = パワー -playerinfo.current_max = 現在 / 最大 -playerinfo.combat_header = 戦闘 -playerinfo.kills_deaths = キル / デス -playerinfo.kdr_header = K/D比率 -playerinfo.membership_history = 所属履歴 -playerinfo.view_faction_btn = 派閥を見る -playerinfo.back_btn = 戻る -playerinfo.now = 現在 -playerinfo.history_count = {0} 件 -playerinfo.joined_label = 参加: {0} -playerinfo.current = 現在 -playerinfo.left_label = 脱退: {0} -playerinfo.no_history = 所属履歴はありません -playerinfo.faction_gone = 派閥はもう存在しません。 -playerinfo.reason_active = アクティブ -playerinfo.reason_left = 脱退 -playerinfo.reason_kicked = キック -playerinfo.reason_disbanded = 解散 - -# ========== 関係ページ ========== -relations.title = 関係 -relations.tab_relations = 関係 -relations.tab_pending = 保留中 -relations.set_relation_btn = + 関係を設定 -relations.prev_btn = < 前へ -relations.next_btn = 次へ > -relations.relation_count = {0} 件の関係 -relations.request_count = {0} 件のリクエスト -relations.type_ally = 同盟 -relations.type_enemy = 敵 -relations.type_incoming = 受信 -relations.type_outgoing = 送信 -relations.incoming_request = 受信リクエスト -relations.outgoing_request = 送信リクエスト -relations.empty_relations = まだ関係はありません。 -relations.empty_relations_hint = まだ関係はありません。+ 関係を設定 をクリックして同盟や敵を追加しましょう。 -relations.empty_pending = 保留中の同盟リクエストはありません。 -relations.today = 今日 -relations.one_day_ago = 1日前 -relations.days_ago = {0}日前 -relations.now_neutral = {0} と中立になりました。 -relations.now_enemies = {0} と敵対になりました! -relations.request_sent = {0} に同盟リクエストを送信しました。 -relations.now_allied = {0} と同盟を結びました! -relations.request_declined = {0} からの同盟リクエストを辞退しました。 -relations.request_cancelled = {0} への同盟リクエストをキャンセルしました。 -relations.failed = 失敗しました: {0} -relations.search_hint = 関係を設定する派閥を検索 -relations.no_results = 「{0}」に一致する派閥が見つかりません -relations.power_display = {0} パワー -relations.member_count = {0} メンバー -relations.label_members = メンバー -relations.label_power = パワー -relations.label_since = 開始日: -relations.label_claims = 領地: -relations.label_direction = 方向: -relations.btn_view = 表示 -relations.btn_neutral = 中立 -relations.btn_enemy = 敵 -relations.btn_ally = 同盟 -relations.btn_accept = 承諾 -relations.btn_decline = 辞退 -relations.btn_cancel = キャンセル - -# ========== 設定ページ ========== -settings.title = 派閥設定 -settings.general = 一般 -settings.name_label = 名前: -settings.tag_label = タグ: -settings.desc_label = 説明: -settings.edit_btn = 編集 -settings.recruitment = 募集 -settings.status_label = ステータス: -settings.home_location = ホームの場所 -settings.location_label = 場所: -settings.set_home_btn = ホーム設定 -settings.teleport_btn = テレポート -settings.delete_btn = 削除 -settings.optional_features = オプション機能 -settings.configure_modules = オプションモジュールを設定します。 -settings.modules_btn = モジュール -settings.danger_zone = 危険ゾーン -settings.irreversible = この操作は取り消せません。 -settings.disband_btn = 派閥を解散 -settings.lock_hint = 一部のオプションはサーバーによってロックされており、変更できない場合があります。 -settings.territory_permissions = テリトリー権限 -settings.col_out = 外部 -settings.col_ally = 同盟 -settings.col_mem = メンバー -settings.col_off = 幹部 -settings.cat_building = 建築 -settings.perm_break = 破壊 -settings.perm_place = 設置 -settings.cat_interaction = インタラクション -settings.interaction_hint = (「全て」がオフの場合、子項目は無効になります) -settings.perm_all = 全て -settings.perm_door = ドア -settings.perm_chest = チェスト -settings.perm_bench = 作業台 -settings.perm_processing = 加工台 -settings.perm_seat = 座席 -settings.perm_transport = 輸送 -settings.cat_other = その他 -settings.perm_crate = クレート使用 -settings.perm_npc_tame = NPCテイム -settings.perm_pve = PvEダメージ -settings.appearance = 外観 -settings.color_label = カラー: -settings.mob_spawning = モブスポーン -settings.mob_spawning_hint = (マスターがオフの場合、子項目は無効になります) -settings.mob_spawning_label = モブスポーン -settings.hostile_mobs = 敵対モブ -settings.passive_mobs = 友好モブ -settings.neutral_mobs = 中立モブ -settings.faction_settings = 派閥設定 -settings.pvp_in_territory = テリトリー内PvP -settings.officers_can_edit = 幹部が編集可能 -settings.leader_only = リーダーのみ -settings.officers_only = 幹部とリーダーのみが派閥設定を変更できます。 -settings.display_none = (なし) -settings.home_not_set = 未設定 -settings.no_permission = 設定を変更する権限がありません。 -settings.only_leader_disband = リーダーのみが派閥を解散できます。 -settings.perm_locked = この設定はサーバーによってロックされています。 -settings.no_perm_edit = テリトリー権限を編集する権限がありません。 -settings.only_leader_officers = リーダーのみが幹部のアクセス権を変更できます。 -settings.pvp_enabled = 有効 -settings.pvp_disabled = 無効 -settings.not_in_territory = ホームを設定するには派閥のテリトリー内にいる必要があります。 -settings.home_set = 現在地を派閥ホームに設定しました! -settings.recruitment_set = 募集を {0} に設定しました。 -settings.home_no_set = 派閥ホームが設定されていません。 -settings.home_deleted = 派閥ホームを削除しました! - -# ========== モジュールページ ========== -modules.title = 派閥モジュール -modules.description = 派閥を強化するオプション機能 -modules.configure_btn = 設定 -modules.back_btn = < 設定に戻る -modules.treasury_name = 資金庫 -modules.treasury_desc = 派閥銀行と経済システム -modules.raids_name = レイド -modules.raids_desc = 予定された派閥間戦闘 -modules.levels_name = レベル -modules.levels_desc = 派閥の成長とXP -modules.war_name = 戦争 -modules.war_desc = 正式な宣戦布告 -modules.coming_soon = 近日公開 -modules.active = アクティブ -modules.view_treasury = 資金庫を表示 -modules.unavailable = 利用不可 -modules.no_economy = 経済プラグインが検出されません -modules.disabled = 無効 -modules.economy_not_available = このサーバーでは経済機能は利用できません - -# ========== 資金庫ページ ========== -treasury.title = 派閥資金庫 -treasury.balance_label = 残高 -treasury.income_24h = 収入 (24時間) -treasury.deposits_transfers_in = 入金、受取送金 -treasury.expenses_24h = 支出 (24時間) -treasury.withdrawals_transfers_out = 出金、送出送金 -treasury.maintenance = メンテナンス -treasury.runway_label = 残存期間: -treasury.add_funds = 資金を追加 -treasury.deposit_btn = 入金 -treasury.take_funds = 資金を引き出す -treasury.withdraw_btn = 出金 -treasury.send_to_faction = 派閥に送金 -treasury.transfer_btn = 送金 -treasury.treasury_config = 資金庫設定 -treasury.settings_btn = 設定 -treasury.recent_transactions = 最近の取引 -treasury.no_transactions = まだ取引はありません -treasury.col_date = 日付 -treasury.col_type = 種類 -treasury.col_by = 実行者 -treasury.col_amount = 金額 -treasury.col_details = 詳細 -treasury.pay_now_btn = 今すぐ支払う -treasury.cost_7d = 7日: -treasury.cost_14d = 14日: -treasury.cost_30d = 30日: -treasury.settings_title = 資金庫設定 -treasury.officer_permissions = 幹部の権限 -treasury.allow_withdraw = 幹部の出金を許可 -treasury.allow_transfer = 幹部の送金を許可 -treasury.limits_section = 出金と送金の制限 -treasury.max_per_withdrawal = 1回あたりの最大出金額: -treasury.max_withdrawals_per = 期間あたりの最大出金回数: -treasury.max_per_transfer = 1回あたりの最大送金額: -treasury.max_transfers_per = 期間あたりの最大送金回数: -treasury.limit_period = 制限期間(時間): -treasury.no_limit_hint = 0で無制限 -treasury.upkeep_settings = 維持費設定 -treasury.auto_pay_upkeep = 資金庫から維持費を自動支払い -treasury.back_btn = 戻る -treasury.upkeep_cost_format = {0} / {1}時間ごと -treasury.upkeep_time_left = 残り{0} -treasury.wallet_label = あなたのウォレット: {0} -treasury.treasury_label = 資金庫残高: {0} -treasury.chunks_detail = {0} 無料 + {1} 課金チャンク -treasury.cost_label = コスト: {0} -treasury.pending = 保留中 -treasury.auto_pay_on = 自動支払い: オン -treasury.auto_pay_off = 自動支払い: オフ -treasury.runway_90_plus = 90日以上 -treasury.runway_days = {0}日 -treasury.runway_day = {0}日 -treasury.runway_less_day = 1日未満 -treasury.runway_no_funds = 資金なし -treasury.grace_expires = 猶予期限: {0} -treasury.missed_payments = 未払い回数: {0} -treasury.pay_to_clear = {0} を支払って猶予を解除 -treasury.system = システム -treasury.type_deposit = 入金 -treasury.type_withdrawal = 出金 -treasury.type_transfer_in = 受取送金 -treasury.type_transfer_out = 送出送金 -treasury.type_player_transfer = プレイヤー送金 -treasury.type_upkeep = 維持費 -treasury.type_tax = 税金徴収 -treasury.type_war_cost = 戦争費用 -treasury.type_raid_cost = レイド費用 -treasury.type_spoils = 戦利品 -treasury.type_admin = 管理者調整 -treasury.deposit_title = 資金庫に入金 -treasury.withdraw_title = 資金庫から出金 -treasury.fee_label = 手数料 ({0}%) -treasury.confirm_deposit = 入金を確認 -treasury.confirm_withdrawal = 出金を確認 -treasury.from_wallet = ウォレットから {0} -treasury.to_wallet = ウォレットへ {0} -treasury.enter_valid_amount = 有効な正の金額を入力してください。 -treasury.insufficient_wallet = ウォレットの資金が不足しています。必要: {0}、所持: {1}。 -treasury.wallet_withdraw_failed = ウォレットからの引き出しに失敗しました。 -treasury.deposit_failed_returned = 入金に失敗しました。資金は返還されました。 -treasury.deposited = {0} を資金庫に入金しました。 -treasury.deposited_fee = {0} を資金庫に入金しました。(手数料: {1}) -treasury.no_withdraw_permission = 出金する権限がありません。 -treasury.withdraw_denied = 出金が拒否されました: {0} -treasury.insufficient_treasury = 資金庫の資金が不足しています。 -treasury.withdraw_limit = 出金上限を超過しました。 -treasury.withdraw_failed = 出金に失敗しました: {0} -treasury.wallet_deposit_warn = 警告: ウォレットへの入金に失敗しました。管理者にお問い合わせください。 -treasury.withdrew = 資金庫から {0} を出金しました。 -treasury.withdrew_fee = 資金庫から {0} を出金しました。(手数料: {1}、受取額: {2}) -treasury.search_hint = プレイヤーまたは派閥を検索 -treasury.no_results = 「{0}」の検索結果はありません -treasury.tag_player = [プレイヤー] -treasury.tag_faction = [派閥] -treasury.source_online = オンライン -treasury.source_offline = オフライン -treasury.source_player_db = Hytaleプレイヤー -treasury.no_transfer_permission = 送金する権限がありません。 -treasury.transfer_denied = 送金が拒否されました: {0} -treasury.invalid_target_faction = 無効な送金先派閥です。 -treasury.target_faction_gone = 送金先の派閥はもう存在しません。 -treasury.transfer_failed = 送金に失敗しました: {0} -treasury.transfer_failed_returned = 送金に失敗しました。資金は返還されました。 -treasury.transferred = {0} を {1} に送金しました。 -treasury.invalid_target_player = 無効な送金先プレイヤーです。 -treasury.player_transfer_failed = プレイヤーのウォレットへの入金に失敗しました。送金はロールバックされました。 -treasury.leader_only_perms = リーダーのみが資金庫の権限を変更できます。 -treasury.leader_only_upkeep = リーダーのみが維持費設定を変更できます。 -treasury.invalid_limit = 制限フィールドの数値が無効です。無制限にするには0を使用してください。 - -# ========== 確認ページ ========== -confirm.disband_title = 派閥を解散 -confirm.disband_prompt = 本当に解散しますか -confirm.disband_warning = この操作は取り消せません! -confirm.leave_title = 派閥を脱退 -confirm.leave_prompt = 本当に脱退しますか -confirm.leave_warning = 派閥テリトリーへのアクセスを失います。 -confirm.leader_leave_title = リーダーとして脱退 -confirm.leader_leave_prompt = 脱退しようとしています -confirm.transfer_title = リーダーシップ譲渡 -confirm.transfer_prompt = 本当にリーダーシップを譲渡しますか -confirm.transfer_warning = あなたは幹部になります。 -confirm.disband_not_leader = リーダーのみが派閥を解散できます。 -confirm.disbanded = 派閥「{0}」が解散されました。 -confirm.disband_failed = 派閥の解散に失敗しました。 -confirm.succession_title = リーダーシップの移行先: -confirm.no_members_warning = 警告: 他にメンバーがいません! -confirm.will_disband = 脱退すると派閥は永久に解散されます。 -confirm.not_in_faction = この派閥に所属していません。 -confirm.not_leader_anymore = あなたはもうリーダーではありません。 -confirm.no_successor = 後継者がいません。代わりに解散を使用してください。 -confirm.transfer_failed = リーダーシップの譲渡に失敗しました: {0} -confirm.leader_left = リーダーシップを {0} に譲渡しました。{1} を脱退しました。 -confirm.leave_failed = 派閥の脱退に失敗しました: {0} -confirm.leader_cannot_leave = リーダーは脱退できません。リーダーシップを譲渡するか、派閥を解散してください。 -confirm.left_faction = {0} を脱退しました。 -confirm.faction_gone = 派閥はもう存在しません。 -confirm.not_leader_transfer = リーダーのみがリーダーシップを譲渡できます。 -confirm.leadership_transferred = リーダーシップを {0} に譲渡しました。 - -# ========== ログ閲覧ページ ========== -logs.title = {0} - アクティビティログ -logs.entry_count = {0} 件 -logs.filter_label = フィルター: -logs.col_time = 時間 -logs.col_type = 種類 -logs.col_message = メッセージ -logs.prev_btn = < 前へ -logs.next_btn = 次へ > -logs.all_types = すべての種類 -logs.no_logs_type = この種類のログはありません。 -logs.no_logs = まだアクティビティログはありません。 -logs.time_just_now = たった今 -logs.time_minute = {0}分前 -logs.time_minutes = {0}分前 -logs.time_hour = {0}時間前 -logs.time_hours = {0}時間前 -logs.time_day = {0}日前 -logs.time_days = {0}日前 -logs.time_week = {0}週間前 -logs.time_weeks = {0}週間前 -logs.type_member_join = 参加 -logs.type_member_leave = 脱退 -logs.type_member_kick = キック -logs.type_member_promote = 昇格 -logs.type_member_demote = 降格 -logs.type_claim = 確保 -logs.type_unclaim = 放棄 -logs.type_overclaim = 強制確保 -logs.type_home_set = ホーム設定 -logs.type_relation_ally = 同盟 -logs.type_relation_enemy = 敵 -logs.type_relation_neutral = 中立 -logs.type_leader_transfer = 譲渡 -logs.type_settings_change = 設定 -logs.type_power_change = パワー -logs.type_economy = 経済 -logs.type_admin_power = 管理者パワー - -# ログメッセージテンプレート(アクティビティログ用i18n) -# プレイヤーアクション -logs.msg_faction_created = {0} が派閥を作成しました -logs.msg_member_joined = {0} が派閥に参加しました -logs.msg_member_left = {0} が派閥を脱退しました -logs.msg_member_kicked = {0} がキックされました -logs.msg_member_promoted = {0} が {1} に昇格しました -logs.msg_member_demoted = {0} が {1} に降格されました -logs.msg_leader_transferred = リーダーシップが {0} に譲渡されました -logs.msg_leader_left_transfer = {0} が脱退し、{1} が新しいリーダーになりました -logs.msg_relation_set = {0} を {1} に設定しました -# テリトリー -logs.msg_claimed = {2} のチャンク {0}, {1} を確保しました -logs.msg_unclaimed = {2} のチャンク {0}, {1} を放棄しました -logs.msg_overclaim_lost = チャンク {0}, {1} を {2} に奪われました -logs.msg_overclaim_taken = {2} からチャンク {0}, {1} を強制確保しました -logs.msg_all_unclaimed = すべてのテリトリーが放棄されました -logs.msg_claim_removed_world = 「{0}」の領地が削除されました(ワールドが確保を許可していません) -logs.msg_claims_lost_upkeep = 維持費により {0} 件の領地を失いました({1} 回未払い) -logs.msg_claims_removed_inactive = 非アクティブにより {0} 件の領地が削除されました({1} 日間) -# ホーム -logs.msg_home_set = ホームを設定しました -logs.msg_home_cleared = ホームをクリアしました -logs.msg_home_cleared_world = 「{0}」のホームがクリアされました(ワールドが確保を許可していません) -# 設定 -logs.msg_renamed = 「{0}」から「{1}」に名前を変更しました -logs.msg_set_open = 派閥を公開に設定しました -logs.msg_set_closed = 派閥を招待制に設定しました -logs.msg_desc_set = 説明を設定しました -logs.msg_desc_cleared = 説明をクリアしました -logs.msg_color_changed = カラーを「{0}」に変更しました -# 経済 -logs.msg_deposit = 入金: {0} (+{1}) -logs.msg_withdrawal = 出金: {0} (-{1}) -logs.msg_upkeep_paid = 維持費支払い: {0}({1} 課金チャンク) -logs.msg_upkeep_grace_started = 維持費支払い失敗: 猶予期間開始({0}時間) -logs.msg_upkeep_missed = 維持費未払い({0}回目)、猶予期限: {1} -logs.msg_upkeep_manual = 維持費手動支払い: {0}({1} 課金チャンク、猶予解除) -# 管理者パワー -logs.msg_admin_power_set = 管理者が {0} のパワーを {1} に設定しました(以前: {2}) -logs.msg_admin_power_add = 管理者が {1} に {0} パワーを追加しました({2} -> {3}) -logs.msg_admin_power_remove = 管理者が {1} から {0} パワーを削除しました({2} -> {3}) -logs.msg_admin_power_reset = 管理者が {0} のパワーを {1} にリセットしました(以前: {2}) -logs.msg_admin_power_adjusted = 管理者が {0} のパワーを {1} 調整しました({2} -> {3}) -logs.msg_admin_maxpower_set = 管理者が {0} の最大パワーを {1} に設定しました(以前: {2}) -logs.msg_admin_maxpower_reset = 管理者が {0} の最大パワーをグローバルデフォルト({1})にリセットしました -logs.msg_admin_powerloss_enabled = 管理者が {0} のパワー減少を有効にしました -logs.msg_admin_powerloss_disabled = 管理者が {0} のパワー減少を無効にしました -logs.msg_admin_decay_enabled = 管理者が {0} の領地減衰免除を有効にしました -logs.msg_admin_decay_disabled = 管理者が {0} の領地減衰免除を無効にしました -logs.msg_admin_kd_reset = 管理者が {0} のK/Dをリセットしました -logs.msg_admin_power_set_all = 管理者が全 {0} メンバーのパワーを {1} に設定しました -logs.msg_admin_power_add_all = 管理者が全 {1} メンバーに {0} パワーを追加しました -logs.msg_admin_power_remove_all = 管理者が全 {1} メンバーから {0} パワーを削除しました -logs.msg_admin_power_reset_all = 管理者が全 {0} メンバーのパワーをリセットしました -logs.msg_admin_power_adjusted_all = 管理者が全 {0} メンバーのパワーを {1} 調整しました -# 管理者派閥 -logs.msg_admin_kicked = [Admin] {0} がキックされました -logs.msg_admin_role_set = [Admin] {0} の役職が {1} に設定されました -logs.msg_admin_leader_kick = [Admin] リーダーシップが {0} から {1} に移行されました(管理者キック) -logs.msg_admin_econ_added = 管理者が追加: {0}(残高: {1}) -logs.msg_admin_econ_deducted = 管理者が差し引き: {0}(残高: {1}) -logs.msg_admin_econ_set = 管理者が残高を {0} に設定しました(以前: {1}) -# インポート -logs.msg_left_import = {0} が脱退しました(別の派閥にインポート) -logs.msg_leader_import_transfer = {0} がリーダーになりました(前リーダーが別の派閥にインポート) -logs.msg_imported_from = {0} からインポートされた派閥 - -# ========== チャットページ ========== -chat.title = 派閥チャット -chat.tab_faction = 派閥 -chat.tab_ally = 同盟 -chat.send_btn = 送信 -chat.placeholder = メッセージを入力... -chat.no_messages = まだメッセージはありません。 -chat.no_ally_permission = 同盟チャットの権限がありません。 -chat.no_permission = 権限がありません。 -chat.faction_gone = 派閥はもう存在しません。 -chat.time_now = 今 -chat.time_minutes = {0}分 -chat.time_hours = {0}時間 - -# ========== 招待ページ ========== -invites.title = 招待 -invites.tab_outgoing = 送信済み -invites.tab_requests = リクエスト -invites.prev_btn = < 前へ -invites.next_btn = 次へ > -invites.invite_count = {0} 件の招待 -invites.request_count = {0} 件のリクエスト -invites.invited_by = 招待者: {0} -invites.no_message = メッセージなし -invites.expires = 有効期限: {0} -invites.type_outgoing = 送信済み -invites.type_request = リクエスト -invites.invited_by_label = 招待者: -invites.empty_outgoing = 送信済みの招待はありません。/f invite <プレイヤー> で誰かを招待しましょう。 -invites.empty_requests = 参加リクエストはありません。プレイヤーは /f request でリクエストを送信できます。 -invites.invalid_player = 無効なプレイヤーです。 -invites.cancelled_invite = {0} への招待をキャンセルしました。 -invites.player_joined = {0} が派閥に参加しました! -invites.faction_full = 派閥が満員です。リクエストを承諾できません。 -invites.add_failed = プレイヤーの追加に失敗しました。 -invites.request_expired = リクエストが見つからないか期限切れです。 -invites.request_declined = {0} からの参加リクエストを辞退しました。 -invites.time_seconds = {0}秒 -invites.time_minutes = {0}分 -invites.time_hours = {0}時間 -invites.label_message = メッセージ: -invites.btn_cancel = キャンセル -invites.btn_accept = 承諾 -invites.btn_decline = 辞退 - -# ========== マップページ ========== -map.title = テリトリーマップ -map.action_hint = 左クリック: 確保 | 右クリック: 放棄 -map.legend_your = 自分のテリトリー -map.legend_ally = 同盟テリトリー -map.legend_enemy = 敵テリトリー -map.legend_other = 他の派閥 -map.legend_wilderness = 荒野 -map.legend_safe = SafeZone -map.legend_war = WarZone -map.legend_you = 現在地 -map.position = 現在地: チャンク ({0}, {1}) -map.legend_protected = 保護中 -map.claim_stats = 領地: {0}/{1} (残り{2}) -map.overclaimed = {0} に強制確保されました! -map.power_display = パワー: {0}/{1} -map.join_to_claim = 派閥に参加して領地を確保しましょう -map.claim_success = チャンク ({0}, {1}) を確保しました! -map.claim_not_in_faction = テリトリーを確保するには派閥に所属する必要があります。 -map.claim_not_officer = 幹部とリーダーのみがテリトリーを確保できます。 -map.claim_already_yours = このチャンクはすでにあなたの領地です。 -map.claim_already_claimed = このチャンクはすでに他の派閥に確保されています。 -map.claim_not_adjacent = テリトリーに隣接するチャンクのみ確保できます。 -map.claim_max = 領地の上限に達しました。 -map.claim_world_not_allowed = このワールドでは領地確保が許可されていません。 -map.claim_orbisguard = このエリアは OrbisGuard によって保護されています。 -map.claim_failed = チャンクの確保に失敗しました。 -map.unclaim_success = チャンク ({0}, {1}) を放棄しました。 -map.unclaim_not_in_faction = 派閥に所属する必要があります。 -map.unclaim_not_officer = 幹部とリーダーのみがテリトリーを放棄できます。 -map.unclaim_not_claimed = このチャンクは確保されていません。 -map.unclaim_not_yours = このチャンクは他の派閥の領地です。 -map.unclaim_home = 派閥ホームのあるチャンクは放棄できません。 -map.unclaim_failed = チャンクの放棄に失敗しました。 -map.overclaim_success = 敵のチャンク ({0}, {1}) を強制確保しました! -map.overclaim_not_in_faction = 派閥に所属する必要があります。 -map.overclaim_not_officer = 幹部とリーダーのみが強制確保できます。 -map.overclaim_already_yours = このチャンクはすでにあなたの領地です。 -map.overclaim_ally = 同盟のテリトリーは強制確保できません。 -map.overclaim_has_power = この派閥はテリトリーを防衛するのに十分なパワーを持っています。 -map.overclaim_max = 領地の上限に達しました。 -map.overclaim_failed = チャンクの強制確保に失敗しました。 -# ========== 派閥作成ページ ========== -create.title = 派閥を作成 -create.section_preview = プレビュー -create.section_basic_info = 基本情報 -create.section_details = 詳細 -create.name_prefix = 名前: -create.faction_name_label = 派閥名 * -create.tag_label = タグ(2-4文字、空欄で自動生成) -create.desc_label = 説明(任意) -create.recruitment_label = 募集 -create.section_faction_color = 派閥カラー -create.section_combat = 戦闘 -create.create_btn = 派閥を作成 -create.preview_name = あなたの派閥名 -create.leader_prefix = リーダー: {0} -create.enter_name = 派閥名を入力してください。 -create.name_too_short = 派閥名は{0}文字以上である必要があります。 -create.name_too_long = 派閥名は{0}文字以内である必要があります。 -create.name_taken = その名前の派閥はすでに存在します。 -create.tag_length = 派閥タグは{0}-{1}文字である必要があります。 -create.tag_format = 派閥タグには英数字のみ使用できます。 -create.desc_too_long = 説明は{0}文字以内である必要があります。 -create.created = 派閥 {0} を作成しました! -create.created_no_dashboard = 派閥を作成しましたが、ダッシュボードを開けませんでした。 -create.invalid_name = 無効な派閥名です。 -create.create_failed = 派閥を作成できませんでした。 - -# ========== 新規プレイヤーページ ========== -newplayer.browse_title = 派閥を検索 -newplayer.invites_title = 招待とリクエスト -newplayer.map_title = テリトリーマップ -newplayer.view_only_badge = 閲覧専用モード -newplayer.legend_label = 凡例: -newplayer.legend_safezone = SafeZone -newplayer.legend_warzone = WarZone -newplayer.legend_faction = 派閥 -newplayer.legend_wilderness = 荒野 -newplayer.search_label = 検索: -newplayer.sort_label = ソート: -newplayer.prev_btn = < 前へ -newplayer.next_btn = 次へ > -newplayer.pending_count = {0} 件保留中 -newplayer.received_header = 受信済み招待 ({0}) -newplayer.requests_header = あなたのリクエスト ({0}) -newplayer.no_invites = 招待はありません。派閥を検索して見つけましょう! -newplayer.no_requests = 保留中のリクエストはありません。 -newplayer.invited_by = 招待者: {0} -newplayer.member_count = {0} メンバー -newplayer.power_count = {0} パワー -newplayer.claim_count = {0} 領地 -newplayer.awaiting_review = 審査中 -newplayer.expires_in = {0}時間後に期限切れ -newplayer.time_just_now = たった今 -newplayer.time_minutes = {0}分前 -newplayer.time_hours = {0}時間前 -newplayer.time_days = {0}日前 -newplayer.invalid_faction = 無効な派閥です。 -newplayer.invite_expired = この招待は期限切れまたは取り消されました。 -newplayer.faction_gone = 派閥はもう存在しません。 -newplayer.joined = {0} に参加しました! -newplayer.faction_full = この派閥は満員です。 -newplayer.join_failed = 派閥に参加できませんでした。 -newplayer.invite_declined = 招待を辞退しました。 -newplayer.request_cancelled = {0} への参加リクエストをキャンセルしました。 -newplayer.faction_count = {0} 派閥 -newplayer.browse_subtitle = 新しい居場所を見つけましょう! -newplayer.sort_power = パワー -newplayer.sort_name = 名前 -newplayer.sort_members = メンバー -newplayer.btn_accept = 承諾 -newplayer.btn_pending = 保留中 -newplayer.btn_join = 参加 -newplayer.btn_request = リクエスト -newplayer.invite_only_msg = この派閥は招待制です。 -newplayer.welcome_hint = ようこそ! /f で派閥メニューを開けます。 -newplayer.faction_open_hint = この派閥は公開されています!代わりに「参加」をクリックしてください。 -newplayer.already_requested = すでにこの派閥にリクエストを送信済みです。 -newplayer.has_invite_hint = この派閥から招待されています!代わりに「承諾」をクリックしてください。 -newplayer.request_sent = {0} に参加リクエストを送信しました! -newplayer.officer_review = 幹部がリクエストを確認します。 -newplayer.map_hint = 閲覧専用 - 派閥に参加してテリトリーを確保しましょう! - -# プレイヤー設定 -nav.player_settings = プレイヤー -player_settings.title = プレイヤー設定 -player_settings.language_section = 言語 -player_settings.auto_detect = クライアントから自動検出 -player_settings.auto_detect_desc = ゲームクライアントの言語設定を使用します -player_settings.language_label = 言語 -player_settings.notifications_section = 通知 -player_settings.territory_alerts = テリトリー通知 -player_settings.territory_alerts_desc = テリトリーの出入り時に通知を表示します -player_settings.death_announcements = 死亡ブロードキャスト -player_settings.death_announcements_desc = 派閥メンバーの死亡場所のアナウンスを受信します -player_settings.power_notifications = パワー変動 -player_settings.power_notifications_desc = パワーが変化した際にメッセージを表示します -player_settings.language_changed = 言語を {0} に変更しました -player_settings.pref_enabled = {0} を有効にしました -player_settings.pref_disabled = {0} を無効にしました - -# ========== ヘルプページ ========== -help.center_title = ヘルプセンター -help.getting_started_title = はじめに -help.what_are_factions_title = 派閥とは? -help.what_are_factions_1 = 派閥はプレイヤーが作成するグループで、協力して -help.what_are_factions_2 = テリトリーを確保し、拠点を建設し、競い合います。 -help.what_are_factions_bullet_1 = - 建築のための保護されたテリトリー -help.what_are_factions_bullet_2 = - 一緒にプレイする仲間 -help.what_are_factions_bullet_3 = - 派閥チャットや機能へのアクセス -help.joining_title = 派閥への参加 -help.joining_desc = 派閥に参加するにはいくつかの方法があります: -help.joining_bullet_1 = - 検索 - 公開派閥を見つけて「参加」をクリック -help.joining_bullet_2 = - 招待 - 幹部からの招待を承諾 -help.joining_bullet_3 = - リクエスト - 招待制の派閥に参加を申請 -help.creating_title = 派閥の作成 -help.creating_desc = 作成タブから自分の派閥を始めましょう。 -help.creating_bullet_1 = - メンバーの招待と管理 -help.creating_bullet_2 = - テリトリーの確保と保護 -help.commands_title = クイックコマンド -help.cmd_f = /f - 派閥メニューを開く -help.cmd_f_list = /f list - 全派閥を一覧表示 -help.cmd_f_join = /f join <名前> - 公開派閥に参加 -help.cmd_f_create = /f create <名前> - 新しい派閥を作成 -help.cmd_f_help = /f help - 全コマンド一覧 -help.tip = ヒント: 派閥を検索して、あなたに合うグループを見つけましょう! diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md deleted file mode 100644 index 95b6c952..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/configuration.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: admin_configuration ---- -# Configuration System - -HyperFactions uses a modular JSON config system with 11 configuration files. - -## Admin Config Commands - -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | - -## Configuration Files - -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | - ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: -`mods/com.hyperfactions_HyperFactions/config/` - ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. - ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md deleted file mode 100644 index 47e8dffe..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_config/world_settings.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_world_settings ---- -# Per-World Settings - -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. - -## World Commands - -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | - -## Available Settings - -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | - -## World Whitelist / Blacklist - -Control which worlds allow faction features through the `worlds.json` config file: - -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed - ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. - -## Examples - -- `/f admin world set survival claiming_enabled true` -- `/f admin world set creative claiming_enabled false` -- `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults - ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. - ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md deleted file mode 100644 index b219d330..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/treasury_management.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: admin_treasury_management ---- -# Treasury Management - -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. - -## Treasury Commands - -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | - -## Examples - -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance - ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. - -## Use Cases - -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | - ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. - ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md deleted file mode 100644 index 7df9b4c7..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_economy/upkeep_management.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: admin_upkeep_management ---- -# Upkeep Management - -Faction upkeep charges factions periodically based on their territory and member count. - -## Admin Controls - -Upkeep settings are managed through the economy config file or the admin config GUI. - -`/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. - -## Default Upkeep Settings - -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | - -## Monitoring Upkeep - -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep - ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. - ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. - -## Upkeep Formula - -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) - ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md deleted file mode 100644 index 253e05ab..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/disbanding.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_disbanding ---- -# Force Disbanding - -Admins can forcefully disband any faction, regardless of the leader's wishes. - -## Command - -`/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. - -**Permission**: `hyperfactions.admin.disband` - ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. - -## Consequences - -When a faction is disbanded: - -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | - -## Best Practices - -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting - ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md deleted file mode 100644 index b00218c9..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_factions/managing_factions.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_managing_factions ---- -# Managing Factions - -Admins can inspect and modify any faction on the server through the dashboard or commands. - -## Browsing Factions - -`/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. - -`/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. - -## Modifying Faction Settings - -With `hyperfactions.admin.modify` permission, you can: - -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes - ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. - -## Viewing Members and Relations - -The admin info panel shows: - -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | - ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md deleted file mode 100644 index 84a331f7..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/backups.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_backups ---- -# Backup System - -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. - -## Backup Commands - -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | - -**Permission**: `hyperfactions.admin.backup` - -## GFS Rotation Defaults - -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | - ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. - -## Backup Contents - -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files - ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. - -## Best Practices - -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md deleted file mode 100644 index e3bf7548..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/imports.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_imports ---- -# Data Import - -Import faction data from other plugins to migrate your server to HyperFactions. - -## Import Command - -`/f admin import [path] [flags]` - -**Permission**: `hyperfactions.admin.use` - -## Supported Sources - -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | - -## Import Flags - -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | - ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. - -## Import Process - -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved - -## Examples - -- `/f admin import elbaphfactions --dry-run` -- `/f admin import elbaphfactions --overwrite` -- `/f admin import hyfactions --no-zones --no-power` -- `/f admin import elbaphfactions /custom/path` - ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. - ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md deleted file mode 100644 index f6dc2880..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_maintenance/updates.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_updates ---- -# Update Checking - -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. - -## Update Commands - -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | - -## Release Channels - -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | - ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. - -## HyperProtect-Mixin - -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). - -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server - ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. - -## Rollback Procedure - -If an update causes issues: - -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` - ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md deleted file mode 100644 index bf30a5b4..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/getting_started.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: admin_getting_started ---- -# Getting Started as Admin - -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. - -## Opening the Admin Dashboard - -`/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. - ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. - -## Requirements - -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) - -## First Steps After Install - -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety - -## Admin Capabilities - -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md deleted file mode 100644 index 979e5543..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_overview/permissions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_permissions ---- -# Admin Permissions - -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. - -## Permission Nodes - -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | - -## Fallback Behavior - -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). - ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. - -## Permission Resolution Order - -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) - ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md deleted file mode 100644 index b2c9f463..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_commands.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_power_commands ---- -# Power Admin Commands - -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. - -## Player Power Commands - -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | - -## How Power Affects Factions - -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. - -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | - ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. - -## Examples - -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown - ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md deleted file mode 100644 index 5469f903..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_power/power_overrides.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: admin_power_overrides ---- -# Power Overrides - -Special power commands that change how power behaves for specific players or factions. - -## Override Commands - -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | - -## Custom Max Power - -`/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. - ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. - -## No-Loss Mode - -`/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. - -Useful for: -- New player protection periods -- Event participants -- Staff members - -## No-Decay Mode - -`/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. - -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection - -## Power Info - -`/f admin power info ` -Shows a complete breakdown: - -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage - ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md deleted file mode 100644 index bd0b0fa6..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/all_commands.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: admin_quickref_commands ---- -# Admin Command Reference - -Complete list of all `/f admin` subcommands with syntax and required permissions. - -## Dashboard and General - -| Command | Permission | -|---------|-----------| -| `/f admin` | admin.use | -| `/f admin version` | admin.use | -| `/f admin reload` | admin.reload | -| `/f admin sync` | admin.use | -| `/f admin sentry` | admin.use | - -## Faction Management - -| Command | Permission | -|---------|-----------| -| `/f admin factions` | admin.use | -| `/f admin info ` | admin.use | -| `/f admin who ` | admin.use | -| `/f admin disband ` | admin.disband | -| `/f admin log` | admin.use | - -## Zone Management - -| Command | Permission | -|---------|-----------| -| `/f admin safezone ` | admin.zones | -| `/f admin warzone ` | admin.zones | -| `/f admin removezone ` | admin.zones | -| `/f admin zone create/delete/claim/unclaim` | admin.zones | -| `/f admin zone radius ` | admin.zones | -| `/f admin zone list` | admin.zones | -| `/f admin zone notify ` | admin.zones | -| `/f admin zone title upper/lower ` | admin.zones | -| `/f admin zone properties ` | admin.zones | -| `/f admin zoneflag ` | admin.zones | - -## Power and Economy - -| Command | Permission | -|---------|-----------| -| `/f admin power set/add/remove/reset [amt]` | admin.power | -| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | -| `/f admin power info ` | admin.power | -| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | - -## Maintenance - -| Command | Permission | -|---------|-----------| -| `/f admin backup create/list/restore/delete` | admin.backup | -| `/f admin import [flags]` | admin.use | -| `/f admin update` | admin.use | -| `/f admin update mixin` | admin.use | -| `/f admin config` | admin.use | -| `/f admin world list/info/set/reset` | admin.use | -| `/f admin debug toggle ` | admin.debug | -| `/f admin integration` | admin.use | - ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md deleted file mode 100644 index c39bfb3b..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_reference/integrations.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_integrations ---- -# Plugin Integrations - -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. - -## Checking Integration Status - -`/f admin version` -Shows current version and detected integrations. - -`/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) -2. **HyperPerms** -3. **LuckPerms** -4. **OP fallback** (if no provider found) - ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. - ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. - ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md deleted file mode 100644 index 933a9b2d..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_basics.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_basics ---- -# Zone Basics - -Zones are admin-controlled territories with custom rules that override normal faction protection. - -## Zone Types - -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. - -## Creating Zones - -`/f admin safezone ` -Creates a SafeZone and claims your current chunk. - -`/f admin warzone ` -Creates a WarZone and claims your current chunk. - -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. - -## Managing Zone Chunks - -`/f admin zone claim ` -Add the current chunk to the named zone. - -`/f admin zone unclaim ` -Remove the current chunk from the named zone. - -`/f admin zone radius ` -Claim a square of chunks around your position. - -## Deleting Zones - -`/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. - ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. - ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md deleted file mode 100644 index 403b6b63..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_commands.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_commands ---- -# Zone Command Reference - -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. - -## Quick Creation - -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | - -## Zone Management - -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | - ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. - -## Examples - -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md deleted file mode 100644 index 368a4ec9..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/admin/admin_zones/zone_flags.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_flags ---- -# Zone Flags - -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. - -## Flag Categories Overview - -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | - -## Default Values (SafeZone vs WarZone) - -| Flag | SafeZone | WarZone | -|------|----------|---------| -| pvp_enabled | false | **true** | -| build_allowed | false | false | -| fall_damage | false | **true** | -| keep_inventory | **true** | false | -| power_loss | false | **true** | -| mob_spawning | false | **true** | -| item_drop | false | **true** | -| door_use | **true** | **true** | -| container_use | false | **true** | - ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. - -## Setting Flags - -`/f admin zoneflag ` - ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/death.md b/src/main/resources/Server/Languages/ko-KR/help/combat/death.md deleted file mode 100644 index 8690b43a..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/combat/death.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: combat_death -commands: home, sethome, stuck ---- -# Death and Recovery - -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. - -## Power Loss - -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. - -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## Example Scenarios - -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* - ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. - -## Recovery - -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. - ---- - -## All Death Types - -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. - ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md b/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md deleted file mode 100644 index e564ec2d..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/combat/protection.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: combat_protection ---- -# Territory Protection - -Claimed territory provides several layers of defense for your faction's builds and resources. - -## Block Protection - -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. - -## Container Protection - -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. - -## Entry Alerts - -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. - ---- - -## Ally Access - -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. - ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. - ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md deleted file mode 100644 index f0b2ab76..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/combat/spawn_protection.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: combat_spawn_protection ---- -# Spawn Protection - -After respawning from death, you receive temporary protection to prevent spawn camping. - -## How It Works - -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status - -## Protection Breaks - -Spawn protection ends early if you: - -- Attack another player or entity -- Move from your spawn position - -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. - ---- - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md b/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md deleted file mode 100644 index e45cbdb3..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/combat/tagging.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_tagging ---- -# Combat Tagging - -When you attack or are attacked by another player, you become combat tagged for 15 seconds. - -## While Tagged - -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration - ---- - -## Logout Penalty - ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. - -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. - -## How the Timer Works - -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md b/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md deleted file mode 100644 index d1d957d2..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/combat/zones.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_zones ---- -# Special Zones - -Admins can designate areas with special rules that override normal faction territory protection. - -## SafeZone - -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. - -## WarZone - -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. - ---- - -## Zone Comparison - -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | - ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. - ->[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md deleted file mode 100644 index 45da7756..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/alliances.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: diplomacy_alliances -commands: ally ---- -# Forming Alliances - -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. - ---- - -## How to Form an Alliance - -`/f ally ` - -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. - -## How to Break an Alliance - -`/f neutral ` - -Either side can unilaterally end an alliance by resetting the relation to neutral. - ---- - -## Alliance Benefits - -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | - ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. - ---- - -## Alliance Etiquette - ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. - -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md deleted file mode 100644 index 70688ad4..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/enemies.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: diplomacy_enemies -commands: enemy, neutral ---- -# Enemy Factions - -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. - ---- - -## Declaring an Enemy - -`/f enemy ` - -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. - -## Resetting to Neutral - -`/f neutral ` - -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. - ---- - -## What Enemy Status Enables - -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | - ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. - ---- - -## Strategic Considerations - -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky - ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. - ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md deleted file mode 100644 index 89711eee..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/diplomacy/relations.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: diplomacy_relations -commands: relations ---- -# Faction Relations - -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. - ---- - -## Relation Comparison - -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | - ---- - -## Viewing Relations - -`/f relations` - -Shows all your current alliances, enemies, and any pending alliance requests. - -## How Relations Work - -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. - ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. - ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md b/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md deleted file mode 100644 index 020190cd..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/economy/commands.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: economy_commands ---- -# Economy Commands - -Quick reference for all faction economy commands. - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | - ---- - -## Command Aliases - -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts - -## Role Requirements - -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. - ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md b/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md deleted file mode 100644 index 4fe4539c..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/economy/funds.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: economy_funds -commands: deposit, withdraw ---- -# Managing Funds - -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. - -## Depositing - -Any member can deposit personal funds into the faction treasury. - -`/f deposit ` -Deposit from your personal balance into the treasury. - -## Withdrawing - -Officers and the Leader can withdraw funds back to their personal balance. - -`/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) - -## Transferring - -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. - -`/f money transfer ` -Send funds to another faction's treasury. (Officer+) - ---- - -## Fees - -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | - ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. - ->[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md b/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md deleted file mode 100644 index e4e7307b..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/economy/treasury.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: economy_treasury -commands: balance ---- -# Faction Treasury - -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. - -## Starting Balance - -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. - -## Who Can Manage - -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control - ---- - -`/f balance` -Check your faction's current treasury balance. Also available as /f bal. - ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. - ->[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md b/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md deleted file mode 100644 index 8a2d12e4..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/economy/upkeep.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: economy_upkeep ---- -# Territory Upkeep - -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. - -## Upkeep Costs - -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. - -## Auto-Pay - -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. - ---- - -## Grace Period - -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. - ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. - -## Example - -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* - ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md deleted file mode 100644 index f70427cb..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/power_land/claiming.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_claiming -commands: claim, unclaim ---- -# Claiming Territory - -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. - ---- - -## How to Claim - -`/f claim` - -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. - -## How to Unclaim - -`/f unclaim` - -Releases the chunk you are standing in back to wilderness. Also requires Officer+. - ---- - -## Claim Rules - -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. - ---- - -## What Protection Provides - -Inside claimed territory, the following is enforced by default: - -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only - ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. - ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md deleted file mode 100644 index ea39186b..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/power_land/losing_territory.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_losing -commands: overclaim ---- -# Losing Territory - -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. - ---- - -## How Overclaiming Works - -`/f overclaim` - -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. - -## The Math - -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). - ---- - -## Example Scenario - -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | - -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. - ---- - -## How to Prevent Overclaiming - -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim - ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md deleted file mode 100644 index 207c041d..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/power_land/territory_map.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: power_map -commands: map ---- -# The Territory Map - -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. - ---- - -## Opening the Map - -`/f map` - -Opens the territory map GUI centered on your current location. - ---- - -## Color Legend - -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | - ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. - ---- - -## Click to Claim - -The map is not just for viewing -- you can interact with it directly. - -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you - ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. - ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md deleted file mode 100644 index ae158ed5..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/power_land/understanding_power.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: power_understanding -commands: power ---- -# Understanding Power - -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. - ---- - -## Default Power Values - -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## How It Works - -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. - ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. - ---- - -## Checking Your Power - -`/f power` - -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. - -## The Danger Zone - -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. - ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. - ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md deleted file mode 100644 index 0540d550..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/quick_ref/all_commands.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: quickref_commands ---- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | - -## Chat - -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md deleted file mode 100644 index 2155ff0c..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/welcome/getting_started.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: welcome_started -commands: gui, menu ---- -# Getting Started - -Welcome to HyperFactions! Here is how to get up and running in just a few steps. - ---- - -## Step 1: Open the Faction Menu - -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. - -## Step 2: Choose Your Path - -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | - -## Step 3: Explore Your Faction - -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. - ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. - ---- - -## Essential First Commands - -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you - ->[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md deleted file mode 100644 index dcd1df1a..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/welcome/quick_tips.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: welcome_tips ---- -# Quick Tips - -Handy advice organized by category to help you thrive. - ---- - -## Territory - -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power - -## Combat - -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default - ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. - -## Social - -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status - -## Economy - ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. - -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster - -## General - -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md deleted file mode 100644 index 5fedf54c..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/welcome/what_are_factions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: welcome_what ---- -# What Are Factions? - -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. - ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. - ---- - -## Core Mechanics - -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | - ---- - -## How Strength Works - -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. - ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. - ---- - -## Diplomacy at a Glance - -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules - ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md deleted file mode 100644 index e1eaa33b..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/your_faction/creating.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: faction_creating -commands: create ---- -# Creating a Faction - -Starting your own faction makes you the Leader with full control over settings, members, and territory. - ---- - -## How to Create - -`/f create ` - -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. - -## Name Rules - -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | - ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. - ---- - -## What Happens on Creation - -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home - ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. - ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md deleted file mode 100644 index 7dbabdcd..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/your_faction/joining.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: faction_joining -commands: accept, join, request ---- -# Joining a Faction - -There are three ways to join an existing faction, depending on how the faction is configured. - ---- - -## Methods Compared - -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | - ---- - -## Invite Details - -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept - -## Join Requests - -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard - ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. - ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md deleted file mode 100644 index 870c6133..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/your_faction/managing.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_managing -commands: invite, kick, promote, demote, transfer ---- -# Managing Members - -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. - ---- - -## Commands - -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | - ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. - ---- - -## Invitations - -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total - -## Promotions and Demotions - -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member - -## Transferring Leadership - ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. - -`/f transfer ` - -The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md b/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md deleted file mode 100644 index 67bb5962..00000000 --- a/src/main/resources/Server/Languages/ko-KR/help/your_faction/roles.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_roles ---- -# Roles and Ranks - -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. - ---- - -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. - ---- - -## Role Details - -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. - ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang deleted file mode 100644 index 239415d5..00000000 --- a/src/main/resources/Server/Languages/ko-KR/hyperfactions.lang +++ /dev/null @@ -1,453 +0,0 @@ -# HyperFactions - Korean Translations -# Format: key = value (or key = "quoted value") -# Note: Keys are auto-prefixed with "hyperfactions." by Hytale's I18nModule -# Placeholders: {0}, {1}, etc. - -# ========== 공통 ========== -common.no_permission = 권한이 없습니다. -common.not_in_faction = 세력에 소속되어 있지 않습니다. -common.already_in_faction = 이미 세력에 소속되어 있습니다. -common.player_not_found = 플레이어를 찾을 수 없습니다. -common.faction_not_found = 세력을 찾을 수 없습니다. -common.player_not_online = 해당 플레이어가 온라인이 아닙니다. -common.must_be_leader = 세력 지도자만 할 수 있습니다. -common.must_be_officer = 간부 또는 지도자만 할 수 있습니다. -common.combat_tagged = 전투 중에는 사용할 수 없습니다. -common.cancel = 취소 -common.confirm = 확인 -common.save = 저장 -common.close = 닫기 -common.clear = 초기화 -common.back = 뒤로 -common.leave = 탈퇴 -common.transfer = 이양 -common.disband = 해산 -common.world_fallback = 월드 -common.yes = 예 -common.no = 아니오 -common.loading = 로딩 중... -common.online = 온라인 -common.offline = 오프라인 -common.enabled = 활성화 -common.disabled = 비활성화 -common.none = 없음 -common.page = 페이지 {0}/{1} -common.unknown = 알 수 없음 -common.error_generic = 문제가 발생했습니다. 다시 시도해 주세요. -common.gui_fallback = GUI에 접근할 수 없습니다. /f help 명령어를 사용해 주세요. -common.admin_prefix = [Admin] -common.location_error = 현재 위치를 확인할 수 없습니다. -common.world_error = 현재 월드를 확인할 수 없습니다. -common.invalid_id = 잘못된 세력 ID입니다. -common.na = N/A - -# ========== 명령어 - 생성 ========== -cmd.create.no_permission = 세력을 생성할 권한이 없습니다. -cmd.create.usage = 사용법: /f create <이름> -cmd.create.success = 세력 '{0}'이(가) 생성되었습니다! -cmd.create.already_in_named = 이미 {0}에 소속되어 있습니다. -cmd.create.use_leave_first = 새 세력을 만들려면 먼저 /f leave를 사용해 주세요. -cmd.create.name_taken = 해당 세력 이름은 이미 사용 중입니다. -cmd.create.name_too_short = 세력 이름이 너무 짧습니다. -cmd.create.name_too_long = 세력 이름이 너무 깁니다. -cmd.create.failed = 세력 생성에 실패했습니다. - -# ========== 명령어 - 해산 ========== -cmd.disband.no_permission = 세력을 해산할 권한이 없습니다. -cmd.disband.not_leader = 세력 지도자만 해산할 수 있습니다. -cmd.disband.confirm_prompt = 정말로 세력을 해산하시겠습니까? -cmd.disband.confirm_instruction = {0}초 이내에 /f disband --text를 다시 입력하여 확인하세요. -cmd.disband.success = 세력이 해산되었습니다. -cmd.disband.failed = 세력 해산에 실패했습니다. -cmd.disband.cancelled = 이전 확인이 취소되었습니다. 해산을 확인하려면 다시 입력하세요. - -# ========== 명령어 - 이름 변경 ========== -cmd.rename.no_permission = 권한이 없습니다. -cmd.rename.not_leader = 지도자만 세력 이름을 변경할 수 있습니다. -cmd.rename.usage = 사용법: /f rename <이름> -cmd.rename.too_short = 이름이 너무 짧습니다 (최소 {0}자). -cmd.rename.too_long = 이름이 너무 깁니다 (최대 {0}자). -cmd.rename.name_taken = 해당 이름은 이미 사용 중입니다. -cmd.rename.success = 세력 이름이 {0}(으)로 변경되었습니다! -cmd.rename.broadcast = {0}이(가) 세력 이름을 {1}(으)로 변경했습니다 - -# ========== 명령어 - 설명 ========== -cmd.desc.no_permission = 권한이 없습니다. -cmd.desc.not_officer = 설명을 설정하려면 간부 이상이어야 합니다. -cmd.desc.set = 세력 설명이 설정되었습니다! -cmd.desc.cleared = 세력 설명이 초기화되었습니다. - -# ========== 명령어 - 공개 / 비공개 ========== -cmd.open.no_permission = 권한이 없습니다. -cmd.open.not_leader = 지도자만 이 설정을 변경할 수 있습니다. -cmd.open.already_open = 세력이 이미 공개 상태입니다. -cmd.open.success = 세력이 공개되었습니다! 누구나 /f join으로 가입할 수 있습니다. -cmd.open.broadcast = {0}이(가) 세력을 공개 가입으로 변경했습니다. -cmd.close.no_permission = 권한이 없습니다. -cmd.close.not_leader = 지도자만 이 설정을 변경할 수 있습니다. -cmd.close.already_closed = 세력이 이미 비공개 상태입니다. -cmd.close.success = 세력이 초대 전용으로 변경되었습니다. -cmd.close.broadcast = {0}이(가) 세력을 초대 전용으로 변경했습니다. - -# ========== 명령어 - 색상 ========== -cmd.color.no_permission = 권한이 없습니다. -cmd.color.not_officer = 색상을 변경하려면 간부 이상이어야 합니다. -cmd.color.colors_disabled = 세력 색상 기능이 비활성화되어 있습니다. -cmd.color.usage = 사용법: /f color <코드|#hex> -cmd.color.usage_hint = 유효한 코드: 0-9, a-f 또는 #RRGGBB 16진수 -cmd.color.invalid = 잘못된 색상입니다. 0-9, a-f 또는 #RRGGBB를 사용하세요. -cmd.color.success = 세력 색상이 업데이트되었습니다! - -# ========== 명령어 - 영토 점령 ========== -cmd.claim.no_permission = 영토를 점령할 권한이 없습니다. -cmd.claim.already_yours = 이 청크는 이미 세력이 소유하고 있습니다. -cmd.claim.cannot_claim_ally = 동맹 영토는 점령할 수 없습니다. -cmd.claim.already_claimed_hint = 이 청크는 이미 점령되어 있습니다. 상대가 약탈 가능 상태라면 /f overclaim을 사용하세요. -cmd.claim.success = 청크 {0}, {1}을(를) 점령했습니다! -cmd.claim.not_officer = 영토를 점령하려면 간부 이상이어야 합니다. -cmd.claim.already_claimed = 이 청크는 이미 점령되어 있습니다. -cmd.claim.max_claims = 세력의 최대 영토 수에 도달했습니다. 더 많은 파워를 확보하세요! -cmd.claim.not_adjacent = 기존 영토에 인접한 곳만 점령할 수 있습니다. -cmd.claim.world_not_allowed = 이 월드에서는 영토 점령이 허용되지 않습니다. -cmd.claim.orbisguard = 이 지역은 OrbisGuard에 의해 보호되고 있습니다. -cmd.claim.zone_protected = 이 청크는 SafeZone 또는 WarZone에 있습니다. -cmd.claim.insufficient_power = 세력의 파워가 부족하여 더 이상 영토를 점령할 수 없습니다. -cmd.claim.failed = 청크 점령에 실패했습니다. - -# ========== 명령어 - 초대 ========== -cmd.invite.no_permission = 플레이어를 초대할 권한이 없습니다. -cmd.invite.not_officer = 플레이어를 초대하려면 간부 이상이어야 합니다. -cmd.invite.usage = 사용법: /f invite <플레이어> -cmd.invite.player_not_found = 플레이어 '{0}'을(를) 찾을 수 없거나 오프라인입니다. -cmd.invite.target_in_faction = 해당 플레이어는 이미 세력에 소속되어 있습니다. -cmd.invite.sent = {0}을(를) 세력에 초대했습니다. -cmd.invite.received = {0}에서 가입 초대를 받았습니다! -cmd.invite.accept_hint = /f accept {0}을(를) 입력하여 가입하세요. - -# ========== 명령어 - 수락 / 가입 ========== -cmd.join.no_permission = 세력에 가입할 권한이 없습니다. -cmd.join.already_in_named = 이미 {0}에 소속되어 있습니다. -cmd.join.use_leave_hint = 다른 세력에 가입하려면 먼저 /f leave를 사용해 주세요. -cmd.join.no_invites = 대기 중인 초대가 없습니다. -cmd.join.faction_not_found = 세력 '{0}'을(를) 찾을 수 없습니다. -cmd.join.not_invited = 해당 세력의 초대가 없습니다. -cmd.join.faction_gone = 해당 세력이 더 이상 존재하지 않습니다. -cmd.join.success = {0}에 가입했습니다! -cmd.join.broadcast = {0}이(가) 세력에 가입했습니다! -cmd.join.faction_full = 해당 세력이 가득 찼습니다. -cmd.join.failed = 세력 가입에 실패했습니다. - -# ========== 명령어 - 추방 ========== -cmd.kick.no_permission = 멤버를 추방할 권한이 없습니다. -cmd.kick.usage = 사용법: /f kick <플레이어> -cmd.kick.not_in_your_faction = 플레이어 '{0}'은(는) 세력에 소속되어 있지 않습니다. -cmd.kick.success = {0}을(를) 세력에서 추방했습니다. -cmd.kick.broadcast = {0}이(가) 세력에서 추방되었습니다. -cmd.kick.kicked = 세력에서 추방되었습니다. -cmd.kick.cannot_kick_higher = 해당 플레이어를 추방할 권한이 없습니다. -cmd.kick.cannot_kick_leader = 세력 지도자는 추방할 수 없습니다. -cmd.kick.failed = 플레이어 추방에 실패했습니다. - -# ========== 명령어 - 탈퇴 ========== -cmd.leave.no_permission = 세력을 탈퇴할 권한이 없습니다. -cmd.leave.confirm_prompt = 정말로 세력을 탈퇴하시겠습니까? -cmd.leave.confirm_instruction = {0}초 이내에 /f leave --text를 다시 입력하여 확인하세요. -cmd.leave.success = 세력을 탈퇴했습니다. -cmd.leave.broadcast = {0}이(가) 세력을 탈퇴했습니다. -cmd.leave.failed = 세력 탈퇴에 실패했습니다. -cmd.leave.cancelled = 이전 확인이 취소되었습니다. 탈퇴를 확인하려면 다시 입력하세요. - -# ========== 명령어 - 승급 / 강등 / 지도자 이양 ========== -cmd.rank.promote_no_permission = 멤버를 승급시킬 권한이 없습니다. -cmd.rank.promote_usage = 사용법: /f promote <플레이어> -cmd.rank.promoted = {0}을(를) {1}(으)로 승급시켰습니다! -cmd.rank.promote_broadcast = {0}이(가) {1}(으)로 승급되었습니다! -cmd.rank.already_highest = 더 이상 승급할 수 없습니다. 지도자를 변경하려면 /f transfer를 사용하세요. -cmd.rank.promote_failed = 플레이어 승급에 실패했습니다. -cmd.rank.demote_no_permission = 멤버를 강등시킬 권한이 없습니다. -cmd.rank.demote_usage = 사용법: /f demote <플레이어> -cmd.rank.demoted = {0}을(를) {1}(으)로 강등시켰습니다. -cmd.rank.demote_broadcast = {0}이(가) {1}(으)로 강등되었습니다. -cmd.rank.already_lowest = 해당 플레이어는 이미 멤버입니다. -cmd.rank.demote_failed = 플레이어 강등에 실패했습니다. -cmd.rank.transfer_no_permission = 지도자를 이양할 권한이 없습니다. -cmd.rank.transfer_usage = 사용법: /f transfer <플레이어> -cmd.rank.player_not_in_faction = 세력에서 플레이어를 찾을 수 없습니다. -cmd.rank.transfer_confirm = 정말로 {0}에게 지도자를 이양하시겠습니까? -cmd.rank.transfer_confirm_instruction = {1}초 이내에 /f transfer {0} --text를 다시 입력하여 확인하세요. -cmd.rank.transferred = {0}에게 지도자를 이양했습니다! -cmd.rank.transfer_broadcast = {0}이(가) 새로운 세력 지도자가 되었습니다! -cmd.rank.transfer_failed = 지도자 이양에 실패했습니다. -cmd.rank.transfer_cancelled = 이전 확인이 취소되었습니다. 이양을 확인하려면 다시 입력하세요. - -# ========== 명령어 - 영토 포기 ========== -cmd.unclaim.no_permission = 영토를 포기할 권한이 없습니다. -cmd.unclaim.success = 청크 {0}, {1}을(를) 포기했습니다. -cmd.unclaim.not_officer = 영토를 포기하려면 간부 이상이어야 합니다. -cmd.unclaim.chunk_not_claimed = 이 청크는 점령되지 않았습니다. -cmd.unclaim.not_your_claim = 이 청크는 세력의 소유가 아닙니다. -cmd.unclaim.cannot_unclaim_home = 세력 홈이 있는 청크는 포기할 수 없습니다. -cmd.unclaim.would_disconnect = 포기할 수 없습니다 — 영토가 분리됩니다. -cmd.unclaim.failed = 청크 포기에 실패했습니다. - -# ========== 명령어 - 강제 점령 ========== -cmd.overclaim.no_permission = 영토를 강제 점령할 권한이 없습니다. -cmd.overclaim.success = 적 영토를 강제 점령했습니다! -cmd.overclaim.not_officer = 강제 점령하려면 간부 이상이어야 합니다. -cmd.overclaim.not_claimed = 이 청크는 점령되지 않았습니다. /f claim을 사용하세요. -cmd.overclaim.own_chunk = 이 청크는 이미 세력이 소유하고 있습니다. -cmd.overclaim.ally = 동맹 영토는 강제 점령할 수 없습니다. -cmd.overclaim.target_has_power = 이 세력은 아직 충분한 파워를 보유하고 있습니다. -cmd.overclaim.failed = 강제 점령에 실패했습니다. - -# ========== 명령어 - 구출 ========== -cmd.stuck.no_permission = /f stuck을 사용할 권한이 없습니다. -cmd.stuck.not_stuck = 여기는 야생 지역입니다 — 갇혀 있지 않습니다. -cmd.stuck.combat_tagged = 전투 중에는 /f stuck을 사용할 수 없습니다! -cmd.stuck.no_safe = 안전한 위치를 찾을 수 없습니다. -cmd.stuck.teleporting = {0}초 후 안전한 곳으로 이동합니다. 움직이지 마세요! - -# ========== 명령어 - 홈 ========== -cmd.home.no_permission = 세력 홈으로 이동할 권한이 없습니다. -cmd.home.no_home = 세력 홈이 설정되지 않았습니다. -cmd.home.combat_tagged = 전투 중에는 텔레포트할 수 없습니다! -cmd.home.teleported = 세력 홈으로 이동했습니다! - -# ========== 명령어 - 홈 설정 ========== -cmd.sethome.no_permission = 세력 홈을 설정할 권한이 없습니다. -cmd.sethome.world_not_allowed = 이 월드에서는 홈을 설정할 수 없습니다. -cmd.sethome.not_in_territory = 세력 영토 내에서만 홈을 설정할 수 있습니다. -cmd.sethome.set = 세력 홈이 설정되었습니다! -cmd.sethome.broadcast = {0}이(가) 세력 홈을 설정했습니다. -cmd.sethome.not_officer = 홈을 설정하려면 간부 이상이어야 합니다. -cmd.sethome.failed = 홈 설정에 실패했습니다. - -# ========== 명령어 - 홈 삭제 ========== -cmd.delhome.no_permission = 세력 홈을 삭제할 권한이 없습니다. -cmd.delhome.no_home = 세력 홈이 설정되어 있지 않습니다. -cmd.delhome.deleted = 세력 홈이 삭제되었습니다! -cmd.delhome.broadcast = {0}이(가) 세력 홈을 삭제했습니다. -cmd.delhome.not_officer = 홈을 삭제하려면 간부 이상이어야 합니다. -cmd.delhome.failed = 홈 삭제에 실패했습니다. - -# ========== 명령어 - 관계 (동맹/적/중립/관계 보기) ========== -cmd.relation.ally_no_permission = 동맹을 관리할 권한이 없습니다. -cmd.relation.ally_usage = 사용법: /f ally <세력> -cmd.relation.ally_sent = {0}에게 동맹 요청을 보냈습니다! -cmd.relation.ally_formed = {0}과(와) 동맹이 되었습니다! -cmd.relation.already_ally = 이미 해당 세력과 동맹입니다. -cmd.relation.ally_failed = 동맹 요청 전송에 실패했습니다. -cmd.relation.enemy_no_permission = 적을 선언할 권한이 없습니다. -cmd.relation.enemy_usage = 사용법: /f enemy <세력> -cmd.relation.enemy_declared = {0}이(가) 이제 적입니다! -cmd.relation.already_enemy = 이미 해당 세력과 적대 관계입니다. -cmd.relation.max_enemies = 최대 적 수에 도달했습니다. -cmd.relation.enemy_failed = 적 설정에 실패했습니다. -cmd.relation.neutral_no_permission = 중립 관계를 설정할 권한이 없습니다. -cmd.relation.neutral_usage = 사용법: /f neutral <세력> -cmd.relation.neutral_set = {0}과(와) 중립 관계가 되었습니다. -cmd.relation.already_neutral = 이미 해당 세력과 중립 관계입니다. -cmd.relation.neutral_failed = 중립 설정에 실패했습니다. -cmd.relation.cannot_self = 자기 세력과는 동맹할 수 없습니다. -cmd.relation.max_allies = 최대 동맹 수에 도달했습니다. -cmd.relation.view_no_permission = 관계를 확인할 권한이 없습니다. -cmd.relation.header = === 세력 관계 === -cmd.relation.allies_count = 동맹 ({0}): -cmd.relation.enemies_count = 적 ({0}): -cmd.relation.list_entry = - {0} - -# ========== 명령어 - 채팅 ========== -cmd.chat.usage = 사용법: /f c [f|a|off] -cmd.chat.no_permission = 해당 채팅 모드를 사용할 권한이 없습니다. -cmd.chat.mode_set = 채팅 모드가 {0}(으)로 설정되었습니다 - -# ========== 명령어 - 초대 관리 ========== -cmd.invites.not_officer = 초대를 관리하려면 간부 이상이어야 합니다. -cmd.invites.header = === 세력 초대 === -cmd.invites.no_pending = 대기 중인 초대 또는 요청이 없습니다. -cmd.invites.outgoing = 보낸 초대: -cmd.invites.outgoing_entry = {0} ({1}이(가) 초대함) -cmd.invites.requests = 가입 요청: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === 내 초대 === -cmd.invites.no_invites = 대기 중인 초대가 없습니다. -cmd.invites.invite_entry = {0} - /f accept {1}을(를) 입력하여 수락 - -# ========== 명령어 - 가입 요청 ========== -cmd.request.no_permission = 세력 가입을 요청할 권한이 없습니다. -cmd.request.already_in_named = 이미 {0}에 소속되어 있습니다. -cmd.request.use_leave_hint = 다른 세력에 가입하려면 먼저 /f leave를 사용해 주세요. -cmd.request.usage = 사용법: /f request <세력> [메시지] -cmd.request.faction_open = 해당 세력은 공개입니다! /f accept {0}을(를) 입력하여 바로 가입하세요. -cmd.request.already_requested = 해당 세력에 이미 가입 요청이 대기 중입니다. -cmd.request.has_invite = 해당 세력에서 초대를 받았습니다! /f accept {0}을(를) 입력하여 가입하세요. -cmd.request.sent = {0}에 가입 요청을 보냈습니다! -cmd.request.your_message = 메시지: "{0}" -cmd.request.officer_review = 간부가 요청을 검토할 것입니다. -cmd.request.officer_notify = {0}이(가) 세력 가입을 요청했습니다! -cmd.request.officer_review_hint = /f gui > 초대에서 검토하세요. - -# ========== 명령어 - 정보 ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = 세력 정보를 확인할 권한이 없습니다. -cmd.info.faction_not_found = 세력 '{0}'을(를) 찾을 수 없습니다. -cmd.info.not_in_faction_hint = 세력에 소속되어 있지 않습니다. /f info <세력>을 사용하세요 -cmd.info.leader = 지도자: {0} -cmd.info.members = 멤버: {0}/{1} -cmd.info.power = 파워: {0} -cmd.info.claims = 영토: {0} -cmd.info.raidable = 약탈 가능! -cmd.info.allies = 동맹: {0} -cmd.info.enemies = 적: {0} -cmd.info.they_consider = 상대의 관계: {0} -cmd.info.you_consider = 나의 관계: {0} -cmd.info.members_no_permission = 세력 멤버를 확인할 권한이 없습니다. -cmd.info.members_header = === {0} 멤버 ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = 세력 목록을 확인할 권한이 없습니다. -cmd.info.list_empty = 세력이 없습니다. -cmd.info.list_header = === 세력 ({0}) === -cmd.info.list_entry = {0} - 멤버 {1}명, 파워 {2} -cmd.info.list_entry_raidable = {0} - 멤버 {1}명, 파워 {2} [약탈 가능] -cmd.info.help_no_permission = 도움말을 확인할 권한이 없습니다. -cmd.info.who_no_permission = 플레이어 정보를 확인할 권한이 없습니다. -cmd.info.who_faction = 세력: {0} -cmd.info.who_role = 역할: {0} -cmd.info.who_joined = 가입일: {0} -cmd.info.who_faction_none = 세력: 없음 -cmd.info.who_power = 파워: {0} -cmd.info.who_status = 상태: {0} -cmd.info.who_last_seen = 마지막 접속: {0} -cmd.info.map_no_permission = 지도를 확인할 권한이 없습니다. -cmd.info.map_header = === 영역 지도 === -cmd.info.map_legend = 범례: +내 영토 /소유 /동맹 /적 -야생 -cmd.info.map_gui_hint = 대화형 지도는 /f gui를 사용하세요 - -# ========== 명령어 - 파워 ========== -cmd.power.personal = 개인 파워: {0}/{1} -cmd.power.faction = 세력 파워: {0}/{1} -cmd.power.death_loss = 사망 시 손실: {0} -cmd.power.regen = 회복 속도: {0}/시간 -cmd.power.no_permission = 파워 정보를 확인할 권한이 없습니다. -cmd.power.header = {0}의 파워: -cmd.power.current = 현재: {0} - -# ========== 명령어 - 경제 ========== -cmd.economy.balance = 잔액: {0} -cmd.economy.deposited = 세력 금고에 {0}을(를) 입금했습니다. -cmd.economy.withdrawn = 세력 금고에서 {0}을(를) 출금했습니다. -cmd.economy.transferred = {1}에게 {0}을(를) 이체했습니다. -cmd.economy.insufficient = 세력 금고의 잔액이 부족합니다. -cmd.economy.invalid_amount = 잘못된 금액: {0} -cmd.economy.economy_disabled = 경제 시스템이 비활성화되어 있습니다. -cmd.economy.balance_no_permission = 잔액을 확인할 권한이 없습니다. -cmd.economy.treasury_unavailable = 금고를 사용할 수 없습니다. -cmd.economy.balance_display = {0}의 금고: {1} -cmd.economy.deposit_no_permission = 입금할 권한이 없습니다. -cmd.economy.deposit_faction_denied = 입금에 대한 세력 권한이 없습니다. -cmd.economy.deposit_usage = 사용법: /f deposit <금액> -cmd.economy.amount_positive = 금액은 양수여야 합니다. -cmd.economy.wallet_insufficient = 소지금이 부족합니다. 지갑: {0} -cmd.economy.wallet_withdraw_failed = 지갑에서 출금하지 못했습니다. -cmd.economy.deposit_failed = 세력 금고에 입금하지 못했습니다. 금액이 반환되었습니다. -cmd.economy.withdraw_no_permission = 출금할 권한이 없습니다. -cmd.economy.withdraw_faction_denied = 출금에 대한 세력 권한이 없습니다. -cmd.economy.withdraw_usage = 사용법: /f withdraw <금액> -cmd.economy.withdraw_limit_denied = 출금 거부: {0} -cmd.economy.wallet_deposit_failed = 경고: 지갑에 입금하지 못했습니다. 관리자에게 문의하세요. -cmd.economy.withdraw_limit_exceeded = 출금 거부: 한도를 초과했습니다. -cmd.economy.withdraw_failed = 출금 실패: {0} -cmd.economy.transfer_no_permission = 이체할 권한이 없습니다. -cmd.economy.transfer_faction_denied = 이체에 대한 세력 권한이 없습니다. -cmd.economy.transfer_usage = 사용법: /f money transfer <세력> <금액> -cmd.economy.transfer_self = 자기 세력으로는 이체할 수 없습니다. -cmd.economy.transfer_limit_denied = 이체 거부: {0} -cmd.economy.transfer_limit_exceeded = 이체 거부: 한도를 초과했습니다. -cmd.economy.transfer_failed = 이체 실패: {0} -cmd.economy.log_no_permission = 거래 내역을 확인할 권한이 없습니다. -cmd.economy.log_header = 거래 내역 (페이지 {0}/{1}) -cmd.economy.log_empty = 거래 내역이 없습니다. -cmd.economy.money_help_header = 금고 명령어: -cmd.economy.money_help_balance = /f money balance [세력] - 잔액 확인 -cmd.economy.money_help_deposit = /f money deposit <금액> - 금고에 입금 -cmd.economy.money_help_withdraw = /f money withdraw <금액> - 금고에서 출금 -cmd.economy.money_help_transfer = /f money transfer <세력> <금액> - 세력 간 이체 -cmd.economy.money_help_log = /f money log [페이지] [유형] - 거래 내역 확인 - -# ========== 보호 - 행동 문구 ========== -protection.action.generic = 할 수 없습니다 -protection.action.build = 블록을 설치하거나 파괴할 수 없습니다 -protection.action.interact = 상호작용할 수 없습니다 -protection.action.door = 문을 사용할 수 없습니다 -protection.action.container = 상자를 열 수 없습니다 -protection.action.bench = 제작대를 사용할 수 없습니다 -protection.action.processing = 가공대를 사용할 수 없습니다 -protection.action.seat = 좌석을 사용할 수 없습니다 -protection.action.light = 조명을 전환할 수 없습니다 -protection.action.teleporter = 텔레포터를 사용할 수 없습니다 -protection.action.crate = 상자를 사용할 수 없습니다 -protection.action.tame = 생물을 길들일 수 없습니다 -protection.action.npc = NPC와 상호작용할 수 없습니다 -protection.action.mount = 생물에 탑승할 수 없습니다 -protection.action.pve = 생물에게 피해를 줄 수 없습니다 -protection.action.item_drop = 아이템을 버릴 수 없습니다 -protection.action.item_pickup = 아이템을 주울 수 없습니다 - -# ========== 보호 - 거부 사유 ========== -protection.denied.safezone = SafeZone에서 {0}. -protection.denied.warzone = WarZone에서 {0}. -protection.denied.enemy_claim = 적 영토에서 {0}. -protection.denied.claimed = 점령된 영토에서 {0}. -protection.denied.here = 여기서 {0}. -protection.denied.zone = 이 구역에서 {0}. -protection.denied.faction_perm = 여기서 {0}. (세력 권한: {1}) -protection.denied.ally_territory = 여기서 {0}. (동맹 영토) -protection.denied.error = 보호 오류 — 안전을 위해 행동이 차단되었습니다. - -# ========== 보호 - PvP ========== -protection.pvp.safezone = SafeZone에서는 PvP가 비활성화되어 있습니다. -protection.pvp.same_faction = 세력 멤버를 공격할 수 없습니다. -protection.pvp.ally = 동맹을 공격할 수 없습니다. -protection.pvp.spawn_protected = 해당 플레이어는 스폰 보호 상태입니다. -protection.pvp.territory_disabled = 이 영토에서는 PvP가 비활성화되어 있습니다. -protection.pvp.generic = 이 플레이어를 공격할 수 없습니다. - -# ========== 보호 - 엔티티 피해 ========== -protection.mob_damage_disabled = 이 구역에서는 몹 피해가 비활성화되어 있습니다. -protection.pve_damage_disabled = 이 구역에서는 PvE 피해가 비활성화되어 있습니다. -protection.pve_territory_denied = 이 영토에서 몹에게 피해를 줄 수 없습니다. - -# ========== 보호 - 전투 태그 ========== -protection.combat_tag_command = 전투 중에는 해당 명령어를 사용할 수 없습니다. - -# ========== 서버 공지 ========== -# 주요 세력 이벤트 시 모든 온라인 플레이어에게 전달됩니다. -# {0}, {1} = 동적 값 (세력 이름, 플레이어 이름) -server_announce.faction_created = {0}이(가) 세력 {1}을(를) 설립했습니다! -server_announce.faction_disbanded = 세력 {0}이(가) 해산되었습니다! -server_announce.leadership_transfer = {0}이(가) {1}의 새로운 지도자가 되었습니다! -server_announce.overclaim = {0}이(가) {1}의 영토를 강제 점령했습니다! -server_announce.war_declared = {0}이(가) {1}에 전쟁을 선포했습니다! -server_announce.alliance_formed = {0}과(와) {1}이(가) 동맹을 맺었습니다! -server_announce.alliance_broken = {0}과(와) {1}의 동맹이 해제되었습니다! - -# ========== 텔레포트 시스템 ========== -teleport.cooldown_wait = 다시 텔레포트하려면 {0} 후에 가능합니다. -teleport.warmup_start = {0}초 후 세력 홈으로 이동합니다... -teleport.combat_cancelled = 텔레포트 취소 - 전투 중입니다! -teleport.success_default = 세력 홈으로 이동했습니다! -teleport.no_home = 세력 홈이 설정되지 않았습니다. -teleport.world_not_found = 월드를 찾을 수 없습니다. -teleport.failed = 텔레포트에 실패했습니다. -teleport.countdown = {0}초 후 이동합니다... -teleport.countdown_one = 1초 후 이동합니다... -teleport.moved_cancelled = 텔레포트 취소 - 움직였습니다! -teleport.damage_cancelled = 텔레포트 취소 - 피해를 받았습니다! -teleport.mount_teleport_blocked = 탑승 중에는 해당 구역으로 이동할 수 없습니다. -teleport.mount_entry_blocked = 탑승 중에는 이 구역에 들어갈 수 없습니다. - -# ========== 채팅 표시 ========== -chat.display.public = 전체 -chat.display.faction = 세력 -chat.display.ally = 동맹 diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang deleted file mode 100644 index 26bd1465..00000000 --- a/src/main/resources/Server/Languages/ko-KR/hyperfactions_admin.lang +++ /dev/null @@ -1,801 +0,0 @@ -# HyperFactions Admin GUI - Korean Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_admin." by Hytale's I18nModule - -# ========== 관리자 내비게이션 바 ========== -nav.dashboard = 대시보드 -nav.actions = 작업 -nav.factions = 세력 -nav.players = 플레이어 -nav.economy = 경제 -nav.zones = 구역 -nav.config = 설정 -nav.backups = 백업 -nav.log = 로그 -nav.updates = 업데이트 -nav.help = 도움말 -nav.version = 버전 - -# ========== 공통 관리자 라벨 ========== -common.faction_not_found = 세력을 찾을 수 없음 -common.no_faction = 세력 없음 -common.not_set = 미설정 -common.on = 켜짐 -common.off = 꺼짐 -common.enable = 활성화 -common.disable = 비활성화 -common.none_paren = (없음) -common.invalid_faction = 잘못된 세력입니다. -common.leader_prefix = 지도자: {0} -common.members_suffix = 멤버 {0}명 -common.claims_suffix = 영토 {0}개 -common.factions_suffix = 세력 {0}개 -common.players_suffix = 플레이어 {0}명 -common.chunks_suffix = 청크 {0}개 -common.entries_suffix = 항목 {0}건 -common.found_suffix = {0}건 발견 -common.power_format = 파워 {0}/{1} -common.raidable = 약탈 가능 -common.protected = 보호됨 -common.no_description = 설명이 설정되지 않았습니다. -common.officers_more = +{0}명 -common.custom_max = (사용자 지정 최대) -common.default_max = (기본 최대) -common.now = 현재 -common.ago_suffix = {0} 전 -common.just_now = 방금 -common.no_membership_history = 소속 이력이 없습니다 - -# ========== 관리자 대시보드 ========== -dashboard.factions_prefix = 세력: {0} -dashboard.members_prefix = 전체 멤버: {0} -dashboard.claims_prefix = 전체 영토: {0} - -# ========== 관리자 작업 ========== -actions.confirm_reset = 초기화를 확인하시겠습니까? -actions.confirm_trigger = 실행을 확인하시겠습니까? -actions.kd_reset = 플레이어 {0}명의 K/D를 초기화했습니다. -actions.kd_reset_failed = K/D 초기화 실패: {0} -actions.upkeep_unavailable = 유지비 처리기를 사용할 수 없습니다. -actions.upkeep_triggered = 유지비 징수가 실행되었습니다. -actions.upkeep_failed = 유지비 실패: {0} - -# ========== 관리자 해산 ========== -disband.faction_gone = 세력이 더 이상 존재하지 않습니다. -disband.success = 세력 '{0}'이(가) 해산되었습니다. -disband.failed = 해산 실패: {0} -disband.no_leader = 세력에 지도자가 없어 해산할 수 없습니다. - -# ========== 관리자 전체 포기 ========== -unclaim.removed = [Admin] {1}에서 영토 {0}개를 제거했습니다. -unclaim.no_claims = {0}에는 제거할 영토가 없습니다. - -# ========== 관리자 세력 목록 ========== -factions.home_not_set = 미설정 -factions.teleported = {0}의 홈으로 이동했습니다. -factions.no_home = 세력 홈이 설정되어 있지 않습니다. -factions.world_not_found = 대상 월드를 찾을 수 없습니다. - -# ========== 관리자 세력 정보 ========== -info.faction_gone = 이 세력은 더 이상 존재하지 않습니다. - -# ========== 관리자 세력 멤버 ========== -members.sort_role = 역할 -members.sort_online = 온라인 -members.sort_name = 이름 -members.sort_power = 파워 -members.promoted = [Admin] {0}을(를) {1}(으)로 승급시켰습니다. -members.demoted = [Admin] {0}을(를) {1}(으)로 강등시켰습니다. -members.kicked = [Admin] {0}을(를) 세력에서 추방했습니다. - -# ========== 관리자 세력 관계 ========== -relations.allies_header = 동맹 ({0}) -relations.enemies_header = 적 ({0}) -relations.no_allies = 동맹이 없습니다. -relations.no_enemies = 적이 없습니다. -relations.neutral_count = 중립 세력 {0}개 -relations.since_today = 시작일: 오늘 -relations.since_one_day = 시작일: 1일 전 -relations.since_days = 시작일: {0}일 전 -relations.set_ally = [Admin] {0}과(와) 상호 동맹 관계를 설정했습니다. -relations.set_enemy = {0}과(와) 상호 적대 관계를 설정했습니다. -relations.set_neutral = [Admin] {0}과(와) 상호 중립 관계를 설정했습니다. - -# ========== 관리자 세력 설정 ========== -settings.locked = 이 설정은 서버 설정에 의해 잠겨 있습니다. -settings.perm_toggled = {0}을(를) {1}(으)로 설정했습니다. -settings.color_changed = 세력 색상을 {0}(으)로 설정했습니다. -settings.recruitment_set = 모집을 {0}(으)로 설정했습니다. -settings.no_home = [Admin] 이 세력에는 홈이 설정되어 있지 않습니다. -settings.home_cleared = {0}의 세력 홈을 초기화했습니다. - -# ========== 정렬 드롭다운 라벨 ========== -sort.power = 파워 -sort.name = 이름 -sort.members = 멤버 -sort.balance = 잔액 - -# ========== 관리자 플레이어 ========== -players.sort_last_online = 마지막 접속 -players.sort_faction = 세력 -players.sort_online = 온라인 -players.not_online = 플레이어가 온라인이 아닙니다. -players.world_not_found = 대상 월드를 찾을 수 없습니다. -players.teleported = [Admin] {0}에게 이동했습니다. - -# ========== 관리자 플레이어 정보 ========== -playerinfo.disband_faction = 세력 해산 -playerinfo.kick_leader = 지도자 추방 -playerinfo.enter_valid_number = 유효한 숫자를 입력하세요. -playerinfo.enter_valid_positive = 유효한 양수를 입력하세요. -playerinfo.faction_gone = 세력이 더 이상 존재하지 않습니다. -playerinfo.kd_reset = {0}의 K/D를 초기화했습니다. -playerinfo.kicked_success = {1}에서 {0}을(를) 추방했습니다. -playerinfo.kicked_leader = 지도자 {0}을(를) 추방했습니다. 지도자가 {1}에게 이양되었습니다. -playerinfo.disbanded_kick = [Admin] 세력 '{0}'이(가) 해산되었습니다 (마지막 멤버 추방). - -# ========== 관리자 경제 ========== -economy.no_data = 경제 데이터가 있는 세력이 없습니다. -economy.amount_zero = 금액은 0일 수 없습니다. -economy.enter_amount = 금액을 입력하세요. -economy.invalid_number = 잘못된 숫자: {0} -economy.error = 오류가 발생했습니다. -economy.balance_negative = 잔액은 음수일 수 없습니다. -economy.failed = 실패: {0} -economy.bulk_complete = 일괄 조정 완료: 세력 {2}개에 {1} {0}. -economy.bulk_failures = ({0}건 실패) - -# ========== 관리자 구역 ========== -zones.not_found = 구역을 찾을 수 없습니다. -zones.invalid_id = 잘못된 구역 ID입니다. -zones.deleted = 구역 {0}이(가) 삭제되었습니다. -zones.delete_failed = 구역 삭제 실패: {0} -zones.no_chunks = 청크 없음 -zones.chunks_suffix = {0} (청크 {1}개) - -# ========== 구역 생성 마법사 ========== -wizard.enter_name = 구역 이름을 입력하세요. -wizard.name_too_short = 구역 이름은 최소 {0}자 이상이어야 합니다. -wizard.name_too_long = 구역 이름은 {0}자를 초과할 수 없습니다. -wizard.name_taken = 해당 이름의 구역이 이미 존재합니다. -wizard.radius_range = 반경은 1에서 {0} 사이여야 합니다. -wizard.create_failed = 구역을 생성할 수 없습니다: {0} -wizard.created_not_found = 구역이 생성되었지만 찾을 수 없습니다. -wizard.created = {0} '{1}'을(를) 생성했습니다! -wizard.chunk_claimed = 청크 ({0}, {1})을(를) 점령했습니다. -wizard.chunk_failed = 현재 청크를 점령할 수 없습니다: {0} -wizard.radius_claimed = {2}을(를) 중심으로 반경 {1}에서 청크 {0}개를 점령했습니다. -wizard.radius_no_claims = 점령할 수 있는 청크가 없습니다 (지역이 점유되어 있을 수 있음). -wizard.no_claims = 영토 없이 구역이 생성되었습니다. -wizard.chunks_preview = 약 {0}개 청크 - -# ========== 구역 이름 변경 ========== -zone_rename.zone_gone = 구역이 더 이상 존재하지 않습니다. -zone_rename.enter_name = 구역 이름을 입력하세요. -zone_rename.too_short = 구역 이름은 최소 {0}자 이상이어야 합니다. -zone_rename.too_long = 구역 이름은 {0}자를 초과할 수 없습니다. -zone_rename.same_name = 이미 현재 구역의 이름입니다. -zone_rename.renamed = [Admin] 구역 이름이 {0}에서 {1}(으)로 변경되었습니다! -zone_rename.name_taken = 해당 이름의 구역이 이미 존재합니다. -zone_rename.invalid_name = 잘못된 구역 이름입니다. -zone_rename.rename_failed = 구역 이름 변경 실패: {0} - -# ========== 구역 유형 변경 ========== -zone_type.zone_gone = 구역이 더 이상 존재하지 않습니다. -zone_type.changed = [Admin] {0}을(를) {1}에서 {2}(으)로 변경했습니다 ({3}). -zone_type.failed = 구역 유형 변경 실패: {0} -zone_type.flags_reset = 플래그 초기화됨 -zone_type.flags_kept = 플래그 유지됨 - -# ========== 구역 통합 플래그 ========== -zone_int.zone_not_found = 구역을 찾을 수 없음 -zone_int.no_plugin = (플러그인 없음) -zone_int.default = (기본값) -zone_int.custom = (사용자 지정) - -# 통합 플래그 UI 라벨 -gui.zint_cat_gravestones = 묘비 -gui.zint_gravestones_desc = 켜짐 상태에서 비소유자가 묘비를 약탈할 수 있습니다. 소유자는 항상 가능합니다. -gui.zint_cat_world_map = 월드 맵 -gui.zint_world_map_desc = 이 구역의 플레이어에 대한 맵 숨김을 재정의합니다. 활성화하면 이 구역에서 플레이어를 볼 수 있는 대상을 선택합니다. -gui.zint_visibility_label = 가시성 수준: -gui.zint_cat_essentials = HyperEssentials -gui.zint_reset_defaults = 기본값으로 초기화 -gui.zint_back_to_flags = 플래그로 돌아가기 -gui.zint_map_vis_faction = 세력만 -gui.zint_map_vis_ally = 세력 + 동맹 -gui.zint_map_vis_all = 모든 플레이어 - -# ========== 활동 로그 ========== -log.all_types = 전체 유형 -log.no_logs = 필터에 일치하는 활동 로그가 없습니다. - -# ========== 버전 페이지 ========== -version.active = 활성 -version.not_found = 찾을 수 없음 -version.not_detected = 감지되지 않음 -version.not_installed = 설치되지 않음 -version.active_version = 활성 (v{0}) -version.active_compatible = 활성 (호환) -version.active_claims_only = 활성 (영토만) -version.installed_no_perm = 설치됨 (권한 제공자 없음) -version.active_provider = 활성 ({0}) - -# ========== 관리자 메인 페이지 ========== -main.reload_hint = 설정을 다시 불러오려면 /f reload를 사용하세요. -main.unclaim_hint = 모든 청크 {1}개를 포기하려면 /f admin unclaim {0}을(를) 사용하세요. - -# ========== 구역 플래그/설정 ========== -zflags.invalid_flag = 잘못된 플래그입니다. -zflags.zone_not_found = 구역을 찾을 수 없습니다. -zflags.conflict = (충돌) -zflags.mixin = (mixin) -zflags.reset_int = 통합 플래그를 기본값으로 초기화합니다. -zflags.reset_all = 모든 플래그를 기본값으로 초기화합니다. -zflags.reset_failed = 플래그 초기화 실패: {0} -zflags.back_to_settings = 설정으로 돌아가기 - -# 구역 설정 UI 라벨 -gui.zset_cat_combat = 전투 -gui.zset_cat_damage = 피해 -gui.zset_cat_death = 사망 -gui.zset_cat_building = 건축 -gui.zset_cat_interaction = 상호작용 -gui.zset_cat_transport = 이동수단 -gui.zset_cat_items = 아이템 -gui.zset_cat_spawning = 몹 스폰 -gui.zset_cat_mob_clear = 몹 제거 -gui.zset_children_hint = (상위 항목이 켜져 있을 때만 하위 항목 적용) -gui.zset_reset_defaults = 기본값으로 초기화 -gui.zset_integration_flags = 통합 플래그 -gui.zset_back_to_zones = 구역으로 돌아가기 -gui.zset_chunks = 청크 {0}개 - -# 구역 플래그 표시 이름 -gui.zflag_pvp_enabled = PvP 활성화 -gui.zflag_friendly_fire = 아군 피해 -gui.zflag_friendly_fire_faction = 세력 피해 -gui.zflag_friendly_fire_ally = 동맹 피해 -gui.zflag_projectile_damage = 투사체 피해 -gui.zflag_mob_damage = 몹 피해 받기 -gui.zflag_pve_damage = 몹 피해 주기 -gui.zflag_fall_damage = 낙하 피해 -gui.zflag_environmental_damage = 환경 피해 -gui.zflag_explosion_damage = 폭발 피해 -gui.zflag_fire_spread = 불 확산 -gui.zflag_keep_inventory = 인벤토리 유지 -gui.zflag_power_loss = 파워 손실 -gui.zflag_build_allowed = 건축 허용 -gui.zflag_block_place = 블록 설치 -gui.zflag_hammer_use = 망치 사용 -gui.zflag_builder_tools_use = 건축 도구 -gui.zflag_block_interact = 블록 상호작용 -gui.zflag_door_use = 문 사용 -gui.zflag_container_use = 상자 사용 -gui.zflag_bench_use = 제작대 사용 -gui.zflag_processing_use = 가공대 사용 -gui.zflag_seat_use = 좌석 사용 -gui.zflag_mount_use = 탑승체 사용 -gui.zflag_light_use = 조명 사용 -gui.zflag_npc_use = NPC 상호작용 -gui.zflag_crate_pickup = 상자 줍기 -gui.zflag_crate_place = 상자 놓기 -gui.zflag_npc_tame = NPC 길들이기 -gui.zflag_npc_interact = NPC 상호작용 -gui.zflag_teleporter_use = 텔레포터 사용 -gui.zflag_portal_use = 포탈 사용 -gui.zflag_mount_entry = 탑승 진입 -gui.zflag_item_drop = 아이템 버리기 -gui.zflag_item_pickup = 자동 줍기 -gui.zflag_item_pickup_manual = F키 줍기 -gui.zflag_invincible_items = 파괴 불가 아이템 -gui.zflag_mob_spawning = 몹 스폰 -gui.zflag_hostile_mob_spawning = 적대적 몹 -gui.zflag_passive_mob_spawning = 수동적 몹 -gui.zflag_neutral_mob_spawning = 중립 몹 -gui.zflag_npc_spawning = NPC 스폰 -gui.zflag_mob_clear = 몹 제거 -gui.zflag_hostile_mob_clear = 적대적 몹 제거 -gui.zflag_passive_mob_clear = 수동적 몹 제거 -gui.zflag_neutral_mob_clear = 중립 몹 제거 -gui.zflag_gravestone_access = 타인 묘비 약탈 -gui.zflag_show_on_map = 맵에 표시 -gui.zflag_essentials_homes = 홈 사용 -gui.zflag_essentials_warps = 워프 사용 -gui.zflag_essentials_kits = 킷 수령 - -# ========== 구역 속성 ========== -zprop.current_custom = 현재: "{0}" (사용자 지정) -zprop.current_default = 현재: "{0}" (기본값) -zprop.pvp_disabled = PvP 비활성화 -zprop.pvp_enabled = PvP 활성화 -zprop.name_empty = 이름은 비워둘 수 없습니다. -zprop.renamed = 구역 이름이 "{0}"(으)로 변경되었습니다. -zprop.name_taken = 해당 이름의 구역이 이미 존재합니다. -zprop.name_invalid = 잘못된 이름입니다 (최대 32자). -zprop.rename_failed = 이름 변경 실패: {0} -zprop.upper_empty = 상단 제목은 비워둘 수 없습니다. 초기화하려면 초기화를 사용하세요. -zprop.upper_set = 상단 제목이 설정되었습니다. -zprop.upper_reset = 상단 제목이 기본값으로 초기화되었습니다. -zprop.lower_empty = 하단 제목은 비워둘 수 없습니다. 초기화하려면 초기화를 사용하세요. -zprop.lower_set = 하단 제목이 설정되었습니다. -zprop.lower_reset = 하단 제목이 기본값으로 초기화되었습니다. - -# ========== 관계 추가 ========== -relations.failed = 실패: {0} - -# ========== 멤버 추가 ========== -members.never = 없음 -members.teleported = [Admin] {0}에게 이동했습니다. - -# ========== 플레이어 정보 추가 ========== -playerinfo.records = 기록 {0}건 -playerinfo.joined_date = 가입일: {0} -playerinfo.current = 현재 -playerinfo.left_date = 탈퇴일: {0} - -# ========== 구역 지도 ========== -map.world_warning = 경고: 현재 '{0}'에 있습니다 - 구역은 '{1}'에 있습니다 -map.position = 내 위치: 청크 ({0}, {1}) -map.zone_gone = 구역이 더 이상 존재하지 않습니다. -map.claimed = {2}을(를) 위해 청크 ({0}, {1})을(를) 점령했습니다. -map.claim_failed = 청크 점령 실패: {0} -map.unclaimed = {2}에서 청크 ({0}, {1})을(를) 포기했습니다. -map.unclaim_failed = 청크 포기 실패: {0} -map.chunk_belongs = 이 청크는 {0}에 속해 있습니다. -map.chunk_faction = 이 청크는 세력이 점령하고 있습니다. -map.chunk_protected = 이 청크는 보호 지역에 있습니다. -map.another_zone = 다른 구역 - -# ========== GUI 라벨 키 (.ui 하드코딩 텍스트 로컬라이제이션) ========== - -# 페이지 제목 -gui.title_dashboard = 관리자 대시보드 -gui.title_main = 세력 관리 -gui.title_actions = 관리자: 서버 작업 -gui.title_factions = 세력 관리 -gui.title_players = 플레이어 관리 -gui.title_economy = 관리자: 서버 경제 -gui.title_zones = 구역 관리 -gui.title_backups = 백업 -gui.title_config = 설정 -gui.title_help = 관리자 도움말 -gui.title_updates = 업데이트 -gui.title_version = 버전 및 통합 -gui.title_activity_log = 관리자: 활동 로그 -gui.title_player_info = 관리자: 플레이어 정보 -gui.title_faction_info = 관리자: 세력 정보 -gui.title_faction_settings = 관리자: 세력 설정 -gui.title_faction_members = 관리자: 멤버 -gui.title_faction_relations = 관리자: 관계 -gui.title_zone_map = 구역 지도 편집기 -gui.title_zone_settings = 관리자: 구역 설정 -gui.title_zone_properties = 관리자: 구역 속성 -gui.title_bulk_economy = 일괄 금고 조정 -gui.title_economy_adjust = 관리자: 경제 - -# 대시보드 라벨 -gui.dash_server_stats = 서버 통계 -gui.dash_factions = 세력 -gui.dash_total_members = 전체 멤버 -gui.dash_total_claims = 전체 영토 -gui.dash_zones = 구역 -gui.dash_safe_war = 안전 / 전쟁 -gui.dash_total_power = 전체 파워 -gui.dash_avg_power = 세력당 평균 파워 -gui.dash_total_economy = 전체 경제 -gui.dash_wealthiest = 최고 부유 -gui.dash_avg_balance = 평균 잔액 -gui.dash_protection_bypass = 보호 우회: - -# 공통 버튼 및 라벨 -gui.search = 검색: -gui.sort = 정렬: -gui.prev = < 이전 -gui.next = 다음 > -gui.back = 뒤로 -gui.done = 완료 -gui.cancel = 취소 -gui.apply = 적용 -gui.set = 설정 -gui.reset = 초기화 -gui.coming_soon = 출시 예정 -gui.zones_btn = 구역 -gui.reload_btn = 다시 불러오기 -gui.all = 전체 -gui.safe = 안전 -gui.war = 전쟁 -gui.create_zone = + 생성 - -# 작업 페이지 라벨 -gui.act_combat_stats = 전투 통계 -gui.act_combat_desc = 서버의 모든 플레이어의 킬과 데스를 초기화합니다. 이 작업은 되돌릴 수 없습니다. -gui.act_reset_kd = 전체 K/D 초기화 -gui.act_economy = 경제 -gui.act_economy_desc = 모든 세력 금고에 한 번에 금액을 추가하거나 제거합니다. -gui.act_bulk_adjust = 일괄 추가/제거 -gui.act_upkeep_collection = 유지비 징수 -gui.act_upkeep_desc = 예정된 타이머에 관계없이 모든 세력의 유지비 징수를 즉시 실행합니다. -gui.act_trigger_upkeep = 유지비 실행 - -# 플레이스홀더 페이지 라벨 -gui.backup_heading = 백업 관리 -gui.backup_desc1 = 세력 데이터 백업을 생성, 복원 및 관리합니다. -gui.backup_desc2 = 자동 백업은 data/backups 폴더에 저장됩니다. -gui.config_heading = 설정 편집기 -gui.config_desc1 = GUI에서 직접 HyperFactions 설정을 구성합니다. -gui.config_desc2 = 현재는 /f reload를 사용하여 설정 변경을 다시 불러오세요. -gui.help_heading = 관리자 문서 -gui.help_desc1 = 관리자 문서 및 명령어 참조를 확인합니다. -gui.help_desc2 = 도움이 필요하면 HyperFactions 위키를 방문하세요. -gui.updates_heading = 업데이트 센터 -gui.updates_desc1 = 새 버전을 확인하고 변경 사항을 확인합니다. -gui.updates_desc2 = 최신 업데이트는 HyperFactions 페이지를 방문하세요. - -# 버전 페이지 라벨 -gui.ver_hyperfactions = HyperFactions -gui.ver_hytale_server = Hytale Server -gui.ver_java = Java -gui.ver_permissions = 권한 -gui.ver_placeholders = 플레이스홀더 -gui.ver_economy_section = 경제 -gui.ver_protection = 보호 -gui.ver_disabled = 비활성화 - -# 열 헤더 (페이지 간 공유) -gui.col_faction = 세력 -gui.col_balance = 잔액 -gui.col_members = 멤버 -gui.col_actions = 작업 -gui.col_time = 시간 -gui.col_type = 유형 -gui.col_message = 메시지 - -# 경제 페이지 라벨 -gui.econ_total_balance = 전체 잔액 -gui.econ_factions = 세력 -gui.econ_avg_balance = 평균 잔액 -gui.econ_in_grace = 유예 중 -gui.econ_collected = 징수액 (24시간) -gui.econ_next_collection = 다음 징수 -gui.econ_no_data = 경제 데이터가 있는 세력이 없습니다. - -# 활동 로그 라벨 -gui.log_type = 유형: -gui.log_time = 시간: -gui.log_player = 플레이어: -gui.log_no_logs = 필터에 일치하는 활동 로그가 없습니다. - -# 플레이어 정보 라벨 -gui.plr_first_joined = 최초 가입: -gui.plr_last_online = 마지막 접속: -gui.plr_uuid = UUID: -gui.plr_faction = 세력: -gui.plr_role = 역할: -gui.plr_view_faction = 세력 보기 -gui.plr_power = 파워 -gui.plr_max_power = 최대 파워 -gui.plr_set_power = 설정 -gui.plr_reset_power = 초기화 -gui.plr_set_max = 설정 -gui.plr_reset_max = 초기화 -gui.plr_no_power_loss = 파워 손실 없음 -gui.plr_no_claim_decay = 영토 소멸 없음 -gui.plr_kills = 킬 -gui.plr_deaths = 데스 -gui.plr_kdr = K/D 비율 -gui.plr_reset_kd = K/D 초기화 -gui.plr_kick = 추방 -gui.plr_membership_history = 소속 이력 -gui.plr_no_faction_label = 세력에 소속되어 있지 않음 -gui.plr_power_management = 파워 관리 -gui.plr_combat_stats = 전투 통계 -gui.plr_bypass_flags = 우회 플래그 -gui.plr_admin_controls = 관리자 컨트롤 -gui.plr_kd_subtitle = K / D -gui.plr_max_prefix = 최대: -gui.plr_view = 보기 -gui.plr_kick_from_faction = 세력에서 추방 -gui.plr_set_max_btn = 최대 설정 -gui.plr_combat = 전투 -gui.plr_reason_active = 활동 중 -gui.plr_reason_left = 탈퇴 -gui.plr_reason_kicked = 추방됨 -gui.plr_reason_disbanded = 해산됨 - -# 멤버 항목 라벨 -gui.mem_label_power = 파워: -gui.mem_label_joined = 가입일: -gui.mem_label_last_death = 마지막 사망: -gui.mem_label_uuid = UUID: -gui.mem_btn_info = 정보 -gui.mem_btn_teleport = 텔레포트 -gui.mem_btn_promote = 승급 -gui.mem_btn_demote = 강등 -gui.mem_btn_kick = 추방 -gui.econ_not_enabled = 경제 시스템이 활성화되어 있지 않습니다. -gui.info_more = +{0}명 -gui.log_time_1h = 1시간 -gui.log_time_24h = 24시간 -gui.log_time_7d = 7일 -gui.log_time_all = 전체 -gui.shape_circular = 원형 -gui.shape_square = 사각형 -gui.nav_title = 관리자 패널 -gui.econ_btn_adjust = 조정 -gui.econ_btn_info = 정보 - -# 세력 정보 라벨 -gui.fac_description = 설명 -gui.fac_power = 파워 -gui.fac_claims = 영토 -gui.fac_members = 멤버 -gui.fac_recruitment = 모집 -gui.fac_founded = 설립일 -gui.fac_allies = 동맹 -gui.fac_enemies = 적 -gui.fac_raidable = 약탈 가능 상태 -gui.fac_treasury = 금고 -gui.fac_leader = 지도자 -gui.fac_officers = 간부 -gui.fac_view_members = 멤버 보기 -gui.fac_view_relations = 관계 보기 -gui.fac_view_settings = 설정 -gui.fac_disband = 세력 해산 -gui.fac_power_management = 파워 관리 -gui.fac_reset_all_power = 전체 파워 초기화 -gui.fac_econ_adjust = 잔액 조정 -gui.fac_econ_view_log = 거래 내역 보기 -gui.fac_current_max = 현재 / 최대 -gui.fac_claimed_max = 점령 / 최대 -gui.fac_relations = 관계 -gui.fac_ally_enemy = 동맹 / 적 -gui.fac_status = 상태 -gui.fac_info = 정보 -gui.fac_treasury_balance = 금고 잔액 -gui.fac_leadership = 리더십 -gui.fac_leader_label = 지도자: -gui.fac_officers_label = 간부: -gui.fac_econ_mgmt = 경제 관리 -gui.fac_danger_zone = 위험 구역 -gui.fac_view_treasury = 금고 보기 - -# 세력 설정 라벨 -gui.set_editing = 편집 중: -gui.set_general = 일반 설정 -gui.set_name = 이름 -gui.set_tag = 태그 -gui.set_description = 설명 -gui.set_recruitment = 모집 -gui.set_home = 홈 위치 -gui.set_clear_home = 홈 초기화 -gui.set_disband_faction = 세력 해산 -gui.set_faction_color = 세력 색상 -gui.set_admin_override = [관리자 재정의] -gui.set_territory_perms = 영토 권한 -gui.set_mob_spawning = 몹 스폰 -gui.set_faction_settings = 세력 설정 -gui.set_name_label = 이름: -gui.set_tag_label = 태그: -gui.set_desc_label = 설명: -gui.set_edit = 편집 -gui.set_status_label = 상태: -gui.set_location_label = 위치: -gui.set_danger_zone = 위험 구역 -gui.set_irreversible = 이 작업은 되돌릴 수 없습니다. -gui.set_lock_hint = 일부 옵션은 서버에 의해 잠겨 있어 변경할 수 없을 수 있습니다. -gui.set_appearance = 외관 -gui.set_color_label = 색상: -gui.set_mob_sub = (마스터가 꺼져 있으면 하위 항목 비활성화) -gui.set_back_to_info = 정보로 돌아가기 -gui.set_col_out = 외부 -gui.set_col_ally = 동맹 -gui.set_col_mem = 멤버 -gui.set_col_off = 간부 -gui.set_cat_building = 건축 -gui.set_cat_interaction = 상호작용 -gui.set_cat_interact_sub = (전체가 꺼져 있으면 하위 항목 비활성화) -gui.set_cat_other = 기타 -gui.set_perm_break = 파괴 -gui.set_perm_place = 설치 -gui.set_perm_all = 전체 -gui.set_perm_door = 문 -gui.set_perm_chest = 상자 -gui.set_perm_bench = 제작대 -gui.set_perm_processing = 가공대 -gui.set_perm_seat = 좌석 -gui.set_perm_transport = 이동수단 -gui.set_perm_crate_use = 상자 사용 -gui.set_perm_npc_tame = NPC 길들이기 -gui.set_perm_pve_damage = PvE 피해 -gui.set_perm_mob_spawning = 몹 스폰 -gui.set_perm_hostile = 적대적 몹 -gui.set_perm_passive = 수동적 몹 -gui.set_perm_neutral = 중립 몹 -gui.set_perm_pvp = 영토 내 PvP -gui.set_perm_officers_edit = 간부 편집 가능 - -# 세력 관계 라벨 -gui.rel_subtitle = 세력 관계 관리 (승인 우회) -gui.rel_set_new = 새 관계 설정 -gui.rel_btn_ally = 동맹 -gui.rel_btn_neutral = 중립 -gui.rel_btn_enemy = 적 - -# 구역 페이지 라벨 -gui.zone_sort_name = 이름 -gui.zone_sort_type = 유형 -gui.zone_sort_chunks = 청크 -gui.zone_sort_world = 월드 -gui.zone_count_format = {0}개 {1}구역 (청크 {2}개) - -# 구역 지도 라벨 -gui.map_zone_chunk = 구역 청크 -gui.map_empty = 비어있음 -gui.map_other_zone = 다른 구역 -gui.map_faction_claim = 세력 영토 -gui.map_protected = 보호됨 -gui.map_your_pos = 내 위치 -gui.map_click_hint = 클릭하여 청크를 점령/포기하세요 -gui.map_legend_zone_safe = 이 구역 (안전) -gui.map_legend_zone_war = 이 구역 (전쟁) -gui.map_legend_other_safe = 다른 SafeZone -gui.map_legend_other_war = 다른 WarZone -gui.map_legend_faction = 세력 영토 -gui.map_legend_unclaimed = 미점령 -gui.map_legend_you_here = 현재 위치 -gui.map_action_hint = 좌클릭: 구역에 점령 | 우클릭: 구역에서 포기 -gui.map_done = 완료 - -# 구역 속성 라벨 -gui.zprop_general = 일반 -gui.zprop_zone_name = 구역 이름 -gui.zprop_zone_type = 구역 유형 -gui.zprop_change_type = 유형 변경 -gui.zprop_notifications = 알림 -gui.zprop_show_entry = 진입 알림 표시 -gui.zprop_upper_title = 상단 제목 -gui.zprop_upper_desc = 상단 제목 (구역 이름 위의 작은 텍스트) -gui.zprop_lower_title = 하단 제목 -gui.zprop_lower_desc = 하단 제목 (큰 구역 이름 텍스트) -gui.zprop_edit_flags = 플래그 편집 -gui.zprop_back_to_zones = 구역으로 돌아가기 -gui.save = 저장 -gui.clear = 초기화 - -# 일괄 경제 라벨 -gui.bulk_header = 전체 세력 금고 조정 -gui.bulk_factions_label = 세력: -gui.bulk_total_label = 전체 잔액: -gui.bulk_amount_hint = 금액 (양수: 추가, 음수: 제거): -gui.bulk_hint = 금고가 있는 모든 세력에 적용됩니다 -gui.bulk_warning_msg = 경고: 이 작업은 모든 세력에 영향을 미치며 되돌릴 수 없습니다. -gui.bulk_apply_all = 전체 적용 -gui.bulk_operation = 작업 -gui.bulk_add = 추가 -gui.bulk_remove = 제거 -gui.bulk_amount = 금액 -gui.bulk_warning = 이 작업은 모든 세력 금고에 영향을 미칩니다. -gui.bulk_preview = 미리보기 - -# 경제 조정 라벨 -gui.ecadj_header = 금고 잔액 조정 -gui.ecadj_faction_label = 세력: -gui.ecadj_current_balance = 현재 잔액: -gui.ecadj_amount_hint = 금액 (양수: 추가, 음수: 차감): -gui.ecadj_preview_hint = 변경 사항을 미리 보려면 숫자를 입력하세요 -gui.ecadj_adjustment = 조정: -gui.ecadj_set_balance = 잔액 설정 -gui.ecadj_confirm = +/- 확인 -gui.ecadj_operation = 작업 -gui.ecadj_add = 추가 -gui.ecadj_remove = 제거 -gui.ecadj_set_to = 설정값 -gui.ecadj_amount = 금액 -gui.ecadj_new_balance = 새 잔액: - -# 버전 페이지 통합 라벨 -gui.ver_hyperperms = HyperPerms -gui.ver_luckperms = LuckPerms -gui.ver_vault = VaultUnlocked -gui.ver_native = Hytale Native -gui.ver_hyperprotect = HyperProtect -gui.ver_orbisguard_mixins = OrbisGuard Mixins -gui.ver_orbisguard_api = OrbisGuard API -gui.ver_mixin_hooks = Mixin Hooks -gui.ver_gravestones = Gravestones -gui.ver_kyuubisoft = KyuubiSoft -gui.ver_placeholder_api = PlaceholderAPI -gui.ver_wiflow_papi = WiFlow PAPI -gui.ver_treasury = 금고 - -# 전체 포기 확인 모달 라벨 -gui.unclaim_title = 전체 영토 포기 -gui.unclaim_confirm_msg1 = 정말로 전체 영토를 포기하시겠습니까 -gui.unclaim_confirm_msg2 = 의 -gui.unclaim_warning = 이 작업은 되돌릴 수 없습니다! -gui.unclaim_all = 전체 포기 - -# 구역 이름 변경 모달 라벨 -gui.zren_title = 구역 이름 변경 -gui.zren_current = 현재: -gui.zren_new_name = 새 이름: - -# 구역 유형 변경 모달 라벨 -gui.ztype_title = 구역 유형 변경 -gui.ztype_zone_label = 구역: -gui.ztype_current = 현재: -gui.ztype_will_become = 변경 대상 -gui.ztype_new = 새 유형: -gui.ztype_warning1 = 구역 유형에 따라 기본 플래그 값이 다릅니다. -gui.ztype_warning2 = 기존 플래그 설정 처리 방법을 선택하세요: -gui.ztype_keep_desc = 사용자 지정 재정의 유지 -gui.ztype_keep_flags = 플래그 유지 -gui.ztype_reset_desc = 새 유형 기본값 사용 -gui.ztype_reset_flags = 플래그 초기화 - -# 구역 생성 마법사 라벨 -gui.czw_title = 구역 생성 -gui.czw_back = < 뒤로 -gui.czw_create = 구역 생성 -gui.czw_zone_type = 구역 유형 -gui.czw_safe_desc = 보호됨, PvP 없음 -gui.czw_war_desc = 전투, PvP 활성화 -gui.czw_zone_name = 구역 이름 -gui.czw_name_desc = 고유한 구역 이름을 입력하세요 -gui.czw_claim_method = 점령 방법 -gui.czw_method_none_desc = 빈 구역 생성 -gui.czw_method_none = 점령 없음 -gui.czw_method_single_desc = 현재 청크 -gui.czw_method_single = 단일 청크 -gui.czw_method_circle_desc = 원형 영역 -gui.czw_method_circle = 원형 반경 -gui.czw_method_square_desc = 사각형 영역 -gui.czw_method_square = 사각형 반경 -gui.czw_method_map_desc = 대화형 청크 편집기 -gui.czw_method_map = 점령 지도 사용 -gui.czw_radius = 반경 -gui.czw_custom_radius = 사용자 지정 (1-50): -gui.czw_flags = 플래그 -gui.czw_flags_defaults_desc = 구역 유형 기반 -gui.czw_flags_defaults = 기본값 사용 -gui.czw_flags_customize_desc = 생성 후 설정 열기 -gui.czw_flags_customize = 사용자 지정 - -# ========== 항목 라벨 (세력/플레이어/구역 목록 항목) ========== - -# 세력 항목 라벨 -gui.fac_entry_power = 파워 -gui.fac_entry_claims = 영토 -gui.fac_entry_members = 멤버 -gui.fac_entry_created = 생성일: -gui.fac_entry_home = 홈: -gui.fac_entry_tp_home = 홈 이동 -gui.fac_entry_view_info = 정보 보기 -gui.fac_entry_members_btn = 멤버 -gui.fac_entry_settings = 설정 -gui.fac_entry_unclaim_all = 전체 포기 -gui.fac_entry_disband = 해산 - -# 플레이어 항목 라벨 -gui.plr_entry_role = 역할: -gui.plr_entry_joined = 가입일: -gui.plr_entry_last_online = 마지막 접속: -gui.plr_entry_kdr = K/D/R: -gui.plr_entry_power = 파워: -gui.plr_entry_uuid = UUID: -gui.plr_entry_info = 정보 -gui.plr_entry_teleport = 텔레포트 -gui.plr_entry_na = N/A -gui.plr_entry_unknown = 알 수 없음 -gui.plr_entry_ago = {0} 전 - -# 구역 항목 라벨 -gui.zone_entry_world = 월드: -gui.zone_entry_chunks = 청크: -gui.zone_entry_bounds = 범위: -gui.zone_entry_created = 생성일: -gui.zone_entry_edit_map = 지도 편집 -gui.zone_entry_flags = 플래그 -gui.zone_entry_settings = 설정 -gui.zone_entry_delete = 삭제 diff --git a/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang b/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang deleted file mode 100644 index 621c4471..00000000 --- a/src/main/resources/Server/Languages/ko-KR/hyperfactions_gui.lang +++ /dev/null @@ -1,866 +0,0 @@ -# HyperFactions GUI - Korean Translations -# Format: key = value -# Note: Keys are auto-prefixed with "hyperfactions_gui." by Hytale's I18nModule - -# ========== 내비게이션 바 ========== -nav.dashboard = 대시보드 -nav.chat = 채팅 -nav.members = 멤버 -nav.invites = 초대 -nav.browser = 탐색 -nav.map = 지도 -nav.leaderboard = 순위표 -nav.relations = 관계 -nav.treasury = 금고 -nav.settings = 설정 -nav.logs = 로그 -nav.help = 도움말 -nav.admin = 관리 -nav.create = 생성 - -# ========== 도움말 카테고리 이름 ========== -help.category.welcome = 환영합니다 -help.category.your_faction = 내 세력 -help.category.power_land = 파워 & 영토 -help.category.diplomacy = 외교 -help.category.combat = 전투 & 안전 -help.category.economy = 경제 -help.category.quick_ref = 빠른 참조 - -# ========== 관리자 도움말 카테고리 이름 ========== -help.category.admin_overview = 개요 -help.category.admin_factions = 세력 -help.category.admin_zones = 구역 -help.category.admin_power = 파워 -help.category.admin_economy = 경제 -help.category.admin_config = 설정 -help.category.admin_maintenance = 유지보수 -help.category.admin_reference = 참조 - -# ========== 메인 메뉴 ========== -main_menu.title = HyperFactions -main_menu.section_my_faction = 내 세력 -main_menu.section_get_started = 시작하기 -main_menu.section_territory = 영역 -main_menu.section_browse = 탐색 -main_menu.section_admin = 관리 -main_menu.claim_hint = 영토를 점령하려면 /f claim을 사용하세요. - -# ========== 세력 정보 페이지 ========== -faction_info.title = 세력 정보 -faction_info.no_description = 설명이 설정되지 않았습니다. -faction_info.status_open = 공개 -faction_info.status_invite_only = 초대 전용 -faction_info.status_raidable = 약탈 가능 -faction_info.status_protected = 보호됨 -faction_info.officers_more = +{0}명 -faction_info.power_header = 파워 -faction_info.claims_header = 영토 -faction_info.members_header = 멤버 -faction_info.relations_header = 관계 -faction_info.status_header = 상태 -faction_info.treasury_header = 금고 -faction_info.current_max = 현재 / 최대 -faction_info.claimed_max = 점령 / 최대 -faction_info.ally_enemy = 동맹 / 적 -faction_info.faction_balance = 세력 잔액 -faction_info.leader_label = 지도자: -faction_info.officers_label = 간부: -faction_info.view_members_btn = 멤버 보기 -faction_info.relations_btn = 관계 -faction_info.back_btn = 뒤로 - -# ========== 이름 변경 모달 ========== -rename.title = 세력 이름 변경 -rename.current_label = 현재: -rename.new_name_label = 새 이름: -rename.no_permission = 세력 이름을 변경할 권한이 없습니다. -rename.enter_name = 세력 이름을 입력해 주세요. -rename.too_short = 세력 이름은 최소 {0}자 이상이어야 합니다. -rename.too_long = 세력 이름은 {0}자를 초과할 수 없습니다. -rename.same_name = 이미 현재 세력의 이름입니다. -rename.name_taken = 해당 이름의 세력이 이미 존재합니다. -rename.success = 세력 이름이 {0}에서 {1}(으)로 변경되었습니다! - -# ========== 설명 모달 ========== -desc.title = 설명 편집 -desc.current_label = 현재: -desc.new_desc_label = 새 설명: -desc.no_permission = 설명을 편집할 권한이 없습니다. -desc.display_none = (없음) -desc.cleared = 세력 설명이 초기화되었습니다. -desc.updated = 세력 설명이 업데이트되었습니다! - -# ========== 태그 모달 ========== -tag.title = 태그 편집 -tag.current_label = 현재: -tag.instructions = 태그 (1-5자, 문자와 숫자만): -tag.help_text = 태그는 채팅과 지도에 표시됩니다 -tag.no_permission = 태그를 편집할 권한이 없습니다. -tag.display_none = (없음) -tag.cleared = 세력 태그가 초기화되었습니다. -tag.too_short = 태그는 최소 {0}자 이상이어야 합니다. -tag.too_long = 태그는 {0}자를 초과할 수 없습니다. -tag.invalid_format = 태그에는 문자와 숫자만 사용할 수 있습니다. -tag.same_tag = 이미 현재 세력의 태그입니다. -tag.tag_taken = 해당 태그의 세력이 이미 존재합니다. -tag.success = 세력 태그가 [{0}](으)로 설정되었습니다! - -# ========== 대시보드 페이지 ========== -dashboard.title = 세력 대시보드 -dashboard.power_label = 파워 -dashboard.land_label = 영토 -dashboard.members_label = 멤버 -dashboard.online_label = 온라인 -dashboard.allies_label = 동맹 -dashboard.enemies_label = 적 -dashboard.relations_label = 관계 -dashboard.ally_enemy_label = 동맹 / 적 -dashboard.status_label = 상태 -dashboard.invites_label = 초대 -dashboard.sent_requests_label = 보낸 / 요청 -dashboard.treasury_label = 금고 -dashboard.upkeep_label = 유지비 -dashboard.per_cycle = 주기당 -dashboard.your_wallet = 내 지갑 -dashboard.personal_balance = 개인 잔액 -dashboard.quick_actions = 빠른 작업 -dashboard.teleport_label = 텔레포트 -dashboard.territory_label = 영역 -dashboard.channel_label = 채널 -dashboard.membership_label = 소속 -dashboard.recent_activity = 최근 활동 -dashboard.view_all = 전체 보기 -dashboard.income_24h = 수입 (24시간) -dashboard.deposits_transfers_in = 입금, 이체 수신 -dashboard.expenses_24h = 지출 (24시간) -dashboard.withdrawals_transfers_out = 출금, 이체 송신 -dashboard.faction_gone = 세력이 더 이상 존재하지 않습니다. -dashboard.available = {0} 사용 가능 -dashboard.at_risk = 위험! -dashboard.online_count = {0}명 온라인 -dashboard.status_invite = 초대 -dashboard.in_grace = 유예 기간 -dashboard.billable_chunks = 청구 대상 청크 {0}개 -dashboard.btn_home = 홈 -dashboard.btn_set_home = 홈 설정 -dashboard.btn_claim = 점령 -dashboard.chat_prefix = 채팅: {0} -dashboard.btn_leave = 탈퇴 -dashboard.no_activity = 최근 활동이 없습니다. -dashboard.time_now = 방금 -dashboard.time_minutes = {0}분 전 -dashboard.time_hours = {0}시간 전 -dashboard.time_days = {0}일 전 -dashboard.no_home_hint = 세력 홈이 설정되지 않았습니다. 간부에게 설정을 요청하세요. -dashboard.chat_mode_set = 채팅 모드: {0} -dashboard.claim_success = 청크 ({0}, {1})을(를) 점령했습니다 -dashboard.upkeep_in = {0} 후 - -# ========== 세력 메인 페이지 ========== -main.no_faction = 세력 없음 -main.joined = 세력에 가입했습니다! -main.join_failed = 세력 가입 실패: {0} -main.invite_declined = 초대를 거절했습니다. -main.cooldown = 텔레포트 쿨다운 중! {0}초 남음. -main.world_not_found = 텔레포트 불가 - 월드를 찾을 수 없습니다. -main.leave_failed = 탈퇴 실패: {0} - -# ========== 공유 GUI 라벨 ========== -common.faction_count = 세력 {0}개 -common.leader_label = 지도자: {0} -common.sort_power = 파워 -common.sort_members = 멤버 -common.page_format = {0}/{1} -common.own_faction = (내 세력) -common.search = 검색: -common.sort = 정렬: -common.prev = < 이전 -common.next = 다음 > -common.treasury_not_available = 금고를 사용할 수 없습니다. - -# ========== 멤버 페이지 ========== -members.title = 멤버 -members.search_label = 검색: -members.sort_label = 정렬: -members.prev_btn = < 이전 -members.next_btn = 다음 > -members.count = 멤버 {0}명 -members.sort_role = 역할 -members.sort_last_online = 마지막 접속 -members.just_now = 방금 -members.ago = {0} 전 -members.never = 없음 -members.member_not_found = 멤버를 찾을 수 없습니다. -members.promoted = {0}을(를) {1}(으)로 승급시켰습니다. -members.promote_failed = 승급 실패: {0} -members.demoted = {0}을(를) {1}(으)로 강등시켰습니다. -members.demote_failed = 강등 실패: {0} -members.kicked = {0}을(를) 세력에서 추방했습니다. -members.kick_failed = 추방 실패: {0} -members.label_power = 파워: -members.label_joined = 가입일: -members.label_last_death = 마지막 사망: -members.btn_promote = 승급 -members.btn_demote = 강등 -members.btn_kick = 추방 -members.btn_make_leader = 지도자 임명 -members.btn_profile = 프로필 -members.self_label = (나) - -# ========== 탐색 페이지 ========== -browser.title = 세력 탐색 -browser.search_label = 검색: -browser.sort_label = 정렬: -browser.prev_btn = < 이전 -browser.next_btn = 다음 > -browser.sort_name = 이름 -browser.invalid_faction = 잘못된 세력입니다. -browser.label_power = 파워 -browser.label_claims = 영토 -browser.label_members = 멤버 -browser.label_recruitment = 모집: -browser.label_created = 생성일: -browser.label_description = 설명: -browser.view_info_btn = 정보 보기 -browser.label_leader = 지도자: -browser.no_description = 설명이 설정되지 않음 - -# ========== 순위표 페이지 ========== -leaderboard.title = 세력 순위표 -leaderboard.rank_by = 기준: -leaderboard.col_rank = # -leaderboard.col_faction = 세력 -leaderboard.col_claims = 영토 -leaderboard.col_members = 멤버 -leaderboard.prev_btn = < 이전 -leaderboard.next_btn = 다음 > -leaderboard.sort_kd = K/D -leaderboard.sort_territory = 영역 -leaderboard.sort_balance = 잔액 - -# ========== 플레이어 정보 페이지 ========== -playerinfo.title = 플레이어 정보 -playerinfo.first_joined_label = 최초 가입: -playerinfo.last_online_label = 마지막 접속: -playerinfo.faction_label = 세력: -playerinfo.role_label = 역할: -playerinfo.joined_label_static = 가입일: -playerinfo.not_in_faction = 세력에 소속되어 있지 않음 -playerinfo.power_header = 파워 -playerinfo.current_max = 현재 / 최대 -playerinfo.combat_header = 전투 -playerinfo.kills_deaths = 킬 / 데스 -playerinfo.kdr_header = K/D 비율 -playerinfo.membership_history = 소속 이력 -playerinfo.view_faction_btn = 세력 보기 -playerinfo.back_btn = 뒤로 -playerinfo.now = 현재 -playerinfo.history_count = 기록 {0}건 -playerinfo.joined_label = 가입: {0} -playerinfo.current = 현재 -playerinfo.left_label = 탈퇴: {0} -playerinfo.no_history = 소속 이력이 없습니다 -playerinfo.faction_gone = 세력이 더 이상 존재하지 않습니다. -playerinfo.reason_active = 활동 중 -playerinfo.reason_left = 탈퇴 -playerinfo.reason_kicked = 추방됨 -playerinfo.reason_disbanded = 해산됨 - -# ========== 관계 페이지 ========== -relations.title = 관계 -relations.tab_relations = 관계 -relations.tab_pending = 대기 중 -relations.set_relation_btn = + 관계 설정 -relations.prev_btn = < 이전 -relations.next_btn = 다음 > -relations.relation_count = 관계 {0}건 -relations.request_count = 요청 {0}건 -relations.type_ally = 동맹 -relations.type_enemy = 적 -relations.type_incoming = 수신 -relations.type_outgoing = 발신 -relations.incoming_request = 수신 요청 -relations.outgoing_request = 발신 요청 -relations.empty_relations = 관계가 없습니다. -relations.empty_relations_hint = 관계가 없습니다. + 관계 설정을 클릭하여 동맹이나 적을 추가하세요. -relations.empty_pending = 대기 중인 동맹 요청이 없습니다. -relations.today = 오늘 -relations.one_day_ago = 1일 전 -relations.days_ago = {0}일 전 -relations.now_neutral = {0}과(와) 중립이 되었습니다. -relations.now_enemies = {0}과(와) 적대 관계가 되었습니다! -relations.request_sent = {0}에게 동맹 요청을 보냈습니다. -relations.now_allied = {0}과(와) 동맹이 되었습니다! -relations.request_declined = {0}의 동맹 요청을 거절했습니다. -relations.request_cancelled = {0}에 대한 동맹 요청을 취소했습니다. -relations.failed = 실패: {0} -relations.search_hint = 관계를 설정할 세력을 검색하세요 -relations.no_results = '{0}'과(와) 일치하는 세력이 없습니다 -relations.power_display = 파워 {0} -relations.member_count = 멤버 {0}명 -relations.label_members = 멤버 -relations.label_power = 파워 -relations.label_since = 시작일: -relations.label_claims = 영토: -relations.label_direction = 방향: -relations.btn_view = 보기 -relations.btn_neutral = 중립 -relations.btn_enemy = 적 -relations.btn_ally = 동맹 -relations.btn_accept = 수락 -relations.btn_decline = 거절 -relations.btn_cancel = 취소 - -# ========== 설정 페이지 ========== -settings.title = 세력 설정 -settings.general = 일반 -settings.name_label = 이름: -settings.tag_label = 태그: -settings.desc_label = 설명: -settings.edit_btn = 편집 -settings.recruitment = 모집 -settings.status_label = 상태: -settings.home_location = 홈 위치 -settings.location_label = 위치: -settings.set_home_btn = 홈 설정 -settings.teleport_btn = 텔레포트 -settings.delete_btn = 삭제 -settings.optional_features = 선택 기능 -settings.configure_modules = 선택 모듈을 설정합니다. -settings.modules_btn = 모듈 -settings.danger_zone = 위험 구역 -settings.irreversible = 이 작업은 되돌릴 수 없습니다. -settings.disband_btn = 세력 해산 -settings.lock_hint = 일부 옵션은 서버에 의해 잠겨 있어 변경할 수 없을 수 있습니다. -settings.territory_permissions = 영토 권한 -settings.col_out = 외부 -settings.col_ally = 동맹 -settings.col_mem = 멤버 -settings.col_off = 간부 -settings.cat_building = 건축 -settings.perm_break = 파괴 -settings.perm_place = 설치 -settings.cat_interaction = 상호작용 -settings.interaction_hint = (전체가 꺼져 있으면 하위 항목 비활성화) -settings.perm_all = 전체 -settings.perm_door = 문 -settings.perm_chest = 상자 -settings.perm_bench = 제작대 -settings.perm_processing = 가공대 -settings.perm_seat = 좌석 -settings.perm_transport = 이동수단 -settings.cat_other = 기타 -settings.perm_crate = 상자 사용 -settings.perm_npc_tame = NPC 길들이기 -settings.perm_pve = PvE 피해 -settings.appearance = 외관 -settings.color_label = 색상: -settings.mob_spawning = 몹 스폰 -settings.mob_spawning_hint = (마스터가 꺼져 있으면 하위 항목 비활성화) -settings.mob_spawning_label = 몹 스폰 -settings.hostile_mobs = 적대적 몹 -settings.passive_mobs = 수동적 몹 -settings.neutral_mobs = 중립 몹 -settings.faction_settings = 세력 설정 -settings.pvp_in_territory = 영토 내 PvP -settings.officers_can_edit = 간부 편집 가능 -settings.leader_only = 지도자 전용 -settings.officers_only = 간부와 지도자만 세력 설정을 변경할 수 있습니다. -settings.display_none = (없음) -settings.home_not_set = 미설정 -settings.no_permission = 설정을 변경할 권한이 없습니다. -settings.only_leader_disband = 지도자만 세력을 해산할 수 있습니다. -settings.perm_locked = 이 설정은 서버에 의해 잠겨 있습니다. -settings.no_perm_edit = 영토 권한을 편집할 권한이 없습니다. -settings.only_leader_officers = 지도자만 간부 접근 권한을 변경할 수 있습니다. -settings.pvp_enabled = 활성화 -settings.pvp_disabled = 비활성화 -settings.not_in_territory = 홈을 설정하려면 세력 영토 내에 있어야 합니다. -settings.home_set = 현재 위치에 세력 홈이 설정되었습니다! -settings.recruitment_set = 모집이 {0}(으)로 설정되었습니다. -settings.home_no_set = 세력 홈이 설정되어 있지 않습니다. -settings.home_deleted = 세력 홈이 삭제되었습니다! - -# ========== 모듈 페이지 ========== -modules.title = 세력 모듈 -modules.description = 세력을 강화하는 선택적 기능 -modules.configure_btn = 설정 -modules.back_btn = < 설정으로 돌아가기 -modules.treasury_name = 금고 -modules.treasury_desc = 세력 은행 및 경제 시스템 -modules.raids_name = 습격 -modules.raids_desc = 예약된 세력 전투 -modules.levels_name = 레벨 -modules.levels_desc = 세력 성장 및 경험치 -modules.war_name = 전쟁 -modules.war_desc = 공식 전쟁 선포 -modules.coming_soon = 출시 예정 -modules.active = 활성 -modules.view_treasury = 금고 보기 -modules.unavailable = 사용 불가 -modules.no_economy = 경제 플러그인이 감지되지 않았습니다 -modules.disabled = 비활성화 -modules.economy_not_available = 이 서버에서는 경제 기능을 사용할 수 없습니다 - -# ========== 금고 페이지 ========== -treasury.title = 세력 금고 -treasury.balance_label = 잔액 -treasury.income_24h = 수입 (24시간) -treasury.deposits_transfers_in = 입금, 이체 수신 -treasury.expenses_24h = 지출 (24시간) -treasury.withdrawals_transfers_out = 출금, 이체 송신 -treasury.maintenance = 유지비 -treasury.runway_label = 운영 가능 기간: -treasury.add_funds = 자금 추가 -treasury.deposit_btn = 입금 -treasury.take_funds = 자금 인출 -treasury.withdraw_btn = 출금 -treasury.send_to_faction = 세력에 전송 -treasury.transfer_btn = 이체 -treasury.treasury_config = 금고 설정 -treasury.settings_btn = 설정 -treasury.recent_transactions = 최근 거래 -treasury.no_transactions = 거래 내역이 없습니다 -treasury.col_date = 날짜 -treasury.col_type = 유형 -treasury.col_by = 수행자 -treasury.col_amount = 금액 -treasury.col_details = 상세 -treasury.pay_now_btn = 지금 결제 -treasury.cost_7d = 7일: -treasury.cost_14d = 14일: -treasury.cost_30d = 30일: -treasury.settings_title = 금고 설정 -treasury.officer_permissions = 간부 권한 -treasury.allow_withdraw = 간부 출금 허용 -treasury.allow_transfer = 간부 이체 허용 -treasury.limits_section = 출금 및 이체 한도 -treasury.max_per_withdrawal = 1회 최대 출금액: -treasury.max_withdrawals_per = 기간 내 최대 출금 횟수: -treasury.max_per_transfer = 1회 최대 이체액: -treasury.max_transfers_per = 기간 내 최대 이체 횟수: -treasury.limit_period = 한도 기간 (시간): -treasury.no_limit_hint = 무제한으로 설정하려면 0을 입력하세요 -treasury.upkeep_settings = 유지비 설정 -treasury.auto_pay_upkeep = 금고에서 유지비 자동 결제 -treasury.back_btn = 뒤로 -treasury.upkeep_cost_format = {1}시간마다 {0} -treasury.upkeep_time_left = {0} 남음 -treasury.wallet_label = 내 지갑: {0} -treasury.treasury_label = 금고 잔액: {0} -treasury.chunks_detail = 무료 {0}개 + 청구 대상 {1}개 청크 -treasury.cost_label = 비용: {0} -treasury.pending = 대기 중 -treasury.auto_pay_on = 자동 결제: 켜짐 -treasury.auto_pay_off = 자동 결제: 꺼짐 -treasury.runway_90_plus = 90일 이상 -treasury.runway_days = {0}일 -treasury.runway_day = {0}일 -treasury.runway_less_day = 1일 미만 -treasury.runway_no_funds = 자금 없음 -treasury.grace_expires = 유예 만료: {0} -treasury.missed_payments = 미납 횟수: {0} -treasury.pay_to_clear = {0}을(를) 결제하여 유예 해제 -treasury.system = 시스템 -treasury.type_deposit = 입금 -treasury.type_withdrawal = 출금 -treasury.type_transfer_in = 이체 수신 -treasury.type_transfer_out = 이체 송신 -treasury.type_player_transfer = 플레이어 이체 -treasury.type_upkeep = 유지비 -treasury.type_tax = 세금 징수 -treasury.type_war_cost = 전쟁 비용 -treasury.type_raid_cost = 습격 비용 -treasury.type_spoils = 전리품 -treasury.type_admin = 관리자 조정 -treasury.deposit_title = 금고에 입금 -treasury.withdraw_title = 금고에서 출금 -treasury.fee_label = 수수료 ({0}%) -treasury.confirm_deposit = 입금 확인 -treasury.confirm_withdrawal = 출금 확인 -treasury.from_wallet = 지갑에서 {0} -treasury.to_wallet = 지갑으로 {0} -treasury.enter_valid_amount = 유효한 양수 금액을 입력하세요. -treasury.insufficient_wallet = 지갑 잔액이 부족합니다. 필요: {0}, 보유: {1}. -treasury.wallet_withdraw_failed = 지갑에서 출금하지 못했습니다. -treasury.deposit_failed_returned = 입금에 실패했습니다. 금액이 반환되었습니다. -treasury.deposited = 금고에 {0}을(를) 입금했습니다. -treasury.deposited_fee = 금고에 {0}을(를) 입금했습니다. (수수료: {1}) -treasury.no_withdraw_permission = 출금할 권한이 없습니다. -treasury.withdraw_denied = 출금 거부: {0} -treasury.insufficient_treasury = 금고 잔액이 부족합니다. -treasury.withdraw_limit = 출금 한도를 초과했습니다. -treasury.withdraw_failed = 출금 실패: {0} -treasury.wallet_deposit_warn = 경고: 지갑에 입금하지 못했습니다. 관리자에게 문의하세요. -treasury.withdrew = 금고에서 {0}을(를) 출금했습니다. -treasury.withdrew_fee = 금고에서 {0}을(를) 출금했습니다. (수수료: {1}, 수령액: {2}) -treasury.search_hint = 플레이어 또는 세력을 검색하세요 -treasury.no_results = '{0}'에 대한 결과가 없습니다 -treasury.tag_player = [플레이어] -treasury.tag_faction = [세력] -treasury.source_online = 온라인 -treasury.source_offline = 오프라인 -treasury.source_player_db = Hytale 플레이어 -treasury.no_transfer_permission = 이체할 권한이 없습니다. -treasury.transfer_denied = 이체 거부: {0} -treasury.invalid_target_faction = 잘못된 대상 세력입니다. -treasury.target_faction_gone = 대상 세력이 더 이상 존재하지 않습니다. -treasury.transfer_failed = 이체 실패: {0} -treasury.transfer_failed_returned = 이체에 실패했습니다. 자금이 반환되었습니다. -treasury.transferred = {1}에게 {0}을(를) 이체했습니다. -treasury.invalid_target_player = 잘못된 대상 플레이어입니다. -treasury.player_transfer_failed = 플레이어 지갑에 입금하지 못했습니다. 이체가 롤백되었습니다. -treasury.leader_only_perms = 지도자만 금고 권한을 변경할 수 있습니다. -treasury.leader_only_upkeep = 지도자만 유지비 설정을 변경할 수 있습니다. -treasury.invalid_limit = 한도 필드에 잘못된 숫자가 있습니다. 무제한은 0을 사용하세요. - -# ========== 확인 페이지 ========== -confirm.disband_title = 세력 해산 -confirm.disband_prompt = 정말로 해산하시겠습니까 -confirm.disband_warning = 이 작업은 되돌릴 수 없습니다! -confirm.leave_title = 세력 탈퇴 -confirm.leave_prompt = 정말로 탈퇴하시겠습니까 -confirm.leave_warning = 세력 영토에 대한 접근 권한을 잃게 됩니다. -confirm.leader_leave_title = 지도자로서 탈퇴 -confirm.leader_leave_prompt = 탈퇴하려 합니다 -confirm.transfer_title = 지도자 이양 -confirm.transfer_prompt = 정말로 지도자를 이양하시겠습니까 -confirm.transfer_warning = 간부로 변경됩니다. -confirm.disband_not_leader = 지도자만 세력을 해산할 수 있습니다. -confirm.disbanded = 세력 '{0}'이(가) 해산되었습니다. -confirm.disband_failed = 세력 해산에 실패했습니다. -confirm.succession_title = 지도자가 이양될 대상: -confirm.no_members_warning = 경고: 다른 멤버가 없습니다! -confirm.will_disband = 탈퇴하면 세력이 영구적으로 해산됩니다. -confirm.not_in_faction = 이 세력에 소속되어 있지 않습니다. -confirm.not_leader_anymore = 더 이상 지도자가 아닙니다. -confirm.no_successor = 후임자가 없습니다. 대신 해산을 사용하세요. -confirm.transfer_failed = 지도자 이양 실패: {0} -confirm.leader_left = {0}에게 지도자가 이양되었습니다. {1}을(를) 탈퇴했습니다. -confirm.leave_failed = 세력 탈퇴 실패: {0} -confirm.leader_cannot_leave = 지도자는 탈퇴할 수 없습니다. 지도자를 이양하거나 세력을 해산하세요. -confirm.left_faction = {0}을(를) 탈퇴했습니다. -confirm.faction_gone = 세력이 더 이상 존재하지 않습니다. -confirm.not_leader_transfer = 지도자만 지도자를 이양할 수 있습니다. -confirm.leadership_transferred = {0}에게 지도자를 이양했습니다. - -# ========== 로그 뷰어 페이지 ========== -logs.title = {0} - 활동 로그 -logs.entry_count = 항목 {0}건 -logs.filter_label = 필터: -logs.col_time = 시간 -logs.col_type = 유형 -logs.col_message = 메시지 -logs.prev_btn = < 이전 -logs.next_btn = 다음 > -logs.all_types = 전체 유형 -logs.no_logs_type = 해당 유형의 로그가 없습니다. -logs.no_logs = 활동 로그가 없습니다. -logs.time_just_now = 방금 -logs.time_minute = {0}분 전 -logs.time_minutes = {0}분 전 -logs.time_hour = {0}시간 전 -logs.time_hours = {0}시간 전 -logs.time_day = {0}일 전 -logs.time_days = {0}일 전 -logs.time_week = {0}주 전 -logs.time_weeks = {0}주 전 -logs.type_member_join = 가입 -logs.type_member_leave = 탈퇴 -logs.type_member_kick = 추방 -logs.type_member_promote = 승급 -logs.type_member_demote = 강등 -logs.type_claim = 점령 -logs.type_unclaim = 포기 -logs.type_overclaim = 강제 점령 -logs.type_home_set = 홈 설정 -logs.type_relation_ally = 동맹 -logs.type_relation_enemy = 적 -logs.type_relation_neutral = 중립 -logs.type_leader_transfer = 이양 -logs.type_settings_change = 설정 -logs.type_power_change = 파워 -logs.type_economy = 경제 -logs.type_admin_power = 관리자 파워 - -# 로그 메시지 템플릿 (활동 로그 내용 다국어 지원) -# 플레이어 행동 -logs.msg_faction_created = {0}이(가) 세력을 생성했습니다 -logs.msg_member_joined = {0}이(가) 세력에 가입했습니다 -logs.msg_member_left = {0}이(가) 세력을 탈퇴했습니다 -logs.msg_member_kicked = {0}이(가) 추방되었습니다 -logs.msg_member_promoted = {0}이(가) {1}(으)로 승급되었습니다 -logs.msg_member_demoted = {0}이(가) {1}(으)로 강등되었습니다 -logs.msg_leader_transferred = {0}에게 지도자가 이양되었습니다 -logs.msg_leader_left_transfer = {0}이(가) 탈퇴하고, {1}이(가) 새 지도자가 되었습니다 -logs.msg_relation_set = {0}을(를) {1}(으)로 설정했습니다 -# 영역 -logs.msg_claimed = {2}에서 청크 {0}, {1}을(를) 점령했습니다 -logs.msg_unclaimed = {2}에서 청크 {0}, {1}을(를) 포기했습니다 -logs.msg_overclaim_lost = {2}에게 청크 {0}, {1}을(를) 빼앗겼습니다 -logs.msg_overclaim_taken = {2}에서 청크 {0}, {1}을(를) 강제 점령했습니다 -logs.msg_all_unclaimed = 모든 영토가 포기되었습니다 -logs.msg_claim_removed_world = '{0}'의 영토가 제거되었습니다 (월드에서 점령 불가) -logs.msg_claims_lost_upkeep = 유지비로 영토 {0}개를 잃었습니다 (미납 {1}회) -logs.msg_claims_removed_inactive = 비활동으로 영토 {0}개가 제거되었습니다 ({1}일) -# 홈 -logs.msg_home_set = 홈이 설정되었습니다 -logs.msg_home_cleared = 홈이 초기화되었습니다 -logs.msg_home_cleared_world = '{0}'의 홈이 초기화되었습니다 (월드에서 점령 불가) -# 설정 -logs.msg_renamed = '{0}'에서 '{1}'(으)로 이름이 변경되었습니다 -logs.msg_set_open = 세력이 공개로 설정되었습니다 -logs.msg_set_closed = 세력이 초대 전용으로 설정되었습니다 -logs.msg_desc_set = 설명이 설정되었습니다 -logs.msg_desc_cleared = 설명이 초기화되었습니다 -logs.msg_color_changed = 색상이 '{0}'(으)로 변경되었습니다 -# 경제 -logs.msg_deposit = 입금: {0} (+{1}) -logs.msg_withdrawal = 출금: {0} (-{1}) -logs.msg_upkeep_paid = 유지비 결제: {0} (청구 대상 청크 {1}개) -logs.msg_upkeep_grace_started = 유지비 실패: 유예 기간 시작 ({0}시간) -logs.msg_upkeep_missed = 유지비 미납 (결제 {0}회), 유예 만료까지 {1} -logs.msg_upkeep_manual = 유지비 수동 결제: {0} (청구 대상 청크 {1}개, 유예 해제) -# 관리자 파워 -logs.msg_admin_power_set = 관리자가 {0}의 파워를 {1}(으)로 설정했습니다 (이전: {2}) -logs.msg_admin_power_add = 관리자가 {1}에게 파워 {0}을(를) 추가했습니다 ({2} -> {3}) -logs.msg_admin_power_remove = 관리자가 {1}에서 파워 {0}을(를) 제거했습니다 ({2} -> {3}) -logs.msg_admin_power_reset = 관리자가 {0}의 파워를 {1}(으)로 초기화했습니다 (이전: {2}) -logs.msg_admin_power_adjusted = 관리자가 {0}의 파워를 {1}만큼 조정했습니다 ({2} -> {3}) -logs.msg_admin_maxpower_set = 관리자가 {0}의 최대 파워를 {1}(으)로 설정했습니다 (이전: {2}) -logs.msg_admin_maxpower_reset = 관리자가 {0}의 최대 파워를 전역 기본값으로 초기화했습니다 ({1}) -logs.msg_admin_powerloss_enabled = 관리자가 {0}의 파워 손실을 활성화했습니다 -logs.msg_admin_powerloss_disabled = 관리자가 {0}의 파워 손실을 비활성화했습니다 -logs.msg_admin_decay_enabled = 관리자가 {0}의 영토 소멸 면제를 활성화했습니다 -logs.msg_admin_decay_disabled = 관리자가 {0}의 영토 소멸 면제를 비활성화했습니다 -logs.msg_admin_kd_reset = 관리자가 {0}의 K/D를 초기화했습니다 -logs.msg_admin_power_set_all = 관리자가 멤버 {0}명 전원의 파워를 {1}(으)로 설정했습니다 -logs.msg_admin_power_add_all = 관리자가 멤버 {1}명 전원에게 파워 {0}을(를) 추가했습니다 -logs.msg_admin_power_remove_all = 관리자가 멤버 {1}명 전원에서 파워 {0}을(를) 제거했습니다 -logs.msg_admin_power_reset_all = 관리자가 멤버 {0}명 전원의 파워를 초기화했습니다 -logs.msg_admin_power_adjusted_all = 관리자가 멤버 {0}명 전원의 파워를 {1}만큼 조정했습니다 -# 관리자 세력 -logs.msg_admin_kicked = [Admin] {0}이(가) 추방되었습니다 -logs.msg_admin_role_set = [Admin] {0}의 역할이 {1}(으)로 설정되었습니다 -logs.msg_admin_leader_kick = [Admin] {0}에서 {1}(으)로 지도자가 이양되었습니다 (관리자 추방) -logs.msg_admin_econ_added = 관리자 추가: {0} (잔액: {1}) -logs.msg_admin_econ_deducted = 관리자 차감: {0} (잔액: {1}) -logs.msg_admin_econ_set = 관리자가 잔액을 {0}(으)로 설정했습니다 (이전: {1}) -# 가져오기 -logs.msg_left_import = {0}이(가) 탈퇴했습니다 (다른 세력으로 가져오기) -logs.msg_leader_import_transfer = {0}이(가) 지도자가 되었습니다 (이전 지도자가 다른 세력으로 가져오기됨) -logs.msg_imported_from = {0}에서 세력을 가져왔습니다 - -# ========== 채팅 페이지 ========== -chat.title = 세력 채팅 -chat.tab_faction = 세력 -chat.tab_ally = 동맹 -chat.send_btn = 전송 -chat.placeholder = 메시지를 입력하세요... -chat.no_messages = 메시지가 없습니다. -chat.no_ally_permission = 동맹 채팅 권한이 없습니다. -chat.no_permission = 권한이 없습니다. -chat.faction_gone = 세력이 더 이상 존재하지 않습니다. -chat.time_now = 방금 -chat.time_minutes = {0}분 -chat.time_hours = {0}시간 - -# ========== 초대 페이지 ========== -invites.title = 초대 -invites.tab_outgoing = 보낸 초대 -invites.tab_requests = 요청 -invites.prev_btn = < 이전 -invites.next_btn = 다음 > -invites.invite_count = 초대 {0}건 -invites.request_count = 요청 {0}건 -invites.invited_by = 초대자: {0} -invites.no_message = 메시지 없음 -invites.expires = 만료: {0} -invites.type_outgoing = 보낸 초대 -invites.type_request = 요청 -invites.invited_by_label = 초대자: -invites.empty_outgoing = 보낸 초대가 없습니다. /f invite <플레이어>로 초대하세요. -invites.empty_requests = 가입 요청이 없습니다. 플레이어는 /f request로 가입을 요청할 수 있습니다. -invites.invalid_player = 잘못된 플레이어입니다. -invites.cancelled_invite = {0}에 대한 초대를 취소했습니다. -invites.player_joined = {0}이(가) 세력에 가입했습니다! -invites.faction_full = 세력이 가득 찼습니다. 요청을 수락할 수 없습니다. -invites.add_failed = 플레이어를 세력에 추가하지 못했습니다. -invites.request_expired = 요청을 찾을 수 없거나 만료되었습니다. -invites.request_declined = {0}의 가입 요청을 거절했습니다. -invites.time_seconds = {0}초 -invites.time_minutes = {0}분 -invites.time_hours = {0}시간 -invites.label_message = 메시지: -invites.btn_cancel = 취소 -invites.btn_accept = 수락 -invites.btn_decline = 거절 - -# ========== 지도 페이지 ========== -map.title = 영역 지도 -map.action_hint = 좌클릭: 점령 | 우클릭: 포기 -map.legend_your = 내 영토 -map.legend_ally = 동맹 영토 -map.legend_enemy = 적 영토 -map.legend_other = 다른 세력 -map.legend_wilderness = 야생 -map.legend_safe = Safe Zone -map.legend_war = War Zone -map.legend_you = 현재 위치 -map.position = 내 위치: 청크 ({0}, {1}) -map.legend_protected = 보호됨 -map.claim_stats = 영토: {0}/{1} (사용 가능 {2}) -map.overclaimed = {0}에 의해 강제 점령됨! -map.power_display = 파워: {0}/{1} -map.join_to_claim = 영토를 점령하려면 세력에 가입하세요 -map.claim_success = 청크 ({0}, {1})을(를) 점령했습니다! -map.claim_not_in_faction = 영토를 점령하려면 세력에 소속되어야 합니다. -map.claim_not_officer = 간부와 지도자만 영토를 점령할 수 있습니다. -map.claim_already_yours = 이 청크는 이미 소유하고 있습니다. -map.claim_already_claimed = 이 청크는 다른 세력이 이미 점령했습니다. -map.claim_not_adjacent = 기존 영토에 인접한 청크만 점령할 수 있습니다. -map.claim_max = 최대 영토 한도에 도달했습니다. -map.claim_world_not_allowed = 이 월드에서는 영토 점령이 허용되지 않습니다. -map.claim_orbisguard = 이 지역은 OrbisGuard에 의해 보호되고 있습니다. -map.claim_failed = 청크 점령에 실패했습니다. -map.unclaim_success = 청크 ({0}, {1})을(를) 포기했습니다. -map.unclaim_not_in_faction = 세력에 소속되어야 합니다. -map.unclaim_not_officer = 간부와 지도자만 영토를 포기할 수 있습니다. -map.unclaim_not_claimed = 이 청크는 점령되지 않았습니다. -map.unclaim_not_yours = 이 청크는 다른 세력의 소유입니다. -map.unclaim_home = 세력 홈이 있는 청크는 포기할 수 없습니다. -map.unclaim_failed = 청크 포기에 실패했습니다. -map.overclaim_success = 적 청크 ({0}, {1})을(를) 강제 점령했습니다! -map.overclaim_not_in_faction = 세력에 소속되어야 합니다. -map.overclaim_not_officer = 간부와 지도자만 강제 점령할 수 있습니다. -map.overclaim_already_yours = 이 청크는 이미 소유하고 있습니다. -map.overclaim_ally = 동맹 영토는 강제 점령할 수 없습니다. -map.overclaim_has_power = 이 세력은 영토를 방어할 충분한 파워를 보유하고 있습니다. -map.overclaim_max = 최대 영토 한도에 도달했습니다. -map.overclaim_failed = 강제 점령에 실패했습니다. -# ========== 세력 생성 페이지 ========== -create.title = 세력 생성 -create.section_preview = 미리보기 -create.section_basic_info = 기본 정보 -create.section_details = 상세 정보 -create.name_prefix = 이름: -create.faction_name_label = 세력 이름 * -create.tag_label = 태그 (2-4자, 비워두면 자동 설정) -create.desc_label = 설명 (선택사항) -create.recruitment_label = 모집 -create.section_faction_color = 세력 색상 -create.section_combat = 전투 -create.create_btn = 세력 생성 -create.preview_name = 세력 이름을 입력하세요 -create.leader_prefix = 지도자: {0} -create.enter_name = 세력 이름을 입력해 주세요. -create.name_too_short = 세력 이름은 최소 {0}자 이상이어야 합니다. -create.name_too_long = 세력 이름은 {0}자를 초과할 수 없습니다. -create.name_taken = 해당 이름의 세력이 이미 존재합니다. -create.tag_length = 세력 태그는 {0}-{1}자여야 합니다. -create.tag_format = 세력 태그에는 문자와 숫자만 사용할 수 있습니다. -create.desc_too_long = 설명은 {0}자를 초과할 수 없습니다. -create.created = 세력 {0}이(가) 성공적으로 생성되었습니다! -create.created_no_dashboard = 세력이 생성되었지만 대시보드를 열 수 없습니다. -create.invalid_name = 잘못된 세력 이름입니다. -create.create_failed = 세력을 생성할 수 없습니다. - -# ========== 신규 플레이어 페이지 ========== -newplayer.browse_title = 세력 탐색 -newplayer.invites_title = 초대 & 요청 -newplayer.map_title = 영역 지도 -newplayer.view_only_badge = 보기 전용 모드 -newplayer.legend_label = 범례: -newplayer.legend_safezone = SafeZone -newplayer.legend_warzone = WarZone -newplayer.legend_faction = 세력 -newplayer.legend_wilderness = 야생 -newplayer.search_label = 검색: -newplayer.sort_label = 정렬: -newplayer.prev_btn = < 이전 -newplayer.next_btn = 다음 > -newplayer.pending_count = 대기 중 {0}건 -newplayer.received_header = 받은 초대 ({0}) -newplayer.requests_header = 보낸 요청 ({0}) -newplayer.no_invites = 초대가 없습니다. 세력을 탐색하여 찾아보세요! -newplayer.no_requests = 대기 중인 요청이 없습니다. -newplayer.invited_by = 초대자: {0} -newplayer.member_count = 멤버 {0}명 -newplayer.power_count = 파워 {0} -newplayer.claim_count = 영토 {0}개 -newplayer.awaiting_review = 검토 대기 중 -newplayer.expires_in = {0}시간 후 만료 -newplayer.time_just_now = 방금 -newplayer.time_minutes = {0}분 전 -newplayer.time_hours = {0}시간 전 -newplayer.time_days = {0}일 전 -newplayer.invalid_faction = 잘못된 세력입니다. -newplayer.invite_expired = 초대가 만료되었거나 취소되었습니다. -newplayer.faction_gone = 세력이 더 이상 존재하지 않습니다. -newplayer.joined = {0}에 가입했습니다! -newplayer.faction_full = 이 세력은 가득 찼습니다. -newplayer.join_failed = 세력에 가입할 수 없습니다. -newplayer.invite_declined = 초대를 거절했습니다. -newplayer.request_cancelled = {0} 가입 요청을 취소했습니다. -newplayer.faction_count = 세력 {0}개 -newplayer.browse_subtitle = 새로운 보금자리를 찾아보세요! -newplayer.sort_power = 파워 -newplayer.sort_name = 이름 -newplayer.sort_members = 멤버 -newplayer.btn_accept = 수락 -newplayer.btn_pending = 대기 중 -newplayer.btn_join = 가입 -newplayer.btn_request = 요청 -newplayer.invite_only_msg = 이 세력은 초대 전용입니다. -newplayer.welcome_hint = 환영합니다! /f를 입력하여 세력 메뉴를 여세요. -newplayer.faction_open_hint = 이 세력은 공개입니다! 대신 가입을 클릭하세요. -newplayer.already_requested = 이 세력에 이미 가입 요청이 대기 중입니다. -newplayer.has_invite_hint = 이 세력에서 초대를 받았습니다! 대신 수락을 클릭하세요. -newplayer.request_sent = {0}에 가입 요청을 보냈습니다! -newplayer.officer_review = 간부가 요청을 검토할 것입니다. -newplayer.map_hint = 보기 전용 - 영토를 점령하려면 세력에 가입하세요! - -# 플레이어 설정 -nav.player_settings = 플레이어 -player_settings.title = 플레이어 설정 -player_settings.language_section = 언어 -player_settings.auto_detect = 클라이언트에서 자동 감지 -player_settings.auto_detect_desc = 게임 클라이언트의 언어 설정을 사용합니다 -player_settings.language_label = 언어 -player_settings.notifications_section = 알림 -player_settings.territory_alerts = 영역 알림 -player_settings.territory_alerts_desc = 영역에 들어가거나 나갈 때 알림을 표시합니다 -player_settings.death_announcements = 사망 공지 -player_settings.death_announcements_desc = 세력 멤버 사망 위치 공지를 수신합니다 -player_settings.power_notifications = 파워 변동 -player_settings.power_notifications_desc = 파워가 변동될 때 메시지를 표시합니다 -player_settings.language_changed = 언어가 {0}(으)로 변경되었습니다 -player_settings.pref_enabled = {0} 활성화됨 -player_settings.pref_disabled = {0} 비활성화됨 - -# ========== 도움말 페이지 ========== -help.center_title = 도움말 센터 -help.getting_started_title = 시작하기 -help.what_are_factions_title = 세력이란? -help.what_are_factions_1 = 세력은 플레이어가 만든 그룹으로 함께 협력하여 -help.what_are_factions_2 = 영토를 점령하고, 기지를 건설하고, 경쟁합니다. -help.what_are_factions_bullet_1 = - 건축을 위한 보호된 영토 -help.what_are_factions_bullet_2 = - 함께 플레이할 팀원 -help.what_are_factions_bullet_3 = - 세력 채팅 및 기능에 대한 접근 -help.joining_title = 세력 가입하기 -help.joining_desc = 세력에 가입하는 방법은 여러 가지가 있습니다: -help.joining_bullet_1 = - 탐색 - 공개 세력을 찾아 가입을 클릭 -help.joining_bullet_2 = - 초대 - 간부의 초대를 수락 -help.joining_bullet_3 = - 요청 - 초대 전용 세력에 가입을 요청 -help.creating_title = 세력 만들기 -help.creating_desc = 생성 탭에서 나만의 세력을 시작하세요. -help.creating_bullet_1 = - 멤버를 초대하고 관리 -help.creating_bullet_2 = - 영토를 점령하고 보호 -help.commands_title = 빠른 명령어 -help.cmd_f = /f - 세력 메뉴 열기 -help.cmd_f_list = /f list - 모든 세력 목록 보기 -help.cmd_f_join = /f join <이름> - 공개 세력에 가입 -help.cmd_f_create = /f create <이름> - 새 세력 생성 -help.cmd_f_help = /f help - 전체 명령어 목록 -help.tip = 팁: 세력을 탐색하여 나에게 맞는 그룹을 찾아보세요! diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md deleted file mode 100644 index 95b6c952..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/configuration.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: admin_configuration ---- -# Configuration System - -HyperFactions uses a modular JSON config system with 11 configuration files. - -## Admin Config Commands - -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | - -## Configuration Files - -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | - ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: -`mods/com.hyperfactions_HyperFactions/config/` - ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. - ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md deleted file mode 100644 index 47e8dffe..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_config/world_settings.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_world_settings ---- -# Per-World Settings - -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. - -## World Commands - -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | - -## Available Settings - -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | - -## World Whitelist / Blacklist - -Control which worlds allow faction features through the `worlds.json` config file: - -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed - ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. - -## Examples - -- `/f admin world set survival claiming_enabled true` -- `/f admin world set creative claiming_enabled false` -- `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults - ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. - ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md deleted file mode 100644 index b219d330..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/treasury_management.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: admin_treasury_management ---- -# Treasury Management - -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. - -## Treasury Commands - -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | - -## Examples - -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance - ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. - -## Use Cases - -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | - ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. - ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md deleted file mode 100644 index 7df9b4c7..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_economy/upkeep_management.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: admin_upkeep_management ---- -# Upkeep Management - -Faction upkeep charges factions periodically based on their territory and member count. - -## Admin Controls - -Upkeep settings are managed through the economy config file or the admin config GUI. - -`/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. - -## Default Upkeep Settings - -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | - -## Monitoring Upkeep - -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep - ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. - ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. - -## Upkeep Formula - -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) - ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md deleted file mode 100644 index 253e05ab..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/disbanding.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_disbanding ---- -# Force Disbanding - -Admins can forcefully disband any faction, regardless of the leader's wishes. - -## Command - -`/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. - -**Permission**: `hyperfactions.admin.disband` - ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. - -## Consequences - -When a faction is disbanded: - -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | - -## Best Practices - -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting - ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md deleted file mode 100644 index b00218c9..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_factions/managing_factions.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_managing_factions ---- -# Managing Factions - -Admins can inspect and modify any faction on the server through the dashboard or commands. - -## Browsing Factions - -`/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. - -`/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. - -## Modifying Faction Settings - -With `hyperfactions.admin.modify` permission, you can: - -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes - ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. - -## Viewing Members and Relations - -The admin info panel shows: - -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | - ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md deleted file mode 100644 index 84a331f7..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/backups.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_backups ---- -# Backup System - -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. - -## Backup Commands - -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | - -**Permission**: `hyperfactions.admin.backup` - -## GFS Rotation Defaults - -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | - ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. - -## Backup Contents - -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files - ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. - -## Best Practices - -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md deleted file mode 100644 index e3bf7548..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/imports.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: admin_imports ---- -# Data Import - -Import faction data from other plugins to migrate your server to HyperFactions. - -## Import Command - -`/f admin import [path] [flags]` - -**Permission**: `hyperfactions.admin.use` - -## Supported Sources - -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | - -## Import Flags - -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | - ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. - -## Import Process - -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved - -## Examples - -- `/f admin import elbaphfactions --dry-run` -- `/f admin import elbaphfactions --overwrite` -- `/f admin import hyfactions --no-zones --no-power` -- `/f admin import elbaphfactions /custom/path` - ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. - ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md deleted file mode 100644 index f6dc2880..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_maintenance/updates.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: admin_updates ---- -# Update Checking - -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. - -## Update Commands - -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | - -## Release Channels - -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | - ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. - -## HyperProtect-Mixin - -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). - -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server - ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. - -## Rollback Procedure - -If an update causes issues: - -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` - ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md deleted file mode 100644 index bf30a5b4..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/getting_started.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: admin_getting_started ---- -# Getting Started as Admin - -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. - -## Opening the Admin Dashboard - -`/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. - ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. - -## Requirements - -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) - -## First Steps After Install - -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety - -## Admin Capabilities - -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md deleted file mode 100644 index 979e5543..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_overview/permissions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: admin_permissions ---- -# Admin Permissions - -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. - -## Permission Nodes - -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | - -## Fallback Behavior - -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). - ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. - -## Permission Resolution Order - -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) - ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md deleted file mode 100644 index b2c9f463..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_commands.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: admin_power_commands ---- -# Power Admin Commands - -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. - -## Player Power Commands - -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | - -## How Power Affects Factions - -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. - -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | - ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. - -## Examples - -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown - ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md deleted file mode 100644 index 5469f903..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_power/power_overrides.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: admin_power_overrides ---- -# Power Overrides - -Special power commands that change how power behaves for specific players or factions. - -## Override Commands - -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | - -## Custom Max Power - -`/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. - ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. - -## No-Loss Mode - -`/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. - -Useful for: -- New player protection periods -- Event participants -- Staff members - -## No-Decay Mode - -`/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. - -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection - -## Power Info - -`/f admin power info ` -Shows a complete breakdown: - -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage - ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md deleted file mode 100644 index bd0b0fa6..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/all_commands.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: admin_quickref_commands ---- -# Admin Command Reference - -Complete list of all `/f admin` subcommands with syntax and required permissions. - -## Dashboard and General - -| Command | Permission | -|---------|-----------| -| `/f admin` | admin.use | -| `/f admin version` | admin.use | -| `/f admin reload` | admin.reload | -| `/f admin sync` | admin.use | -| `/f admin sentry` | admin.use | - -## Faction Management - -| Command | Permission | -|---------|-----------| -| `/f admin factions` | admin.use | -| `/f admin info ` | admin.use | -| `/f admin who ` | admin.use | -| `/f admin disband ` | admin.disband | -| `/f admin log` | admin.use | - -## Zone Management - -| Command | Permission | -|---------|-----------| -| `/f admin safezone ` | admin.zones | -| `/f admin warzone ` | admin.zones | -| `/f admin removezone ` | admin.zones | -| `/f admin zone create/delete/claim/unclaim` | admin.zones | -| `/f admin zone radius ` | admin.zones | -| `/f admin zone list` | admin.zones | -| `/f admin zone notify ` | admin.zones | -| `/f admin zone title upper/lower ` | admin.zones | -| `/f admin zone properties ` | admin.zones | -| `/f admin zoneflag ` | admin.zones | - -## Power and Economy - -| Command | Permission | -|---------|-----------| -| `/f admin power set/add/remove/reset [amt]` | admin.power | -| `/f admin power setmax/noloss/nodecay [amt]` | admin.power | -| `/f admin power info ` | admin.power | -| `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | - -## Maintenance - -| Command | Permission | -|---------|-----------| -| `/f admin backup create/list/restore/delete` | admin.backup | -| `/f admin import [flags]` | admin.use | -| `/f admin update` | admin.use | -| `/f admin update mixin` | admin.use | -| `/f admin config` | admin.use | -| `/f admin world list/info/set/reset` | admin.use | -| `/f admin debug toggle ` | admin.debug | -| `/f admin integration` | admin.use | - ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md deleted file mode 100644 index c39bfb3b..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_reference/integrations.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_integrations ---- -# Plugin Integrations - -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. - -## Checking Integration Status - -`/f admin version` -Shows current version and detected integrations. - -`/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) -2. **HyperPerms** -3. **LuckPerms** -4. **OP fallback** (if no provider found) - ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. - ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. - ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md deleted file mode 100644 index 933a9b2d..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_basics.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_basics ---- -# Zone Basics - -Zones are admin-controlled territories with custom rules that override normal faction protection. - -## Zone Types - -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. - -## Creating Zones - -`/f admin safezone ` -Creates a SafeZone and claims your current chunk. - -`/f admin warzone ` -Creates a WarZone and claims your current chunk. - -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. - -## Managing Zone Chunks - -`/f admin zone claim ` -Add the current chunk to the named zone. - -`/f admin zone unclaim ` -Remove the current chunk from the named zone. - -`/f admin zone radius ` -Claim a square of chunks around your position. - -## Deleting Zones - -`/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. - ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. - ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md deleted file mode 100644 index 403b6b63..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_commands.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_commands ---- -# Zone Command Reference - -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. - -## Quick Creation - -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | - -## Zone Management - -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | - ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. - -## Examples - -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages diff --git a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md deleted file mode 100644 index 368a4ec9..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/admin/admin_zones/zone_flags.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: admin_zone_flags ---- -# Zone Flags - -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. - -## Flag Categories Overview - -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | - -## Default Values (SafeZone vs WarZone) - -| Flag | SafeZone | WarZone | -|------|----------|---------| -| pvp_enabled | false | **true** | -| build_allowed | false | false | -| fall_damage | false | **true** | -| keep_inventory | **true** | false | -| power_loss | false | **true** | -| mob_spawning | false | **true** | -| item_drop | false | **true** | -| door_use | **true** | **true** | -| container_use | false | **true** | - ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. - -## Setting Flags - -`/f admin zoneflag ` - ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/death.md b/src/main/resources/Server/Languages/zh-CN/help/combat/death.md deleted file mode 100644 index 8690b43a..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/combat/death.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: combat_death -commands: home, sethome, stuck ---- -# Death and Recovery - -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. - -## Power Loss - -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. - -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## Example Scenarios - -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* - ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. - -## Recovery - -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. - ---- - -## All Death Types - -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. - ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md b/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md deleted file mode 100644 index e564ec2d..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/combat/protection.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: combat_protection ---- -# Territory Protection - -Claimed territory provides several layers of defense for your faction's builds and resources. - -## Block Protection - -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. - -## Container Protection - -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. - -## Entry Alerts - -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. - ---- - -## Ally Access - -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. - ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. - ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md deleted file mode 100644 index f0b2ab76..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/combat/spawn_protection.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: combat_spawn_protection ---- -# Spawn Protection - -After respawning from death, you receive temporary protection to prevent spawn camping. - -## How It Works - -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status - -## Protection Breaks - -Spawn protection ends early if you: - -- Attack another player or entity -- Move from your spawn position - -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. - ---- - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Use your protection time to assess the situation before moving. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md b/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md deleted file mode 100644 index e45cbdb3..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/combat/tagging.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_tagging ---- -# Combat Tagging - -When you attack or are attacked by another player, you become combat tagged for 15 seconds. - -## While Tagged - -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration - ---- - -## Logout Penalty - ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. - -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. - -## How the Timer Works - -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!TIP] Disengage and wait out the timer if you need to teleport. diff --git a/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md b/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md deleted file mode 100644 index d1d957d2..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/combat/zones.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: combat_zones ---- -# Special Zones - -Admins can designate areas with special rules that override normal faction territory protection. - -## SafeZone - -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. - -## WarZone - -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. - ---- - -## Zone Comparison - -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | - ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. - ->[!TIP] Check your territory map with /f map to see zone boundaries. diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md deleted file mode 100644 index 45da7756..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/alliances.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: diplomacy_alliances -commands: ally ---- -# Forming Alliances - -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. - ---- - -## How to Form an Alliance - -`/f ally ` - -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. - -## How to Break an Alliance - -`/f neutral ` - -Either side can unilaterally end an alliance by resetting the relation to neutral. - ---- - -## Alliance Benefits - -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | - ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. - ---- - -## Alliance Etiquette - ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. - -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md deleted file mode 100644 index 70688ad4..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/enemies.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -id: diplomacy_enemies -commands: enemy, neutral ---- -# Enemy Factions - -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. - ---- - -## Declaring an Enemy - -`/f enemy ` - -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. - -## Resetting to Neutral - -`/f neutral ` - -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. - ---- - -## What Enemy Status Enables - -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | - ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. - ---- - -## Strategic Considerations - -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky - ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. - ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. diff --git a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md b/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md deleted file mode 100644 index 89711eee..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/diplomacy/relations.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: diplomacy_relations -commands: relations ---- -# Faction Relations - -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. - ---- - -## Relation Comparison - -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | - ---- - -## Viewing Relations - -`/f relations` - -Shows all your current alliances, enemies, and any pending alliance requests. - -## How Relations Work - -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. - ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. - ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md b/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md deleted file mode 100644 index 020190cd..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/economy/commands.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: economy_commands ---- -# Economy Commands - -Quick reference for all faction economy commands. - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | - ---- - -## Command Aliases - -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts - -## Role Requirements - -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. - ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md b/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md deleted file mode 100644 index 4fe4539c..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/economy/funds.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: economy_funds -commands: deposit, withdraw ---- -# Managing Funds - -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. - -## Depositing - -Any member can deposit personal funds into the faction treasury. - -`/f deposit ` -Deposit from your personal balance into the treasury. - -## Withdrawing - -Officers and the Leader can withdraw funds back to their personal balance. - -`/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) - -## Transferring - -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. - -`/f money transfer ` -Send funds to another faction's treasury. (Officer+) - ---- - -## Fees - -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | - ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. - ->[!TIP] All transactions are logged. Use /f money log to review recent activity. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md b/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md deleted file mode 100644 index e4e7307b..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/economy/treasury.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: economy_treasury -commands: balance ---- -# Faction Treasury - -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. - -## Starting Balance - -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. - -## Who Can Manage - -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control - ---- - -`/f balance` -Check your faction's current treasury balance. Also available as /f bal. - ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. - ->[!INFO] All treasury transactions are logged and can be reviewed by officers. diff --git a/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md b/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md deleted file mode 100644 index 8a2d12e4..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/economy/upkeep.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: economy_upkeep ---- -# Territory Upkeep - -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. - -## Upkeep Costs - -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. - -## Auto-Pay - -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. - ---- - -## Grace Period - -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. - ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. - -## Example - -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* - ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md deleted file mode 100644 index f70427cb..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/power_land/claiming.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_claiming -commands: claim, unclaim ---- -# Claiming Territory - -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. - ---- - -## How to Claim - -`/f claim` - -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. - -## How to Unclaim - -`/f unclaim` - -Releases the chunk you are standing in back to wilderness. Also requires Officer+. - ---- - -## Claim Rules - -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. - ---- - -## What Protection Provides - -Inside claimed territory, the following is enforced by default: - -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only - ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. - ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md deleted file mode 100644 index ea39186b..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/power_land/losing_territory.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: power_losing -commands: overclaim ---- -# Losing Territory - -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. - ---- - -## How Overclaiming Works - -`/f overclaim` - -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. - -## The Math - -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). - ---- - -## Example Scenario - -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | - -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. - ---- - -## How to Prevent Overclaiming - -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim - ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md deleted file mode 100644 index 207c041d..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/power_land/territory_map.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: power_map -commands: map ---- -# The Territory Map - -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. - ---- - -## Opening the Map - -`/f map` - -Opens the territory map GUI centered on your current location. - ---- - -## Color Legend - -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | - ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. - ---- - -## Click to Claim - -The map is not just for viewing -- you can interact with it directly. - -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you - ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. - ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. diff --git a/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md deleted file mode 100644 index ae158ed5..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/power_land/understanding_power.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: power_understanding -commands: power ---- -# Understanding Power - -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. - ---- - -## Default Power Values - -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | - ->[!NOTE] These are default values. Your server administrator may have configured different settings. - -## How It Works - -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. - ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. - ---- - -## Checking Your Power - -`/f power` - -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. - -## The Danger Zone - -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. - ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. - ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. diff --git a/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md deleted file mode 100644 index 0540d550..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/quick_ref/all_commands.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: quickref_commands ---- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | - -## Chat - -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md deleted file mode 100644 index 2155ff0c..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/welcome/getting_started.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: welcome_started -commands: gui, menu ---- -# Getting Started - -Welcome to HyperFactions! Here is how to get up and running in just a few steps. - ---- - -## Step 1: Open the Faction Menu - -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. - -## Step 2: Choose Your Path - -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | - -## Step 3: Explore Your Faction - -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. - ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. - ---- - -## Essential First Commands - -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you - ->[!TIP] You can also type /f help in chat for a quick command reference anytime. diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md deleted file mode 100644 index dcd1df1a..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/welcome/quick_tips.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: welcome_tips ---- -# Quick Tips - -Handy advice organized by category to help you thrive. - ---- - -## Territory - -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power - -## Combat - -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default - ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. - -## Social - -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status - -## Economy - ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. - -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster - -## General - -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** diff --git a/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md deleted file mode 100644 index 5fedf54c..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/welcome/what_are_factions.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: welcome_what ---- -# What Are Factions? - -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. - ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. - ---- - -## Core Mechanics - -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | - ---- - -## How Strength Works - -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. - ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. - ---- - -## Diplomacy at a Glance - -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules - ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md deleted file mode 100644 index e1eaa33b..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/your_faction/creating.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: faction_creating -commands: create ---- -# Creating a Faction - -Starting your own faction makes you the Leader with full control over settings, members, and territory. - ---- - -## How to Create - -`/f create ` - -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. - -## Name Rules - -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | - ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. - ---- - -## What Happens on Creation - -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home - ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. - ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md deleted file mode 100644 index 7dbabdcd..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/your_faction/joining.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: faction_joining -commands: accept, join, request ---- -# Joining a Faction - -There are three ways to join an existing faction, depending on how the faction is configured. - ---- - -## Methods Compared - -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | - ---- - -## Invite Details - -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept - -## Join Requests - -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard - ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. - ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md deleted file mode 100644 index 870c6133..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/your_faction/managing.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_managing -commands: invite, kick, promote, demote, transfer ---- -# Managing Members - -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. - ---- - -## Commands - -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | - ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. - ---- - -## Invitations - -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total - -## Promotions and Demotions - -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member - -## Transferring Leadership - ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. - -`/f transfer ` - -The target must be a current member of your faction. diff --git a/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md b/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md deleted file mode 100644 index 67bb5962..00000000 --- a/src/main/resources/Server/Languages/zh-CN/help/your_faction/roles.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: faction_roles ---- -# Roles and Ranks - -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. - ---- - -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. - ---- - -## Role Details - -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. - ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang deleted file mode 100644 index 31bd9189..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions.lang +++ /dev/null @@ -1,453 +0,0 @@ -# HyperFactions - 简体中文翻译 -# 格式: key = value (或 key = "quoted value") -# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions." 前缀 -# 占位符: {0}, {1}, 等 - -# ========== 通用 ========== -common.no_permission = 你没有权限执行此操作。 -common.not_in_faction = 你不在任何派系中。 -common.already_in_faction = 你已经在一个派系中了。 -common.player_not_found = 未找到该玩家。 -common.faction_not_found = 未找到该派系。 -common.player_not_online = 该玩家不在线。 -common.must_be_leader = 只有派系领袖才能执行此操作。 -common.must_be_officer = 你必须是官员或领袖才能执行此操作。 -common.combat_tagged = 战斗标记期间无法执行此操作。 -common.cancel = 取消 -common.confirm = 确认 -common.save = 保存 -common.close = 关闭 -common.clear = 清除 -common.back = 返回 -common.leave = 离开 -common.transfer = 转让 -common.disband = 解散 -common.world_fallback = 世界 -common.yes = 是 -common.no = 否 -common.loading = 加载中... -common.online = 在线 -common.offline = 离线 -common.enabled = 已启用 -common.disabled = 已禁用 -common.none = 无 -common.page = 第 {0} 页,共 {1} 页 -common.unknown = 未知 -common.error_generic = 出了点问题,请重试。 -common.gui_fallback = 无法访问界面。请使用 /f help 查看命令。 -common.admin_prefix = [Admin] -common.location_error = 无法确定你的位置。 -common.world_error = 无法确定你所在的世界。 -common.invalid_id = 无效的派系 ID。 -common.na = N/A - -# ========== 命令 - 创建 ========== -cmd.create.no_permission = 你没有权限创建派系。 -cmd.create.usage = 用法: /f create <名称> -cmd.create.success = 派系 '{0}' 已创建! -cmd.create.already_in_named = 你已经在 {0} 中了。 -cmd.create.use_leave_first = 如果你想创建新派系,请先使用 /f leave 离开当前派系。 -cmd.create.name_taken = 该派系名称已被使用。 -cmd.create.name_too_short = 派系名称太短。 -cmd.create.name_too_long = 派系名称太长。 -cmd.create.failed = 创建派系失败。 - -# ========== 命令 - 解散 ========== -cmd.disband.no_permission = 你没有权限解散派系。 -cmd.disband.not_leader = 只有派系领袖才能解散派系。 -cmd.disband.confirm_prompt = 你确定要解散你的派系吗? -cmd.disband.confirm_instruction = 在 {0} 秒内再次输入 /f disband --text 以确认。 -cmd.disband.success = 你的派系已被解散。 -cmd.disband.failed = 解散派系失败。 -cmd.disband.cancelled = 之前的确认已取消。再次输入以确认解散。 - -# ========== 命令 - 重命名 ========== -cmd.rename.no_permission = 你没有权限。 -cmd.rename.not_leader = 只有领袖才能重命名派系。 -cmd.rename.usage = 用法: /f rename <名称> -cmd.rename.too_short = 名称太短(最少 {0} 个字符)。 -cmd.rename.too_long = 名称太长(最多 {0} 个字符)。 -cmd.rename.name_taken = 该名称已被使用。 -cmd.rename.success = 派系已重命名为 {0}! -cmd.rename.broadcast = {0} 将派系重命名为 {1} - -# ========== 命令 - 描述 ========== -cmd.desc.no_permission = 你没有权限。 -cmd.desc.not_officer = 你必须是官员才能设置描述。 -cmd.desc.set = 派系描述已设置! -cmd.desc.cleared = 派系描述已清除。 - -# ========== 命令 - 开放 / 关闭 ========== -cmd.open.no_permission = 你没有权限。 -cmd.open.not_leader = 只有领袖才能更改此设置。 -cmd.open.already_open = 你的派系已经是开放的。 -cmd.open.success = 你的派系现在是开放的!任何人都可以通过 /f join 加入。 -cmd.open.broadcast = {0} 将派系开放为公开加入。 -cmd.close.no_permission = 你没有权限。 -cmd.close.not_leader = 只有领袖才能更改此设置。 -cmd.close.already_closed = 你的派系已经是仅限邀请的。 -cmd.close.success = 你的派系现在仅限邀请加入。 -cmd.close.broadcast = {0} 将派系设置为仅限邀请。 - -# ========== 命令 - 颜色 ========== -cmd.color.no_permission = 你没有权限。 -cmd.color.not_officer = 你必须是官员才能更改颜色。 -cmd.color.colors_disabled = 派系颜色功能已禁用。 -cmd.color.usage = 用法: /f color <代码|#hex> -cmd.color.usage_hint = 有效代码: 0-9, a-f 或 #RRGGBB 十六进制 -cmd.color.invalid = 无效颜色。请使用 0-9, a-f 或 #RRGGBB。 -cmd.color.success = 派系颜色已更新! - -# ========== 命令 - 领地占领 ========== -cmd.claim.no_permission = 你没有权限占领领地。 -cmd.claim.already_yours = 你的派系已经拥有此区块。 -cmd.claim.cannot_claim_ally = 你不能占领盟友的领地。 -cmd.claim.already_claimed_hint = 此区块已被占领。如果对方可被突袭,请使用 /f overclaim。 -cmd.claim.success = 已占领区块 {0}, {1}! -cmd.claim.not_officer = 你必须是官员才能占领领地。 -cmd.claim.already_claimed = 此区块已被占领。 -cmd.claim.max_claims = 你的派系已达到最大领地数量。获取更多力量吧! -cmd.claim.not_adjacent = 你必须占领与现有领地相邻的区块。 -cmd.claim.world_not_allowed = 此世界不允许占领领地。 -cmd.claim.orbisguard = 此区域受 OrbisGuard 保护。 -cmd.claim.zone_protected = 此区块位于安全区或战争区内。 -cmd.claim.insufficient_power = 你的派系没有足够的力量来占领更多领地。 -cmd.claim.failed = 占领区块失败。 - -# ========== 命令 - 邀请 ========== -cmd.invite.no_permission = 你没有权限邀请玩家。 -cmd.invite.not_officer = 你必须是官员才能邀请玩家。 -cmd.invite.usage = 用法: /f invite <玩家> -cmd.invite.player_not_found = 未找到玩家 '{0}' 或该玩家不在线。 -cmd.invite.target_in_faction = 该玩家已在一个派系中。 -cmd.invite.sent = 已邀请 {0} 加入你的派系。 -cmd.invite.received = 你已被邀请加入 {0}! -cmd.invite.accept_hint = 输入 /f accept {0} 加入。 - -# ========== 命令 - 接受 / 加入 ========== -cmd.join.no_permission = 你没有权限加入派系。 -cmd.join.already_in_named = 你已经在 {0} 中了。 -cmd.join.use_leave_hint = 如果你想加入其他派系,请先使用 /f leave。 -cmd.join.no_invites = 你没有待处理的邀请。 -cmd.join.faction_not_found = 未找到派系 '{0}'。 -cmd.join.not_invited = 你没有来自该派系的邀请。 -cmd.join.faction_gone = 该派系已不存在。 -cmd.join.success = 你已加入 {0}! -cmd.join.broadcast = {0} 已加入派系! -cmd.join.faction_full = 该派系已满员。 -cmd.join.failed = 加入派系失败。 - -# ========== 命令 - 踢出 ========== -cmd.kick.no_permission = 你没有权限踢出成员。 -cmd.kick.usage = 用法: /f kick <玩家> -cmd.kick.not_in_your_faction = 玩家 '{0}' 不在你的派系中。 -cmd.kick.success = 已将 {0} 踢出派系。 -cmd.kick.broadcast = {0} 已被踢出派系。 -cmd.kick.kicked = 你已被踢出派系。 -cmd.kick.cannot_kick_higher = 你没有权限踢出该玩家。 -cmd.kick.cannot_kick_leader = 你不能踢出派系领袖。 -cmd.kick.failed = 踢出玩家失败。 - -# ========== 命令 - 离开 ========== -cmd.leave.no_permission = 你没有权限离开派系。 -cmd.leave.confirm_prompt = 你确定要离开你的派系吗? -cmd.leave.confirm_instruction = 在 {0} 秒内再次输入 /f leave --text 以确认。 -cmd.leave.success = 你已离开你的派系。 -cmd.leave.broadcast = {0} 已离开派系。 -cmd.leave.failed = 离开派系失败。 -cmd.leave.cancelled = 之前的确认已取消。再次输入以确认离开。 - -# ========== 命令 - 晋升 / 降职 / 转让 ========== -cmd.rank.promote_no_permission = 你没有权限晋升成员。 -cmd.rank.promote_usage = 用法: /f promote <玩家> -cmd.rank.promoted = 已将 {0} 晋升为 {1}! -cmd.rank.promote_broadcast = {0} 已被晋升为 {1}! -cmd.rank.already_highest = 无法继续晋升。使用 /f transfer 来更换领袖。 -cmd.rank.promote_failed = 晋升玩家失败。 -cmd.rank.demote_no_permission = 你没有权限降职成员。 -cmd.rank.demote_usage = 用法: /f demote <玩家> -cmd.rank.demoted = 已将 {0} 降职为 {1}。 -cmd.rank.demote_broadcast = {0} 已被降职为 {1}。 -cmd.rank.already_lowest = 该玩家已经是成员了。 -cmd.rank.demote_failed = 降职玩家失败。 -cmd.rank.transfer_no_permission = 你没有权限转让领导权。 -cmd.rank.transfer_usage = 用法: /f transfer <玩家> -cmd.rank.player_not_in_faction = 在你的派系中未找到该玩家。 -cmd.rank.transfer_confirm = 你确定要将领导权转让给 {0} 吗? -cmd.rank.transfer_confirm_instruction = 在 {1} 秒内再次输入 /f transfer {0} --text 以确认。 -cmd.rank.transferred = 已将领导权转让给 {0}! -cmd.rank.transfer_broadcast = {0} 现在是派系领袖了! -cmd.rank.transfer_failed = 转让领导权失败。 -cmd.rank.transfer_cancelled = 之前的确认已取消。再次输入以确认转让。 - -# ========== 命令 - 放弃领地 ========== -cmd.unclaim.no_permission = 你没有权限放弃领地。 -cmd.unclaim.success = 已放弃区块 {0}, {1}。 -cmd.unclaim.not_officer = 你必须是官员才能放弃领地。 -cmd.unclaim.chunk_not_claimed = 此区块未被占领。 -cmd.unclaim.not_your_claim = 你的派系不拥有此区块。 -cmd.unclaim.cannot_unclaim_home = 无法放弃包含派系据点的区块。 -cmd.unclaim.would_disconnect = 无法放弃 - 这将使你的领地断开连接。 -cmd.unclaim.failed = 放弃区块失败。 - -# ========== 命令 - 强占 ========== -cmd.overclaim.no_permission = 你没有权限强占领地。 -cmd.overclaim.success = 成功强占敌方领地! -cmd.overclaim.not_officer = 你必须是官员才能强占。 -cmd.overclaim.not_claimed = 此区块未被占领。请使用 /f claim。 -cmd.overclaim.own_chunk = 你的派系已经拥有此区块。 -cmd.overclaim.ally = 你不能强占盟友的领地。 -cmd.overclaim.target_has_power = 该派系仍有足够的力量。 -cmd.overclaim.failed = 强占失败。 - -# ========== 命令 - 脱困 ========== -cmd.stuck.no_permission = 你没有权限使用 /f stuck。 -cmd.stuck.not_stuck = 你并未被困 - 这里是荒野。 -cmd.stuck.combat_tagged = 战斗中无法使用 /f stuck! -cmd.stuck.no_safe = 找不到安全的位置。 -cmd.stuck.teleporting = 将在 {0} 秒后传送到安全位置。请不要移动! - -# ========== 命令 - 据点 ========== -cmd.home.no_permission = 你没有权限传送到派系据点。 -cmd.home.no_home = 你的派系尚未设置据点。 -cmd.home.combat_tagged = 战斗中无法传送! -cmd.home.teleported = 已传送到派系据点! - -# ========== 命令 - 设置据点 ========== -cmd.sethome.no_permission = 你没有权限设置派系据点。 -cmd.sethome.world_not_allowed = 无法在此世界设置据点。 -cmd.sethome.not_in_territory = 你只能在派系领地内设置据点。 -cmd.sethome.set = 派系据点已设置! -cmd.sethome.broadcast = {0} 设置了派系据点。 -cmd.sethome.not_officer = 你必须是官员才能设置据点。 -cmd.sethome.failed = 设置据点失败。 - -# ========== 命令 - 删除据点 ========== -cmd.delhome.no_permission = 你没有权限删除派系据点。 -cmd.delhome.no_home = 你的派系尚未设置据点。 -cmd.delhome.deleted = 派系据点已删除! -cmd.delhome.broadcast = {0} 删除了派系据点。 -cmd.delhome.not_officer = 你必须是官员才能删除据点。 -cmd.delhome.failed = 删除据点失败。 - -# ========== 命令 - 关系(盟友/敌人/中立/关系) ========== -cmd.relation.ally_no_permission = 你没有权限管理同盟。 -cmd.relation.ally_usage = 用法: /f ally <派系> -cmd.relation.ally_sent = 已向 {0} 发送结盟请求! -cmd.relation.ally_formed = 你现在与 {0} 结为盟友了! -cmd.relation.already_ally = 你已经与该派系结盟了。 -cmd.relation.ally_failed = 发送结盟请求失败。 -cmd.relation.enemy_no_permission = 你没有权限宣布敌对。 -cmd.relation.enemy_usage = 用法: /f enemy <派系> -cmd.relation.enemy_declared = {0} 现在是你的敌人了! -cmd.relation.already_enemy = 你已经与该派系处于敌对状态。 -cmd.relation.max_enemies = 你已达到最大敌对派系数量。 -cmd.relation.enemy_failed = 设置敌对失败。 -cmd.relation.neutral_no_permission = 你没有权限设置中立关系。 -cmd.relation.neutral_usage = 用法: /f neutral <派系> -cmd.relation.neutral_set = 你的派系现在与 {0} 处于中立关系。 -cmd.relation.already_neutral = 你已经与该派系处于中立关系。 -cmd.relation.neutral_failed = 设置中立失败。 -cmd.relation.cannot_self = 你不能与自己结盟。 -cmd.relation.max_allies = 你已达到最大盟友数量。 -cmd.relation.view_no_permission = 你没有权限查看关系。 -cmd.relation.header = === 派系关系 === -cmd.relation.allies_count = 盟友 ({0}): -cmd.relation.enemies_count = 敌人 ({0}): -cmd.relation.list_entry = - {0} - -# ========== 命令 - 聊天 ========== -cmd.chat.usage = 用法: /f c [f|a|off] -cmd.chat.no_permission = 你没有权限使用该聊天模式。 -cmd.chat.mode_set = 聊天模式已设为 {0} - -# ========== 命令 - 邀请管理 ========== -cmd.invites.not_officer = 你必须是官员才能管理邀请。 -cmd.invites.header = === 派系邀请 === -cmd.invites.no_pending = 没有待处理的邀请或请求。 -cmd.invites.outgoing = 发出的邀请: -cmd.invites.outgoing_entry = {0}(由 {1} 邀请) -cmd.invites.requests = 加入请求: -cmd.invites.request_entry = {0}{1} -cmd.invites.your_invites_header = === 你的邀请 === -cmd.invites.no_invites = 你没有待处理的邀请。 -cmd.invites.invite_entry = {0} - 使用 /f accept {1} - -# ========== 命令 - 申请 ========== -cmd.request.no_permission = 你没有权限申请加入派系。 -cmd.request.already_in_named = 你已经在 {0} 中了。 -cmd.request.use_leave_hint = 如果你想加入其他派系,请先使用 /f leave。 -cmd.request.usage = 用法: /f request <派系> [留言] -cmd.request.faction_open = 该派系是开放的!使用 /f accept {0} 直接加入。 -cmd.request.already_requested = 你已经向该派系提交了待处理的请求。 -cmd.request.has_invite = 你已被该派系邀请!使用 /f accept {0} 加入。 -cmd.request.sent = 已向 {0} 发送加入请求! -cmd.request.your_message = 你的留言: "{0}" -cmd.request.officer_review = 一名官员将审核你的请求。 -cmd.request.officer_notify = {0} 已申请加入你的派系! -cmd.request.officer_review_hint = 使用 /f gui > 邀请 来审核。 - -# ========== 命令 - 信息 ========== -cmd.info.faction_header = === {0} === -cmd.info.player_header = === {0} === -cmd.info.no_permission = 你没有权限查看派系信息。 -cmd.info.faction_not_found = 未找到派系 '{0}'。 -cmd.info.not_in_faction_hint = 你不在任何派系中。请使用 /f info <派系> -cmd.info.leader = 领袖: {0} -cmd.info.members = 成员: {0}/{1} -cmd.info.power = 力量: {0} -cmd.info.claims = 领地: {0} -cmd.info.raidable = 可被突袭! -cmd.info.allies = 盟友: {0} -cmd.info.enemies = 敌人: {0} -cmd.info.they_consider = 他们对你的态度: {0} -cmd.info.you_consider = 你对他们的态度: {0} -cmd.info.members_no_permission = 你没有权限查看派系成员。 -cmd.info.members_header = === {0} 成员 ({1}) === -cmd.info.member_online = [Online] -cmd.info.list_no_permission = 你没有权限查看派系列表。 -cmd.info.list_empty = 当前没有派系。 -cmd.info.list_header = === 派系列表 ({0}) === -cmd.info.list_entry = {0} - {1} 名成员, {2} 力量 -cmd.info.list_entry_raidable = {0} - {1} 名成员, {2} 力量 [可被突袭] -cmd.info.help_no_permission = 你没有权限查看帮助。 -cmd.info.who_no_permission = 你没有权限查看玩家信息。 -cmd.info.who_faction = 派系: {0} -cmd.info.who_role = 职位: {0} -cmd.info.who_joined = 加入时间: {0} -cmd.info.who_faction_none = 派系: 无 -cmd.info.who_power = 力量: {0} -cmd.info.who_status = 状态: {0} -cmd.info.who_last_seen = 最后在线: {0} -cmd.info.map_no_permission = 你没有权限查看地图。 -cmd.info.map_header = === 领地地图 === -cmd.info.map_legend = 图例: +你 /己方 /盟友 /敌人 -荒野 -cmd.info.map_gui_hint = 使用 /f gui 查看交互式地图 - -# ========== 命令 - 力量 ========== -cmd.power.personal = 个人力量: {0}/{1} -cmd.power.faction = 派系力量: {0}/{1} -cmd.power.death_loss = 死亡损失: {0} -cmd.power.regen = 恢复速率: {0}/小时 -cmd.power.no_permission = 你没有权限查看力量信息。 -cmd.power.header = {0} 的力量: -cmd.power.current = 当前: {0} - -# ========== 命令 - 经济 ========== -cmd.economy.balance = 余额: {0} -cmd.economy.deposited = 已向派系金库存入 {0}。 -cmd.economy.withdrawn = 已从派系金库取出 {0}。 -cmd.economy.transferred = 已向 {1} 转账 {0}。 -cmd.economy.insufficient = 派系金库资金不足。 -cmd.economy.invalid_amount = 无效金额: {0} -cmd.economy.economy_disabled = 经济系统已禁用。 -cmd.economy.balance_no_permission = 你没有权限查看余额。 -cmd.economy.treasury_unavailable = 金库不可用。 -cmd.economy.balance_display = {0} 的金库: {1} -cmd.economy.deposit_no_permission = 你没有权限存款。 -cmd.economy.deposit_faction_denied = 你没有派系存款权限。 -cmd.economy.deposit_usage = 用法: /f deposit <金额> -cmd.economy.amount_positive = 金额必须为正数。 -cmd.economy.wallet_insufficient = 你的钱不够。钱包余额: {0} -cmd.economy.wallet_withdraw_failed = 从钱包扣款失败。 -cmd.economy.deposit_failed = 向派系金库存款失败。资金已退还。 -cmd.economy.withdraw_no_permission = 你没有权限取款。 -cmd.economy.withdraw_faction_denied = 你没有派系取款权限。 -cmd.economy.withdraw_usage = 用法: /f withdraw <金额> -cmd.economy.withdraw_limit_denied = 取款被拒: {0} -cmd.economy.wallet_deposit_failed = 警告: 向你的钱包存款失败。请联系管理员。 -cmd.economy.withdraw_limit_exceeded = 取款被拒: 超出限额。 -cmd.economy.withdraw_failed = 取款失败: {0} -cmd.economy.transfer_no_permission = 你没有权限转账。 -cmd.economy.transfer_faction_denied = 你没有派系转账权限。 -cmd.economy.transfer_usage = 用法: /f money transfer <派系> <金额> -cmd.economy.transfer_self = 无法向自己的派系转账。 -cmd.economy.transfer_limit_denied = 转账被拒: {0} -cmd.economy.transfer_limit_exceeded = 转账被拒: 超出限额。 -cmd.economy.transfer_failed = 转账失败: {0} -cmd.economy.log_no_permission = 你没有权限查看交易记录。 -cmd.economy.log_header = 交易记录(第 {0}/{1} 页) -cmd.economy.log_empty = 未找到交易记录。 -cmd.economy.money_help_header = 金库命令: -cmd.economy.money_help_balance = /f money balance [派系] - 查看余额 -cmd.economy.money_help_deposit = /f money deposit <金额> - 存入金库 -cmd.economy.money_help_withdraw = /f money withdraw <金额> - 从金库取出 -cmd.economy.money_help_transfer = /f money transfer <派系> <金额> - 派系间转账 -cmd.economy.money_help_log = /f money log [页码] [类型] - 查看交易历史 - -# ========== 保护 - 动作短语 ========== -protection.action.generic = 你不能这样做 -protection.action.build = 你不能建造或破坏方块 -protection.action.interact = 你不能与此互动 -protection.action.door = 你不能使用门 -protection.action.container = 你不能打开容器 -protection.action.bench = 你不能使用工作台 -protection.action.processing = 你不能使用加工站 -protection.action.seat = 你不能使用座位 -protection.action.light = 你不能切换灯光 -protection.action.teleporter = 你不能使用传送器 -protection.action.crate = 你不能使用板条箱 -protection.action.tame = 你不能驯服生物 -protection.action.npc = 你不能与 NPC 互动 -protection.action.mount = 你不能骑乘生物 -protection.action.pve = 你不能伤害生物 -protection.action.item_drop = 你不能丢弃物品 -protection.action.item_pickup = 你不能拾取物品 - -# ========== 保护 - 拒绝原因 ========== -protection.denied.safezone = {0}在 SafeZone 中。 -protection.denied.warzone = {0}在 WarZone 中。 -protection.denied.enemy_claim = {0}在敌方领地中。 -protection.denied.claimed = {0}在已占领的领地中。 -protection.denied.here = {0}在此处。 -protection.denied.zone = {0}在此区域中。 -protection.denied.faction_perm = {0}在此处。(派系权限: {1}) -protection.denied.ally_territory = {0}在此处。(盟友领地) -protection.denied.error = 保护错误 - 为安全起见,操作已被阻止。 - -# ========== 保护 - PvP ========== -protection.pvp.safezone = SafeZone 中禁止 PvP。 -protection.pvp.same_faction = 你不能攻击派系成员。 -protection.pvp.ally = 你不能攻击盟友。 -protection.pvp.spawn_protected = 该玩家有出生保护。 -protection.pvp.territory_disabled = 此领地中禁止 PvP。 -protection.pvp.generic = 你不能攻击此玩家。 - -# ========== 保护 - 实体伤害 ========== -protection.mob_damage_disabled = 此区域中怪物伤害已禁用。 -protection.pve_damage_disabled = 此区域中 PvE 伤害已禁用。 -protection.pve_territory_denied = 你不能在此领地中伤害生物。 - -# ========== 保护 - 战斗标记 ========== -protection.combat_tag_command = 战斗标记期间不能使用该命令。 - -# ========== 服务器公告 ========== -# 当发生重大派系事件时,这些消息会广播给所有在线玩家。 -# {0}, {1} = 动态值(派系名称、玩家名称) -server_announce.faction_created = {0} 创建了派系 {1}! -server_announce.faction_disbanded = 派系 {0} 已被解散! -server_announce.leadership_transfer = {0} 现在是 {1} 的领袖了! -server_announce.overclaim = {0} 强占了 {1} 的领地! -server_announce.war_declared = {0} 向 {1} 宣战了! -server_announce.alliance_formed = {0} 和 {1} 现在是盟友了! -server_announce.alliance_broken = {0} 和 {1} 不再是盟友了! - -# ========== 传送系统 ========== -teleport.cooldown_wait = 你必须等待 {0} 才能再次传送。 -teleport.warmup_start = 将在 {0} 秒后传送到派系据点... -teleport.combat_cancelled = 传送已取消 - 你正处于战斗中! -teleport.success_default = 已传送到派系据点! -teleport.no_home = 你的派系尚未设置据点。 -teleport.world_not_found = 未找到世界。 -teleport.failed = 传送失败。 -teleport.countdown = 将在 {0} 秒后传送... -teleport.countdown_one = 将在 1 秒后传送... -teleport.moved_cancelled = 传送已取消 - 你移动了! -teleport.damage_cancelled = 传送已取消 - 你受到了伤害! -teleport.mount_teleport_blocked = 骑乘状态下无法传送到该区域。 -teleport.mount_entry_blocked = 骑乘状态下无法进入此区域。 - -# ========== 聊天显示 ========== -chat.display.public = 公共 -chat.display.faction = 派系 -chat.display.ally = 盟友 diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang deleted file mode 100644 index 4212784a..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions_admin.lang +++ /dev/null @@ -1,801 +0,0 @@ -# HyperFactions 管理界面 - 简体中文翻译 -# 格式: key = value -# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions_admin." 前缀 - -# ========== 管理导航栏 ========== -nav.dashboard = 仪表盘 -nav.actions = 操作 -nav.factions = 派系 -nav.players = 玩家 -nav.economy = 经济 -nav.zones = 区域 -nav.config = 配置 -nav.backups = 备份 -nav.log = 日志 -nav.updates = 更新 -nav.help = 帮助 -nav.version = 版本 - -# ========== 通用管理标签 ========== -common.faction_not_found = 未找到派系 -common.no_faction = 无派系 -common.not_set = 未设置 -common.on = 开 -common.off = 关 -common.enable = 启用 -common.disable = 禁用 -common.none_paren = (无) -common.invalid_faction = 无效的派系。 -common.leader_prefix = 领袖: {0} -common.members_suffix = {0} 名成员 -common.claims_suffix = {0} 块领地 -common.factions_suffix = {0} 个派系 -common.players_suffix = {0} 名玩家 -common.chunks_suffix = {0} 个区块 -common.entries_suffix = {0} 条记录 -common.found_suffix = 找到 {0} 个 -common.power_format = {0}/{1} 力量 -common.raidable = 可被突袭 -common.protected = 受保护 -common.no_description = 尚未设置描述。 -common.officers_more = +{0} 更多 -common.custom_max = (自定义上限) -common.default_max = (默认上限) -common.now = 现在 -common.ago_suffix = {0}前 -common.just_now = 刚刚 -common.no_membership_history = 暂无加入历史 - -# ========== 管理仪表盘 ========== -dashboard.factions_prefix = 派系: {0} -dashboard.members_prefix = 总成员: {0} -dashboard.claims_prefix = 总领地: {0} - -# ========== 管理操作 ========== -actions.confirm_reset = 确认重置? -actions.confirm_trigger = 确认触发? -actions.kd_reset = 已重置 {0} 名玩家的 K/D。 -actions.kd_reset_failed = 重置 K/D 失败: {0} -actions.upkeep_unavailable = 维护费处理器不可用。 -actions.upkeep_triggered = 已触发维护费收取。 -actions.upkeep_failed = 维护费收取失败: {0} - -# ========== 管理解散 ========== -disband.faction_gone = 该派系已不存在。 -disband.success = 派系 '{0}' 已被解散。 -disband.failed = 解散失败: {0} -disband.no_leader = 派系没有领袖,无法解散。 - -# ========== 管理放弃所有领地 ========== -unclaim.removed = [Admin] 已移除 {1} 的 {0} 块领地。 -unclaim.no_claims = {0} 没有可移除的领地。 - -# ========== 管理派系列表 ========== -factions.home_not_set = 未设置 -factions.teleported = 已传送到 {0} 的据点。 -factions.no_home = 该派系未设置据点。 -factions.world_not_found = 未找到目标世界。 - -# ========== 管理派系信息 ========== -info.faction_gone = 该派系已不存在。 - -# ========== 管理派系成员 ========== -members.sort_role = 职位 -members.sort_online = 在线 -members.sort_name = 名称 -members.sort_power = 力量 -members.promoted = [Admin] 已将 {0} 晋升为 {1}。 -members.demoted = [Admin] 已将 {0} 降职为 {1}。 -members.kicked = [Admin] 已将 {0} 踢出派系。 - -# ========== 管理派系关系 ========== -relations.allies_header = 盟友 ({0}) -relations.enemies_header = 敌人 ({0}) -relations.no_allies = 没有盟友。 -relations.no_enemies = 没有敌人。 -relations.neutral_count = {0} 个中立派系 -relations.since_today = 起始: 今天 -relations.since_one_day = 起始: 1 天前 -relations.since_days = 起始: {0} 天前 -relations.set_ally = [Admin] 已与 {0} 设置互相结盟状态。 -relations.set_enemy = 已与 {0} 设置互相敌对状态。 -relations.set_neutral = [Admin] 已与 {0} 设置互相中立状态。 - -# ========== 管理派系设置 ========== -settings.locked = 此设置已被服务器配置锁定。 -settings.perm_toggled = 已将 {0} 设为 {1}。 -settings.color_changed = 派系颜色已设为 {0}。 -settings.recruitment_set = 招募方式已设为 {0}。 -settings.no_home = [Admin] 该派系未设置据点。 -settings.home_cleared = 已清除 {0} 的派系据点。 - -# ========== 排序下拉标签 ========== -sort.power = 力量 -sort.name = 名称 -sort.members = 成员 -sort.balance = 余额 - -# ========== 管理玩家 ========== -players.sort_last_online = 最后在线 -players.sort_faction = 派系 -players.sort_online = 在线 -players.not_online = 该玩家不在线。 -players.world_not_found = 未找到目标世界。 -players.teleported = [Admin] 已传送到 {0}。 - -# ========== 管理玩家信息 ========== -playerinfo.disband_faction = 解散派系 -playerinfo.kick_leader = 踢出领袖 -playerinfo.enter_valid_number = 请输入有效的数字。 -playerinfo.enter_valid_positive = 请输入有效的正数。 -playerinfo.faction_gone = 该派系已不存在。 -playerinfo.kd_reset = 已重置 {0} 的 K/D。 -playerinfo.kicked_success = 已将 {0} 从 {1} 踢出。 -playerinfo.kicked_leader = 已踢出领袖 {0}。领导权已转交给 {1}。 -playerinfo.disbanded_kick = [Admin] 派系 '{0}' 已解散(最后一名成员被踢出)。 - -# ========== 管理经济 ========== -economy.no_data = 没有拥有经济数据的派系。 -economy.amount_zero = 金额不能为零。 -economy.enter_amount = 请输入金额。 -economy.invalid_number = 无效的数字: {0} -economy.error = 发生错误。 -economy.balance_negative = 余额不能为负数。 -economy.failed = 失败: {0} -economy.bulk_complete = 批量调整完成: 向 {2} 个派系 {0} {1}。 -economy.bulk_failures = ({0} 个失败) - -# ========== 管理区域 ========== -zones.not_found = 未找到区域。 -zones.invalid_id = 无效的区域 ID。 -zones.deleted = 区域 {0} 已删除。 -zones.delete_failed = 删除区域失败: {0} -zones.no_chunks = 无区块 -zones.chunks_suffix = {0}({1} 个区块) - -# ========== 区域创建向导 ========== -wizard.enter_name = 请输入区域名称。 -wizard.name_too_short = 区域名称至少需要 {0} 个字符。 -wizard.name_too_long = 区域名称不能超过 {0} 个字符。 -wizard.name_taken = 已有同名区域存在。 -wizard.radius_range = 半径必须在 1 到 {0} 之间。 -wizard.create_failed = 无法创建区域: {0} -wizard.created_not_found = 区域已创建但无法找到。 -wizard.created = 已创建 {0} '{1}'! -wizard.chunk_claimed = 已占领区块 ({0}, {1})。 -wizard.chunk_failed = 无法占领当前区块: {0} -wizard.radius_claimed = 已在 {2} 的 {1} 半径内占领了 {0} 个区块。 -wizard.radius_no_claims = 无法占领任何区块(区域可能已被占用)。 -wizard.no_claims = 区域已创建,无领地。 -wizard.chunks_preview = 约 {0} 个区块 - -# ========== 区域重命名 ========== -zone_rename.zone_gone = 该区域已不存在。 -zone_rename.enter_name = 请输入区域名称。 -zone_rename.too_short = 区域名称至少需要 {0} 个字符。 -zone_rename.too_long = 区域名称不能超过 {0} 个字符。 -zone_rename.same_name = 这已经是此区域的名称了。 -zone_rename.renamed = [Admin] 区域已从 {0} 重命名为 {1}! -zone_rename.name_taken = 已有同名区域存在。 -zone_rename.invalid_name = 无效的区域名称。 -zone_rename.rename_failed = 重命名区域失败: {0} - -# ========== 区域类型更改 ========== -zone_type.zone_gone = 该区域已不存在。 -zone_type.changed = [Admin] 已将 {0} 从 {1} 更改为 {2}({3})。 -zone_type.failed = 更改区域类型失败: {0} -zone_type.flags_reset = 标志已重置 -zone_type.flags_kept = 标志已保留 - -# ========== 区域集成标志 ========== -zone_int.zone_not_found = 未找到区域 -zone_int.no_plugin = (无插件) -zone_int.default = (默认) -zone_int.custom = (自定义) - -# 集成标志界面标签 -gui.zint_cat_gravestones = 墓碑 -gui.zint_gravestones_desc = 开启时,非所有者可以拾取墓碑物品。所有者始终可以。 -gui.zint_cat_world_map = 世界地图 -gui.zint_world_map_desc = 覆盖此区域内玩家的地图隐藏设置。启用后,选择谁可以看到此区域内的玩家。 -gui.zint_visibility_label = 可见性级别: -gui.zint_cat_essentials = HyperEssentials -gui.zint_reset_defaults = 恢复默认 -gui.zint_back_to_flags = 返回标志 -gui.zint_map_vis_faction = 仅派系 -gui.zint_map_vis_ally = 派系 + 盟友 -gui.zint_map_vis_all = 所有玩家 - -# ========== 活动日志 ========== -log.all_types = 所有类型 -log.no_logs = 没有匹配筛选条件的活动日志。 - -# ========== 版本页面 ========== -version.active = 已激活 -version.not_found = 未找到 -version.not_detected = 未检测到 -version.not_installed = 未安装 -version.active_version = 已激活 (v{0}) -version.active_compatible = 已激活(兼容) -version.active_claims_only = 已激活(仅领地) -version.installed_no_perm = 已安装(无权限提供者) -version.active_provider = 已激活({0}) - -# ========== 管理主页面 ========== -main.reload_hint = 使用 /f reload 重新加载配置。 -main.unclaim_hint = 使用 /f admin unclaim {0} 放弃所有 {1} 个区块。 - -# ========== 区域标志/设置 ========== -zflags.invalid_flag = 无效的标志。 -zflags.zone_not_found = 未找到区域。 -zflags.conflict = (冲突) -zflags.mixin = (混入) -zflags.reset_int = 将集成标志恢复为默认值。 -zflags.reset_all = 将所有标志恢复为默认值。 -zflags.reset_failed = 重置标志失败: {0} -zflags.back_to_settings = 返回设置 - -# 区域设置界面标签 -gui.zset_cat_combat = 战斗 -gui.zset_cat_damage = 伤害 -gui.zset_cat_death = 死亡 -gui.zset_cat_building = 建筑 -gui.zset_cat_interaction = 互动 -gui.zset_cat_transport = 传送 -gui.zset_cat_items = 物品 -gui.zset_cat_spawning = 怪物生成 -gui.zset_cat_mob_clear = 怪物清除 -gui.zset_children_hint = (子项仅在父项开启时生效) -gui.zset_reset_defaults = 恢复默认 -gui.zset_integration_flags = 集成标志 -gui.zset_back_to_zones = 返回区域 -gui.zset_chunks = {0} 个区块 - -# 区域标志显示名称 -gui.zflag_pvp_enabled = PvP 已启用 -gui.zflag_friendly_fire = 友军伤害 -gui.zflag_friendly_fire_faction = 派系伤害 -gui.zflag_friendly_fire_ally = 盟友伤害 -gui.zflag_projectile_damage = 投射物伤害 -gui.zflag_mob_damage = 承受怪物伤害 -gui.zflag_pve_damage = 对怪物造成伤害 -gui.zflag_fall_damage = 坠落伤害 -gui.zflag_environmental_damage = 环境伤害 -gui.zflag_explosion_damage = 爆炸伤害 -gui.zflag_fire_spread = 火焰蔓延 -gui.zflag_keep_inventory = 保留物品栏 -gui.zflag_power_loss = 力量损失 -gui.zflag_build_allowed = 允许建筑 -gui.zflag_block_place = 方块放置 -gui.zflag_hammer_use = 锤子使用 -gui.zflag_builder_tools_use = 建筑工具 -gui.zflag_block_interact = 方块互动 -gui.zflag_door_use = 门的使用 -gui.zflag_container_use = 容器使用 -gui.zflag_bench_use = 工作台使用 -gui.zflag_processing_use = 加工站使用 -gui.zflag_seat_use = 座位使用 -gui.zflag_mount_use = 坐骑使用 -gui.zflag_light_use = 灯光使用 -gui.zflag_npc_use = NPC 互动 -gui.zflag_crate_pickup = 板条箱拾取 -gui.zflag_crate_place = 板条箱放置 -gui.zflag_npc_tame = NPC 驯服 -gui.zflag_npc_interact = NPC 互动 -gui.zflag_teleporter_use = 传送器使用 -gui.zflag_portal_use = 传送门使用 -gui.zflag_mount_entry = 坐骑进入 -gui.zflag_item_drop = 物品丢弃 -gui.zflag_item_pickup = 自动拾取 -gui.zflag_item_pickup_manual = F键拾取 -gui.zflag_invincible_items = 物品无敌 -gui.zflag_mob_spawning = 怪物生成 -gui.zflag_hostile_mob_spawning = 敌对怪物 -gui.zflag_passive_mob_spawning = 被动怪物 -gui.zflag_neutral_mob_spawning = 中立怪物 -gui.zflag_npc_spawning = NPC 生成 -gui.zflag_mob_clear = 怪物清除 -gui.zflag_hostile_mob_clear = 清除敌对怪物 -gui.zflag_passive_mob_clear = 清除被动怪物 -gui.zflag_neutral_mob_clear = 清除中立怪物 -gui.zflag_gravestone_access = 他人拾取墓碑 -gui.zflag_show_on_map = 在地图上显示 -gui.zflag_essentials_homes = 据点使用 -gui.zflag_essentials_warps = 传送点使用 -gui.zflag_essentials_kits = 礼包领取 - -# ========== 区域属性 ========== -zprop.current_custom = 当前: "{0}"(自定义) -zprop.current_default = 当前: "{0}"(默认) -zprop.pvp_disabled = PvP 已禁用 -zprop.pvp_enabled = PvP 已启用 -zprop.name_empty = 名称不能为空。 -zprop.renamed = 区域已重命名为 "{0}"。 -zprop.name_taken = 已有同名区域存在。 -zprop.name_invalid = 无效的名称(最多 32 个字符)。 -zprop.rename_failed = 重命名失败: {0} -zprop.upper_empty = 上方标题不能为空。使用清除来重置。 -zprop.upper_set = 上方标题已设置。 -zprop.upper_reset = 上方标题已恢复默认。 -zprop.lower_empty = 下方标题不能为空。使用清除来重置。 -zprop.lower_set = 下方标题已设置。 -zprop.lower_reset = 下方标题已恢复默认。 - -# ========== 关系附加 ========== -relations.failed = 失败: {0} - -# ========== 成员附加 ========== -members.never = 从未 -members.teleported = [Admin] 已传送到 {0}。 - -# ========== 玩家信息附加 ========== -playerinfo.records = {0} 条记录 -playerinfo.joined_date = 加入: {0} -playerinfo.current = 当前 -playerinfo.left_date = 离开: {0} - -# ========== 区域地图 ========== -map.world_warning = 警告: 你在 '{0}' 中 - 区域在 '{1}' 中 -map.position = 你的位置: 区块 ({0}, {1}) -map.zone_gone = 该区域已不存在。 -map.claimed = 已为 {2} 占领区块 ({0}, {1})。 -map.claim_failed = 占领区块失败: {0} -map.unclaimed = 已从 {2} 放弃区块 ({0}, {1})。 -map.unclaim_failed = 放弃区块失败: {0} -map.chunk_belongs = 此区块属于 {0}。 -map.chunk_faction = 此区块已被一个派系占领。 -map.chunk_protected = 此区块在受保护的区域中。 -map.another_zone = 另一个区域 - -# ========== 界面标签键(用于 .ui 硬编码文本的本地化) ========== - -# 页面标题 -gui.title_dashboard = 管理仪表盘 -gui.title_main = 派系管理 -gui.title_actions = 管理: 服务器操作 -gui.title_factions = 派系管理 -gui.title_players = 玩家管理 -gui.title_economy = 管理: 服务器经济 -gui.title_zones = 区域管理 -gui.title_backups = 备份 -gui.title_config = 配置 -gui.title_help = 管理帮助 -gui.title_updates = 更新 -gui.title_version = 版本与集成 -gui.title_activity_log = 管理: 活动日志 -gui.title_player_info = 管理: 玩家信息 -gui.title_faction_info = 管理: 派系信息 -gui.title_faction_settings = 管理: 派系设置 -gui.title_faction_members = 管理: 成员 -gui.title_faction_relations = 管理: 关系 -gui.title_zone_map = 区域地图编辑器 -gui.title_zone_settings = 管理: 区域设置 -gui.title_zone_properties = 管理: 区域属性 -gui.title_bulk_economy = 批量金库调整 -gui.title_economy_adjust = 管理: 经济 - -# 仪表盘标签 -gui.dash_server_stats = 服务器统计 -gui.dash_factions = 派系 -gui.dash_total_members = 总成员 -gui.dash_total_claims = 总领地 -gui.dash_zones = 区域 -gui.dash_safe_war = 安全 / 战争 -gui.dash_total_power = 总力量 -gui.dash_avg_power = 平均力量/派系 -gui.dash_total_economy = 总经济 -gui.dash_wealthiest = 最富有 -gui.dash_avg_balance = 平均余额 -gui.dash_protection_bypass = 保护绕过: - -# 通用按钮和标签 -gui.search = 搜索: -gui.sort = 排序: -gui.prev = < 上一页 -gui.next = 下一页 > -gui.back = 返回 -gui.done = 完成 -gui.cancel = 取消 -gui.apply = 应用 -gui.set = 设置 -gui.reset = 重置 -gui.coming_soon = 即将推出 -gui.zones_btn = 区域 -gui.reload_btn = 重新加载 -gui.all = 全部 -gui.safe = 安全 -gui.war = 战争 -gui.create_zone = + 创建 - -# 操作页面标签 -gui.act_combat_stats = 战斗统计 -gui.act_combat_desc = 重置服务器上所有玩家的击杀和死亡数据。此操作不可撤销。 -gui.act_reset_kd = 重置所有 K/D -gui.act_economy = 经济 -gui.act_economy_desc = 一次性向所有派系金库添加或移除资金。 -gui.act_bulk_adjust = 批量增减 -gui.act_upkeep_collection = 维护费收取 -gui.act_upkeep_desc = 立即手动触发所有派系的维护费收取,无论定时计划如何。 -gui.act_trigger_upkeep = 触发维护费 - -# 占位页面标签 -gui.backup_heading = 备份管理 -gui.backup_desc1 = 创建、恢复和管理派系数据备份。 -gui.backup_desc2 = 自动备份保存在 data/backups 文件夹中。 -gui.config_heading = 配置编辑器 -gui.config_desc1 = 直接从界面配置 HyperFactions 设置。 -gui.config_desc2 = 目前请使用 /f reload 重新加载配置更改。 -gui.help_heading = 管理文档 -gui.help_desc1 = 查看管理文档和命令参考。 -gui.help_desc2 = 如需帮助,请访问 HyperFactions 维基。 -gui.updates_heading = 更新中心 -gui.updates_desc1 = 检查新版本和查看更新日志。 -gui.updates_desc2 = 访问 HyperFactions 页面获取最新更新。 - -# 版本页面标签 -gui.ver_hyperfactions = HyperFactions -gui.ver_hytale_server = Hytale Server -gui.ver_java = Java -gui.ver_permissions = 权限 -gui.ver_placeholders = 占位符 -gui.ver_economy_section = 经济 -gui.ver_protection = 保护 -gui.ver_disabled = 已禁用 - -# 列标题(跨页面共享) -gui.col_faction = 派系 -gui.col_balance = 余额 -gui.col_members = 成员 -gui.col_actions = 操作 -gui.col_time = 时间 -gui.col_type = 类型 -gui.col_message = 消息 - -# 经济页面标签 -gui.econ_total_balance = 总余额 -gui.econ_factions = 派系 -gui.econ_avg_balance = 平均余额 -gui.econ_in_grace = 宽限期中 -gui.econ_collected = 已收取 (24h) -gui.econ_next_collection = 下次收取 -gui.econ_no_data = 没有拥有经济数据的派系。 - -# 活动日志标签 -gui.log_type = 类型: -gui.log_time = 时间: -gui.log_player = 玩家: -gui.log_no_logs = 没有匹配筛选条件的活动日志。 - -# 玩家信息标签 -gui.plr_first_joined = 首次加入: -gui.plr_last_online = 最后在线: -gui.plr_uuid = UUID: -gui.plr_faction = 派系: -gui.plr_role = 职位: -gui.plr_view_faction = 查看派系 -gui.plr_power = 力量 -gui.plr_max_power = 最大力量 -gui.plr_set_power = 设置 -gui.plr_reset_power = 重置 -gui.plr_set_max = 设置 -gui.plr_reset_max = 重置 -gui.plr_no_power_loss = 无力量损失 -gui.plr_no_claim_decay = 无领地衰减 -gui.plr_kills = 击杀 -gui.plr_deaths = 死亡 -gui.plr_kdr = K/D 比率 -gui.plr_reset_kd = 重置 K/D -gui.plr_kick = 踢出 -gui.plr_membership_history = 加入历史 -gui.plr_no_faction_label = 不在任何派系中 -gui.plr_power_management = 力量管理 -gui.plr_combat_stats = 战斗统计 -gui.plr_bypass_flags = 绕过标志 -gui.plr_admin_controls = 管理控制 -gui.plr_kd_subtitle = K / D -gui.plr_max_prefix = 最大: -gui.plr_view = 查看 -gui.plr_kick_from_faction = 从派系踢出 -gui.plr_set_max_btn = 设置上限 -gui.plr_combat = 战斗 -gui.plr_reason_active = 活跃 -gui.plr_reason_left = 已离开 -gui.plr_reason_kicked = 被踢出 -gui.plr_reason_disbanded = 已解散 - -# 成员条目标签 -gui.mem_label_power = 力量: -gui.mem_label_joined = 加入时间: -gui.mem_label_last_death = 上次死亡: -gui.mem_label_uuid = UUID: -gui.mem_btn_info = 信息 -gui.mem_btn_teleport = 传送 -gui.mem_btn_promote = 晋升 -gui.mem_btn_demote = 降职 -gui.mem_btn_kick = 踢出 -gui.econ_not_enabled = 经济系统未启用。 -gui.info_more = +{0} 更多 -gui.log_time_1h = 1小时 -gui.log_time_24h = 24小时 -gui.log_time_7d = 7天 -gui.log_time_all = 全部 -gui.shape_circular = 圆形 -gui.shape_square = 方形 -gui.nav_title = 管理面板 -gui.econ_btn_adjust = 调整 -gui.econ_btn_info = 信息 - -# 派系信息标签 -gui.fac_description = 描述 -gui.fac_power = 力量 -gui.fac_claims = 领地 -gui.fac_members = 成员 -gui.fac_recruitment = 招募 -gui.fac_founded = 创建时间 -gui.fac_allies = 盟友 -gui.fac_enemies = 敌人 -gui.fac_raidable = 突袭状态 -gui.fac_treasury = 金库 -gui.fac_leader = 领袖 -gui.fac_officers = 官员 -gui.fac_view_members = 查看成员 -gui.fac_view_relations = 查看关系 -gui.fac_view_settings = 设置 -gui.fac_disband = 解散派系 -gui.fac_power_management = 力量管理 -gui.fac_reset_all_power = 重置所有力量 -gui.fac_econ_adjust = 调整余额 -gui.fac_econ_view_log = 查看交易记录 -gui.fac_current_max = 当前 / 最大 -gui.fac_claimed_max = 已占 / 最大 -gui.fac_relations = 关系 -gui.fac_ally_enemy = 盟友 / 敌人 -gui.fac_status = 状态 -gui.fac_info = 信息 -gui.fac_treasury_balance = 金库余额 -gui.fac_leadership = 领导层 -gui.fac_leader_label = 领袖: -gui.fac_officers_label = 官员: -gui.fac_econ_mgmt = 经济管理 -gui.fac_danger_zone = 危险区域 -gui.fac_view_treasury = 查看金库 - -# 派系设置标签 -gui.set_editing = 编辑: -gui.set_general = 常规设置 -gui.set_name = 名称 -gui.set_tag = 标签 -gui.set_description = 描述 -gui.set_recruitment = 招募 -gui.set_home = 据点位置 -gui.set_clear_home = 清除据点 -gui.set_disband_faction = 解散派系 -gui.set_faction_color = 派系颜色 -gui.set_admin_override = [管理员覆盖] -gui.set_territory_perms = 领地权限 -gui.set_mob_spawning = 怪物生成 -gui.set_faction_settings = 派系设置 -gui.set_name_label = 名称: -gui.set_tag_label = 标签: -gui.set_desc_label = 描述: -gui.set_edit = 编辑 -gui.set_status_label = 状态: -gui.set_location_label = 位置: -gui.set_danger_zone = 危险区域 -gui.set_irreversible = 此操作不可撤销。 -gui.set_lock_hint = 某些选项可能被服务器锁定,不接受更改。 -gui.set_appearance = 外观 -gui.set_color_label = 颜色: -gui.set_mob_sub = (关闭主开关时子项禁用) -gui.set_back_to_info = 返回信息 -gui.set_col_out = 外人 -gui.set_col_ally = 盟友 -gui.set_col_mem = 成员 -gui.set_col_off = 官员 -gui.set_cat_building = 建筑 -gui.set_cat_interaction = 互动 -gui.set_cat_interact_sub = (关闭"全部"时子项禁用) -gui.set_cat_other = 其他 -gui.set_perm_break = 破坏 -gui.set_perm_place = 放置 -gui.set_perm_all = 全部 -gui.set_perm_door = 门 -gui.set_perm_chest = 箱子 -gui.set_perm_bench = 工作台 -gui.set_perm_processing = 加工站 -gui.set_perm_seat = 座位 -gui.set_perm_transport = 传送 -gui.set_perm_crate_use = 板条箱使用 -gui.set_perm_npc_tame = NPC 驯服 -gui.set_perm_pve_damage = PvE 伤害 -gui.set_perm_mob_spawning = 怪物生成 -gui.set_perm_hostile = 敌对怪物 -gui.set_perm_passive = 被动怪物 -gui.set_perm_neutral = 中立怪物 -gui.set_perm_pvp = 领地内 PvP -gui.set_perm_officers_edit = 官员可编辑 - -# 派系关系标签 -gui.rel_subtitle = 管理派系关系(绕过审批) -gui.rel_set_new = 设置新关系 -gui.rel_btn_ally = 结盟 -gui.rel_btn_neutral = 中立 -gui.rel_btn_enemy = 敌对 - -# 区域页面标签 -gui.zone_sort_name = 名称 -gui.zone_sort_type = 类型 -gui.zone_sort_chunks = 区块 -gui.zone_sort_world = 世界 -gui.zone_count_format = {0} 个{1}区域({2} 个区块) - -# 区域地图标签 -gui.map_zone_chunk = 区域区块 -gui.map_empty = 空白 -gui.map_other_zone = 其他区域 -gui.map_faction_claim = 派系领地 -gui.map_protected = 受保护 -gui.map_your_pos = 你的位置 -gui.map_click_hint = 点击以占领/放弃区块 -gui.map_legend_zone_safe = 此区域(安全) -gui.map_legend_zone_war = 此区域(战争) -gui.map_legend_other_safe = 其他 SafeZone -gui.map_legend_other_war = 其他 WarZone -gui.map_legend_faction = 派系领地 -gui.map_legend_unclaimed = 未占领 -gui.map_legend_you_here = 你在这里 -gui.map_action_hint = 左键: 为区域占领 | 右键: 从区域放弃 -gui.map_done = 完成 - -# 区域属性标签 -gui.zprop_general = 常规 -gui.zprop_zone_name = 区域名称 -gui.zprop_zone_type = 区域类型 -gui.zprop_change_type = 更改类型 -gui.zprop_notifications = 通知 -gui.zprop_show_entry = 显示进入通知 -gui.zprop_upper_title = 上方标题 -gui.zprop_upper_desc = 上方标题(区域名称上方的小字) -gui.zprop_lower_title = 下方标题 -gui.zprop_lower_desc = 下方标题(区域名称大字) -gui.zprop_edit_flags = 编辑标志 -gui.zprop_back_to_zones = 返回区域 -gui.save = 保存 -gui.clear = 清除 - -# 批量经济标签 -gui.bulk_header = 调整所有派系金库 -gui.bulk_factions_label = 派系: -gui.bulk_total_label = 总余额: -gui.bulk_amount_hint = 金额(正数为增加,负数为减少): -gui.bulk_hint = 这将应用于每个拥有金库的派系 -gui.bulk_warning_msg = 警告: 此操作影响所有派系,且不可撤销。 -gui.bulk_apply_all = 应用到全部 -gui.bulk_operation = 操作 -gui.bulk_add = 增加 -gui.bulk_remove = 减少 -gui.bulk_amount = 金额 -gui.bulk_warning = 这将影响所有派系的金库。 -gui.bulk_preview = 预览 - -# 经济调整标签 -gui.ecadj_header = 调整金库余额 -gui.ecadj_faction_label = 派系: -gui.ecadj_current_balance = 当前余额: -gui.ecadj_amount_hint = 金额(正数为增加,负数为扣除): -gui.ecadj_preview_hint = 输入数字以预览变化 -gui.ecadj_adjustment = 调整: -gui.ecadj_set_balance = 设置余额 -gui.ecadj_confirm = 确认 +/- -gui.ecadj_operation = 操作 -gui.ecadj_add = 增加 -gui.ecadj_remove = 减少 -gui.ecadj_set_to = 设为 -gui.ecadj_amount = 金额 -gui.ecadj_new_balance = 新余额: - -# 版本页面集成标签 -gui.ver_hyperperms = HyperPerms -gui.ver_luckperms = LuckPerms -gui.ver_vault = VaultUnlocked -gui.ver_native = Hytale 原生 -gui.ver_hyperprotect = HyperProtect -gui.ver_orbisguard_mixins = OrbisGuard Mixins -gui.ver_orbisguard_api = OrbisGuard API -gui.ver_mixin_hooks = Mixin Hooks -gui.ver_gravestones = 墓碑 -gui.ver_kyuubisoft = KyuubiSoft -gui.ver_placeholder_api = PlaceholderAPI -gui.ver_wiflow_papi = WiFlow PAPI -gui.ver_treasury = 金库 - -# 放弃所有领地确认弹窗标签 -gui.unclaim_title = 放弃所有领地 -gui.unclaim_confirm_msg1 = 你确定要放弃所有 -gui.unclaim_confirm_msg2 = 来自 -gui.unclaim_warning = 此操作不可撤销! -gui.unclaim_all = 放弃全部 - -# 区域重命名弹窗标签 -gui.zren_title = 重命名区域 -gui.zren_current = 当前: -gui.zren_new_name = 新名称: - -# 区域类型更改弹窗标签 -gui.ztype_title = 更改区域类型 -gui.ztype_zone_label = 区域: -gui.ztype_current = 当前: -gui.ztype_will_become = 将变为 -gui.ztype_new = 新类型: -gui.ztype_warning1 = 不同的区域类型有不同的默认标志值。 -gui.ztype_warning2 = 选择如何处理现有的标志设置: -gui.ztype_keep_desc = 保留自定义覆盖 -gui.ztype_keep_flags = 保留标志 -gui.ztype_reset_desc = 使用新类型的默认值 -gui.ztype_reset_flags = 重置标志 - -# 创建区域向导标签 -gui.czw_title = 创建区域 -gui.czw_back = < 返回 -gui.czw_create = 创建区域 -gui.czw_zone_type = 区域类型 -gui.czw_safe_desc = 受保护,无 PvP -gui.czw_war_desc = 战斗区,PvP 启用 -gui.czw_zone_name = 区域名称 -gui.czw_name_desc = 输入区域的唯一名称 -gui.czw_claim_method = 占领方式 -gui.czw_method_none_desc = 创建空区域 -gui.czw_method_none = 无领地 -gui.czw_method_single_desc = 你当前所在的区块 -gui.czw_method_single = 单个区块 -gui.czw_method_circle_desc = 圆形区域 -gui.czw_method_circle = 圆形半径 -gui.czw_method_square_desc = 方形区域 -gui.czw_method_square = 方形半径 -gui.czw_method_map_desc = 交互式区块编辑器 -gui.czw_method_map = 使用地图占领 -gui.czw_radius = 半径 -gui.czw_custom_radius = 自定义 (1-50): -gui.czw_flags = 标志 -gui.czw_flags_defaults_desc = 基于区域类型 -gui.czw_flags_defaults = 使用默认值 -gui.czw_flags_customize_desc = 创建后打开设置 -gui.czw_flags_customize = 自定义 - -# ========== 条目标签(派系/玩家/区域列表条目) ========== - -# 派系条目标签 -gui.fac_entry_power = 力量 -gui.fac_entry_claims = 领地 -gui.fac_entry_members = 成员 -gui.fac_entry_created = 创建时间: -gui.fac_entry_home = 据点: -gui.fac_entry_tp_home = 传送据点 -gui.fac_entry_view_info = 查看信息 -gui.fac_entry_members_btn = 成员 -gui.fac_entry_settings = 设置 -gui.fac_entry_unclaim_all = 放弃全部 -gui.fac_entry_disband = 解散 - -# 玩家条目标签 -gui.plr_entry_role = 职位: -gui.plr_entry_joined = 加入时间: -gui.plr_entry_last_online = 最后在线: -gui.plr_entry_kdr = K/D/R: -gui.plr_entry_power = 力量: -gui.plr_entry_uuid = UUID: -gui.plr_entry_info = 信息 -gui.plr_entry_teleport = 传送 -gui.plr_entry_na = N/A -gui.plr_entry_unknown = 未知 -gui.plr_entry_ago = {0}前 - -# 区域条目标签 -gui.zone_entry_world = 世界: -gui.zone_entry_chunks = 区块: -gui.zone_entry_bounds = 范围: -gui.zone_entry_created = 创建时间: -gui.zone_entry_edit_map = 编辑地图 -gui.zone_entry_flags = 标志 -gui.zone_entry_settings = 设置 -gui.zone_entry_delete = 删除 diff --git a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang b/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang deleted file mode 100644 index 7627addb..00000000 --- a/src/main/resources/Server/Languages/zh-CN/hyperfactions_gui.lang +++ /dev/null @@ -1,866 +0,0 @@ -# HyperFactions GUI - 简体中文翻译 -# 格式: key = value -# 注意: 键名由 Hytale 的 I18nModule 自动添加 "hyperfactions_gui." 前缀 - -# ========== 导航栏 ========== -nav.dashboard = 仪表盘 -nav.chat = 聊天 -nav.members = 成员 -nav.invites = 邀请 -nav.browser = 浏览 -nav.map = 地图 -nav.leaderboard = 排行榜 -nav.relations = 关系 -nav.treasury = 金库 -nav.settings = 设置 -nav.logs = 日志 -nav.help = 帮助 -nav.admin = 管理 -nav.create = 创建 - -# ========== 帮助分类名称 ========== -help.category.welcome = 欢迎 -help.category.your_faction = 你的派系 -help.category.power_land = 力量与领地 -help.category.diplomacy = 外交 -help.category.combat = 战斗与安全 -help.category.economy = 经济 -help.category.quick_ref = 快速参考 - -# ========== 管理帮助分类名称 ========== -help.category.admin_overview = 概览 -help.category.admin_factions = 派系 -help.category.admin_zones = 区域 -help.category.admin_power = 力量 -help.category.admin_economy = 经济 -help.category.admin_config = 配置 -help.category.admin_maintenance = 维护 -help.category.admin_reference = 参考 - -# ========== 主菜单 ========== -main_menu.title = HyperFactions -main_menu.section_my_faction = 我的派系 -main_menu.section_get_started = 开始 -main_menu.section_territory = 领地 -main_menu.section_browse = 浏览 -main_menu.section_admin = 管理 -main_menu.claim_hint = 使用 /f claim 来占领领地。 - -# ========== 派系信息页面 ========== -faction_info.title = 派系信息 -faction_info.no_description = 尚未设置描述。 -faction_info.status_open = 开放 -faction_info.status_invite_only = 仅限邀请 -faction_info.status_raidable = 可被突袭 -faction_info.status_protected = 受保护 -faction_info.officers_more = +{0} 更多 -faction_info.power_header = 力量 -faction_info.claims_header = 领地 -faction_info.members_header = 成员 -faction_info.relations_header = 关系 -faction_info.status_header = 状态 -faction_info.treasury_header = 金库 -faction_info.current_max = 当前 / 最大 -faction_info.claimed_max = 已占 / 最大 -faction_info.ally_enemy = 盟友 / 敌人 -faction_info.faction_balance = 派系余额 -faction_info.leader_label = 领袖: -faction_info.officers_label = 官员: -faction_info.view_members_btn = 查看成员 -faction_info.relations_btn = 关系 -faction_info.back_btn = 返回 - -# ========== 重命名弹窗 ========== -rename.title = 重命名派系 -rename.current_label = 当前: -rename.new_name_label = 新名称: -rename.no_permission = 你没有权限重命名派系。 -rename.enter_name = 请输入派系名称。 -rename.too_short = 派系名称至少需要 {0} 个字符。 -rename.too_long = 派系名称不能超过 {0} 个字符。 -rename.same_name = 这已经是你派系的名称了。 -rename.name_taken = 已有同名派系存在。 -rename.success = 派系已从 {0} 重命名为 {1}! - -# ========== 描述弹窗 ========== -desc.title = 编辑描述 -desc.current_label = 当前: -desc.new_desc_label = 新描述: -desc.no_permission = 你没有权限编辑描述。 -desc.display_none = (无) -desc.cleared = 派系描述已清除。 -desc.updated = 派系描述已更新! - -# ========== 标签弹窗 ========== -tag.title = 编辑标签 -tag.current_label = 当前: -tag.instructions = 标签(1-5个字符,仅限字母和数字): -tag.help_text = 标签会显示在聊天和地图中 -tag.no_permission = 你没有权限编辑标签。 -tag.display_none = (无) -tag.cleared = 派系标签已清除。 -tag.too_short = 标签至少需要 {0} 个字符。 -tag.too_long = 标签不能超过 {0} 个字符。 -tag.invalid_format = 标签只能包含字母和数字。 -tag.same_tag = 这已经是你派系的标签了。 -tag.tag_taken = 已有同名标签的派系存在。 -tag.success = 派系标签已设置为 [{0}]! - -# ========== 仪表盘页面 ========== -dashboard.title = 派系仪表盘 -dashboard.power_label = 力量 -dashboard.land_label = 领地 -dashboard.members_label = 成员 -dashboard.online_label = 在线 -dashboard.allies_label = 盟友 -dashboard.enemies_label = 敌人 -dashboard.relations_label = 关系 -dashboard.ally_enemy_label = 盟友 / 敌人 -dashboard.status_label = 状态 -dashboard.invites_label = 邀请 -dashboard.sent_requests_label = 已发 / 请求 -dashboard.treasury_label = 金库 -dashboard.upkeep_label = 维护费 -dashboard.per_cycle = 每周期 -dashboard.your_wallet = 你的钱包 -dashboard.personal_balance = 个人余额 -dashboard.quick_actions = 快捷操作 -dashboard.teleport_label = 传送 -dashboard.territory_label = 领地 -dashboard.channel_label = 频道 -dashboard.membership_label = 成员身份 -dashboard.recent_activity = 近期活动 -dashboard.view_all = 查看全部 -dashboard.income_24h = 收入 (24h) -dashboard.deposits_transfers_in = 存入、转入 -dashboard.expenses_24h = 支出 (24h) -dashboard.withdrawals_transfers_out = 取出、转出 -dashboard.faction_gone = 你的派系已不存在。 -dashboard.available = {0} 可用 -dashboard.at_risk = 危险! -dashboard.online_count = {0} 在线 -dashboard.status_invite = 邀请 -dashboard.in_grace = 宽限期中 -dashboard.billable_chunks = {0} 个计费区块 -dashboard.btn_home = 据点 -dashboard.btn_set_home = 设置据点 -dashboard.btn_claim = 占领 -dashboard.chat_prefix = 聊天: {0} -dashboard.btn_leave = 离开 -dashboard.no_activity = 暂无近期活动。 -dashboard.time_now = 刚刚 -dashboard.time_minutes = {0}分钟前 -dashboard.time_hours = {0}小时前 -dashboard.time_days = {0}天前 -dashboard.no_home_hint = 你的派系尚未设置据点。请让官员设置一个。 -dashboard.chat_mode_set = 聊天模式: {0} -dashboard.claim_success = 已占领区块 ({0}, {1}) -dashboard.upkeep_in = {0} 后 - -# ========== 派系主页面 ========== -main.no_faction = 无派系 -main.joined = 你已加入派系! -main.join_failed = 加入派系失败: {0} -main.invite_declined = 邀请已拒绝。 -main.cooldown = 传送冷却中!剩余 {0} 秒。 -main.world_not_found = 无法传送 - 未找到世界。 -main.leave_failed = 离开失败: {0} - -# ========== 共享界面标签 ========== -common.faction_count = {0} 个派系 -common.leader_label = 领袖: {0} -common.sort_power = 力量 -common.sort_members = 成员 -common.page_format = {0}/{1} -common.own_faction = (你的) -common.search = 搜索: -common.sort = 排序: -common.prev = < 上一页 -common.next = 下一页 > -common.treasury_not_available = 金库不可用。 - -# ========== 成员页面 ========== -members.title = 成员 -members.search_label = 搜索: -members.sort_label = 排序: -members.prev_btn = < 上一页 -members.next_btn = 下一页 > -members.count = {0} 名成员 -members.sort_role = 职位 -members.sort_last_online = 最后在线 -members.just_now = 刚刚 -members.ago = {0}前 -members.never = 从未 -members.member_not_found = 未找到成员。 -members.promoted = 已将 {0} 晋升为 {1}。 -members.promote_failed = 晋升失败: {0} -members.demoted = 已将 {0} 降职为 {1}。 -members.demote_failed = 降职失败: {0} -members.kicked = 已将 {0} 踢出派系。 -members.kick_failed = 踢出失败: {0} -members.label_power = 力量: -members.label_joined = 加入时间: -members.label_last_death = 上次死亡: -members.btn_promote = 晋升 -members.btn_demote = 降职 -members.btn_kick = 踢出 -members.btn_make_leader = 设为领袖 -members.btn_profile = 个人资料 -members.self_label = (你) - -# ========== 浏览页面 ========== -browser.title = 浏览派系 -browser.search_label = 搜索: -browser.sort_label = 排序: -browser.prev_btn = < 上一页 -browser.next_btn = 下一页 > -browser.sort_name = 名称 -browser.invalid_faction = 无效的派系。 -browser.label_power = 力量 -browser.label_claims = 领地 -browser.label_members = 成员 -browser.label_recruitment = 招募方式: -browser.label_created = 创建时间: -browser.label_description = 描述: -browser.view_info_btn = 查看信息 -browser.label_leader = 领袖: -browser.no_description = 尚未设置描述 - -# ========== 排行榜页面 ========== -leaderboard.title = 派系排行榜 -leaderboard.rank_by = 排名依据: -leaderboard.col_rank = # -leaderboard.col_faction = 派系 -leaderboard.col_claims = 领地 -leaderboard.col_members = 成员 -leaderboard.prev_btn = < 上一页 -leaderboard.next_btn = 下一页 > -leaderboard.sort_kd = K/D -leaderboard.sort_territory = 领地 -leaderboard.sort_balance = 余额 - -# ========== 玩家信息页面 ========== -playerinfo.title = 玩家信息 -playerinfo.first_joined_label = 首次加入: -playerinfo.last_online_label = 最后在线: -playerinfo.faction_label = 派系: -playerinfo.role_label = 职位: -playerinfo.joined_label_static = 加入时间: -playerinfo.not_in_faction = 不在任何派系中 -playerinfo.power_header = 力量 -playerinfo.current_max = 当前 / 最大 -playerinfo.combat_header = 战斗 -playerinfo.kills_deaths = 击杀 / 死亡 -playerinfo.kdr_header = K/D 比率 -playerinfo.membership_history = 加入历史 -playerinfo.view_faction_btn = 查看派系 -playerinfo.back_btn = 返回 -playerinfo.now = 当前 -playerinfo.history_count = {0} 条记录 -playerinfo.joined_label = 加入: {0} -playerinfo.current = 当前 -playerinfo.left_label = 离开: {0} -playerinfo.no_history = 暂无加入历史 -playerinfo.faction_gone = 该派系已不存在。 -playerinfo.reason_active = 活跃 -playerinfo.reason_left = 已离开 -playerinfo.reason_kicked = 被踢出 -playerinfo.reason_disbanded = 已解散 - -# ========== 关系页面 ========== -relations.title = 关系 -relations.tab_relations = 关系 -relations.tab_pending = 待处理 -relations.set_relation_btn = + 设置关系 -relations.prev_btn = < 上一页 -relations.next_btn = 下一页 > -relations.relation_count = {0} 个关系 -relations.request_count = {0} 个请求 -relations.type_ally = 盟友 -relations.type_enemy = 敌人 -relations.type_incoming = 收到的 -relations.type_outgoing = 发出的 -relations.incoming_request = 收到的请求 -relations.outgoing_request = 发出的请求 -relations.empty_relations = 暂无关系。 -relations.empty_relations_hint = 暂无关系。点击 + 设置关系 来添加盟友或敌人。 -relations.empty_pending = 暂无待处理的结盟请求。 -relations.today = 今天 -relations.one_day_ago = 1 天前 -relations.days_ago = {0} 天前 -relations.now_neutral = 现在与 {0} 处于中立关系。 -relations.now_enemies = 现在与 {0} 处于敌对关系! -relations.request_sent = 已向 {0} 发送结盟请求。 -relations.now_allied = 现在与 {0} 结为盟友! -relations.request_declined = 已拒绝来自 {0} 的结盟请求。 -relations.request_cancelled = 已取消发给 {0} 的结盟请求。 -relations.failed = 失败: {0} -relations.search_hint = 搜索要设置关系的派系 -relations.no_results = 未找到匹配 '{0}' 的派系 -relations.power_display = {0} 力量 -relations.member_count = {0} 名成员 -relations.label_members = 成员 -relations.label_power = 力量 -relations.label_since = 起始: -relations.label_claims = 领地: -relations.label_direction = 方向: -relations.btn_view = 查看 -relations.btn_neutral = 中立 -relations.btn_enemy = 敌对 -relations.btn_ally = 结盟 -relations.btn_accept = 接受 -relations.btn_decline = 拒绝 -relations.btn_cancel = 取消 - -# ========== 设置页面 ========== -settings.title = 派系设置 -settings.general = 常规 -settings.name_label = 名称: -settings.tag_label = 标签: -settings.desc_label = 描述: -settings.edit_btn = 编辑 -settings.recruitment = 招募 -settings.status_label = 状态: -settings.home_location = 据点位置 -settings.location_label = 位置: -settings.set_home_btn = 设置据点 -settings.teleport_btn = 传送 -settings.delete_btn = 删除 -settings.optional_features = 可选功能 -settings.configure_modules = 配置可选模块。 -settings.modules_btn = 模块 -settings.danger_zone = 危险区域 -settings.irreversible = 此操作不可撤销。 -settings.disband_btn = 解散派系 -settings.lock_hint = 某些选项可能被服务器锁定,不接受更改。 -settings.territory_permissions = 领地权限 -settings.col_out = 外人 -settings.col_ally = 盟友 -settings.col_mem = 成员 -settings.col_off = 官员 -settings.cat_building = 建筑 -settings.perm_break = 破坏 -settings.perm_place = 放置 -settings.cat_interaction = 互动 -settings.interaction_hint = (关闭"全部"时子项禁用) -settings.perm_all = 全部 -settings.perm_door = 门 -settings.perm_chest = 箱子 -settings.perm_bench = 工作台 -settings.perm_processing = 加工站 -settings.perm_seat = 座位 -settings.perm_transport = 传送 -settings.cat_other = 其他 -settings.perm_crate = 板条箱使用 -settings.perm_npc_tame = NPC 驯服 -settings.perm_pve = PvE 伤害 -settings.appearance = 外观 -settings.color_label = 颜色: -settings.mob_spawning = 怪物生成 -settings.mob_spawning_hint = (关闭主开关时子项禁用) -settings.mob_spawning_label = 怪物生成 -settings.hostile_mobs = 敌对怪物 -settings.passive_mobs = 被动怪物 -settings.neutral_mobs = 中立怪物 -settings.faction_settings = 派系设置 -settings.pvp_in_territory = 领地内 PvP -settings.officers_can_edit = 官员可编辑 -settings.leader_only = 仅限领袖 -settings.officers_only = 只有官员和领袖才能更改派系设置。 -settings.display_none = (无) -settings.home_not_set = 未设置 -settings.no_permission = 你没有权限更改设置。 -settings.only_leader_disband = 只有领袖才能解散派系。 -settings.perm_locked = 此设置已被服务器锁定。 -settings.no_perm_edit = 你没有权限编辑领地权限。 -settings.only_leader_officers = 只有领袖才能更改官员权限。 -settings.pvp_enabled = 已启用 -settings.pvp_disabled = 已禁用 -settings.not_in_territory = 你必须在派系领地内才能设置据点。 -settings.home_set = 派系据点已设置为你的当前位置! -settings.recruitment_set = 招募方式已设置为 {0}。 -settings.home_no_set = 你的派系尚未设置据点。 -settings.home_deleted = 派系据点已删除! - -# ========== 模块页面 ========== -modules.title = 派系模块 -modules.description = 增强你派系的可选功能 -modules.configure_btn = 配置 -modules.back_btn = < 返回设置 -modules.treasury_name = 金库 -modules.treasury_desc = 派系银行和经济系统 -modules.raids_name = 突袭 -modules.raids_desc = 计划中的派系战役 -modules.levels_name = 等级 -modules.levels_desc = 派系进度与经验 -modules.war_name = 战争 -modules.war_desc = 正式宣战 -modules.coming_soon = 即将推出 -modules.active = 已激活 -modules.view_treasury = 查看金库 -modules.unavailable = 不可用 -modules.no_economy = 未检测到经济插件 -modules.disabled = 已禁用 -modules.economy_not_available = 此服务器不支持经济功能 - -# ========== 金库页面 ========== -treasury.title = 派系金库 -treasury.balance_label = 余额 -treasury.income_24h = 收入 (24h) -treasury.deposits_transfers_in = 存入、转入 -treasury.expenses_24h = 支出 (24h) -treasury.withdrawals_transfers_out = 取出、转出 -treasury.maintenance = 维护费 -treasury.runway_label = 可维持: -treasury.add_funds = 存入资金 -treasury.deposit_btn = 存款 -treasury.take_funds = 取出资金 -treasury.withdraw_btn = 取款 -treasury.send_to_faction = 转给派系 -treasury.transfer_btn = 转账 -treasury.treasury_config = 金库配置 -treasury.settings_btn = 设置 -treasury.recent_transactions = 近期交易 -treasury.no_transactions = 暂无交易记录 -treasury.col_date = 日期 -treasury.col_type = 类型 -treasury.col_by = 操作人 -treasury.col_amount = 金额 -treasury.col_details = 详情 -treasury.pay_now_btn = 立即支付 -treasury.cost_7d = 7天: -treasury.cost_14d = 14天: -treasury.cost_30d = 30天: -treasury.settings_title = 金库设置 -treasury.officer_permissions = 官员权限 -treasury.allow_withdraw = 允许官员取款 -treasury.allow_transfer = 允许官员转账 -treasury.limits_section = 取款和转账限额 -treasury.max_per_withdrawal = 每次取款上限: -treasury.max_withdrawals_per = 每周期最大取款次数: -treasury.max_per_transfer = 每次转账上限: -treasury.max_transfers_per = 每周期最大转账次数: -treasury.limit_period = 限额周期(小时): -treasury.no_limit_hint = 设为 0 表示无限制 -treasury.upkeep_settings = 维护费设置 -treasury.auto_pay_upkeep = 自动从金库支付维护费 -treasury.back_btn = 返回 -treasury.upkeep_cost_format = {0} 每 {1} 小时 -treasury.upkeep_time_left = 剩余 {0} -treasury.wallet_label = 你的钱包: {0} -treasury.treasury_label = 金库余额: {0} -treasury.chunks_detail = {0} 免费 + {1} 计费区块 -treasury.cost_label = 费用: {0} -treasury.pending = 待处理 -treasury.auto_pay_on = 自动支付: 开 -treasury.auto_pay_off = 自动支付: 关 -treasury.runway_90_plus = 90 天以上 -treasury.runway_days = {0} 天 -treasury.runway_day = {0} 天 -treasury.runway_less_day = 不足 1 天 -treasury.runway_no_funds = 无资金 -treasury.grace_expires = 宽限期到期: {0} -treasury.missed_payments = 未付款次数: {0} -treasury.pay_to_clear = 支付 {0} 以解除宽限期 -treasury.system = 系统 -treasury.type_deposit = 存款 -treasury.type_withdrawal = 取款 -treasury.type_transfer_in = 转入 -treasury.type_transfer_out = 转出 -treasury.type_player_transfer = 玩家转账 -treasury.type_upkeep = 维护费 -treasury.type_tax = 税收 -treasury.type_war_cost = 战争费用 -treasury.type_raid_cost = 突袭费用 -treasury.type_spoils = 战利品 -treasury.type_admin = 管理员调整 -treasury.deposit_title = 存入金库 -treasury.withdraw_title = 从金库取出 -treasury.fee_label = 手续费 ({0}%) -treasury.confirm_deposit = 确认存款 -treasury.confirm_withdrawal = 确认取款 -treasury.from_wallet = 从钱包扣除 {0} -treasury.to_wallet = 存入钱包 {0} -treasury.enter_valid_amount = 请输入有效的正数金额。 -treasury.insufficient_wallet = 钱包余额不足。需要 {0},现有 {1}。 -treasury.wallet_withdraw_failed = 从钱包扣款失败。 -treasury.deposit_failed_returned = 存款失败。资金已退还。 -treasury.deposited = 已向金库存入 {0}。 -treasury.deposited_fee = 已向金库存入 {0}。(手续费: {1}) -treasury.no_withdraw_permission = 你没有权限取款。 -treasury.withdraw_denied = 取款被拒: {0} -treasury.insufficient_treasury = 金库资金不足。 -treasury.withdraw_limit = 取款超出限额。 -treasury.withdraw_failed = 取款失败: {0} -treasury.wallet_deposit_warn = 警告: 向你的钱包存款失败。请联系管理员。 -treasury.withdrew = 已从金库取出 {0}。 -treasury.withdrew_fee = 已从金库取出 {0}。(手续费: {1},实收: {2}) -treasury.search_hint = 搜索玩家或派系 -treasury.no_results = 未找到 '{0}' 的结果 -treasury.tag_player = [玩家] -treasury.tag_faction = [派系] -treasury.source_online = 在线 -treasury.source_offline = 离线 -treasury.source_player_db = Hytale 玩家 -treasury.no_transfer_permission = 你没有权限转账。 -treasury.transfer_denied = 转账被拒: {0} -treasury.invalid_target_faction = 无效的目标派系。 -treasury.target_faction_gone = 目标派系已不存在。 -treasury.transfer_failed = 转账失败: {0} -treasury.transfer_failed_returned = 转账失败。资金已退还。 -treasury.transferred = 已向 {1} 转账 {0}。 -treasury.invalid_target_player = 无效的目标玩家。 -treasury.player_transfer_failed = 向玩家钱包存款失败。转账已回滚。 -treasury.leader_only_perms = 只有领袖才能更改金库权限。 -treasury.leader_only_upkeep = 只有领袖才能更改维护费设置。 -treasury.invalid_limit = 限额字段中的数字无效。设为 0 表示无限制。 - -# ========== 确认页面 ========== -confirm.disband_title = 解散派系 -confirm.disband_prompt = 你确定要解散 -confirm.disband_warning = 此操作不可撤销! -confirm.leave_title = 离开派系 -confirm.leave_prompt = 你确定要离开 -confirm.leave_warning = 你将失去对派系领地的访问权。 -confirm.leader_leave_title = 以领袖身份离开 -confirm.leader_leave_prompt = 你正在离开 -confirm.transfer_title = 转让领导权 -confirm.transfer_prompt = 你确定要将领导权转让给 -confirm.transfer_warning = 你将变为官员。 -confirm.disband_not_leader = 只有领袖才能解散派系。 -confirm.disbanded = 派系 '{0}' 已被解散。 -confirm.disband_failed = 解散派系失败。 -confirm.succession_title = 领导权将转交给: -confirm.no_members_warning = 警告: 没有其他成员! -confirm.will_disband = 离开将永久解散该派系。 -confirm.not_in_faction = 你不在此派系中。 -confirm.not_leader_anymore = 你不再是领袖了。 -confirm.no_successor = 没有可用的继任者。请改用解散。 -confirm.transfer_failed = 转让领导权失败: {0} -confirm.leader_left = 领导权已转交给 {0}。你已离开 {1}。 -confirm.leave_failed = 离开派系失败: {0} -confirm.leader_cannot_leave = 领袖不能直接离开。请先转让领导权或解散派系。 -confirm.left_faction = 你已离开 {0}。 -confirm.faction_gone = 该派系已不存在。 -confirm.not_leader_transfer = 只有领袖才能转让领导权。 -confirm.leadership_transferred = 领导权已转交给 {0}。 - -# ========== 日志查看页面 ========== -logs.title = {0} - 活动日志 -logs.entry_count = {0} 条记录 -logs.filter_label = 筛选: -logs.col_time = 时间 -logs.col_type = 类型 -logs.col_message = 消息 -logs.prev_btn = < 上一页 -logs.next_btn = 下一页 > -logs.all_types = 所有类型 -logs.no_logs_type = 没有此类型的日志。 -logs.no_logs = 暂无活动日志。 -logs.time_just_now = 刚刚 -logs.time_minute = {0} 分钟前 -logs.time_minutes = {0} 分钟前 -logs.time_hour = {0} 小时前 -logs.time_hours = {0} 小时前 -logs.time_day = {0} 天前 -logs.time_days = {0} 天前 -logs.time_week = {0} 周前 -logs.time_weeks = {0} 周前 -logs.type_member_join = 加入 -logs.type_member_leave = 离开 -logs.type_member_kick = 踢出 -logs.type_member_promote = 晋升 -logs.type_member_demote = 降职 -logs.type_claim = 占领 -logs.type_unclaim = 放弃 -logs.type_overclaim = 强占 -logs.type_home_set = 设置据点 -logs.type_relation_ally = 盟友 -logs.type_relation_enemy = 敌人 -logs.type_relation_neutral = 中立 -logs.type_leader_transfer = 转让 -logs.type_settings_change = 设置 -logs.type_power_change = 力量 -logs.type_economy = 经济 -logs.type_admin_power = 管理员力量 - -# 日志消息模板(活动日志内容的国际化) -# 玩家操作 -logs.msg_faction_created = {0} 创建了派系 -logs.msg_member_joined = {0} 加入了派系 -logs.msg_member_left = {0} 离开了派系 -logs.msg_member_kicked = {0} 被踢出 -logs.msg_member_promoted = {0} 被晋升为 {1} -logs.msg_member_demoted = {0} 被降职为 {1} -logs.msg_leader_transferred = 领导权已转交给 {0} -logs.msg_leader_left_transfer = {0} 离开了,{1} 成为新领袖 -logs.msg_relation_set = 将 {0} 设为 {1} -# 领地 -logs.msg_claimed = 在 {2} 占领了区块 {0}, {1} -logs.msg_unclaimed = 在 {2} 放弃了区块 {0}, {1} -logs.msg_overclaim_lost = 失去了位于 {0}, {1} 的区块,被 {2} 强占 -logs.msg_overclaim_taken = 强占了 {2} 位于 {0}, {1} 的区块 -logs.msg_all_unclaimed = 所有领地已放弃 -logs.msg_claim_removed_world = '{0}' 中的领地已移除(该世界不允许占领) -logs.msg_claims_lost_upkeep = 因维护费丢失了 {0} 块领地(错过 {1} 次付款) -logs.msg_claims_removed_inactive = 因不活跃({1} 天)移除了 {0} 块领地 -# 据点 -logs.msg_home_set = 据点已设置 -logs.msg_home_cleared = 据点已清除 -logs.msg_home_cleared_world = '{0}' 中的据点已清除(该世界不允许占领) -# 设置 -logs.msg_renamed = 从 '{0}' 重命名为 '{1}' -logs.msg_set_open = 派系设置为开放 -logs.msg_set_closed = 派系设置为仅限邀请 -logs.msg_desc_set = 描述已设置 -logs.msg_desc_cleared = 描述已清除 -logs.msg_color_changed = 颜色更改为 '{0}' -# 经济 -logs.msg_deposit = 存款: {0} (+{1}) -logs.msg_withdrawal = 取款: {0} (-{1}) -logs.msg_upkeep_paid = 维护费已支付: {0}({1} 个计费区块) -logs.msg_upkeep_grace_started = 维护费支付失败: 宽限期开始({0}小时) -logs.msg_upkeep_missed = 维护费未付(第 {0} 次),宽限期将在 {1} 后到期 -logs.msg_upkeep_manual = 手动支付维护费: {0}({1} 个计费区块,宽限期已解除) -# 管理员力量 -logs.msg_admin_power_set = 管理员将 {0} 的力量设为 {1}(原为 {2}) -logs.msg_admin_power_add = 管理员为 {1} 增加了 {0} 力量({2} -> {3}) -logs.msg_admin_power_remove = 管理员从 {1} 扣除了 {0} 力量({2} -> {3}) -logs.msg_admin_power_reset = 管理员重置了 {0} 的力量为 {1}(原为 {2}) -logs.msg_admin_power_adjusted = 管理员调整了 {0} 的力量 {1}({2} -> {3}) -logs.msg_admin_maxpower_set = 管理员将 {0} 的最大力量设为 {1}(原为 {2}) -logs.msg_admin_maxpower_reset = 管理员将 {0} 的最大力量重置为全局默认值({1}) -logs.msg_admin_powerloss_enabled = 管理员启用了 {0} 的力量损失 -logs.msg_admin_powerloss_disabled = 管理员禁用了 {0} 的力量损失 -logs.msg_admin_decay_enabled = 管理员为 {0} 启用了领地衰减豁免 -logs.msg_admin_decay_disabled = 管理员为 {0} 禁用了领地衰减豁免 -logs.msg_admin_kd_reset = 管理员重置了 {0} 的 K/D -logs.msg_admin_power_set_all = 管理员将所有 {0} 名成员的力量设为 {1} -logs.msg_admin_power_add_all = 管理员为所有 {1} 名成员增加了 {0} 力量 -logs.msg_admin_power_remove_all = 管理员从所有 {1} 名成员扣除了 {0} 力量 -logs.msg_admin_power_reset_all = 管理员重置了所有 {0} 名成员的力量 -logs.msg_admin_power_adjusted_all = 管理员调整了所有 {0} 名成员的力量 {1} -# 管理员派系操作 -logs.msg_admin_kicked = [Admin] {0} 被踢出 -logs.msg_admin_role_set = [Admin] {0} 的职位设为 {1} -logs.msg_admin_leader_kick = [Admin] 领导权从 {0} 转交给 {1}(管理员踢出) -logs.msg_admin_econ_added = 管理员增加: {0}(余额: {1}) -logs.msg_admin_econ_deducted = 管理员扣除: {0}(余额: {1}) -logs.msg_admin_econ_set = 管理员将余额设为 {0}(原为 {1}) -# 导入 -logs.msg_left_import = {0} 离开了(已导入到另一个派系) -logs.msg_leader_import_transfer = {0} 成为领袖(前领袖已导入到另一个派系) -logs.msg_imported_from = 派系从 {0} 导入 - -# ========== 聊天页面 ========== -chat.title = 派系聊天 -chat.tab_faction = 派系 -chat.tab_ally = 盟友 -chat.send_btn = 发送 -chat.placeholder = 输入消息... -chat.no_messages = 暂无消息。 -chat.no_ally_permission = 你没有权限使用盟友聊天。 -chat.no_permission = 没有权限。 -chat.faction_gone = 你的派系已不存在。 -chat.time_now = 刚刚 -chat.time_minutes = {0}分 -chat.time_hours = {0}时 - -# ========== 邀请页面 ========== -invites.title = 邀请 -invites.tab_outgoing = 发出的 -invites.tab_requests = 请求 -invites.prev_btn = < 上一页 -invites.next_btn = 下一页 > -invites.invite_count = {0} 个邀请 -invites.request_count = {0} 个请求 -invites.invited_by = 邀请人: {0} -invites.no_message = 无留言 -invites.expires = 到期: {0} -invites.type_outgoing = 发出的 -invites.type_request = 请求 -invites.invited_by_label = 邀请人: -invites.empty_outgoing = 没有发出的邀请。使用 /f invite <玩家> 邀请他人。 -invites.empty_requests = 没有加入请求。玩家可通过 /f request 申请加入。 -invites.invalid_player = 无效的玩家。 -invites.cancelled_invite = 已取消对 {0} 的邀请。 -invites.player_joined = {0} 已加入派系! -invites.faction_full = 派系已满员。无法接受请求。 -invites.add_failed = 将玩家加入派系失败。 -invites.request_expired = 请求未找到或已过期。 -invites.request_declined = 已拒绝 {0} 的加入请求。 -invites.time_seconds = {0}秒 -invites.time_minutes = {0}分 -invites.time_hours = {0}时 -invites.label_message = 留言: -invites.btn_cancel = 取消 -invites.btn_accept = 接受 -invites.btn_decline = 拒绝 - -# ========== 地图页面 ========== -map.title = 领地地图 -map.action_hint = 左键: 占领 | 右键: 放弃 -map.legend_your = 你的领地 -map.legend_ally = 盟友领地 -map.legend_enemy = 敌方领地 -map.legend_other = 其他派系 -map.legend_wilderness = 荒野 -map.legend_safe = 安全区 -map.legend_war = 战争区 -map.legend_you = 你在这里 -map.position = 你的位置: 区块 ({0}, {1}) -map.legend_protected = 受保护 -map.claim_stats = 领地: {0}/{1}(可用 {2}) -map.overclaimed = 被 {0} 强占了! -map.power_display = 力量: {0}/{1} -map.join_to_claim = 加入一个派系来占领领地 -map.claim_success = 已占领区块 ({0}, {1})! -map.claim_not_in_faction = 你必须在一个派系中才能占领领地。 -map.claim_not_officer = 只有官员和领袖才能占领领地。 -map.claim_already_yours = 你已经拥有此区块。 -map.claim_already_claimed = 此区块已被其他派系占领。 -map.claim_not_adjacent = 你只能占领与你领地相邻的区块。 -map.claim_max = 你已达到最大领地上限。 -map.claim_world_not_allowed = 此世界不允许占领领地。 -map.claim_orbisguard = 此区域受 OrbisGuard 保护。 -map.claim_failed = 占领区块失败。 -map.unclaim_success = 已放弃区块 ({0}, {1})。 -map.unclaim_not_in_faction = 你必须在一个派系中。 -map.unclaim_not_officer = 只有官员和领袖才能放弃领地。 -map.unclaim_not_claimed = 此区块未被占领。 -map.unclaim_not_yours = 此区块属于其他派系。 -map.unclaim_home = 无法放弃包含派系据点的区块。 -map.unclaim_failed = 放弃区块失败。 -map.overclaim_success = 成功强占敌方区块 ({0}, {1})! -map.overclaim_not_in_faction = 你必须在一个派系中。 -map.overclaim_not_officer = 只有官员和领袖才能强占领地。 -map.overclaim_already_yours = 你已经拥有此区块。 -map.overclaim_ally = 你不能强占盟友的领地。 -map.overclaim_has_power = 该派系有足够的力量保卫其领地。 -map.overclaim_max = 你已达到最大领地上限。 -map.overclaim_failed = 强占区块失败。 -# ========== 创建派系页面 ========== -create.title = 创建你的派系 -create.section_preview = 预览 -create.section_basic_info = 基本信息 -create.section_details = 详细信息 -create.name_prefix = 名称: -create.faction_name_label = 派系名称 * -create.tag_label = 标签(2-4个字符,留空自动生成) -create.desc_label = 描述(可选) -create.recruitment_label = 招募方式 -create.section_faction_color = 派系颜色 -create.section_combat = 战斗 -create.create_btn = 创建派系 -create.preview_name = 你的派系名称 -create.leader_prefix = 领袖: {0} -create.enter_name = 请输入派系名称。 -create.name_too_short = 派系名称至少需要 {0} 个字符。 -create.name_too_long = 派系名称不能超过 {0} 个字符。 -create.name_taken = 已有同名派系存在。 -create.tag_length = 派系标签必须为 {0}-{1} 个字符。 -create.tag_format = 派系标签只能包含字母和数字。 -create.desc_too_long = 描述不能超过 {0} 个字符。 -create.created = 派系 {0} 创建成功! -create.created_no_dashboard = 派系已创建,但无法打开仪表盘。 -create.invalid_name = 无效的派系名称。 -create.create_failed = 无法创建派系。 - -# ========== 新玩家页面 ========== -newplayer.browse_title = 浏览派系 -newplayer.invites_title = 邀请与请求 -newplayer.map_title = 领地地图 -newplayer.view_only_badge = 仅供查看模式 -newplayer.legend_label = 图例: -newplayer.legend_safezone = SafeZone -newplayer.legend_warzone = WarZone -newplayer.legend_faction = 派系 -newplayer.legend_wilderness = 荒野 -newplayer.search_label = 搜索: -newplayer.sort_label = 排序: -newplayer.prev_btn = < 上一页 -newplayer.next_btn = 下一页 > -newplayer.pending_count = {0} 个待处理 -newplayer.received_header = 收到的邀请 ({0}) -newplayer.requests_header = 你的请求 ({0}) -newplayer.no_invites = 暂无邀请。浏览派系来找到一个吧! -newplayer.no_requests = 暂无待处理的请求。 -newplayer.invited_by = 邀请人: {0} -newplayer.member_count = {0} 名成员 -newplayer.power_count = {0} 力量 -newplayer.claim_count = {0} 块领地 -newplayer.awaiting_review = 等待审核 -newplayer.expires_in = {0} 小时后到期 -newplayer.time_just_now = 刚刚 -newplayer.time_minutes = {0} 分钟前 -newplayer.time_hours = {0} 小时前 -newplayer.time_days = {0} 天前 -newplayer.invalid_faction = 无效的派系。 -newplayer.invite_expired = 此邀请已过期或已被撤销。 -newplayer.faction_gone = 该派系已不存在。 -newplayer.joined = 你已加入 {0}! -newplayer.faction_full = 该派系已满员。 -newplayer.join_failed = 无法加入派系。 -newplayer.invite_declined = 邀请已拒绝。 -newplayer.request_cancelled = 已取消加入 {0} 的请求。 -newplayer.faction_count = {0} 个派系 -newplayer.browse_subtitle = 找到你的新家! -newplayer.sort_power = 力量 -newplayer.sort_name = 名称 -newplayer.sort_members = 成员 -newplayer.btn_accept = 接受 -newplayer.btn_pending = 待处理 -newplayer.btn_join = 加入 -newplayer.btn_request = 申请 -newplayer.invite_only_msg = 该派系仅限邀请加入。 -newplayer.welcome_hint = 欢迎!使用 /f 打开派系菜单。 -newplayer.faction_open_hint = 该派系是开放的!请直接点击加入。 -newplayer.already_requested = 你已经向该派系提交了待处理的请求。 -newplayer.has_invite_hint = 你已收到该派系的邀请!请点击接受。 -newplayer.request_sent = 已向 {0} 发送加入请求! -newplayer.officer_review = 一名官员将审核你的请求。 -newplayer.map_hint = 仅供查看 - 加入一个派系来占领领地! - -# 玩家设置 -nav.player_settings = 玩家 -player_settings.title = 玩家设置 -player_settings.language_section = 语言 -player_settings.auto_detect = 从客户端自动检测 -player_settings.auto_detect_desc = 使用你的游戏客户端语言设置 -player_settings.language_label = 语言 -player_settings.notifications_section = 通知 -player_settings.territory_alerts = 领地提醒 -player_settings.territory_alerts_desc = 进入/离开领地时显示通知 -player_settings.death_announcements = 死亡广播 -player_settings.death_announcements_desc = 接收派系成员死亡位置的公告 -player_settings.power_notifications = 力量变化 -player_settings.power_notifications_desc = 力量变化时显示消息 -player_settings.language_changed = 语言已更改为 {0} -player_settings.pref_enabled = {0} 已启用 -player_settings.pref_disabled = {0} 已禁用 - -# ========== 帮助页面 ========== -help.center_title = 帮助中心 -help.getting_started_title = 快速入门 -help.what_are_factions_title = 什么是派系? -help.what_are_factions_1 = 派系是由玩家创建的团体,大家一起合作 -help.what_are_factions_2 = 占领领地、建设基地并参与竞争。 -help.what_are_factions_bullet_1 = - 受保护的领地用于建设 -help.what_are_factions_bullet_2 = - 一起游玩的队友 -help.what_are_factions_bullet_3 = - 使用派系聊天和功能 -help.joining_title = 加入派系 -help.joining_desc = 有以下几种方式加入派系: -help.joining_bullet_1 = - 浏览 - 找到开放的派系并点击加入 -help.joining_bullet_2 = - 邀请 - 接受官员的邀请 -help.joining_bullet_3 = - 申请 - 向仅限邀请的派系提交申请 -help.creating_title = 创建派系 -help.creating_desc = 前往创建标签页来创建你自己的派系。 -help.creating_bullet_1 = - 邀请和管理成员 -help.creating_bullet_2 = - 占领和保护领地 -help.commands_title = 快捷命令 -help.cmd_f = /f - 打开派系菜单 -help.cmd_f_list = /f list - 列出所有派系 -help.cmd_f_join = /f join <名称> - 加入开放派系 -help.cmd_f_create = /f create <名称> - 创建新派系 -help.cmd_f_help = /f help - 完整命令列表 -help.tip = 提示: 浏览派系来找到适合你的团队! From f38cfd3ba3fbcf097deee04126c9637b14fce259 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:16:32 -0700 Subject: [PATCH 68/76] i18n: add French (fr-FR) help file translations Translate all 42 help markdown files into French, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 54 +++--- .../help/admin/admin_config/world_settings.md | 52 ++--- .../admin_economy/treasury_management.md | 52 ++--- .../admin/admin_economy/upkeep_management.md | 50 ++--- .../help/admin/admin_factions/disbanding.md | 42 ++-- .../admin/admin_factions/managing_factions.md | 38 ++-- .../help/admin/admin_maintenance/backups.md | 62 +++--- .../help/admin/admin_maintenance/imports.md | 46 ++--- .../help/admin/admin_maintenance/updates.md | 54 +++--- .../admin/admin_overview/getting_started.md | 52 ++--- .../help/admin/admin_overview/permissions.md | 46 ++--- .../help/admin/admin_power/power_commands.md | 50 ++--- .../help/admin/admin_power/power_overrides.md | 62 +++--- .../admin/admin_reference/all_commands.md | 34 ++-- .../admin/admin_reference/integrations.md | 50 ++--- .../help/admin/admin_zones/zone_basics.md | 38 ++-- .../help/admin/admin_zones/zone_commands.md | 60 +++--- .../help/admin/admin_zones/zone_flags.md | 34 ++-- .../Languages/fr-FR/help/combat/death.md | 40 ++-- .../Languages/fr-FR/help/combat/protection.md | 24 +-- .../fr-FR/help/combat/spawn_protection.md | 26 +-- .../Languages/fr-FR/help/combat/tagging.md | 28 +-- .../Languages/fr-FR/help/combat/zones.md | 26 +-- .../fr-FR/help/diplomacy/alliances.md | 40 ++-- .../Languages/fr-FR/help/diplomacy/enemies.md | 42 ++-- .../fr-FR/help/diplomacy/relations.md | 38 ++-- .../Languages/fr-FR/help/economy/commands.md | 30 +-- .../Languages/fr-FR/help/economy/funds.md | 38 ++-- .../Languages/fr-FR/help/economy/treasury.md | 22 +-- .../Languages/fr-FR/help/economy/upkeep.md | 38 ++-- .../fr-FR/help/power_land/claiming.md | 44 ++--- .../fr-FR/help/power_land/losing_territory.md | 50 ++--- .../fr-FR/help/power_land/territory_map.md | 42 ++-- .../help/power_land/understanding_power.md | 44 ++--- .../fr-FR/help/quick_ref/all_commands.md | 182 +++++++++--------- .../fr-FR/help/welcome/getting_started.md | 38 ++-- .../fr-FR/help/welcome/quick_tips.md | 46 ++--- .../fr-FR/help/welcome/what_are_factions.md | 36 ++-- .../fr-FR/help/your_faction/creating.md | 36 ++-- .../fr-FR/help/your_faction/joining.md | 38 ++-- .../fr-FR/help/your_faction/managing.md | 44 ++--- .../fr-FR/help/your_faction/roles.md | 64 +++--- 42 files changed, 966 insertions(+), 966 deletions(-) diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md index 95b6c952..e80d49b7 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Systeme de configuration -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions utilise un systeme de configuration JSON modulaire avec 11 fichiers de configuration. -## Admin Config Commands +## Commandes de configuration admin -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| Commande | Description | +|----------|-------------| +| `/f admin config` | Ouvrir l'editeur visuel de configuration | +| `/f admin reload` | Recharger tous les fichiers de configuration depuis le disque | +| `/f admin sync` | Synchroniser les donnees de faction vers le stockage | -## Configuration Files +## Fichiers de configuration -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | +| Fichier | Contenu | +|---------|---------| +| `factions.json` | Roles, puissance, revendications, combat, relations | +| `server.json` | Teleportation, sauvegarde auto, messages, interface, permissions | +| `economy.json` | Tresor, entretien, parametres de transaction | +| `backup.json` | Rotation et retention des sauvegardes | +| `chat.json` | Formatage de la discussion de faction et d'allie | +| `debug.json` | Categories de journalisation de debogage | +| `faction-permissions.json` | Permissions par defaut par role | +| `announcements.json` | Diffusion d'evenements et notifications territoriales | +| `gravestones.json` | Parametres d'integration des pierres tombales | +| `worldmap.json` | Modes de rafraichissement de la carte du monde | +| `worlds.json` | Remplacements de comportement par monde | ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. +>[!TIP] L'interface de configuration fournit un editeur visuel avec des descriptions pour chaque parametre. Les modifications sont enregistrees immediatement mais certaines necessitent `/f admin reload` pour prendre pleinement effet. -## Config Location +## Emplacement de la configuration -All files are stored in: +Tous les fichiers sont stockes dans : `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Les modifications manuelles du JSON necessitent `/f admin reload` pour etre appliquees. Un JSON invalide entrainera le saut du fichier avec un avertissement dans le journal du serveur. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] La version de configuration est suivie dans `server.json`. Le plugin migre automatiquement les anciennes configurations au demarrage. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md index 47e8dffe..6b7ccad8 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Parametres par monde -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions supporte une configuration par monde pour les revendications, le JcJ et le comportement de protection. -## World Commands +## Commandes de monde -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| Commande | Description | +|----------|-------------| +| `/f admin world list` | Lister tous les remplacements de monde | +| `/f admin world info ` | Afficher les parametres d'un monde | +| `/f admin world set ` | Definir un parametre | +| `/f admin world reset ` | Reinitialiser le monde aux valeurs par defaut | -## Available Settings +## Parametres disponibles -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Parametre | Type | Description | +|-----------|------|-------------| +| claiming_enabled | boolean | Autoriser les revendications de faction dans ce monde | +| pvp_enabled | boolean | Autoriser le combat JcJ dans ce monde | +| power_loss | boolean | Appliquer la perte de puissance a la mort | +| build_protection | boolean | Appliquer la protection de construction des revendications | +| explosion_protection | boolean | Proteger les revendications des explosions | -## World Whitelist / Blacklist +## Liste blanche / Liste noire de mondes -Control which worlds allow faction features through the `worlds.json` config file: +Controlez quels mondes autorisent les fonctionnalites de faction via le fichier de configuration `worlds.json` : -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Mode liste blanche** : Seuls les mondes listes autorisent les revendications +- **Mode liste noire** : Tous les mondes autorisent les revendications sauf ceux listes ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Les parametres de monde sont stockes dans `worlds.json` et remplacent les valeurs par defaut globales de `factions.json`. -## Examples +## Exemples - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- restaurer toutes les valeurs par defaut ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Desactivez les revendications dans les mondes creatif ou lobby pour garder le systeme de factions concentre sur le gameplay de survie. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Les parametres par monde ont la priorite sur la configuration globale mais sont remplaces par les drapeaux de zone dans ce monde. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md index b219d330..5a075adc 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Gestion du tresor -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Commandes admin pour gerer les tresors de faction. Necessite la permission `hyperfactions.admin.economy`. -## Treasury Commands +## Commandes du tresor -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| Commande | Description | +|----------|-------------| +| `/f admin economy balance ` | Voir le solde du tresor de la faction | +| `/f admin economy set ` | Definir le solde exact | +| `/f admin economy add ` | Ajouter des fonds au tresor | +| `/f admin economy take ` | Retirer des fonds du tresor | +| `/f admin economy reset ` | Reinitialiser le tresor a zero | -## Examples +## Exemples -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- verifier le solde +- `/f admin economy set Vikings 5000` -- definir a 5000 +- `/f admin economy add Vikings 1000` -- deposer 1000 +- `/f admin economy take Vikings 500` -- retirer 500 +- `/f admin economy reset Vikings` -- remettre le solde a zero ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Utilisez `/f admin info ` pour voir l'apercu economique complet incluant l'historique des transactions en plus du solde du tresor. -## Use Cases +## Cas d'utilisation -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Scenario | Commande | +|----------|----------| +| Distribution de prix d'evenement | `economy add ` | +| Sanction pour violation de regles | `economy take ` | +| Reinitialisation economique apres un wipe | `economy reset ` | +| Compensation pour des bugs | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Les modifications du tresor sont enregistrees dans l'historique des transactions de la faction. Les modifications admin sont enregistrees avec le nom de l'administrateur pour la tracabilite. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Toutes les commandes admin d'economie fonctionnent meme lorsque le module economique est desactive dans la configuration. Les donnees sont stockees independamment du statut du module. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..950d4598 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Gestion de l'entretien -Faction upkeep charges factions periodically based on their territory and member count. +L'entretien de faction facture les factions periodiquement en fonction de leur territoire et du nombre de membres. -## Admin Controls +## Controles admin -Upkeep settings are managed through the economy config file or the admin config GUI. +Les parametres d'entretien sont geres via le fichier de configuration economique ou l'interface de configuration admin. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Ouvrir l'editeur de configuration et naviguer vers les parametres economiques pour ajuster les valeurs d'entretien. -## Default Upkeep Settings +## Parametres d'entretien par defaut -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Parametre | Defaut | Description | +|-----------|--------|-------------| +| Entretien active | false | Interrupteur principal du systeme | +| Intervalle d'entretien | 24h | Frequence de facturation de l'entretien | +| Cout par revendication | 5.0 | Cout par chunk revendique par cycle | +| Cout par membre | 0.0 | Cout par membre par cycle | +| Periode de grace | 72h | Les nouvelles factions sont exemptees | +| Dissolution en cas de faillite | false | Dissolution automatique si le paiement est impossible | -## Monitoring Upkeep +## Surveiller l'entretien -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Utilisez `/f admin info ` pour voir : +- Le solde actuel du tresor +- Le cout estime d'entretien par cycle +- Le temps restant avant le prochain prelevement d'entretien +- Si la faction peut se permettre l'entretien ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Consultez les statistiques economiques de toutes les factions depuis le tableau de bord admin pour identifier les factions a risque de faillite avant que l'entretien ne se declenche. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] La configuration de l'entretien est stockee dans `economy.json`. Les modifications effectuees via l'interface de configuration prennent effet apres un rechargement avec `/f admin reload`. -## Upkeep Formula +## Formule d'entretien -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Entretien total** = (chunks revendiques x cout par revendication) + (nombre de membres x cout par membre) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Activer l'entretien sur un serveur avec des factions existantes peut provoquer des faillites inattendues. Envisagez de definir une periode de grace ou d'annoncer le changement a l'avance. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md index 253e05ab..ccba66c0 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Dissolution forcee -Admins can forcefully disband any faction, regardless of the leader's wishes. +Les administrateurs peuvent dissoudre de force n'importe quelle faction, independamment des souhaits du chef. -## Command +## Commande `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Dissout de force la faction nommee. Une invite de confirmation apparaitra avant l'execution de l'action. -**Permission**: `hyperfactions.admin.disband` +**Permission** : `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Dissoudre une faction est **irreversible**. Toutes les revendications sont liberees, tous les membres sont retires et la faction cesse d'exister. Creez d'abord une sauvegarde. ## Consequences -When a faction is disbanded: +Lorsqu'une faction est dissoute : -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| Effet | Description | +|-------|-------------| +| **Revendications** | Tout le territoire est libere immediatement | +| **Membres** | Tous les joueurs sont retires de la liste | +| **Relations** | Toutes les alliances et inimities sont effacees | +| **Tresor** | Gere selon les parametres de configuration de l'economie | +| **Foyer** | Le foyer de faction est supprime | +| **Discussion** | L'historique de discussion de faction est supprime | -## Best Practices +## Bonnes pratiques -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Executez toujours `/f admin backup create` avant de dissoudre +2. Notifiez les membres de la faction si possible +3. Documentez la raison pour les archives du serveur +4. Verifiez avec `/f admin info ` avant d'agir ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Si le probleme concerne un membre specifique, envisagez d'utiliser l'interface admin des factions pour transferer le leadership plutot que de dissoudre la faction entiere. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md index b00218c9..d232a16d 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Gerer les factions -Admins can inspect and modify any faction on the server through the dashboard or commands. +Les administrateurs peuvent inspecter et modifier n'importe quelle faction sur le serveur via le tableau de bord ou les commandes. -## Browsing Factions +## Parcourir les factions `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Ouvre le navigateur de factions admin. Consultez toutes les factions avec le nombre de membres, les niveaux de puissance et le territoire. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Ouvre le panneau d'informations admin pour une faction specifique avec tous les details et options de gestion. -## Modifying Faction Settings +## Modifier les parametres de faction -With `hyperfactions.admin.modify` permission, you can: +Avec la permission `hyperfactions.admin.modify`, vous pouvez : -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Renommer** une faction pour resoudre des conflits +- **Definir la couleur** pour corriger des problemes d'affichage +- **Basculer ouvert/ferme** pour remplacer la politique d'adhesion +- **Modifier la description** a des fins de moderation ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Utilisez `/f admin who ` pour rechercher a quelle faction un joueur specifique appartient et consulter ses details. -## Viewing Members and Relations +## Consulter les membres et relations -The admin info panel shows: +Le panneau d'informations admin affiche : | Section | Details | |---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| **Membres** | Liste complete avec les roles et la derniere connexion | +| **Relations** | Toutes les relations d'alliance, d'inimitie et de neutralite | +| **Territoire** | Chunks revendiques et equilibre de puissance | +| **Economie** | Solde du tresor et journal des transactions | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Les commandes d'inspection admin ne notifient pas la faction inspectee. Seules les modifications declenchent des alertes. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md index 84a331f7..6b654216 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Systeme de sauvegarde -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions inclut des sauvegardes automatiques et manuelles avec une rotation GFS (Grand-pere-Pere-Fils). -## Backup Commands +## Commandes de sauvegarde -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| Commande | Description | +|----------|-------------| +| `/f admin backup create` | Creer une sauvegarde manuelle maintenant | +| `/f admin backup list` | Lister toutes les sauvegardes disponibles | +| `/f admin backup restore ` | Restaurer a partir d'une sauvegarde | +| `/f admin backup delete ` | Supprimer une sauvegarde specifique | -**Permission**: `hyperfactions.admin.backup` +**Permission** : `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Parametres de rotation GFS par defaut | Type | Retention | Description | |------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Horaire | 24 | Les 24 derniers cliches horaires | +| Quotidien | 7 | Les 7 derniers cliches quotidiens | +| Hebdomadaire | 4 | Les 4 derniers cliches hebdomadaires | +| Manuel | 10 | Sauvegardes creees manuellement | +| Arret | 5 | Creees a l'arret du serveur | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Les sauvegardes a l'arret sont activees par defaut (`onShutdown=true`). Elles capturent l'etat le plus recent avant l'arret du serveur. -## Backup Contents +## Contenu des sauvegardes -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Chaque archive ZIP de sauvegarde contient : +- Tous les fichiers de donnees de faction +- Les donnees de puissance des joueurs +- Les definitions de zones +- L'historique de discussion et les donnees economiques +- Les donnees d'invitations et de demandes d'adhesion +- Les fichiers de configuration ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Restaurer une sauvegarde est destructif.** Cela remplace toutes les donnees actuelles par le contenu de la sauvegarde. Tout changement effectue apres la creation de la sauvegarde sera perdu. Creez toujours une nouvelle sauvegarde avant de restaurer. -## Best Practices +## Bonnes pratiques -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Creez une sauvegarde manuelle avant les actions admin majeures +2. Examinez la retention des sauvegardes dans `backup.json` +3. Testez d'abord la restauration sur un serveur de test +4. Gardez les sauvegardes a l'arret activees pour la recuperation apres un crash diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md index e3bf7548..7bd64b48 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Import de donnees -Import faction data from other plugins to migrate your server to HyperFactions. +Importez des donnees de faction depuis d'autres plugins pour migrer votre serveur vers HyperFactions. -## Import Command +## Commande d'import `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Permission** : `hyperfactions.admin.use` -## Supported Sources +## Sources supportees | Source | Description | |--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| `elbaphfactions` | Importer depuis les donnees ElbaphFactions | +| `hyfactions` | Importer depuis les donnees HyFactions v1 | -## Import Flags +## Drapeaux d'import -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| Drapeau | Description | +|---------|-------------| +| `--dry-run` | Valider les donnees sans rien importer | +| `--overwrite` | Ecraser les factions existantes avec le meme nom | +| `--no-zones` | Ignorer les donnees de zone pendant l'import | +| `--no-power` | Ignorer les donnees de puissance pendant l'import | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Executez toujours avec `--dry-run` d'abord pour previsualiser ce qui sera importe et detecter les problemes de donnees avant de valider les changements. -## Import Process +## Processus d'import -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Une sauvegarde pre-import est creee automatiquement +2. Les correspondances de noms de joueurs sont chargees +3. Les factions, revendications et zones sont converties +4. Les donnees sont validees et enregistrees -## Examples +## Exemples - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] L'utilisation de `--overwrite` **remplacera** toute faction existante partageant le meme nom qu'une faction importee. Les donnees des membres et les revendications seront ecrasees. Executez d'abord avec `--dry-run` pour identifier les conflits. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Certaines donnees specifiques a la source (ex. : parcelles de travailleurs, parcelles agricoles) n'ont pas d'equivalent dans HyperFactions et seront enregistrees comme avertissements lors de l'import. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md index f6dc2880..3ef1ee2d 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Verification des mises a jour -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions peut verifier les nouvelles versions et gerer la dependance HyperProtect-Mixin. -## Update Commands +## Commandes de mise a jour -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| Commande | Description | +|----------|-------------| +| `/f admin update` | Verifier les mises a jour d'HyperFactions | +| `/f admin update mixin` | Verifier/telecharger HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Activer/desactiver le telechargement automatique | +| `/f admin version` | Afficher la version actuelle et les infos de build | -## Release Channels +## Canaux de publication -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| Canal | Description | +|-------|-------------| +| **Stable** | Recommande pour les serveurs de production | +| **Pre-release** | Acces anticipe aux fonctionnalites a venir | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Le verificateur de mises a jour ne fait que notifier les nouvelles versions. Il n'installe **pas** automatiquement les mises a jour d'HyperFactions lui-meme. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin est le mixin de protection recommande qui active les drapeaux de zone avances (explosions, propagation du feu, conservation de l'inventaire, etc.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` verifie la derniere version +et la telecharge si une version plus recente est disponible +- Le telechargement automatique peut etre active ou desactive par serveur ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Apres le telechargement d'une nouvelle version du mixin, un redemarrage du serveur est necessaire pour que les changements prennent effet. -## Rollback Procedure +## Procedure de retour en arriere -If an update causes issues: +Si une mise a jour cause des problemes : -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Arretez le serveur +2. Remplacez le JAR du plugin par la version precedente +3. Demarrez le serveur +4. Verifiez le fonctionnement avec `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Revenir a une version anterieure peut necessiter une reinitialisation de la migration de configuration. Gardez toujours des sauvegardes avant de mettre a jour. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md index bf30a5b4..63a6b70d 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Premiers pas en tant qu'administrateur -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Bienvenue dans l'administration d'HyperFactions. Ce guide couvre vos premieres etapes apres l'installation du plugin. -## Opening the Admin Dashboard +## Ouvrir le tableau de bord admin `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Ouvre l'interface du tableau de bord admin avec acces a tous les outils de gestion, editeurs de zones et parametres du serveur. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Vous avez besoin de la permission **hyperfactions.admin.use** ou du statut OP pour acceder aux commandes admin. -## Requirements +## Conditions requises -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Avec un plugin de permissions** : Accordez `hyperfactions.admin.use` +- **Sans plugin de permissions** : Le joueur doit etre un +operateur du serveur (`adminRequiresOp=true` par defaut) -## First Steps After Install +## Premieres etapes apres l'installation -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Executez `/f admin` pour verifier votre acces +2. Ouvrez **Config** pour examiner les parametres de faction par defaut +3. Creez une **SafeZone** au spawn avec `/f admin safezone Spawn` +4. Creez eventuellement des **WarZones** pour les arenes JcJ +5. Examinez les parametres de **Sauvegarde** pour assurer la securite des donnees -## Admin Capabilities +## Capacites d'administration -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | +| Domaine | Ce que vous pouvez faire | +|---------|--------------------------| +| Factions | Inspecter, modifier ou dissoudre de force n'importe quelle faction | +| Zones | Creer des SafeZones et WarZones avec des drapeaux personnalises | +| Puissance | Remplacer les valeurs de puissance des joueurs/factions | +| Economie | Gerer les tresors de faction et l'entretien | +| Config | Modifier les parametres en direct via l'interface ou recharger depuis le disque | +| Sauvegardes | Creer, restaurer et gerer les sauvegardes de donnees | +| Imports | Migrer les donnees depuis d'autres plugins de faction | ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +>[!TIP] Utilisez `/f admin --text` pour obtenir une sortie textuelle dans le chat au lieu de l'interface, utile pour la console ou l'automatisation. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md index 979e5543..e0320377 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Permissions admin -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Toutes les fonctionnalites admin sont protegees par des noeuds de permission dans l'espace de noms `hyperfactions.admin`. -## Permission Nodes +## Noeuds de permission | Permission | Description | |-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| `hyperfactions.admin.*` | Accorde **toutes** les permissions admin | +| `hyperfactions.admin.use` | Acceder au tableau de bord `/f admin` | +| `hyperfactions.admin.reload` | Recharger les fichiers de configuration | +| `hyperfactions.admin.debug` | Activer/desactiver les categories de journalisation de debogage | +| `hyperfactions.admin.zones` | Creer, modifier et supprimer des zones | +| `hyperfactions.admin.disband` | Dissoudre de force n'importe quelle faction | +| `hyperfactions.admin.modify` | Modifier les parametres de n'importe quelle faction | +| `hyperfactions.admin.bypass.limits` | Contourner les limites de revendication et de puissance | +| `hyperfactions.admin.backup` | Creer et restaurer des sauvegardes | +| `hyperfactions.admin.power` | Remplacer les valeurs de puissance des joueurs | +| `hyperfactions.admin.economy` | Gerer les tresors de faction | -## Fallback Behavior +## Comportement de repli -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Lorsqu'**aucun plugin de permissions** n'est installe, les permissions admin se rabattent sur le statut d'operateur du serveur (OP). Ceci est controle par `adminRequiresOp` dans la configuration du serveur (defaut : `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Le joker `hyperfactions.admin.*` accorde toutes les permissions admin. Utilisez des noeuds individuels pour un controle granulaire de votre equipe de staff. -## Permission Resolution Order +## Ordre de resolution des permissions -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. Fournisseur **VaultUnlocked** (si disponible) +2. Fournisseur **HyperPerms** (si disponible) +3. Fournisseur **LuckPerms** (si disponible) +4. **Verification OP** pour les noeuds admin (repli) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Sans plugin de permissions et avec `adminRequiresOp` desactive, les commandes admin sont **ouvertes a tous les joueurs**. Utilisez toujours un plugin de permissions en production. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md index b2c9f463..dbbbf486 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Commandes admin de puissance -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Remplacez les valeurs de puissance des joueurs et des factions. Toutes les commandes necessitent la permission `hyperfactions.admin.power`. -## Player Power Commands +## Commandes de puissance des joueurs -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| Commande | Description | +|----------|-------------| +| `/f admin power set ` | Definir la valeur exacte de puissance | +| `/f admin power add ` | Ajouter de la puissance au joueur | +| `/f admin power remove ` | Retirer de la puissance au joueur | +| `/f admin power reset ` | Reinitialiser a la puissance de depart par defaut | +| `/f admin power info ` | Voir le detail complet de la puissance | -## How Power Affects Factions +## Impact de la puissance sur les factions -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +La puissance totale d'une faction est la somme de la puissance individuelle de tous ses membres. Les revendications territoriales necessitent une puissance totale suffisante pour etre maintenues. -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Scenario | Effet | +|----------|-------| +| Puissance augmentee | La faction peut revendiquer plus de territoire | +| Puissance diminuee | La faction peut devenir vulnerable a la sur-revendication | +| Puissance reinitialisee | Remet le joueur a la valeur de depart par defaut | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Diminuer la puissance d'un joueur peut faire perdre du territoire a sa faction si la puissance totale tombe en dessous du nombre de chunks revendiques. -## Examples +## Exemples -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- definir a exactement 50 +- `/f admin power add Steve 10` -- augmenter de 10 +- `/f admin power remove Steve 5` -- diminuer de 5 +- `/f admin power reset Steve` -- retour a la valeur par defaut +- `/f admin power info Steve` -- afficher le detail complet ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Utilisez `/f admin power info ` pour voir la puissance actuelle, la puissance maximale et les eventuels remplacement actifs avant d'effectuer des modifications. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md index 5469f903..4339b98b 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Remplacements de puissance -Special power commands that change how power behaves for specific players or factions. +Commandes speciales de puissance qui modifient le comportement de la puissance pour des joueurs ou factions specifiques. -## Override Commands +## Commandes de remplacement -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| Commande | Description | +|----------|-------------| +| `/f admin power setmax ` | Definir un plafond de puissance maximale personnalise | +| `/f admin power noloss ` | Activer/desactiver l'immunite a la penalite de mort | +| `/f admin power nodecay ` | Activer/desactiver l'immunite a la decroissance hors ligne | +| `/f admin power info ` | Voir tous les remplacements et details de puissance | -## Custom Max Power +## Puissance maximale personnalisee `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Definit un plafond de puissance maximale personnalise pour le joueur, remplacant la valeur par defaut du serveur. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Definir un maximum personnalise ne **modifie pas** la puissance actuelle. Cela change uniquement le plafond. Le joueur doit toujours gagner de la puissance jusqu'a la nouvelle limite. -## No-Loss Mode +## Mode sans perte `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Active/desactive l'immunite a la perte de puissance a la mort. Lorsqu'il est active, le joueur ne **perdra pas** de puissance en mourant. -Useful for: -- New player protection periods -- Event participants -- Staff members +Utile pour : +- Periodes de protection des nouveaux joueurs +- Participants a des evenements +- Membres du staff -## No-Decay Mode +## Mode sans decroissance `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Active/desactive l'immunite a la decroissance de puissance hors ligne. Lorsqu'il est active, la puissance du joueur ne **diminuera pas** en etant hors ligne. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Utile pour : +- Joueurs en absence prolongee +- Membres VIP +- Protection saisonniere -## Power Info +## Informations de puissance `/f admin power info ` -Shows a complete breakdown: +Affiche un detail complet : -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Puissance actuelle et puissance maximale +- Remplacements actifs (noloss, nodecay, max personnalise) +- Derniere mort et puissance perdue +- Pourcentage de contribution a la faction ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Tous les remplacements de puissance persistent entre les redemarrages du serveur et sont stockes dans le fichier de donnees du joueur. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md index bd0b0fa6..b6f8e749 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/all_commands.md @@ -1,34 +1,34 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Reference des commandes admin -Complete list of all `/f admin` subcommands with syntax and required permissions. +Liste complete de toutes les sous-commandes `/f admin` avec la syntaxe et les permissions requises. -## Dashboard and General +## Tableau de bord et general -| Command | Permission | -|---------|-----------| +| Commande | Permission | +|----------|-----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Gestion des factions -| Command | Permission | -|---------|-----------| +| Commande | Permission | +|----------|-----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | | `/f admin who ` | admin.use | | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Gestion des zones -| Command | Permission | -|---------|-----------| +| Commande | Permission | +|----------|-----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | | `/f admin removezone ` | admin.zones | @@ -40,10 +40,10 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Puissance et economie -| Command | Permission | -|---------|-----------| +| Commande | Permission | +|----------|-----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | @@ -51,8 +51,8 @@ Complete list of all `/f admin` subcommands with syntax and required permissions ## Maintenance -| Command | Permission | -|---------|-----------| +| Commande | Permission | +|----------|-----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | | `/f admin update` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Tous les noeuds de permission sont prefixes par `hyperfactions.` (ex. : `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md index c39bfb3b..eee33130 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Integrations de plugins -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions s'integre avec plusieurs plugins externes via des dependances optionnelles. Toutes les integrations sont facultatives et echouent gracieusement si elles ne sont pas disponibles. -## Checking Integration Status +## Verifier le statut des integrations `/f admin version` -Shows current version and detected integrations. +Affiche la version actuelle et les integrations detectees. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. +Ouvre le panneau de gestion des integrations avec le statut detaille de chaque plugin detecte. -## Integration Table +## Tableau des integrations | Plugin | Type | Description | |--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +| **HyperPerms** | Permissions | Systeme de permissions complet avec groupes, heritage et contexte | +| **LuckPerms** | Permissions | Fournisseur de permissions alternatif | +| **VaultUnlocked** | Permissions/Economie | Pont de permissions et d'economie | +| **HyperProtect-Mixin** | Protection | Active les drapeaux de zone avances (explosions, feu, conservation de l'inventaire) | +| **OrbisGuard-Mixins** | Protection | Mixin alternatif pour l'application des drapeaux de zone | +| **PlaceholderAPI** | Espaces reservees | 49 espaces reservees de faction pour d'autres plugins | +| **WiFlow PlaceholderAPI** | Espaces reservees | Fournisseur d'espaces reservees alternatif | +| **GravestonePlugin** | Mort | Controle d'acces aux pierres tombales dans les zones | +| **HyperEssentials** | Fonctionnalites | Drapeaux de zone pour les foyers, points de passage et kits | +| **KyuubiSoft Core** | Framework | Integration de la bibliotheque de base | +| **Sentry** | Surveillance | Suivi des erreurs et diagnostics | + +## Priorite des fournisseurs de permissions + +1. **VaultUnlocked** (priorite la plus elevee) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **Repli OP** (si aucun fournisseur trouve) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Les integrations sont detectees une seule fois au demarrage par reflexion. Les resultats sont mis en cache pour la session. Un redemarrage du serveur est necessaire apres l'ajout ou la suppression d'un plugin integre. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Utilisez `/f admin debug toggle integration` pour activer la journalisation detaillee des integrations pour le depannage. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin est le mixin de protection **recommande**. Sans lui, 15 drapeaux de zone n'auront aucun effet. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md index 933a9b2d..c7609cbc 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Bases des zones -Zones are admin-controlled territories with custom rules that override normal faction protection. +Les zones sont des territoires controles par les administrateurs avec des regles personnalisees qui remplacent la protection normale des factions. -## Zone Types +## Types de zones -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Pas de JcJ, pas de construction, pas de degats. +Ideal pour les zones de reapparition et les centres commerciaux. +- **WarZone** -- JcJ toujours active, pas de construction. +Ideal pour les arenes et les zones de bataille disputees. -## Creating Zones +## Creer des zones `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Cree une SafeZone et revendique votre chunk actuel. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Cree une WarZone et revendique votre chunk actuel. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Apres la creation, placez-vous dans des chunks supplementaires et utilisez `/f admin zone claim ` pour etendre la zone. -## Managing Zone Chunks +## Gerer les chunks de zone `/f admin zone claim ` -Add the current chunk to the named zone. +Ajouter le chunk actuel a la zone nommee. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Retirer le chunk actuel de la zone nommee. `/f admin zone radius ` -Claim a square of chunks around your position. +Revendiquer un carre de chunks autour de votre position. -## Deleting Zones +## Supprimer des zones `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Supprime definitivement la zone et libere tous ses chunks revendiques. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Supprimer une zone libere tous ses chunks instantanement. Cela ne peut pas etre annule sans une restauration de sauvegarde. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Les regles de zone **remplacent toujours** les regles de territoire de faction. Une SafeZone dans un territoire ennemi reste sure. diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md index 403b6b63..4b0a7279 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Reference des commandes de zone -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Reference complete de toutes les commandes de gestion de zone. Toutes necessitent la permission `hyperfactions.admin.zones`. -## Quick Creation +## Creation rapide -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| Commande | Description | +|----------|-------------| +| `/f admin safezone ` | Creer une SafeZone au chunk actuel | +| `/f admin warzone ` | Creer une WarZone au chunk actuel | +| `/f admin removezone ` | Supprimer une zone et liberer les chunks | -## Zone Management +## Gestion des zones -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | +| Commande | Description | +|----------|-------------| +| `/f admin zone create ` | Creer une zone (safezone/warzone) | +| `/f admin zone delete ` | Supprimer une zone | +| `/f admin zone claim ` | Ajouter le chunk actuel a la zone | +| `/f admin zone unclaim ` | Retirer le chunk actuel de la zone | +| `/f admin zone radius ` | Revendiquer un rayon carre de chunks | +| `/f admin zone list` | Lister toutes les zones avec le nombre de chunks | +| `/f admin zone notify ` | Activer/desactiver les messages d'entree/sortie | +| `/f admin zone title upper/lower ` | Definir le texte du titre de zone | +| `/f admin zone properties ` | Ouvrir l'interface des proprietes de zone | -## Flag Management +## Gestion des drapeaux -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| Commande | Description | +|----------|-------------| +| `/f admin zoneflag ` | Definir un drapeau specifique | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Utilisez l'interface des **proprietes** de zone pour un editeur visuel avec des bascules pour chaque drapeau, organise par categorie. -## Examples +## Exemples -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- creer une protection de spawn +- `/f admin zone radius Spawn 3` -- etendre a 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- autoriser les portes +- `/f admin zone notify Spawn true` -- afficher les messages d'entree diff --git a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md index 368a4ec9..47e0c17d 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/fr-FR/help/admin/admin_zones/zone_flags.md @@ -1,29 +1,29 @@ --- id: admin_zone_flags --- -# Zone Flags +# Drapeaux de zone -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Les zones supportent **47 drapeaux booleens** repartis en 10 categories. Chaque drapeau controle un comportement specifique dans la zone. -## Flag Categories Overview +## Apercu des categories de drapeaux -| Category | Count | Key Flags | -|----------|-------|-----------| +| Categorie | Nombre | Drapeaux cles | +|-----------|--------|---------------| | Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | +| Degats | 4 | fall_damage, explosion_damage, fire_spread | +| Mort | 2 | keep_inventory, power_loss | +| Construction | 4 | build_allowed, block_place, hammer_use | | Interaction | 13 | door_use, container_use, bench_use, npc_tame | | Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Objets | 4 | item_drop, item_pickup, invincible_items | +| Apparition de mobs | 5 | mob_spawning, hostile/passive/neutral | +| Nettoyage de mobs | 4 | mob_clear, hostile/passive/neutral clear | | Integration | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Valeurs par defaut (SafeZone vs WarZone) -| Flag | SafeZone | WarZone | -|------|----------|---------| +| Drapeau | SafeZone | WarZone | +|---------|----------|---------| | pvp_enabled | false | **true** | | build_allowed | false | false | | fall_damage | false | **true** | @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Certains drapeaux necessitent **HyperProtect-Mixin** pour fonctionner (ex. : keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Sans le mixin, ces drapeaux n'ont aucun effet meme lorsqu'ils sont actives. -## Setting Flags +## Definir des drapeaux `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Utilisez `/f admin zone properties ` pour un editeur visuel avec bascules groupees par categorie. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/death.md b/src/main/resources/Server/Languages/fr-FR/help/combat/death.md index 8690b43a..2d095f1e 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/combat/death.md +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Mort et recuperation -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +La mort a de vraies consequences dans les factions. Chaque mort vous coute de la puissance personnelle, affaiblissant la capacite de votre faction a detenir du territoire. -## Power Loss +## Perte de puissance -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Chaque mort coute -1.0 de puissance sur votre total personnel. Cela reduit la puissance combinee de la faction. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Evenement | Changement de puissance | +|-----------|------------------------| +| Mort (toute cause) | -1.0 | +| Regeneration en ligne | +0.1 par minute | +| Deconnexion en combat | -1.0 (tue) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. -## Example Scenarios +## Exemples de scenarios -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 membres a 10.0 de puissance chacun = 50 au total, 20 revendications.* +*Un membre meurt deux fois : 8.0 de puissance, total de la faction 48.* +*Trois membres meurent une fois chacun : le total tombe a 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Si la puissance de votre faction tombe en dessous du cout de vos revendications, les ennemis peuvent sur-revendiquer votre territoire. -## Recovery +## Recuperation -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +La puissance se regenere a 0.1 par minute en ligne. Recuperer 1.0 de puissance perdue prend environ 10 minutes. Les morts multiples s'accumulent, evitez donc les combats repetes. --- -## All Death Types +## Tous les types de mort -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +La perte de puissance s'applique a toutes les morts : JcJ, creatures, degats de chute, noyade et toute autre cause. Il n'y a pas de facon sure de mourir. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Definissez un foyer de faction avec /f sethome pour que les membres puissent se regrouper rapidement apres etre morts. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md b/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md index e564ec2d..3a825530 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Protection territoriale -Claimed territory provides several layers of defense for your faction's builds and resources. +Le territoire revendique offre plusieurs couches de defense pour les constructions et les ressources de votre faction. -## Block Protection +## Protection des blocs -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Seuls les membres de la faction peuvent placer ou casser des blocs dans votre territoire. Les ennemis et les neutres ne peuvent rien modifier. -## Container Protection +## Protection des conteneurs -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Les coffres, tonneaux et autres conteneurs sont securises. Seuls les membres de votre faction peuvent ouvrir ou interagir avec le stockage dans les chunks revendiques. -## Entry Alerts +## Alertes d'intrusion -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Lorsqu'un non-membre penetre dans votre territoire revendique, les membres de faction en ligne recoivent une notification avec le nom et la position de l'intrus. --- -## Ally Access +## Acces des allies -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Les allies ne peuvent pas construire ni casser de blocs dans votre territoire par defaut. Les degats entre allies sont egalement desactives, de sorte que les joueurs allies ne peuvent pas se blesser mutuellement. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Le territoire protege les blocs, pas les joueurs. Le JcJ dans votre propre territoire depend de la relation de l'attaquant avec votre faction. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Gardez vos revendications connectees et evitez les chunks isoles qui sont plus difficiles a defendre. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md index f0b2ab76..d3888b8c 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Protection de reapparition -After respawning from death, you receive temporary protection to prevent spawn camping. +Apres avoir reapparu suite a une mort, vous recevez une protection temporaire pour empecher le camping au point de reapparition. -## How It Works +## Comment ca fonctionne -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- La protection dure 5 secondes apres la reapparition +- Vous ne pouvez pas subir de degats pendant cette periode +- Un indicateur visuel montre votre statut de protection -## Protection Breaks +## Fin de la protection -Spawn protection ends early if you: +La protection de reapparition prend fin prematurement si vous : -- Attack another player or entity -- Move from your spawn position +- Attaquez un autre joueur ou une entite +- Vous deplacez de votre position de reapparition -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Cela empeche les abus. Vous ne pouvez pas attaquer d'autres joueurs en etant invulnerable. Des que vous effectuez une action, la protection tombe et les regles de combat normales s'appliquent. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Utilisez votre temps de protection pour evaluer la situation avant de vous deplacer. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md b/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md index e45cbdb3..6e3eacdf 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Marquage de combat -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Lorsque vous attaquez ou etes attaque par un autre joueur, vous devenez marque au combat pendant 15 secondes. -## While Tagged +## En etant marque -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Pas de teleportation /f home ou /f stuck +- Pas de commandes de teleportation du serveur +- Le marquage se reinitialise a chaque nouvelle action de combat +- Un chronometre affiche la duree restante du marquage --- -## Logout Penalty +## Penalite de deconnexion ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Se deconnecter en etant marque au combat tue votre personnage et vous perdez 1.0 de puissance. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Vos objets tombent la ou vous vous etes deconnecte et les ennemis peuvent les recuperer. Attendez toujours que le marquage expire. -## How the Timer Works +## Comment fonctionne le chronometre -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Le chronometre de marquage de combat apparait a l'ecran lorsque vous entrez en combat. Chaque nouveau coup le reinitialise a 15 secondes. Une fois qu'il atteint zero, toutes les restrictions sont levees. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Desengagez-vous et attendez l'expiration du chronometre si vous avez besoin de vous teleporter. diff --git a/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md b/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md index d1d957d2..fbb6e19e 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md +++ b/src/main/resources/Server/Languages/fr-FR/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Zones speciales -Admins can designate areas with special rules that override normal faction territory protection. +Les administrateurs peuvent designer des zones avec des regles speciales qui remplacent la protection territoriale normale des factions. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Pas de degats JcJ, pas de destruction de blocs par les non-administrateurs. Ideal pour les zones de reapparition, les centres commerciaux et les zones d'evenements. Les joueurs ne peuvent pas etre blesses ici. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +Le JcJ est toujours active. Aucune protection des blocs ne s'applique. Des zones de combat ouvertes ou tout est permis. Vous ne beneficiez d'aucun avantage de protection territoriale dans une WarZone. --- -## Zone Comparison +## Comparaison des zones -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| Caracteristique | SafeZone | WarZone | Territoire de faction | +|-----------------|----------|---------|----------------------| +| JcJ | Desactive | Toujours actif | Selon les relations | +| Destruction de blocs | Desactivee | Autorisee | Membres uniquement | +| Conteneurs | Proteges | Ouverts | Membres uniquement | +| Ideal pour | Spawn/Commerce | Arenes | Bases | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Les regles de zone remplacent toujours les regles de territoire de faction. Un chunk revendique dans une WarZone suit les regles de la WarZone. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Consultez votre carte du territoire avec /f map pour voir les limites des zones. diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md index 45da7756..2175a090 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Former des alliances -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Les alliances sont des accords mutuels entre deux factions qui offrent des avantages de protection et de cooperation. --- -## How to Form an Alliance +## Comment former une alliance `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Envoie une demande d'alliance a la faction cible. L'alliance ne prend effet que lorsque les deux parties acceptent. Un Officier ou Chef de l'autre faction doit egalement executer la meme commande en ciblant votre faction pour confirmer. -## How to Break an Alliance +## Comment rompre une alliance `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +L'une ou l'autre partie peut mettre fin unilateralement a une alliance en reinitialisant la relation a neutre. --- -## Alliance Benefits +## Avantages de l'alliance -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Avantage | Details | +|----------|---------| +| Pas de tirs allies | Les joueurs allies ne peuvent pas s'infliger de degats mutuellement | +| Visibilite partagee sur la carte | Le territoire allie s'affiche en bleu sur la carte du territoire | +| Interaction territoriale | Les allies peuvent utiliser les portes, sieges et transports dans votre territoire | +| Discussion d'allies | Passez en mode discussion d'allies pour communiquer entre factions | +| Protection contre la sur-revendication | Les allies ne peuvent pas sur-revendiquer le territoire de l'autre | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Votre faction peut avoir jusqu'a 10 alliances a la fois. Choisissez vos allies avec sagesse. --- -## Alliance Etiquette +## Etiquette d'alliance ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] La communication est essentielle. Avant d'envoyer une demande d'alliance, envisagez de contacter le chef de l'autre faction pour discuter des termes. Une alliance solide repose sur un benefice mutuel, pas seulement sur la commodite. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Les alliances fonctionnent dans les deux sens -- si vous beneficiez de la protection, vos allies attendent la meme chose +- Rompre une alliance en temps de guerre peut nuire a la reputation de votre faction +- Les factions alliees peuvent coordonner leurs revendications territoriales pour creer des frontieres defensives diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md index 70688ad4..8c6f3fb7 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Factions ennemies -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Declarer un ennemi est une action unilaterale qui active immediatement le JcJ et l'agression territoriale contre la faction cible. Aucun accord n'est requis. --- -## Declaring an Enemy +## Declarer un ennemi `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Marque instantanement la faction cible comme votre ennemi. Cela prend effet immediatement -- aucune confirmation de l'autre partie n'est necessaire. Necessite le rang d'Officier ou superieur. -## Resetting to Neutral +## Reinitialiser a neutre `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Met fin au statut d'ennemi et reinitialise la relation a neutre. Cela necessite egalement Officier+ et prend effet immediatement. --- -## What Enemy Status Enables +## Ce que le statut d'ennemi active -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| Effet | Details | +|-------|---------| +| JcJ dans le territoire | Le JcJ complet est active dans le territoire des deux factions | +| Sur-revendication | Vous pouvez sur-revendiquer leurs chunks s'ils sont en deficit de puissance | +| Marquage sur la carte | Le territoire ennemi s'affiche en rouge sur la carte du territoire | +| Pas de protection | La protection territoriale standard n'empeche pas le JcJ ennemi | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Declarer un ennemi est une decision serieuse. Leurs membres peuvent aussi vous combattre dans votre propre territoire une fois la declaration faite. --- -## Strategic Considerations +## Considerations strategiques -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Les declarations d'ennemi sont unilaterales -- vous pouvez declarer sans leur consentement, mais ils vous voient egalement comme hostile +- Avant de declarer, verifiez la puissance de la cible avec /f info. S'ils sont forts, vous pourriez perdre du territoire a la place +- Affaiblissez les ennemis par des combats repetes pour drainer leur puissance, puis sur-revendiquez leurs terres +- Il n'y a pas de limite au nombre d'ennemis que vous pouvez avoir, mais combattre sur plusieurs fronts est risque ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Utilisez /f neutral pour desamorcer les conflits. Parfois une paix strategique est plus precieuse qu'une guerre continue. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Si vous etes allie avec une faction et que vous la declarez ennemie, l'alliance est rompue en premier. diff --git a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md index 89711eee..4c38f99d 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/fr-FR/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Relations de faction -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Chaque paire de factions a une relation diplomatique qui determine comment elles interagissent. Il existe trois etats : Allie, Ennemi et Neutre. --- -## Relation Comparison +## Comparaison des relations -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| Effet | Allie | Neutre | Ennemi | +|-------|-------|--------|--------| +| JcJ dans le territoire | Desactive | Regles standards | Active | +| Protection territoriale | Protection mutuelle | Protection standard | Peut sur-revendiquer si affaibli | +| Tirs allies | Desactives | N/A | Actives partout | +| Couleur sur la carte | Bleu | Gris | Rouge | +| Comment definir | Accord mutuel | Etat par defaut | Declaration unilaterale | +| Acces au chat | Canal de discussion d'allies | Aucun | Aucun | --- -## Viewing Relations +## Consulter les relations `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Affiche toutes vos alliances actuelles, vos ennemis et les demandes d'alliance en attente. -## How Relations Work +## Comment fonctionnent les relations -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutre est l'etat par defaut entre toutes les factions. Les regles standards du serveur s'appliquent. +- L'alliance necessite que les deux factions acceptent. L'une ou l'autre partie peut la rompre unilateralement. +- Ennemi est declare de maniere unilaterale. Aucun accord n'est necessaire -- l'autre faction est immediatement marquee comme votre ennemi. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Les relations sont gerees par les Officiers et le Chef. Les Membres peuvent consulter les relations mais ne peuvent pas les modifier. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Utilisez /f relations regulierement pour suivre le paysage diplomatique. Savoir qui sont vos ennemis vous aide a vous preparer aux conflits territoriaux. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md b/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md index 020190cd..68122a3c 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Commandes d'economie -Quick reference for all faction economy commands. +Reference rapide de toutes les commandes d'economie de faction. -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| Commande | Description | Role | +|----------|-------------|------| +| /f balance | Voir le solde du tresor | Tous | +| /f deposit (montant) | Deposer dans le tresor | Tous | +| /f withdraw (montant) | Retirer du tresor | Officier+ | +| /f money transfer (faction) (montant) | Transferer a une autre faction | Officier+ | +| /f money log [page] | Voir l'historique des transactions | Officier+ | --- -## Command Aliases +## Alias de commandes -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance peut aussi etre utilise comme /f bal +- /f deposit et /f withdraw acceptent les montants decimaux -## Role Requirements +## Conditions de role -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Les commandes de retrait et de transfert sont reservees aux Officiers et au Chef. Toutes les autres commandes d'economie sont accessibles a n'importe quel membre de la faction. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Utilisez /f money log pour consulter les depots, retraits et transferts recents avec horodatage. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md b/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md index 4fe4539c..a68cea91 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Gerer les fonds -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Les membres de la faction travaillent ensemble pour alimenter le tresor par des depots, retraits et transferts. -## Depositing +## Deposer -Any member can deposit personal funds into the faction treasury. +N'importe quel membre peut deposer des fonds personnels dans le tresor de la faction. `/f deposit ` -Deposit from your personal balance into the treasury. +Deposer de votre solde personnel dans le tresor. -## Withdrawing +## Retirer -Officers and the Leader can withdraw funds back to their personal balance. +Les Officiers et le Chef peuvent retirer des fonds vers leur solde personnel. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Retirer du tresor vers votre solde. (Officier+) -## Transferring +## Transferer -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Les Officiers peuvent transferer des fonds directement entre les tresors de factions pour des accords commerciaux ou de la diplomatie. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Envoyer des fonds au tresor d'une autre faction. (Officier+) --- -## Fees +## Frais -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Transaction | Frais | +|-------------|-------| +| Depot | 0% | +| Retrait | 0% | +| Transfert | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Les taux de frais sont configurables par le serveur et peuvent differer des valeurs par defaut indiquees ci-dessus. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Toutes les transactions sont enregistrees. Utilisez /f money log pour consulter l'activite recente. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md b/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md index e4e7307b..86d4e5e6 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Tresor de faction -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Chaque faction possede un tresor partage qui sert de banque a la faction. Les fonds sont utilises pour les couts d'entretien, la maintenance du territoire et les operations de la faction. -## Starting Balance +## Solde de depart -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Les nouvelles factions commencent avec 0 dans leur tresor. Les membres doivent deposer des fonds pour constituer des reserves. -## Who Can Manage +## Qui peut gerer -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- N'importe quel membre peut deposer des fonds +- Les Officiers et le Chef peuvent retirer et transferer +- Le Chef a le controle total du tresor --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Verifier le solde actuel du tresor de votre faction. Egalement disponible via /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Contribuez regulierement pour garder votre faction financee. Les couts d'entretien du territoire peuvent vider un tresor vide rapidement. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Toutes les transactions du tresor sont enregistrees et peuvent etre consultees par les officiers. diff --git a/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md b/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md index 8a2d12e4..3211b64b 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/fr-FR/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Entretien du territoire -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Les factions doivent payer un entretien continu pour maintenir leur territoire revendique. Cela empeche l'accumulation de terres et maintient la carte dynamique. -## Upkeep Costs +## Couts d'entretien -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Parametre | Valeur par defaut | +|-----------|-------------------| +| Cout par chunk | 2.0 par cycle | +| Intervalle de paiement | Toutes les 24 heures | +| Chunks gratuits | 3 (sans cout) | +| Mode de calcul | Taux fixe | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Vos 3 premiers chunks sont gratuits. Au-dela, chaque chunk revendique supplementaire coute 2.0 par cycle de paiement. -## Auto-Pay +## Paiement automatique -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Le paiement automatique est active par defaut. Le systeme deduit automatiquement l'entretien de votre tresor a chaque intervalle. Aucune action manuelle n'est necessaire. --- -## Grace Period +## Periode de grace -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Si votre tresor ne peut pas couvrir l'entretien, une periode de grace de 48 heures commence. Un avertissement est envoye 6 heures avant que les revendications ne commencent a etre perdues. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Si l'entretien reste impaye apres la periode de grace, votre faction perd 1 revendication par cycle jusqu'a ce que les couts soient couverts ou que toutes les revendications supplementaires soient perdues. -## Example +## Exemple -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Une faction avec 8 revendications paie pour 5 chunks (8 moins 3 gratuits). A 2.0 par chunk, cela fait 10.0 par cycle.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Gardez votre tresor approvisionne au-dessus de votre cout d'entretien. Utilisez /f balance pour verifier vos reserves. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md index f70427cb..7bdc13da 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Revendiquer un territoire -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Revendiquer un chunk le place sous le controle de votre faction. Seuls les membres de la faction peuvent construire, casser ou acceder aux conteneurs dans un territoire revendique. --- -## How to Claim +## Comment revendiquer `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Placez-vous dans le chunk que vous souhaitez revendiquer et executez cette commande. Le chunk est immediatement protege. Necessite le rang d'Officier ou superieur. -## How to Unclaim +## Comment annuler une revendication `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Libere le chunk dans lequel vous vous trouvez et le remet a l'etat sauvage. Necessite egalement Officier+. --- -## Claim Rules +## Regles de revendication -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Regle | Valeur par defaut | +|-------|-------------------| +| Cout en puissance par revendication | 2.0 de puissance | +| Maximum de revendications | 100 par faction | +| Adjacence obligatoire | Non (vous pouvez revendiquer n'importe ou) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Chaque revendication coute 2.0 de puissance a maintenir. Une faction avec 50 de puissance totale peut detenir en securite jusqu'a 25 revendications. --- -## What Protection Provides +## Ce que la protection offre -Inside claimed territory, the following is enforced by default: +Dans un territoire revendique, les regles suivantes s'appliquent par defaut : -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Les etrangers ne peuvent ni casser, ni placer, ni interagir avec les blocs +- Les allies peuvent utiliser les portes, les sieges et les transports, mais ne peuvent ni casser ni placer de blocs +- Les Membres et Officiers ont un acces complet pour construire, casser et tout utiliser +- L'acces aux conteneurs (coffres, caisses) est reserve aux membres uniquement ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Vous pouvez aussi revendiquer directement depuis la carte du territoire. Ouvrez /f map et cliquez sur les chunks non revendiques pour les revendiquer. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Ne vous etendez pas trop. Si votre faction perd de la puissance a cause des morts, les revendications au-dela de votre budget de puissance deviennent vulnerables a la sur-revendication. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md index ea39186b..ca2a9c87 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Perte de territoire -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Lorsque la puissance totale d'une faction tombe en dessous du cout de ses revendications, elle devient pillable. Les ennemis peuvent sur-revendiquer des chunks directement sous vos pieds. --- -## How Overclaiming Works +## Comment fonctionne la sur-revendication `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Un Officier ou Chef d'une faction ennemie se place dans votre chunk revendique et execute cette commande. Si votre faction est en deficit de puissance, le chunk est transfere a leur faction. -## The Math +## Le calcul -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Chaque revendication coute 2.0 de puissance a maintenir. Si votre puissance totale tombe en dessous de ce seuil, les chunks en deficit sont vulnerables. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] La sur-revendication est permanente. Une fois qu'un ennemi prend un chunk, vous devez le re-revendiquer (ou le sur-revendiquer en retour s'il s'affaiblit). --- -## Example Scenario +## Exemple de scenario -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Facteur | Valeur | +|---------|--------| +| Membres | 5 joueurs | +| Puissance par membre | 10 chacun (initiale) | +| Puissance totale | 50 | +| Revendications | 30 chunks | +| Puissance requise (30 x 2.0) | 60 | +| Deficit | 10 de puissance en moins | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +Dans cet exemple, la faction est deja pillable des le depart. Les ennemis pourraient sur-revendiquer jusqu'a 5 chunks (deficit de 10 / 2.0 par revendication) avant que la faction n'atteigne l'equilibre. --- -## How to Prevent Overclaiming +## Comment prevenir la sur-revendication -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Ne vous etendez pas trop -- gardez toujours la puissance totale au-dessus du cout de vos revendications avec une marge +- Restez actifs -- la puissance ne se regenere qu'en ligne (+0.1/min) +- Evitez les morts inutiles -- chaque mort coute 1.0 de puissance +- Recrutez plus de membres -- plus de joueurs signifie plus de puissance totale +- Annulez la revendication des chunks inutilises -- liberez de la puissance avec /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Verifiez regulierement votre statut de puissance avec /f power. Si votre puissance totale est proche du cout de vos revendications, envisagez d'annuler la revendication de chunks moins importants avant une guerre. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md index 207c041d..085683d7 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# La carte du territoire -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +La carte du territoire vous offre une vue aerienne des chunks revendiques dans votre zone, montrant quelles factions controlent les terres autour de vous. --- -## Opening the Map +## Ouvrir la carte `/f map` -Opens the territory map GUI centered on your current location. +Ouvre l'interface de la carte du territoire centree sur votre position actuelle. --- -## Color Legend +## Legende des couleurs -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Couleur | Signification | +|---------|---------------| +| [#55FF55] Couleur de votre faction | Territoire revendique par votre faction | +| [#5555FF] Bleu | Territoire d'une faction alliee | +| [#FF5555] Rouge | Territoire d'une faction ennemie | +| [#AAAAAA] Gris | Territoire d'une faction neutre | +| [#333333] Sombre | Terres sauvages (non revendiquees) | +| [#FFAA00] Or | Zones speciales (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] La couleur de votre faction sur la carte correspond a celle que vous avez definie dans les parametres de couleur de la faction. Les allies et ennemis utilisent des couleurs fixes pour une identification facile. --- -## Click to Claim +## Cliquer pour revendiquer -The map is not just for viewing -- you can interact with it directly. +La carte ne sert pas seulement a regarder -- vous pouvez interagir avec elle directement. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Cliquez sur un chunk non revendique pour le revendiquer (necessite le rang Officier+ et suffisamment de puissance) +- Cliquez sur un chunk revendique pour voir quelle faction le possede +- Faites defiler ou deplacez la vue pour explorer les environs ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] La carte est le moyen le plus simple de planifier l'expansion de votre territoire. Cherchez des zones non revendiquees pres de votre base et revendiquez strategiquement pour creer une frontiere continue. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] La carte affiche une zone fixe autour de votre position. Deplacez-vous et rouvrez-la pour voir d'autres parties du monde. diff --git a/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md index ae158ed5..cabefeb2 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/fr-FR/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Comprendre la puissance -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +La puissance est la ressource centrale qui determine la quantite de territoire que votre faction peut detenir. Chaque joueur possede une puissance personnelle qui contribue au total de la faction. --- -## Default Power Values +## Valeurs de puissance par defaut -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Parametre | Valeur | +|-----------|--------| +| Puissance maximale par joueur | 20 | +| Puissance de depart | 10 | +| Penalite de mort | -1.0 par mort | +| Recompense d'elimination | 0.0 | +| Taux de regeneration | +0.1 par minute (en ligne) | +| Cout en puissance par revendication | 2.0 | +| Deconnexion en etant marque | -1.0 supplementaire | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ce sont les valeurs par defaut. L'administrateur de votre serveur peut avoir configure des parametres differents. -## How It Works +## Comment ca fonctionne -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +La puissance totale de votre faction est la somme de la puissance personnelle de chaque membre. Votre puissance requise est le nombre de revendications multiplie par 2.0. Tant que la puissance totale reste au-dessus de la puissance requise, votre territoire est en securite. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] La puissance se regenere passivement a 0.1 par minute tant que vous etes en ligne. A ce rythme, recuperer 1.0 de puissance prend environ 10 minutes. --- -## Checking Your Power +## Verifier votre puissance `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Affiche votre puissance personnelle, la puissance totale de votre faction et la quantite necessaire pour maintenir les revendications actuelles. -## The Danger Zone +## La zone de danger -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Si la puissance totale tombe en dessous du montant requis pour vos revendications, votre faction devient vulnerable. Les ennemis peuvent sur-revendiquer vos chunks. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Plusieurs morts en peu de temps peuvent s'enchainer rapidement. Si vous avez 5 membres chacun a 10 de puissance (50 au total) et 20 revendications (40 necessaires), 5 morts dans votre equipe vous font descendre a 45 -- toujours en securite. Mais 11 morts vous mettent a 39, en dessous du seuil de 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Gardez une marge de puissance. Ne revendiquez pas chaque chunk que vous pouvez vous permettre -- laissez de la place pour quelques morts sans devenir pillable. diff --git a/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md index 0540d550..e45f32d5 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/fr-FR/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | - -## Chat - -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +# Toutes les commandes + +## Base + +| Commande | Description | Role | +|----------|-------------|------| +| /f | Ouvrir le menu de faction | Tous | +| /f help | Ouvrir le centre d'aide | Tous | +| /f create (nom) | Creer une faction | Tous | +| /f disband | Supprimer votre faction | Chef | +| /f leave | Quitter votre faction | Tous | + +## Adhesion + +| Commande | Description | Role | +|----------|-------------|------| +| /f invite (joueur) | Inviter un joueur | Officier+ | +| /f accept [faction] | Accepter une invitation | Tous | +| /f request (faction) | Demander a rejoindre | Tous | +| /f kick (joueur) | Retirer un membre | Officier+ | +| /f promote (joueur) | Promouvoir en Officier | Chef | +| /f demote (joueur) | Retrograder en Membre | Chef | +| /f transfer (joueur) | Transferer le leadership | Chef | + +## Territoire + +| Commande | Description | Role | +|----------|-------------|------| +| /f claim | Revendiquer le chunk actuel | Officier+ | +| /f unclaim | Liberer le chunk actuel | Officier+ | +| /f overclaim | Prendre un chunk affaibli | Officier+ | +| /f map | Ouvrir la carte du territoire | Tous | + +## Teleportation + +| Commande | Description | Role | +|----------|-------------|------| +| /f home | Se teleporter au foyer de faction | Tous | +| /f sethome | Definir le foyer de faction | Officier+ | +| /f delhome | Supprimer le foyer de faction | Officier+ | +| /f stuck | Echapper au territoire ennemi | Tous | + +## Informations + +| Commande | Description | Role | +|----------|-------------|------| +| /f info [faction] | Voir les details de la faction | Tous | +| /f list | Parcourir toutes les factions | Tous | +| /f members | Voir la liste des membres | Tous | +| /f who [joueur] | Voir les infos d'un joueur | Tous | +| /f power [joueur] | Verifier les niveaux de puissance | Tous | +| /f invites | Gerer les invitations/demandes | Tous | +| /f relations | Voir les relations diplomatiques | Tous | + +## Diplomatie + +| Commande | Description | Role | +|----------|-------------|------| +| /f ally (faction) | Demander une alliance | Officier+ | +| /f enemy (faction) | Declarer un ennemi | Officier+ | +| /f neutral (faction) | Reinitialiser a neutre | Officier+ | + +## Parametres + +| Commande | Description | Role | +|----------|-------------|------| +| /f settings | Ouvrir l'interface des parametres | Officier+ | +| /f rename (nom) | Renommer la faction | Chef | +| /f desc [texte] | Definir la description | Officier+ | +| /f color (code) | Definir la couleur de la faction | Officier+ | +| /f open | Autoriser tout le monde a rejoindre | Chef | +| /f close | Exiger une invitation | Chef | + +## Economie + +| Commande | Description | Role | +|----------|-------------|------| +| /f balance | Voir le tresor | Tous | +| /f deposit (montant) | Deposer des fonds | Tous | +| /f withdraw (montant) | Retirer des fonds | Officier+ | +| /f money transfer (faction) (mnt) | Transferer des fonds | Officier+ | +| /f money log [page] | Historique des transactions | Officier+ | + +## Discussion + +| Commande | Description | Role | +|----------|-------------|------| +| /f c | Alterner le mode de discussion | Tous | +| /f c f | Activer la discussion de faction | Tous | +| /f c a | Activer la discussion d'allies | Tous | +| /f c off | Activer la discussion publique | Tous | diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md index 2155ff0c..1116ff2e 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Premiers pas -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Bienvenue sur HyperFactions ! Voici comment vous lancer en quelques etapes. --- -## Step 1: Open the Faction Menu +## Etape 1 : Ouvrir le menu de faction -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Tapez /f pour ouvrir l'interface principale des factions. C'est votre point central pour tout -- parcourir les factions, creer la votre et gerer les invitations. -## Step 2: Choose Your Path +## Etape 2 : Choisissez votre voie -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Option | Comment | +|--------|---------| +| Parcourir les factions ouvertes | Cliquez sur Parcourir dans le menu, puis sur Rejoindre pour toute faction ouverte. | +| Accepter une invitation | Consultez l'onglet Invitations. Si quelqu'un vous a invite, cliquez sur Accepter. | +| Creer la votre | Cliquez sur Creer une faction, choisissez un nom, et vous devenez le Chef. | -## Step 3: Explore Your Faction +## Etape 3 : Explorez votre faction -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Une fois dans une faction, vous verrez le Tableau de bord de faction avec votre liste de membres, la carte du territoire, les relations et les parametres. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Si vous debutez, essayez d'abord de rejoindre une faction existante. Vous apprendrez plus vite avec des membres experimentes a vos cotes. --- -## Essential First Commands +## Commandes essentielles pour commencer -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Ouvre l'interface de faction +- /f home -- Se teleporter a la base de votre faction +- /f c -- Alterner le mode de discussion entre Normal, Faction et Allie +- /f map -- Afficher la carte du territoire autour de vous ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Vous pouvez aussi taper /f help dans le chat pour obtenir un aide-memoire des commandes a tout moment. diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md index dcd1df1a..cd84c982 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Conseils rapides -Handy advice organized by category to help you thrive. +Des conseils pratiques organises par categorie pour vous aider a prosperer. --- -## Territory +## Territoire -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Revendiquez des terres autour de votre base tot avec `/f claim` -- les constructions non revendiquees n'ont **aucune protection** +- Chaque revendication coute **2.0 de puissance** a maintenir, alors ne vous etendez pas au-dela de ce que vos membres peuvent supporter +- Utilisez `/f map` pour reperer les revendications alentour et trouver des endroits surs pour construire +- Annulez la revendication des chunks dont vous n'avez plus besoin avec `/f unclaim` pour liberer de la puissance ## Combat -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Mourir coute **1.0 de puissance** -- evitez les combats inutiles quand votre faction est proche de sa limite de revendications +- Vous avez **5 secondes de protection de reapparition** apres avoir reapparu +- Le marquage de combat dure **15 secondes** -- se deconnecter en etant marque coute de la puissance supplementaire +- Les tirs allies sont **desactives** entre membres de faction et allies par defaut ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Se deconnecter en etant marque au combat entraine une perte de puissance supplementaire (1.0 par deconnexion). Restez pour combattre ou echappez-vous d'abord. ## Social -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Utilisez `/f c` pour alterner entre les modes de discussion afin que les conversations de faction restent privees +- Invitez des joueurs de confiance avec `/f invite ` -- les invitations expirent apres **5 minutes** +- Formez des alliances avec `/f ally ` pour une protection mutuelle et une visibilite partagee sur la carte +- Consultez `/f relations` pour voir votre statut diplomatique complet -## Economy +## Economie ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Si le serveur a l'economie activee, votre faction peut accumuler un tresor. Les membres peuvent deposer, mais seuls les Officiers et les Chefs peuvent retirer ou transferer des fonds. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Deposez des fonds via l'interface du tresor pour renforcer votre faction +- Une faction plus riche peut se permettre plus de revendications et se remettre plus vite des revers ## General -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Tapez `/f` a tout moment pour ouvrir votre tableau de bord de faction -- tout est accessible depuis la +- Promouvez les membres actifs au rang d'Officier pour qu'ils puissent aider a revendiquer et gerer le territoire +- Gardez votre faction active -- la puissance ne se regenere que lorsque les joueurs sont **en ligne** diff --git a/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md index 5fedf54c..09455d1a 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/fr-FR/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Qu'est-ce que les factions ? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Les factions sont des equipes gerees par les joueurs qui revendiquent des territoires, construisent des bases et rivalisent pour la domination. Lorsque vous rejoignez ou creez une faction, vous accedez a des terres protegees, un foyer partage, une discussion privee et des outils diplomatiques. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Les factions, c'est avant tout le travail d'equipe. Plus vous avez de membres actifs, plus votre faction devient puissante. --- -## Core Mechanics +## Mecaniques de base -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Mecanique | Ce qu'elle fait | +|-----------|----------------| +| Puissance | Chaque joueur genere de la puissance au fil du temps (max 20). La puissance totale de votre faction determine la quantite de terres que vous pouvez detenir. | +| Revendications | Les chunks revendiques sont proteges -- seuls les membres peuvent construire, casser ou ouvrir des conteneurs a l'interieur. Chaque revendication coute 2.0 de puissance a maintenir. | +| Relations | Les factions peuvent former des alliances pour une protection mutuelle ou declarer des ennemis pour activer le JcJ et l'agression territoriale. | +| Roles | Trois rangs -- Chef, Officier, Membre -- chacun avec des capacites differentes. | --- -## How Strength Works +## Comment fonctionne la force -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +La force de votre faction provient de ses membres. Chaque joueur commence avec 10 de puissance et en regenere jusqu'a 20 tant qu'il est en ligne. Mourir coute de la puissance. Si la puissance totale de votre faction tombe en dessous du cout de vos revendications, les ennemis peuvent sur-revendiquer votre territoire. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Une seule mort coute 1.0 de puissance. Plusieurs morts en peu de temps peuvent rendre votre faction vulnerable a la sur-revendication. --- -## Diplomacy at a Glance +## Diplomatie en un coup d'oeil -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Allies** -- Accords mutuels qui empechent les tirs allies et protegent le territoire de chacun +- **Ennemis** -- Declarations unilaterales qui activent le JcJ sur les terres de chacun et permettent la sur-revendication +- **Neutres** -- L'etat par defaut entre toutes les factions avec les regles standards ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Vous pouvez gerer tout cela via l'interface en jeu en tapant `/f` ou par les commandes du chat. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md index e1eaa33b..f80437c5 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Creer une faction -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Fonder votre propre faction fait de vous le Chef avec un controle total sur les parametres, les membres et le territoire. --- -## How to Create +## Comment creer `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Cela cree votre faction et ouvre immediatement le Tableau de bord de faction ou vous pouvez commencer a inviter des membres, revendiquer des terres et configurer les parametres. -## Name Rules +## Regles de nommage -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Regle | Exigence | +|-------|----------| +| Longueur | Entre 3 et 24 caracteres | +| Caracteres | Lettres, chiffres et espaces uniquement | +| Unicite | Deux factions ne peuvent pas partager le meme nom | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Choisissez votre nom avec soin. Le renommer plus tard necessite les permissions de Chef et peut etre soumis a un delai de recharge. --- -## What Happens on Creation +## Ce qui se passe a la creation -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Vous devenez le Chef (rang le plus eleve) +- Votre faction commence avec 0 revendication et votre puissance personnelle (10 par defaut) +- Le tableau de bord de faction s'ouvre automatiquement +- Vous pouvez immediatement inviter des joueurs, revendiquer du territoire et definir un foyer de faction ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Si le serveur a l'integration economique activee, creer une faction peut couter de l'argent. Le cout de creation est defini par l'administrateur du serveur. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Apres la creation, vos premieres priorites devraient etre : inviter des amis, trouver un emplacement de base et le revendiquer. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md index 7dbabdcd..9237a318 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Rejoindre une faction -There are three ways to join an existing faction, depending on how the faction is configured. +Il existe trois facons de rejoindre une faction existante, selon la configuration de la faction. --- -## Methods Compared +## Comparaison des methodes -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Methode | Comment | Condition requise | +|---------|---------|-------------------| +| Parcourir et Rejoindre | Ouvrez /f, cliquez sur Parcourir, puis sur Rejoindre | La faction est ouverte | +| Accepter une invitation | Consultez l'onglet Invitations dans le menu /f | Invitation active | +| Demander a rejoindre | Utilisez /f request, attendez l'approbation | Un Officier ou le Chef approuve | --- -## Invite Details +## Details des invitations -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Les invitations sont envoyees par les Officiers ou le Chef +- Les invitations expirent apres 5 minutes -- acceptez rapidement +- Consultez vos invitations en attente dans l'onglet Invitations du menu de faction +- Acceptez via l'interface ou avec /f accept -## Join Requests +## Demandes d'adhesion -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Utilisez /f request pour demander a rejoindre une faction fermee +- Les demandes expirent apres 24 heures si elles ne sont pas traitees +- Les Officiers et le Chef peuvent approuver ou refuser les demandes depuis le tableau de bord de la faction ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Vous ne savez pas quelle faction rejoindre ? Utilisez l'onglet Parcourir dans /f pour voir les descriptions des factions, le nombre de membres et si elles sont ouvertes ou sur invitation uniquement. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Chaque faction peut accueillir jusqu'a 50 membres par defaut. Si une faction est pleine, vous devrez attendre qu'une place se libere. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md index 870c6133..ef531238 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Gerer les membres -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Les Officiers et le Chef partagent la responsabilite de gerer la liste des membres de la faction. Voici les commandes cles et qui peut les utiliser. --- -## Commands +## Commandes -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Commande | Ce qu'elle fait | Role requis | +|----------|----------------|-------------| +| `/f invite ` | Envoie une invitation (expire dans 5 min) | Officier+ | +| `/f kick ` | Retire un membre de la faction | Officier+ (voir note) | +| `/f promote ` | Promeut un Membre en Officier | Chef uniquement | +| `/f demote ` | Retrograde un Officier en Membre | Chef uniquement | +| `/f transfer ` | Transfere la propriete de la faction | Chef uniquement | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Les Officiers ne peuvent expulser que des Membres. Pour retirer un autre Officier, le Chef doit d'abord le retrograder ou l'expulser directement. --- ## Invitations -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Les invitations expirent apres 5 minutes si elles ne sont pas acceptees +- Le joueur invite les voit dans son onglet Invitations en ouvrant /f +- Il n'y a pas de limite au nombre d'invitations que vous pouvez envoyer a la fois +- Votre faction peut accueillir jusqu'a 50 membres au total -## Promotions and Demotions +## Promotions et retrogradations -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Seul le Chef peut promouvoir ou retrograder +- /f promote eleve un Membre au rang d'Officier +- /f demote rabaisse un Officier au rang de Membre -## Transferring Leadership +## Transfert de leadership ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Le transfert de leadership est irreversible. Vous serez retrograde au rang d'Officier et le joueur cible deviendra le nouveau Chef. Assurez-vous de lui faire entierement confiance. `/f transfer ` -The target must be a current member of your faction. +La cible doit etre un membre actuel de votre faction. diff --git a/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md b/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md index 67bb5962..5d9cc43c 100644 --- a/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/fr-FR/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Roles et rangs -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Chaque faction possede trois roles dans une hierarchie stricte. Les roles superieurs heritent de toutes les capacites des roles inferieurs. --- -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +## Repartition des permissions + +| Action | Chef | Officier | Membre | +|--------|------|----------|--------| +| Construire dans le territoire | Oui | Oui | Oui | +| Utiliser le foyer de faction | Oui | Oui | Oui | +| Discussion de faction et d'allie | Oui | Oui | Oui | +| Inviter des joueurs | Oui | Oui | Non | +| Expulser des membres | Oui | Oui (Membres uniquement) | Non | +| Revendiquer / annuler une revendication | Oui | Oui | Non | +| Sur-revendiquer un territoire ennemi | Oui | Oui | Non | +| Definir le foyer de faction | Oui | Oui | Non | +| Supprimer le foyer de faction | Oui | Oui | Non | +| Gerer les relations (allie/ennemi) | Oui | Oui | Non | +| Consulter les journaux de faction | Oui | Oui | Non | +| Promouvoir en Officier | Oui | Non | Non | +| Retrograder un Officier | Oui | Non | Non | +| Renommer la faction | Oui | Non | Non | +| Definir la description / le tag / la couleur | Oui | Non | Non | +| Ouvrir / fermer la faction | Oui | Non | Non | +| Acceder aux parametres de la faction | Oui | Non | Non | +| Transferer le leadership | Oui | Non | Non | +| Dissoudre la faction | Oui | Non | Non | + +>[!NOTE] Les Officiers peuvent expulser des Membres mais ne peuvent pas expulser d'autres Officiers. Seul le Chef peut retirer des Officiers. --- -## Role Details +## Details des roles -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Chef -- Un par faction. Controle total sur tous les parametres, membres et territoires. Peut transferer la propriete a un autre membre. +- Officier -- Membres de confiance qui aident a gerer la faction. Peuvent inviter, expulser des membres, revendiquer des terres et gerer la diplomatie. +- Membre -- Le role par defaut en rejoignant. Peut construire dans le territoire, utiliser le foyer de faction et participer a la discussion de faction. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Promouvez vos membres les plus actifs et dignes de confiance au rang d'Officier pour qu'ils puissent aider a gerer le territoire et recruter de nouveaux joueurs. From 425cf98aff5a39c70884a10d6ea8ea7604c9126c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:16:43 -0700 Subject: [PATCH 69/76] i18n: add Brazilian Portuguese (pt-BR) help file translations Translate all 42 help markdown files into Brazilian Portuguese, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 54 +++--- .../help/admin/admin_config/world_settings.md | 52 +++--- .../admin_economy/treasury_management.md | 52 +++--- .../admin/admin_economy/upkeep_management.md | 50 ++--- .../help/admin/admin_factions/disbanding.md | 44 ++--- .../admin/admin_factions/managing_factions.md | 42 ++--- .../help/admin/admin_maintenance/backups.md | 66 +++---- .../help/admin/admin_maintenance/imports.md | 50 ++--- .../help/admin/admin_maintenance/updates.md | 54 +++--- .../admin/admin_overview/getting_started.md | 52 +++--- .../help/admin/admin_overview/permissions.md | 50 ++--- .../help/admin/admin_power/power_commands.md | 50 ++--- .../help/admin/admin_power/power_overrides.md | 62 +++--- .../admin/admin_reference/all_commands.md | 26 +-- .../admin/admin_reference/integrations.md | 58 +++--- .../help/admin/admin_zones/zone_basics.md | 38 ++-- .../help/admin/admin_zones/zone_commands.md | 60 +++--- .../help/admin/admin_zones/zone_flags.md | 38 ++-- .../Languages/pt-BR/help/combat/death.md | 40 ++-- .../Languages/pt-BR/help/combat/protection.md | 24 +-- .../pt-BR/help/combat/spawn_protection.md | 26 +-- .../Languages/pt-BR/help/combat/tagging.md | 28 +-- .../Languages/pt-BR/help/combat/zones.md | 26 +-- .../pt-BR/help/diplomacy/alliances.md | 40 ++-- .../Languages/pt-BR/help/diplomacy/enemies.md | 42 ++--- .../pt-BR/help/diplomacy/relations.md | 38 ++-- .../Languages/pt-BR/help/economy/commands.md | 30 +-- .../Languages/pt-BR/help/economy/funds.md | 38 ++-- .../Languages/pt-BR/help/economy/treasury.md | 22 +-- .../Languages/pt-BR/help/economy/upkeep.md | 38 ++-- .../pt-BR/help/power_land/claiming.md | 44 ++--- .../pt-BR/help/power_land/losing_territory.md | 50 ++--- .../pt-BR/help/power_land/territory_map.md | 42 ++--- .../help/power_land/understanding_power.md | 44 ++--- .../pt-BR/help/quick_ref/all_commands.md | 176 +++++++++--------- .../pt-BR/help/welcome/getting_started.md | 38 ++-- .../pt-BR/help/welcome/quick_tips.md | 50 ++--- .../pt-BR/help/welcome/what_are_factions.md | 36 ++-- .../pt-BR/help/your_faction/creating.md | 36 ++-- .../pt-BR/help/your_faction/joining.md | 38 ++-- .../pt-BR/help/your_faction/managing.md | 46 ++--- .../pt-BR/help/your_faction/roles.md | 64 +++---- 42 files changed, 977 insertions(+), 977 deletions(-) diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md index 95b6c952..4a2915a2 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Sistema de Configuração -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions usa um sistema de configuração modular em JSON com 11 arquivos de configuração. -## Admin Config Commands +## Comandos de Configuração Admin -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| Comando | Descrição | +|---------|-----------| +| `/f admin config` | Abrir a GUI do editor visual de configuração | +| `/f admin reload` | Recarregar todos os arquivos de configuração do disco | +| `/f admin sync` | Sincronizar dados de facção com o armazenamento | -## Configuration Files +## Arquivos de Configuração -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | +| Arquivo | Conteúdo | +|---------|----------| +| `factions.json` | Cargos, poder, reivindicações, combate, relações | +| `server.json` | Teleporte, salvamento automático, mensagens, GUI, permissões | +| `economy.json` | Tesouro, manutenção, configurações de transação | +| `backup.json` | Rotação e retenção de backups | +| `chat.json` | Formatação de chat de facção e aliados | +| `debug.json` | Categorias de log de debug | +| `faction-permissions.json` | Padrões de permissão por cargo | +| `announcements.json` | Transmissões de eventos e notificações de território | +| `gravestones.json` | Configurações de integração com lápides | +| `worldmap.json` | Modos de atualização do mapa do mundo | +| `worlds.json` | Sobrescritas de comportamento por mundo | ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. +>[!TIP] A GUI de configuração fornece um editor visual com descrições para cada configuração. Alterações são salvas imediatamente, mas algumas requerem `/f admin reload` para entrar em pleno efeito. -## Config Location +## Localização das Configurações -All files are stored in: +Todos os arquivos são armazenados em: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Edições manuais em JSON requerem `/f admin reload` para serem aplicadas. JSON inválido fará com que o arquivo seja ignorado com um aviso no log do servidor. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] A versão da configuração é rastreada em `server.json`. O plugin migra automaticamente configurações antigas na inicialização. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md index 47e8dffe..eea4ae15 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Configurações por Mundo -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions suporta configuração por mundo para reivindicação, PvP e comportamento de proteção. -## World Commands +## Comandos de Mundo -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| Comando | Descrição | +|---------|-----------| +| `/f admin world list` | Listar todas as sobrescritas de mundo | +| `/f admin world info ` | Mostrar configurações de um mundo | +| `/f admin world set ` | Definir uma configuração | +| `/f admin world reset ` | Resetar mundo para os padrões | -## Available Settings +## Configurações Disponíveis -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Configuração | Tipo | Descrição | +|--------------|------|-----------| +| claiming_enabled | boolean | Permitir reivindicações de facção neste mundo | +| pvp_enabled | boolean | Permitir combate PvP neste mundo | +| power_loss | boolean | Aplicar perda de poder ao morrer | +| build_protection | boolean | Aplicar proteção de construção em reivindicações | +| explosion_protection | boolean | Proteger reivindicações de explosões | -## World Whitelist / Blacklist +## Whitelist / Blacklist de Mundos -Control which worlds allow faction features through the `worlds.json` config file: +Controle quais mundos permitem recursos de facção através do arquivo de configuração `worlds.json`: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Modo whitelist**: Apenas mundos listados permitem reivindicação +- **Modo blacklist**: Todos os mundos permitem reivindicação exceto os listados ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Configurações de mundo são armazenadas em `worlds.json` e sobrescrevem os padrões globais de `factions.json`. -## Examples +## Exemplos - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- restaurar todos os padrões ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Desative reivindicação em mundos criativos ou de lobby para manter o sistema de facções focado na jogabilidade de sobrevivência. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Configurações por mundo têm prioridade sobre a configuração global, mas são sobrescritas por flags de zona dentro daquele mundo. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md index b219d330..cc226a88 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Gerenciamento do Tesouro -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Comandos de admin para gerenciar tesouros de facção. Requer a permissão `hyperfactions.admin.economy`. -## Treasury Commands +## Comandos do Tesouro -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| Comando | Descrição | +|---------|-----------| +| `/f admin economy balance ` | Ver saldo do tesouro da facção | +| `/f admin economy set ` | Definir saldo exato | +| `/f admin economy add ` | Adicionar fundos ao tesouro | +| `/f admin economy take ` | Remover fundos do tesouro | +| `/f admin economy reset ` | Resetar tesouro para zero | -## Examples +## Exemplos -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- verificar saldo +- `/f admin economy set Vikings 5000` -- definir para 5000 +- `/f admin economy add Vikings 1000` -- depositar 1000 +- `/f admin economy take Vikings 500` -- sacar 500 +- `/f admin economy reset Vikings` -- zerar saldo ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Use `/f admin info ` para ver a visão geral completa da economia incluindo histórico de transações junto com o saldo do tesouro. -## Use Cases +## Casos de Uso -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Cenário | Comando | +|---------|---------| +| Distribuição de prêmio de evento | `economy add ` | +| Penalidade por violação de regra | `economy take ` | +| Reset de economia após wipe | `economy reset ` | +| Compensação por bugs | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Alterações no tesouro são registradas no histórico de transações da facção. Modificações de admin são registradas com o nome do admin para prestação de contas. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Todos os comandos de admin de economia funcionam mesmo quando o módulo de economia está desativado na configuração. Os dados são armazenados independentemente do status do módulo. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..d673b421 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Gerenciamento de Manutenção -Faction upkeep charges factions periodically based on their territory and member count. +A manutenção de facção cobra das facções periodicamente com base em seu território e número de membros. -## Admin Controls +## Controles de Admin -Upkeep settings are managed through the economy config file or the admin config GUI. +As configurações de manutenção são gerenciadas através do arquivo de configuração de economia ou pela GUI de configuração do admin. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Abra o editor de configuração e navegue até as configurações de economia para ajustar os valores de manutenção. -## Default Upkeep Settings +## Configurações Padrão de Manutenção -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Configuração | Padrão | Descrição | +|--------------|--------|-----------| +| Manutenção ativada | false | Botão mestre do sistema | +| Intervalo de manutenção | 24h | Frequência da cobrança | +| Custo por reivindicação | 5.0 | Custo por chunk reivindicado por ciclo | +| Custo por membro | 0.0 | Custo por membro por ciclo | +| Período de carência | 72h | Facções novas são isentas | +| Dissolver se falida | false | Dissolução automática se não puder pagar | -## Monitoring Upkeep +## Monitorando a Manutenção -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Use `/f admin info ` para ver: +- Saldo atual do tesouro +- Custo estimado de manutenção por ciclo +- Tempo até a próxima cobrança de manutenção +- Se a facção pode arcar com a manutenção ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Revise as estatísticas de economia de todas as facções pelo painel de admin para identificar facções em risco de falência antes que a manutenção seja cobrada. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] A configuração de manutenção é armazenada em `economy.json`. Alterações feitas pela GUI de configuração entram em vigor após recarregar com `/f admin reload`. -## Upkeep Formula +## Fórmula de Manutenção -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Manutenção total** = (chunks reivindicados x custo por reivindicação) + (número de membros x custo por membro) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Ativar a manutenção em um servidor com facções existentes pode causar falências inesperadas. Considere definir um período de carência ou anunciar a mudança com antecedência. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md index 253e05ab..d1c830ea 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Dissolução Forçada -Admins can forcefully disband any faction, regardless of the leader's wishes. +Admins podem dissolver forçadamente qualquer facção, independentemente da vontade do líder. -## Command +## Comando `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Dissolve forçadamente a facção nomeada. Uma confirmação aparecerá antes da ação ser executada. -**Permission**: `hyperfactions.admin.disband` +**Permissão**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Dissolver uma facção é **irreversível**. Todas as reivindicações são liberadas, todos os membros são removidos, e a facção deixa de existir. Crie um backup antes. -## Consequences +## Consequências -When a faction is disbanded: +Quando uma facção é dissolvida: -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| Efeito | Descrição | +|--------|-----------| +| **Reivindicações** | Todo o território é liberado imediatamente | +| **Membros** | Todos os jogadores são removidos da lista | +| **Relações** | Todas as alianças e inimizades são removidas | +| **Tesouro** | Tratado conforme configurações de economia | +| **Base** | A base da facção é excluída | +| **Chat** | O histórico de chat da facção é removido | -## Best Practices +## Boas Práticas -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Sempre execute `/f admin backup create` antes de dissolver +2. Notifique os membros da facção quando possível +3. Documente o motivo para os registros do servidor +4. Verifique `/f admin info ` para revisar antes de agir ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Se o problema é com um membro específico, considere usar a GUI de admin de facções para transferir a liderança em vez de dissolver a facção inteira. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md index b00218c9..6b0a6673 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Gerenciando Facções -Admins can inspect and modify any faction on the server through the dashboard or commands. +Admins podem inspecionar e modificar qualquer facção no servidor através do painel ou comandos. -## Browsing Factions +## Navegando por Facções `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Abre o navegador de facções do admin. Veja todas as facções com contagem de membros, níveis de poder e território. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Abre o painel de informações do admin para uma facção específica com todos os detalhes e opções de gerenciamento. -## Modifying Faction Settings +## Modificando Configurações da Facção -With `hyperfactions.admin.modify` permission, you can: +Com a permissão `hyperfactions.admin.modify`, você pode: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Renomear** uma facção para resolver conflitos +- **Definir cor** para corrigir problemas de exibição +- **Alternar aberta/fechada** para sobrescrever a política de entrada +- **Editar descrição** para fins de moderação ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Use `/f admin who ` para descobrir a qual facção um jogador específico pertence e ver seus detalhes. -## Viewing Members and Relations +## Visualizando Membros e Relações -The admin info panel shows: +O painel de informações do admin mostra: -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| Seção | Detalhes | +|-------|----------| +| **Membros** | Lista completa com cargos e última vez visto | +| **Relações** | Todas as posições de aliado, inimigo e neutro | +| **Território** | Chunks reivindicados e balanço de poder | +| **Economia** | Saldo do tesouro e log de transações | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Comandos de inspeção de admin não notificam a facção sendo visualizada. Apenas modificações disparam alertas. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md index 84a331f7..407c054a 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Sistema de Backup -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions inclui backups automáticos e manuais com rotação GFS (Avô-Pai-Filho). -## Backup Commands +## Comandos de Backup -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| Comando | Descrição | +|---------|-----------| +| `/f admin backup create` | Criar um backup manual agora | +| `/f admin backup list` | Listar todos os backups disponíveis | +| `/f admin backup restore ` | Restaurar a partir de um backup | +| `/f admin backup delete ` | Excluir um backup específico | -**Permission**: `hyperfactions.admin.backup` +**Permissão**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Padrões de Rotação GFS -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Tipo | Retenção | Descrição | +|------|----------|-----------| +| Por hora | 24 | Últimos 24 snapshots por hora | +| Diário | 7 | Últimos 7 snapshots diários | +| Semanal | 4 | Últimos 4 snapshots semanais | +| Manual | 10 | Backups criados manualmente | +| Desligamento | 5 | Criados ao parar o servidor | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Backups de desligamento são ativados por padrão (`onShutdown=true`). Eles capturam o estado mais recente antes do servidor parar. -## Backup Contents +## Conteúdo do Backup -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Cada arquivo ZIP de backup contém: +- Todos os arquivos de dados de facção +- Dados de poder dos jogadores +- Definições de zonas +- Histórico de chat e dados de economia +- Dados de convites e solicitações de entrada +- Arquivos de configuração ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Restaurar um backup é destrutivo.** Ele substitui todos os dados atuais pelo conteúdo do backup. Quaisquer alterações feitas após a criação do backup serão perdidas. Sempre crie um backup novo antes de restaurar. -## Best Practices +## Boas Práticas -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Crie um backup manual antes de ações importantes de admin +2. Revise a retenção de backups em `backup.json` +3. Teste a restauração em um servidor de testes primeiro +4. Mantenha backups de desligamento ativados para recuperação de falhas diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md index e3bf7548..fb39bfb6 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Importação de Dados -Import faction data from other plugins to migrate your server to HyperFactions. +Importe dados de facção de outros plugins para migrar seu servidor para o HyperFactions. -## Import Command +## Comando de Importação `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Permissão**: `hyperfactions.admin.use` -## Supported Sources +## Fontes Suportadas -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| Fonte | Descrição | +|-------|-----------| +| `elbaphfactions` | Importar dados do ElbaphFactions | +| `hyfactions` | Importar dados do HyFactions v1 | -## Import Flags +## Flags de Importação -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| Flag | Descrição | +|------|-----------| +| `--dry-run` | Validar dados sem importar nada | +| `--overwrite` | Sobrescrever facções existentes com o mesmo nome | +| `--no-zones` | Pular dados de zona durante a importação | +| `--no-power` | Pular dados de poder durante a importação | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Sempre execute com `--dry-run` primeiro para pré-visualizar o que será importado e detectar problemas nos dados antes de confirmar as alterações. -## Import Process +## Processo de Importação -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Um backup pré-importação é criado automaticamente +2. Mapeamentos de nomes de jogadores são carregados +3. Facções, reivindicações e zonas são convertidas +4. Os dados são validados e salvos -## Examples +## Exemplos - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Usar `--overwrite` irá **substituir** qualquer facção existente que compartilhe um nome com uma facção importada. Dados de membros e reivindicações serão sobrescritos. Execute com `--dry-run` primeiro para identificar conflitos. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Alguns dados específicos da fonte (ex.: worker plots, farm plots) não têm equivalente no HyperFactions e serão registrados como avisos durante a importação. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md index f6dc2880..67a8be5a 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Verificação de Atualizações -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions pode verificar por novas versões e gerenciar a dependência HyperProtect-Mixin. -## Update Commands +## Comandos de Atualização -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| Comando | Descrição | +|---------|-----------| +| `/f admin update` | Verificar atualizações do HyperFactions | +| `/f admin update mixin` | Verificar/baixar HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Alternar download automático | +| `/f admin version` | Mostrar versão atual e informações de build | -## Release Channels +## Canais de Lançamento -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| Canal | Descrição | +|-------|-----------| +| **Stable** | Recomendado para servidores de produção | +| **Pre-release** | Acesso antecipado a recursos futuros | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] O verificador de atualizações apenas notifica sobre novas versões. Ele **não** instala atualizações do HyperFactions automaticamente. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin é o mixin de proteção recomendado que habilita flags avançadas de zona (explosões, propagação de fogo, manter inventário, etc.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` verifica a versão mais recente +e baixa se uma versão mais nova estiver disponível +- O download automático pode ser ativado ou desativado por servidor ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Após baixar uma nova versão do mixin, é necessário reiniciar o servidor para que as alterações entrem em vigor. -## Rollback Procedure +## Procedimento de Rollback -If an update causes issues: +Se uma atualização causar problemas: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Pare o servidor +2. Substitua o JAR do plugin pela versão anterior +3. Inicie o servidor +4. Verifique o funcionamento com `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Fazer downgrade pode requerer um reset de migração de configuração. Sempre mantenha backups antes de atualizar. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md index bf30a5b4..94b9ef17 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Primeiros Passos como Admin -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Bem-vindo à administração do HyperFactions. Este guia cobre seus primeiros passos após instalar o plugin. -## Opening the Admin Dashboard +## Abrindo o Painel de Admin `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Abre a GUI do painel de administração com acesso a todas as ferramentas de gerenciamento, editores de zona e configurações do servidor. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Você precisa da permissão **hyperfactions.admin.use** ou status de OP para acessar comandos de admin. -## Requirements +## Requisitos -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Com um plugin de permissões**: Conceda `hyperfactions.admin.use` +- **Sem um plugin de permissões**: O jogador deve ser um +operador do servidor (`adminRequiresOp=true` por padrão) -## First Steps After Install +## Primeiros Passos Após a Instalação -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Execute `/f admin` para verificar seu acesso +2. Abra **Config** para revisar as configurações padrão de facção +3. Crie uma **SafeZone** no spawn com `/f admin safezone Spawn` +4. Opcionalmente crie **WarZones** para arenas de PvP +5. Revise as configurações de **Backup** para garantir a segurança dos dados -## Admin Capabilities +## Capacidades de Admin -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | +| Área | O Que Você Pode Fazer | +|------|-----------------------| +| Facções | Inspecionar, modificar ou dissolver forçadamente qualquer facção | +| Zonas | Criar SafeZones e WarZones com flags personalizadas | +| Poder | Sobrescrever valores de poder de jogador/facção | +| Economia | Gerenciar tesouros de facção e manutenção | +| Config | Editar configurações ao vivo pela GUI ou recarregar do disco | +| Backups | Criar, restaurar e gerenciar backups de dados | +| Importações | Migrar dados de outros plugins de facção | ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +>[!TIP] Use `/f admin --text` para obter saída baseada em chat ao invés da GUI, útil para console ou automação. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md index 979e5543..78641939 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Permissões de Admin -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Todas as funcionalidades de admin são protegidas por nós de permissão no namespace `hyperfactions.admin`. -## Permission Nodes +## Nós de Permissão -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| Permissão | Descrição | +|-----------|-----------| +| `hyperfactions.admin.*` | Concede **todas** as permissões de admin | +| `hyperfactions.admin.use` | Acessar o painel `/f admin` | +| `hyperfactions.admin.reload` | Recarregar arquivos de configuração | +| `hyperfactions.admin.debug` | Alternar categorias de log de debug | +| `hyperfactions.admin.zones` | Criar, editar e excluir zonas | +| `hyperfactions.admin.disband` | Dissolver forçadamente qualquer facção | +| `hyperfactions.admin.modify` | Modificar configurações de qualquer facção | +| `hyperfactions.admin.bypass.limits` | Ignorar limites de reivindicação e poder | +| `hyperfactions.admin.backup` | Criar e restaurar backups | +| `hyperfactions.admin.power` | Sobrescrever valores de poder dos jogadores | +| `hyperfactions.admin.economy` | Gerenciar tesouros de facção | -## Fallback Behavior +## Comportamento de Fallback -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Quando **nenhum plugin de permissões** está instalado, as permissões de admin recorrem ao status de operador do servidor (OP). Isso é controlado por `adminRequiresOp` na configuração do servidor (padrão: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] O curinga `hyperfactions.admin.*` concede todas as permissões de admin. Use nós individuais para controle granular sobre sua equipe de staff. -## Permission Resolution Order +## Ordem de Resolução de Permissões -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. Provedor **VaultUnlocked** (se disponível) +2. Provedor **HyperPerms** (se disponível) +3. Provedor **LuckPerms** (se disponível) +4. **Verificação de OP** para nós de admin (fallback) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Sem um plugin de permissões e com `adminRequiresOp` desativado, comandos de admin ficam **abertos para todos os jogadores**. Sempre use um plugin de permissões em produção. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md index b2c9f463..d0961b07 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Comandos Admin de Poder -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Sobrescreva valores de poder de jogadores e facções. Todos os comandos requerem a permissão `hyperfactions.admin.power`. -## Player Power Commands +## Comandos de Poder do Jogador -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| Comando | Descrição | +|---------|-----------| +| `/f admin power set ` | Definir valor exato de poder | +| `/f admin power add ` | Adicionar poder ao jogador | +| `/f admin power remove ` | Remover poder do jogador | +| `/f admin power reset ` | Resetar para o poder inicial padrão | +| `/f admin power info ` | Ver detalhamento completo de poder | -## How Power Affects Factions +## Como o Poder Afeta as Facções -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +O poder total de uma facção é a soma do poder individual de todos os seus membros. Reivindicações de território requerem poder total suficiente para serem mantidas. -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Cenário | Efeito | +|---------|--------| +| Poder definido mais alto | Facção pode reivindicar mais território | +| Poder definido mais baixo | Facção pode ficar vulnerável a tomadas | +| Poder resetado | Retorna o jogador ao valor inicial padrão | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Reduzir o poder de um jogador pode fazer sua facção perder território se o poder total cair abaixo do número de chunks reivindicados. -## Examples +## Exemplos -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- definir para exatamente 50 +- `/f admin power add Steve 10` -- aumentar em 10 +- `/f admin power remove Steve 5` -- diminuir em 5 +- `/f admin power reset Steve` -- voltar ao padrão +- `/f admin power info Steve` -- mostrar detalhamento completo ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Use `/f admin power info ` para ver o poder atual, poder máximo e quaisquer sobrescritas ativas antes de fazer alterações. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md index 5469f903..606d4b62 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Sobrescritas de Poder -Special power commands that change how power behaves for specific players or factions. +Comandos especiais de poder que alteram o comportamento do poder para jogadores ou facções específicos. -## Override Commands +## Comandos de Sobrescrita -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| Comando | Descrição | +|---------|-----------| +| `/f admin power setmax ` | Definir limite máximo de poder personalizado | +| `/f admin power noloss ` | Alternar imunidade à penalidade de morte | +| `/f admin power nodecay ` | Alternar imunidade ao decaimento de poder offline | +| `/f admin power info ` | Ver todas as sobrescritas e detalhes de poder | -## Custom Max Power +## Poder Máximo Personalizado `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Define um limite máximo de poder pessoal para o jogador, sobrescrevendo o padrão do servidor. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Definir um máximo personalizado **não** altera o poder atual. Apenas muda o teto. O jogador ainda precisa ganhar poder até o novo limite. -## No-Loss Mode +## Modo Sem Perda `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Alterna a imunidade à perda de poder por morte. Quando ativado, o jogador **não** perderá poder ao morrer. -Useful for: -- New player protection periods -- Event participants -- Staff members +Útil para: +- Períodos de proteção para novos jogadores +- Participantes de eventos +- Membros do staff -## No-Decay Mode +## Modo Sem Decaimento `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Alterna a imunidade ao decaimento de poder offline. Quando ativado, o poder do jogador **não** diminuirá enquanto offline. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Útil para: +- Jogadores em ausência prolongada +- Membros VIP +- Proteção sazonal -## Power Info +## Informações de Poder `/f admin power info ` -Shows a complete breakdown: +Mostra um detalhamento completo: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Poder atual e poder máximo +- Sobrescritas ativas (noloss, nodecay, máximo personalizado) +- Hora da última morte e poder perdido +- Percentual de contribuição para a facção ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Todas as sobrescritas de poder persistem entre reinícios do servidor e são armazenadas no arquivo de dados do jogador. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md index bd0b0fa6..abf3dac9 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/all_commands.md @@ -1,13 +1,13 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Referência de Comandos Admin -Complete list of all `/f admin` subcommands with syntax and required permissions. +Lista completa de todos os subcomandos `/f admin` com sintaxe e permissões necessárias. -## Dashboard and General +## Painel e Geral -| Command | Permission | +| Comando | Permissão | |---------|-----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | @@ -15,9 +15,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Gerenciamento de Facções -| Command | Permission | +| Comando | Permissão | |---------|-----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | @@ -25,9 +25,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Gerenciamento de Zonas -| Command | Permission | +| Comando | Permissão | |---------|-----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | @@ -40,18 +40,18 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Poder e Economia -| Command | Permission | +| Comando | Permissão | |---------|-----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Manutenção -| Command | Permission | +| Comando | Permissão | |---------|-----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Todos os nós de permissão são prefixados com `hyperfactions.` (ex.: `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md index c39bfb3b..30ecdad3 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Integrações com Plugins -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions se integra com vários plugins externos através de dependências opcionais. Todas as integrações são opcionais e falham graciosamente se não estiverem disponíveis. -## Checking Integration Status +## Verificando o Status das Integrações `/f admin version` -Shows current version and detected integrations. +Mostra a versão atual e integrações detectadas. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +Abre o painel de gerenciamento de integrações com status detalhado para cada plugin detectado. + +## Tabela de Integrações + +| Plugin | Tipo | Descrição | +|--------|------|-----------| +| **HyperPerms** | Permissões | Sistema completo de permissões com grupos, herança e contexto | +| **LuckPerms** | Permissões | Provedor alternativo de permissões | +| **VaultUnlocked** | Permissões/Economia | Ponte de permissões e economia | +| **HyperProtect-Mixin** | Proteção | Habilita flags avançadas de zona (explosões, fogo, manter inventário) | +| **OrbisGuard-Mixins** | Proteção | Mixin alternativo para aplicação de flags de zona | +| **PlaceholderAPI** | Placeholders | 49 placeholders de facção para outros plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Provedor alternativo de placeholders | +| **GravestonePlugin** | Morte | Controle de acesso a lápides em zonas | +| **HyperEssentials** | Recursos | Flags de zona para homes, warps e kits | +| **KyuubiSoft Core** | Framework | Integração com biblioteca core | +| **Sentry** | Monitoramento | Rastreamento de erros e diagnósticos | + +## Prioridade do Provedor de Permissões + +1. **VaultUnlocked** (prioridade mais alta) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **Fallback de OP** (se nenhum provedor encontrado) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] As integrações são detectadas uma vez na inicialização usando reflexão. Os resultados são cacheados para a sessão. É necessário reiniciar o servidor após adicionar ou remover um plugin integrado. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Use `/f admin debug toggle integration` para habilitar log detalhado de integração para solução de problemas. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin é o mixin de proteção **recomendado**. Sem ele, 15 flags de zona não terão efeito. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md index 933a9b2d..4a533a48 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Conceitos Básicos de Zonas -Zones are admin-controlled territories with custom rules that override normal faction protection. +Zonas são territórios controlados por admins com regras personalizadas que substituem a proteção normal de facção. -## Zone Types +## Tipos de Zona -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Sem PvP, sem construção, sem dano. +Ideal para áreas de spawn e centros de comércio. +- **WarZone** -- PvP sempre ativado, sem construção. +Ideal para arenas e áreas de batalha disputadas. -## Creating Zones +## Criando Zonas `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Cria uma SafeZone e reivindica seu chunk atual. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Cria uma WarZone e reivindica seu chunk atual. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Após a criação, fique em chunks adicionais e use `/f admin zone claim ` para expandir a zona. -## Managing Zone Chunks +## Gerenciando Chunks da Zona `/f admin zone claim ` -Add the current chunk to the named zone. +Adiciona o chunk atual à zona nomeada. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Remove o chunk atual da zona nomeada. `/f admin zone radius ` -Claim a square of chunks around your position. +Reivindica um quadrado de chunks ao redor da sua posição. -## Deleting Zones +## Excluindo Zonas `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Exclui permanentemente a zona e libera todos os seus chunks reivindicados. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Excluir uma zona libera todos os seus chunks instantaneamente. Isso não pode ser desfeito sem uma restauração de backup. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Regras de zona **sempre substituem** regras de território de facção. Uma SafeZone dentro de terreno inimigo ainda é segura. diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md index 403b6b63..bd1bcf06 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Referência de Comandos de Zona -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Referência completa de todos os comandos de gerenciamento de zona. Todos requerem a permissão `hyperfactions.admin.zones`. -## Quick Creation +## Criação Rápida -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| Comando | Descrição | +|---------|-----------| +| `/f admin safezone ` | Criar uma SafeZone no chunk atual | +| `/f admin warzone ` | Criar uma WarZone no chunk atual | +| `/f admin removezone ` | Excluir uma zona e liberar chunks | -## Zone Management +## Gerenciamento de Zona -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | +| Comando | Descrição | +|---------|-----------| +| `/f admin zone create ` | Criar uma zona (safezone/warzone) | +| `/f admin zone delete ` | Excluir uma zona | +| `/f admin zone claim ` | Adicionar chunk atual à zona | +| `/f admin zone unclaim ` | Remover chunk atual da zona | +| `/f admin zone radius ` | Reivindicar raio quadrado de chunks | +| `/f admin zone list` | Listar todas as zonas com contagem de chunks | +| `/f admin zone notify ` | Alternar mensagens de entrada/saída | +| `/f admin zone title upper/lower ` | Definir texto do título da zona | +| `/f admin zone properties ` | Abrir GUI de propriedades da zona | -## Flag Management +## Gerenciamento de Flags -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| Comando | Descrição | +|---------|-----------| +| `/f admin zoneflag ` | Definir uma flag específica | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Use a **GUI de propriedades** da zona para um editor visual com toggles para cada flag, organizados por categoria. -## Examples +## Exemplos -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- criar proteção de spawn +- `/f admin zone radius Spawn 3` -- expandir para 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- permitir portas +- `/f admin zone notify Spawn true` -- mostrar mensagens de entrada diff --git a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md index 368a4ec9..49418905 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/pt-BR/help/admin/admin_zones/zone_flags.md @@ -1,26 +1,26 @@ --- id: admin_zone_flags --- -# Zone Flags +# Flags de Zona -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Zonas suportam **47 flags booleanas** em 10 categorias. Cada flag controla um comportamento específico dentro da zona. -## Flag Categories Overview +## Visão Geral das Categorias de Flags -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | +| Categoria | Quantidade | Flags Principais | +|-----------|------------|------------------| +| Combate | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Dano | 4 | fall_damage, explosion_damage, fire_spread | +| Morte | 2 | keep_inventory, power_loss | +| Construção | 4 | build_allowed, block_place, hammer_use | +| Interação | 13 | door_use, container_use, bench_use, npc_tame | +| Transporte | 3 | teleporter_use, portal_use, mount_entry | +| Itens | 4 | item_drop, item_pickup, invincible_items | +| Spawn de Mobs | 5 | mob_spawning, hostile/passive/neutral | +| Limpeza de Mobs | 4 | mob_clear, hostile/passive/neutral clear | +| Integração | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Valores Padrão (SafeZone vs WarZone) | Flag | SafeZone | WarZone | |------|----------|---------| @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Algumas flags requerem **HyperProtect-Mixin** para funcionar (ex.: keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Sem o mixin, essas flags não têm efeito mesmo quando ativadas. -## Setting Flags +## Definindo Flags `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Use `/f admin zone properties ` para um editor visual com toggles agrupados por categoria. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/death.md b/src/main/resources/Server/Languages/pt-BR/help/combat/death.md index 8690b43a..a26ee59f 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/combat/death.md +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Morte e Recuperação -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +Morrer tem consequências reais em facções. Cada morte custa poder pessoal, enfraquecendo a capacidade da sua facção de manter território. -## Power Loss +## Perda de Poder -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Cada morte custa -1.0 de poder do seu total pessoal. Isso reduz o poder combinado da facção. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Evento | Alteração de Poder | +|--------|-------------------| +| Morte (qualquer causa) | -1.0 | +| Regeneração online | +0.1 por minuto | +| Desconexão em combate | -1.0 (morto) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. -## Example Scenarios +## Cenários de Exemplo -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 membros com 10.0 de poder cada = 50 total, 20 reivindicações.* +*Um membro morre duas vezes: 8.0 de poder, total da facção 48.* +*Três membros morrem uma vez cada: total cai para 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Se o poder da sua facção cair abaixo da contagem de reivindicações, inimigos podem tomar seu território. -## Recovery +## Recuperação -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +O poder regenera a 0.1 por minuto enquanto online. Recuperar 1.0 de poder perdido leva cerca de 10 minutos. Múltiplas mortes acumulam, então evite lutas repetidas. --- -## All Death Types +## Todos os Tipos de Morte -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +A perda de poder se aplica a todas as mortes: PvP, mobs, dano de queda, afogamento e qualquer outra causa. Não existe maneira segura de morrer. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Defina uma base da facção com /f sethome para que membros possam se reagrupar rapidamente após morrer. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md b/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md index e564ec2d..8b9e9b82 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Proteção Territorial -Claimed territory provides several layers of defense for your faction's builds and resources. +Território reivindicado oferece várias camadas de defesa para as construções e recursos da sua facção. -## Block Protection +## Proteção de Blocos -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Apenas membros da facção podem colocar ou destruir blocos no seu território. Inimigos e neutros são impedidos de modificar qualquer coisa. -## Container Protection +## Proteção de Contêineres -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Baús, barris e outros contêineres estão protegidos. Apenas os membros da sua facção podem abrir ou interagir com armazenamento em chunks reivindicados. -## Entry Alerts +## Alertas de Entrada -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Quando um não-membro entra no seu território reivindicado, membros online da facção recebem uma notificação com o nome e localização do intruso. --- -## Ally Access +## Acesso de Aliados -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Aliados não podem construir ou destruir blocos no seu território por padrão. Dano entre aliados também é desativado, então jogadores aliados não podem se machucar. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] O território protege blocos, não jogadores. PvP no seu próprio território depende da relação do atacante com sua facção. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Mantenha suas reivindicações conectadas e evite chunks isolados que são mais difíceis de defender. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md index f0b2ab76..b95ae7cd 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Proteção de Spawn -After respawning from death, you receive temporary protection to prevent spawn camping. +Após renascer de uma morte, você recebe proteção temporária para evitar spawn camping. -## How It Works +## Como Funciona -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- A proteção dura 5 segundos após renascer +- Você não pode receber dano durante este período +- Um indicador visual mostra seu status de proteção -## Protection Breaks +## A Proteção é Cancelada -Spawn protection ends early if you: +A proteção de spawn termina antecipadamente se você: -- Attack another player or entity -- Move from your spawn position +- Atacar outro jogador ou entidade +- Se mover da sua posição de spawn -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Isso previne abuso. Você não pode atacar outros enquanto invulnerável. Uma vez que tomar qualquer ação, a proteção cai e as regras normais de combate se aplicam. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Use seu tempo de proteção para avaliar a situação antes de se mover. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md b/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md index e45cbdb3..f5cb11ef 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Marcação de Combate -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Quando você ataca ou é atacado por outro jogador, você fica marcado por combate por 15 segundos. -## While Tagged +## Enquanto Marcado -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Sem teleportes /f home ou /f stuck +- Sem comandos de teleporte do servidor +- A marcação reseta a cada nova ação de combate +- Um temporizador exibe a duração restante da marcação --- -## Logout Penalty +## Penalidade por Desconexão ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Desconectar enquanto marcado por combate mata seu personagem e você perde 1.0 de poder. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Seus itens caem onde você desconectou e inimigos podem saqueá-los. Sempre espere a marcação expirar. -## How the Timer Works +## Como o Temporizador Funciona -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +O temporizador de marcação de combate aparece na tela quando você entra em combate. Cada novo golpe o reseta para 15 segundos. Quando chega a zero, todas as restrições são removidas. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Desengaje e espere o temporizador acabar se precisar teleportar. diff --git a/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md b/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md index d1d957d2..376e1dfb 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md +++ b/src/main/resources/Server/Languages/pt-BR/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Zonas Especiais -Admins can designate areas with special rules that override normal faction territory protection. +Administradores podem designar áreas com regras especiais que substituem a proteção normal de território de facção. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Sem dano PvP, sem destruição de blocos por não-admins. Ideal para áreas de spawn, centros de comércio e áreas de preparação para eventos. Jogadores não podem ser feridos aqui. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +PvP sempre ativado. Sem proteção de blocos. Áreas de batalha aberta onde vale tudo. Você não recebe benefícios de proteção territorial em uma WarZone. --- -## Zone Comparison +## Comparação de Zonas -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| Recurso | SafeZone | WarZone | Terreno de Facção | +|---------|----------|---------|-------------------| +| PvP | Desativado | Sempre Ligado | Baseado em relação | +| Destruir Blocos | Desativado | Permitido | Apenas Membros | +| Contêineres | Protegidos | Abertos | Apenas Membros | +| Melhor Para | Spawn/Comércio | Arenas | Bases | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Regras de zona sempre substituem regras de território de facção. Um chunk reivindicado dentro de uma WarZone segue as regras da WarZone. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Verifique seu mapa de território com /f map para ver os limites das zonas. diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md index 45da7756..c56d8266 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Formando Alianças -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Alianças são acordos mútuos entre duas facções que oferecem benefícios de proteção e cooperação. --- -## How to Form an Alliance +## Como Formar uma Aliança `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Envia um pedido de aliança para a facção alvo. A aliança só entra em vigor quando ambos os lados concordarem. Um Oficial ou Líder da outra facção também deve executar o mesmo comando mirando sua facção para confirmar. -## How to Break an Alliance +## Como Romper uma Aliança `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Qualquer um dos lados pode encerrar unilateralmente uma aliança resetando a relação para neutro. --- -## Alliance Benefits +## Benefícios da Aliança -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Benefício | Detalhes | +|-----------|----------| +| Sem fogo amigo | Jogadores aliados não podem causar dano uns aos outros | +| Visibilidade compartilhada no mapa | Território aliado aparece em azul no mapa de território | +| Interação no território | Aliados podem usar portas, assentos e transporte no seu território | +| Chat de aliados | Alterne para o modo de chat de aliados para comunicação entre facções | +| Proteção contra tomadas | Aliados não podem tomar o território um do outro | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Sua facção pode ter até 10 alianças ao mesmo tempo. Escolha seus aliados com sabedoria. --- -## Alliance Etiquette +## Etiqueta de Aliança ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Comunicação é fundamental. Antes de enviar um pedido de aliança, considere entrar em contato com o líder da outra facção para discutir termos. Uma aliança forte é construída sobre benefício mútuo, não apenas conveniência. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Alianças funcionam nos dois sentidos -- se você se beneficia da proteção, seus aliados esperam o mesmo +- Romper uma aliança durante guerra pode prejudicar a reputação da sua facção +- Facções aliadas podem coordenar reivindicações de território para criar fronteiras defensáveis diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md index 70688ad4..0b3bb47b 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Facções Inimigas -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Declarar um inimigo é uma ação unilateral que imediatamente habilita PvP e agressão territorial contra a facção alvo. Nenhum acordo é necessário. --- -## Declaring an Enemy +## Declarando um Inimigo `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Marca instantaneamente a facção alvo como sua inimiga. Isso entra em vigor imediatamente -- nenhuma confirmação do outro lado é necessária. Requer cargo de Oficial ou superior. -## Resetting to Neutral +## Resetando para Neutro `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Encerra o status de inimigo e reseta a relação para neutro. Também requer Oficial+ e entra em vigor imediatamente. --- -## What Enemy Status Enables +## O Que o Status de Inimigo Habilita -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| Efeito | Detalhes | +|--------|----------| +| PvP no território | PvP completo é habilitado no território de ambas as facções | +| Tomada de território | Você pode tomar chunks deles se estiverem em déficit de poder | +| Marcação no mapa | Território inimigo aparece em vermelho no mapa de território | +| Sem proteção | A proteção padrão de território não impede PvP inimigo | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Declarar um inimigo é uma decisão séria. Os membros deles também podem lutar com você no seu próprio território após a declaração. --- -## Strategic Considerations +## Considerações Estratégicas -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Declarações de inimizade são unilaterais -- você pode declarar sem o consentimento deles, mas eles também passam a te ver como hostil +- Antes de declarar, verifique o poder do alvo com /f info. Se eles forem fortes, você pode perder território em vez de ganhar +- Enfraqueça inimigos através de combate repetido para drenar o poder deles, depois tome seu terreno +- Não há limite de quantos inimigos você pode ter, mas lutar em múltiplas frentes é arriscado ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Use /f neutral para desescalar conflitos. Às vezes uma paz estratégica é mais valiosa do que guerra contínua. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Se você estiver aliado a uma facção e declará-la como inimiga, a aliança é rompida primeiro. diff --git a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md index 89711eee..d11e6dbb 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/pt-BR/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Relações entre Facções -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Cada par de facções tem uma relação diplomática que determina como elas interagem. Existem três estados: Aliado, Inimigo e Neutro. --- -## Relation Comparison +## Comparação de Relações -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| Efeito | Aliado | Neutro | Inimigo | +|--------|--------|--------|---------| +| PvP no território | Desativado | Regras padrão | Ativado | +| Proteção territorial | Proteção mútua | Proteção padrão | Pode tomar se enfraquecido | +| Fogo amigo | Desativado | N/A | Ativado em todo lugar | +| Cor no mapa | Azul | Cinza | Vermelho | +| Como definir | Acordo mútuo | Estado padrão | Declaração unilateral | +| Acesso ao chat | Canal de chat de aliados | Nenhum | Nenhum | --- -## Viewing Relations +## Visualizando Relações `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Mostra todas as suas alianças atuais, inimigos e quaisquer pedidos de aliança pendentes. -## How Relations Work +## Como as Relações Funcionam -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutro é o estado padrão entre todas as facções. Regras normais do servidor se aplicam. +- Aliança requer que ambas as facções concordem. Qualquer lado pode rompê-la unilateralmente. +- Inimigo é declarado unilateralmente. Nenhum acordo necessário -- a outra facção é imediatamente marcada como sua inimiga. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Relações são gerenciadas por Oficiais e Líderes. Membros podem visualizar relações mas não podem alterá-las. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Use /f relations regularmente para acompanhar o cenário diplomático. Saber quem são seus inimigos ajuda a se preparar para conflitos territoriais. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md b/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md index 020190cd..62e531e0 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Comandos de Economia -Quick reference for all faction economy commands. +Referência rápida de todos os comandos de economia de facção. -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f balance | Ver saldo do tesouro | Qualquer | +| /f deposit (amount) | Depositar no tesouro | Qualquer | +| /f withdraw (amount) | Sacar do tesouro | Oficial+ | +| /f money transfer (faction) (amount) | Transferir para outra facção | Oficial+ | +| /f money log [page] | Ver histórico de transações | Oficial+ | --- -## Command Aliases +## Aliases de Comandos -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance também pode ser usado como /f bal +- /f deposit e /f withdraw aceitam valores decimais -## Role Requirements +## Requisitos de Cargo -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Comandos de saque e transferência são restritos a Oficiais e Líderes. Todos os outros comandos de economia estão disponíveis para qualquer membro da facção. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Use /f money log para revisar depósitos, saques e transferências recentes com data e hora. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md b/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md index 4fe4539c..ab85b343 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Gerenciando Fundos -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Membros da facção trabalham juntos para manter o tesouro abastecido através de depósitos, saques e transferências. -## Depositing +## Depositando -Any member can deposit personal funds into the faction treasury. +Qualquer membro pode depositar fundos pessoais no tesouro da facção. `/f deposit ` -Deposit from your personal balance into the treasury. +Deposita do seu saldo pessoal para o tesouro. -## Withdrawing +## Sacando -Officers and the Leader can withdraw funds back to their personal balance. +Oficiais e o Líder podem sacar fundos de volta para o saldo pessoal. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Saca do tesouro para o seu saldo. (Oficial+) -## Transferring +## Transferindo -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Oficiais podem transferir fundos diretamente entre tesouros de facções para acordos comerciais ou diplomacia. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Envia fundos para o tesouro de outra facção. (Oficial+) --- -## Fees +## Taxas -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Transação | Taxa | +|-----------|------| +| Depósito | 0% | +| Saque | 0% | +| Transferência | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] As taxas são configuráveis pelo servidor e podem diferir dos valores padrão mostrados acima. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Todas as transações são registradas. Use /f money log para revisar atividades recentes. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md b/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md index e4e7307b..a057706a 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Tesouro da Facção -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Toda facção tem um tesouro compartilhado que serve como o banco da facção. Os fundos são usados para custos de manutenção, manutenção de território e operações da facção. -## Starting Balance +## Saldo Inicial -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Facções novas começam com 0 no tesouro. Membros devem depositar fundos para acumular reservas. -## Who Can Manage +## Quem Pode Gerenciar -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Qualquer membro pode depositar fundos +- Oficiais e Líder podem sacar e transferir +- O Líder tem controle total do tesouro --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Verifica o saldo atual do tesouro da sua facção. Também disponível como /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Contribua regularmente para manter sua facção financiada. Custos de manutenção territorial podem esvaziar um tesouro vazio rapidamente. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Todas as transações do tesouro são registradas e podem ser revisadas por oficiais. diff --git a/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md b/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md index 8a2d12e4..fb53c805 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/pt-BR/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Manutenção Territorial -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Facções devem pagar manutenção contínua para manter seu território reivindicado. Isso impede acúmulo de terras e mantém o mapa dinâmico. -## Upkeep Costs +## Custos de Manutenção -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Configuração | Padrão | +|--------------|--------| +| Custo por chunk | 2.0 por ciclo | +| Intervalo de pagamento | A cada 24 horas | +| Chunks gratuitos | 3 (sem custo) | +| Modo de escala | Taxa fixa | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Seus primeiros 3 chunks são gratuitos. Além disso, cada chunk reivindicado adicional custa 2.0 por ciclo de pagamento. -## Auto-Pay +## Pagamento Automático -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +O pagamento automático é ativado por padrão. O sistema deduz automaticamente a manutenção do seu tesouro a cada intervalo. Nenhuma ação manual necessária. --- -## Grace Period +## Período de Carência -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Se o seu tesouro não puder cobrir a manutenção, um período de carência de 48 horas começa. Um aviso é enviado 6 horas antes das reivindicações começarem a ser perdidas. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Se a manutenção permanecer não paga após o período de carência, sua facção perde 1 reivindicação por ciclo até que os custos sejam cobertos ou todas as reivindicações extras tenham acabado. -## Example +## Exemplo -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Uma facção com 8 reivindicações paga por 5 chunks (8 menos 3 gratuitos). A 2.0 por chunk, isso dá 10.0 por ciclo.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Mantenha seu tesouro acima do custo de manutenção. Use /f balance para verificar suas reservas. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md index f70427cb..9fbf2c04 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Reivindicando Território -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Reivindicar um chunk o protege sob o controle da sua facção. Apenas membros da facção podem construir, destruir ou acessar contêineres dentro de território reivindicado. --- -## How to Claim +## Como Reivindicar `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Fique no chunk que deseja reivindicar e execute este comando. O chunk é protegido imediatamente. Requer cargo de Oficial ou superior. -## How to Unclaim +## Como Liberar `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Libera o chunk em que você está de volta para a natureza. Também requer Oficial+. --- -## Claim Rules +## Regras de Reivindicação -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Regra | Padrão | +|-------|--------| +| Custo de poder por reivindicação | 2.0 de poder | +| Máximo de reivindicações | 100 por facção | +| Apenas adjacente | Não (você pode reivindicar em qualquer lugar) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Cada reivindicação custa 2.0 de poder para manter. Uma facção com 50 de poder total pode manter até 25 reivindicações com segurança. --- -## What Protection Provides +## O Que a Proteção Oferece -Inside claimed territory, the following is enforced by default: +Dentro de território reivindicado, o seguinte é aplicado por padrão: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Não-membros não podem destruir, colocar ou interagir com blocos +- Aliados podem usar portas, assentos e transporte, mas não podem destruir ou colocar blocos +- Membros e Oficiais têm acesso total para construir, destruir e usar tudo +- Acesso a contêineres (baús, caixas) é restrito apenas a membros ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Você também pode reivindicar diretamente pelo mapa de território. Abra /f map e clique em chunks não reivindicados para reivindicá-los. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Não expanda demais. Se sua facção perder poder por mortes, reivindicações além do seu orçamento de poder ficam vulneráveis a tomadas de território. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md index ea39186b..a876e016 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Perdendo Território -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Quando o poder total de uma facção cai abaixo do custo das suas reivindicações, ela se torna vulnerável. Inimigos podem tomar chunks diretamente de você. --- -## How Overclaiming Works +## Como Funciona a Tomada de Território `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Um Oficial ou Líder de uma facção inimiga fica no seu chunk reivindicado e executa este comando. Se sua facção estiver em déficit de poder, o chunk é transferido para a facção deles. -## The Math +## A Matemática -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Cada reivindicação custa 2.0 de poder para manter. Se o seu poder total cair abaixo desse limite, os chunks em déficit ficam vulneráveis. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] A tomada de território é permanente. Uma vez que um inimigo toma um chunk, você precisa reivindicá-lo novamente (ou tomá-lo de volta se eles enfraquecerem). --- -## Example Scenario +## Cenário de Exemplo -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Fator | Valor | +|-------|-------| +| Membros | 5 jogadores | +| Poder por membro | 10 cada (inicial) | +| Poder total | 50 | +| Reivindicações | 30 chunks | +| Poder necessário (30 x 2.0) | 60 | +| Déficit | 10 de poder faltando | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +Neste exemplo, a facção já está vulnerável desde o início. Inimigos poderiam tomar até 5 chunks (10 de déficit / 2.0 por reivindicação) antes que a facção atinja o equilíbrio. --- -## How to Prevent Overclaiming +## Como Prevenir Tomadas de Território -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Não expanda demais -- sempre mantenha o poder total acima do custo das reivindicações com uma margem +- Fique ativo -- poder só regenera enquanto online (+0.1/min) +- Evite mortes desnecessárias -- cada morte custa 1.0 de poder +- Recrute mais membros -- mais jogadores significa mais poder total +- Libere chunks não utilizados -- libere poder com /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Verifique seu status de poder regularmente com /f power. Se seu poder total estiver próximo do custo das reivindicações, considere liberar chunks menos importantes antes de uma guerra. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md index 207c041d..540be293 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# O Mapa de Território -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +O mapa de território oferece uma visão aérea dos chunks reivindicados na sua região, mostrando quais facções controlam o terreno ao seu redor. --- -## Opening the Map +## Abrindo o Mapa `/f map` -Opens the territory map GUI centered on your current location. +Abre a GUI do mapa de território centralizada na sua localização atual. --- -## Color Legend +## Legenda de Cores -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Cor | Significado | +|-----|-------------| +| [#55FF55] Cor da sua facção | Território reivindicado pela sua facção | +| [#5555FF] Azul | Território de facção aliada | +| [#FF5555] Vermelho | Território de facção inimiga | +| [#AAAAAA] Cinza | Território de facção neutra | +| [#333333] Escuro | Natureza (terreno não reivindicado) | +| [#FFAA00] Dourado | Zonas especiais (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] A cor da sua facção no mapa corresponde à cor que você definiu nas configurações de cor da facção. Aliados e inimigos usam cores fixas para fácil identificação. --- -## Click to Claim +## Clique para Reivindicar -The map is not just for viewing -- you can interact with it directly. +O mapa não serve apenas para visualizar -- você pode interagir com ele diretamente. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Clique em um chunk não reivindicado para reivindicá-lo (requer cargo de Oficial+ e poder suficiente) +- Clique em um chunk reivindicado para ver qual facção é dona +- Use scroll ou arraste para explorar a área ao seu redor ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] O mapa é a maneira mais fácil de planejar a expansão do seu território. Procure áreas não reivindicadas perto da sua base e reivindique estrategicamente para criar uma fronteira contígua. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] O mapa mostra uma área fixa ao redor da sua posição. Mova-se para um local diferente e reabra-o para ver outras partes do mundo. diff --git a/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md index ae158ed5..af7b5303 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/pt-BR/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Entendendo o Poder -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Poder é o recurso principal que determina quanto território sua facção pode manter. Cada jogador tem poder pessoal que contribui para o total da facção. --- -## Default Power Values +## Valores Padrão de Poder -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Configuração | Valor | +|--------------|-------| +| Poder máximo por jogador | 20 | +| Poder inicial | 10 | +| Penalidade por morte | -1.0 por morte | +| Recompensa por abate | 0.0 | +| Taxa de regeneração | +0.1 por minuto (enquanto online) | +| Custo de poder por reivindicação | 2.0 | +| Desconexão enquanto marcado | -1.0 adicional | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Estes são valores padrão. O administrador do seu servidor pode ter configurado valores diferentes. -## How It Works +## Como Funciona -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +O poder total da sua facção é a soma do poder pessoal de cada membro. O poder necessário é o número de reivindicações multiplicado por 2.0. Enquanto o poder total ficar acima do poder necessário, seu território está seguro. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] O poder regenera passivamente a 0.1 por minuto enquanto você estiver online. Nessa taxa, recuperar 1.0 de poder leva cerca de 10 minutos. --- -## Checking Your Power +## Verificando Seu Poder `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Mostra seu poder pessoal, o poder total da sua facção e quanto é necessário para manter as reivindicações atuais. -## The Danger Zone +## A Zona de Perigo -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Se o poder total cair abaixo da quantidade necessária para suas reivindicações, sua facção fica vulnerável. Inimigos podem tomar seus chunks. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Múltiplas mortes em um curto período podem escalar rapidamente. Se você tem 5 membros cada um com 10 de poder (50 total) e 20 reivindicações (40 necessários), apenas 5 mortes na equipe reduzem para 45 -- ainda seguro. Mas 11 mortes colocam em 39, abaixo do limite de 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Mantenha uma margem de poder. Não reivindique cada chunk que puder pagar -- deixe espaço para algumas mortes sem ficar vulnerável. diff --git a/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md index 0540d550..d76261da 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/pt-BR/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | +# Todos os Comandos + +## Principal + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f | Abrir menu de facções | Qualquer | +| /f help | Abrir central de ajuda | Qualquer | +| /f create (name) | Criar uma facção | Qualquer | +| /f disband | Dissolver sua facção | Líder | +| /f leave | Sair da sua facção | Qualquer | + +## Membros + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f invite (player) | Convidar um jogador | Oficial+ | +| /f accept [faction] | Aceitar um convite | Qualquer | +| /f request (faction) | Solicitar entrada | Qualquer | +| /f kick (player) | Remover um membro | Oficial+ | +| /f promote (player) | Promover a Oficial | Líder | +| /f demote (player) | Rebaixar a Membro | Líder | +| /f transfer (player) | Transferir liderança | Líder | + +## Território + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f claim | Reivindicar chunk atual | Oficial+ | +| /f unclaim | Liberar chunk atual | Oficial+ | +| /f overclaim | Tomar chunk enfraquecido | Oficial+ | +| /f map | Abrir mapa de território | Qualquer | + +## Teleporte + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f home | Teleportar para base da facção | Qualquer | +| /f sethome | Definir base da facção | Oficial+ | +| /f delhome | Excluir base da facção | Oficial+ | +| /f stuck | Escapar de território inimigo | Qualquer | + +## Informações + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f info [faction] | Ver detalhes da facção | Qualquer | +| /f list | Explorar todas as facções | Qualquer | +| /f members | Ver lista de membros | Qualquer | +| /f who [player] | Ver info do jogador | Qualquer | +| /f power [player] | Verificar níveis de poder | Qualquer | +| /f invites | Gerenciar convites/solicitações | Qualquer | +| /f relations | Ver relações diplomáticas | Qualquer | + +## Diplomacia + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f ally (faction) | Solicitar aliança | Oficial+ | +| /f enemy (faction) | Declarar inimigo | Oficial+ | +| /f neutral (faction) | Resetar para neutro | Oficial+ | + +## Configurações + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f settings | Abrir GUI de configurações | Oficial+ | +| /f rename (name) | Renomear facção | Líder | +| /f desc [text] | Definir descrição | Oficial+ | +| /f color (code) | Definir cor da facção | Oficial+ | +| /f open | Permitir entrada de qualquer um | Líder | +| /f close | Exigir convite | Líder | + +## Economia + +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f balance | Ver tesouro | Qualquer | +| /f deposit (amount) | Depositar fundos | Qualquer | +| /f withdraw (amount) | Sacar fundos | Oficial+ | +| /f money transfer (faction) (amt) | Transferir fundos | Oficial+ | +| /f money log [page] | Histórico de transações | Oficial+ | ## Chat -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| Comando | Descrição | Cargo | +|---------|-----------|-------| +| /f c | Alternar modo de chat | Qualquer | +| /f c f | Definir chat de facção | Qualquer | +| /f c a | Definir chat de aliados | Qualquer | +| /f c off | Definir chat público | Qualquer | diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md index 2155ff0c..9421b5fb 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Primeiros Passos -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Bem-vindo ao HyperFactions! Veja como começar a jogar em poucos passos. --- -## Step 1: Open the Faction Menu +## Passo 1: Abra o Menu de Facções -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Digite /f para abrir a GUI principal de facções. Este é o seu centro para tudo -- navegar por facções, criar a sua própria e gerenciar convites. -## Step 2: Choose Your Path +## Passo 2: Escolha Seu Caminho -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Opção | Como | +|-------|------| +| Explorar facções abertas | Clique em Explorar no menu e aperte Entrar em qualquer facção aberta. | +| Aceitar um convite | Verifique a aba Convites. Se alguém te convidou, clique em Aceitar. | +| Criar a sua própria | Clique em Criar Facção, escolha um nome, e você será o Líder. | -## Step 3: Explore Your Faction +## Passo 3: Explore Sua Facção -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Uma vez que estiver em uma facção, você verá o Painel da Facção com sua lista de membros, mapa de território, relações e configurações. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Se você é novato, tente entrar em uma facção existente primeiro. Você vai aprender mais rápido com membros experientes ao seu redor. --- -## Essential First Commands +## Comandos Essenciais -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Abre a GUI de facções +- /f home -- Teleporta para a base da sua facção +- /f c -- Alterna o modo de chat entre Normal, Facção e Aliados +- /f map -- Visualiza o mapa de territórios ao seu redor ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Você também pode digitar /f help no chat para uma referência rápida de comandos a qualquer momento. diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md index dcd1df1a..38194991 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Dicas Rápidas -Handy advice organized by category to help you thrive. +Conselhos úteis organizados por categoria para ajudar você a prosperar. --- -## Territory +## Território -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Reivindique terrenos ao redor da sua base cedo com `/f claim` -- construções em áreas não reivindicadas **não têm proteção** +- Cada reivindicação custa **2.0 de poder** para manter, então não expanda demais além do que seus membros podem sustentar +- Use `/f map` para explorar reivindicações próximas e encontrar locais seguros para construir +- Libere chunks que não precisa mais com `/f unclaim` para liberar poder -## Combat +## Combate -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Morrer custa **1.0 de poder** -- evite lutas desnecessárias quando sua facção estiver perto do limite de reivindicações +- Você tem **5 segundos de proteção de spawn** após renascer +- O marcador de combate dura **15 segundos** -- desconectar enquanto marcado custa poder extra +- Fogo amigo é **desativado** entre membros da facção e aliados por padrão ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Desconectar enquanto marcado por combate causa perda adicional de poder (1.0 por desconexão). Fique e lute ou escape primeiro. ## Social -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Use `/f c` para alternar entre modos de chat para que conversas da facção fiquem privadas +- Convide jogadores confiáveis com `/f invite ` -- convites expiram após **5 minutos** +- Forme alianças com `/f ally ` para proteção mútua e visibilidade compartilhada no mapa +- Verifique `/f relations` para ver seu status diplomático completo -## Economy +## Economia ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Se o servidor tiver economia habilitada, sua facção pode acumular um tesouro. Membros podem depositar, mas apenas Oficiais e Líderes podem sacar ou transferir fundos. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Deposite fundos pela GUI do tesouro para fortalecer sua facção +- Uma facção mais rica pode arcar com mais reivindicações e se recuperar de reveses mais rápido -## General +## Geral -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Digite `/f` a qualquer momento para abrir o painel da sua facção -- tudo é acessível por lá +- Promova membros ativos a Oficial para que possam ajudar a reivindicar e gerenciar território +- Mantenha sua facção ativa -- poder só regenera enquanto jogadores estão **online** diff --git a/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md index 5fedf54c..84239612 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/pt-BR/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# O Que São Facções? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Facções são equipes criadas por jogadores que reivindicam território, constroem bases e competem por dominância. Quando você entra ou cria uma facção, ganha acesso a terrenos protegidos, uma base compartilhada, chat privado e ferramentas diplomáticas. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Facções é tudo sobre trabalho em equipe. Quanto mais membros ativos você tiver, mais forte sua facção se torna. --- -## Core Mechanics +## Mecânicas Principais -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Mecânica | O Que Faz | +|----------|-----------| +| Poder | Cada jogador gera poder ao longo do tempo (máx. 20). O poder total da sua facção determina quanto terreno você pode manter. | +| Reivindicações | Chunks reivindicados são protegidos -- apenas membros podem construir, destruir ou abrir contêineres dentro deles. Cada reivindicação custa 2.0 de poder para manter. | +| Relações | Facções podem formar alianças para proteção mútua ou declarar inimigos para habilitar PvP e agressão territorial. | +| Cargos | Três patentes -- Líder, Oficial, Membro -- cada uma com diferentes capacidades. | --- -## How Strength Works +## Como a Força Funciona -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +A força da sua facção vem dos seus membros. Cada jogador começa com 10 de poder e regenera até 20 enquanto estiver online. Morrer custa poder. Se o poder total da facção cair abaixo do custo das suas reivindicações, inimigos podem tomar seu território. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Uma única morte custa 1.0 de poder. Múltiplas mortes em um curto período podem deixar sua facção vulnerável a tomadas de território. --- -## Diplomacy at a Glance +## Diplomacia Resumida -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Aliados** -- Acordos mútuos que impedem fogo amigo e protegem o território um do outro +- **Inimigos** -- Declarações unilaterais que habilitam PvP no território de cada um e permitem tomadas de território +- **Neutros** -- O estado padrão entre todas as facções com regras normais ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Você pode gerenciar tudo isso pela GUI dentro do jogo digitando `/f` ou por comandos no chat. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md index e1eaa33b..f7a7e17a 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Criando uma Facção -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Criar sua própria facção faz de você o Líder com controle total sobre configurações, membros e território. --- -## How to Create +## Como Criar `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Isso cria sua facção e imediatamente abre o Painel da Facção onde você pode começar a convidar membros, reivindicar terrenos e ajustar configurações. -## Name Rules +## Regras de Nome -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Regra | Requisito | +|-------|-----------| +| Tamanho | Entre 3 e 24 caracteres | +| Caracteres | Apenas letras, números e espaços | +| Exclusividade | Duas facções não podem ter o mesmo nome | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Escolha seu nome com cuidado. Renomear depois requer permissões de Líder e pode ter um tempo de espera. --- -## What Happens on Creation +## O Que Acontece ao Criar -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Você se torna o Líder (cargo mais alto) +- Sua facção começa com 0 reivindicações e seu poder pessoal (10 por padrão) +- O painel da facção abre automaticamente +- Você pode imediatamente convidar jogadores, reivindicar território e definir uma base da facção ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Se o servidor tiver integração com economia habilitada, criar uma facção pode custar dinheiro. O custo de criação é definido pelo administrador do servidor. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Após criar, suas primeiras prioridades devem ser: convidar amigos, encontrar um local para a base e reivindicá-lo. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md index 7dbabdcd..09ce60c7 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Entrando em uma Facção -There are three ways to join an existing faction, depending on how the faction is configured. +Existem três maneiras de entrar em uma facção existente, dependendo de como ela está configurada. --- -## Methods Compared +## Comparação de Métodos -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Método | Como | Requer | +|--------|------|--------| +| Explorar e Entrar | Abra /f, clique em Explorar, clique em Entrar | Facção configurada como aberta | +| Aceitar Convite | Verifique a aba Convites no menu /f | Convite ativo | +| Solicitar Entrada | Use /f request, aguarde aprovação | Aprovação de Oficial ou Líder | --- -## Invite Details +## Detalhes do Convite -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Convites são enviados por Oficiais ou Líderes +- Convites expiram após 5 minutos -- aceite rapidamente +- Veja seus convites pendentes na aba Convites do menu de facções +- Aceite pela GUI ou com /f accept -## Join Requests +## Solicitações de Entrada -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Use /f request para solicitar entrada em uma facção fechada +- Solicitações expiram após 24 horas se não forem respondidas +- Oficiais e Líderes podem aprovar ou negar solicitações pelo painel da facção ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Não sabe qual facção entrar? Use a aba Explorar no /f para ver descrições, número de membros e se são abertas ou apenas por convite. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Cada facção pode ter até 50 membros por padrão. Se uma facção estiver cheia, você precisará esperar uma vaga abrir. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md index 870c6133..d34d17ac 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Gerenciando Membros -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Oficiais e Líderes compartilham a responsabilidade de gerenciar o quadro de membros da facção. Aqui estão os principais comandos e quem pode usá-los. --- -## Commands +## Comandos -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Comando | O Que Faz | Cargo Necessário | +|---------|-----------|------------------| +| `/f invite ` | Envia um convite de entrada (expira em 5 min) | Oficial+ | +| `/f kick ` | Remove um membro da facção | Oficial+ (veja nota) | +| `/f promote ` | Promove um Membro a Oficial | Apenas Líder | +| `/f demote ` | Rebaixa um Oficial a Membro | Apenas Líder | +| `/f transfer ` | Transfere a liderança da facção | Apenas Líder | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Oficiais só podem expulsar Membros. Para remover outro Oficial, o Líder deve rebaixá-lo primeiro ou expulsá-lo diretamente. --- -## Invitations +## Convites -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Convites expiram após 5 minutos se não forem aceitos +- O jogador convidado vê o convite na aba Convites ao abrir /f +- Não há limite de quantos convites você pode enviar de uma vez +- Sua facção pode ter até 50 membros no total -## Promotions and Demotions +## Promoções e Rebaixamentos -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Apenas o Líder pode promover ou rebaixar +- /f promote eleva um Membro a Oficial +- /f demote rebaixa um Oficial de volta a Membro -## Transferring Leadership +## Transferência de Liderança ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Transferir a liderança é irreversível. Você será rebaixado a Oficial e o jogador escolhido se torna o novo Líder. Tenha certeza de que confia nele completamente. `/f transfer ` -The target must be a current member of your faction. +O jogador alvo deve ser um membro atual da sua facção. diff --git a/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md b/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md index 67bb5962..4e9c40fa 100644 --- a/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/pt-BR/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Cargos e Patentes -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Toda facção possui três cargos em uma hierarquia rígida. Cargos superiores herdam todas as capacidades dos cargos abaixo deles. --- -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +## Detalhamento de Permissões + +| Ação | Líder | Oficial | Membro | +|------|-------|---------|--------| +| Construir no território | Sim | Sim | Sim | +| Usar base da facção | Sim | Sim | Sim | +| Chat de facção e aliados | Sim | Sim | Sim | +| Convidar jogadores | Sim | Sim | Não | +| Expulsar membros | Sim | Sim (apenas Membros) | Não | +| Reivindicar / liberar terreno | Sim | Sim | Não | +| Tomar território inimigo | Sim | Sim | Não | +| Definir base da facção | Sim | Sim | Não | +| Excluir base da facção | Sim | Sim | Não | +| Gerenciar relações (aliança/inimigo) | Sim | Sim | Não | +| Ver registros da facção | Sim | Sim | Não | +| Promover a Oficial | Sim | Não | Não | +| Rebaixar de Oficial | Sim | Não | Não | +| Renomear facção | Sim | Não | Não | +| Definir descrição / tag / cor | Sim | Não | Não | +| Abrir / fechar facção | Sim | Não | Não | +| Acessar configurações da facção | Sim | Não | Não | +| Transferir liderança | Sim | Não | Não | +| Dissolver facção | Sim | Não | Não | + +>[!NOTE] Oficiais podem expulsar Membros, mas não podem expulsar outros Oficiais. Apenas o Líder pode remover Oficiais. --- -## Role Details +## Detalhes dos Cargos -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Líder -- Um por facção. Tem controle total sobre todas as configurações, membros e território. Pode transferir a liderança para outro membro. +- Oficial -- Membros de confiança que ajudam a gerenciar a facção. Podem convidar, expulsar membros, reivindicar terrenos e cuidar da diplomacia. +- Membro -- O cargo padrão ao entrar. Pode construir no território, usar a base da facção e participar do chat da facção. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Promova seus membros mais ativos e confiáveis a Oficial para que possam ajudar a gerenciar o território e recrutar novos jogadores. From 4d9563889f5867156ac0098a875797359189af15 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:17:14 -0700 Subject: [PATCH 70/76] i18n: add Russian (ru-RU) help file translations Translate all 42 help markdown files into Russian, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 54 +++--- .../help/admin/admin_config/world_settings.md | 52 ++--- .../admin_economy/treasury_management.md | 50 ++--- .../admin/admin_economy/upkeep_management.md | 50 ++--- .../help/admin/admin_factions/disbanding.md | 44 ++--- .../admin/admin_factions/managing_factions.md | 42 ++-- .../help/admin/admin_maintenance/backups.md | 66 +++---- .../help/admin/admin_maintenance/imports.md | 50 ++--- .../help/admin/admin_maintenance/updates.md | 54 +++--- .../admin/admin_overview/getting_started.md | 52 ++--- .../help/admin/admin_overview/permissions.md | 50 ++--- .../help/admin/admin_power/power_commands.md | 48 ++--- .../help/admin/admin_power/power_overrides.md | 62 +++--- .../admin/admin_reference/all_commands.md | 36 ++-- .../admin/admin_reference/integrations.md | 58 +++--- .../help/admin/admin_zones/zone_basics.md | 38 ++-- .../help/admin/admin_zones/zone_commands.md | 60 +++--- .../help/admin/admin_zones/zone_flags.md | 40 ++-- .../Languages/ru-RU/help/combat/death.md | 40 ++-- .../Languages/ru-RU/help/combat/protection.md | 24 +-- .../ru-RU/help/combat/spawn_protection.md | 26 +-- .../Languages/ru-RU/help/combat/tagging.md | 28 +-- .../Languages/ru-RU/help/combat/zones.md | 26 +-- .../ru-RU/help/diplomacy/alliances.md | 40 ++-- .../Languages/ru-RU/help/diplomacy/enemies.md | 42 ++-- .../ru-RU/help/diplomacy/relations.md | 38 ++-- .../Languages/ru-RU/help/economy/commands.md | 30 +-- .../Languages/ru-RU/help/economy/funds.md | 38 ++-- .../Languages/ru-RU/help/economy/treasury.md | 22 +-- .../Languages/ru-RU/help/economy/upkeep.md | 38 ++-- .../ru-RU/help/power_land/claiming.md | 44 ++--- .../ru-RU/help/power_land/losing_territory.md | 50 ++--- .../ru-RU/help/power_land/territory_map.md | 42 ++-- .../help/power_land/understanding_power.md | 44 ++--- .../ru-RU/help/quick_ref/all_commands.md | 182 +++++++++--------- .../ru-RU/help/welcome/getting_started.md | 38 ++-- .../ru-RU/help/welcome/quick_tips.md | 52 ++--- .../ru-RU/help/welcome/what_are_factions.md | 36 ++-- .../ru-RU/help/your_faction/creating.md | 36 ++-- .../ru-RU/help/your_faction/joining.md | 38 ++-- .../ru-RU/help/your_faction/managing.md | 46 ++--- .../ru-RU/help/your_faction/roles.md | 64 +++--- 42 files changed, 985 insertions(+), 985 deletions(-) diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md index 95b6c952..a5a33a96 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Система конфигурации -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions использует модульную систему конфигурации JSON с 11 файлами конфигурации. -## Admin Config Commands +## Админ-команды конфигурации -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| Команда | Описание | +|---------|----------| +| `/f admin config` | Открыть визуальный редактор конфигурации | +| `/f admin reload` | Перезагрузить все файлы конфигурации с диска | +| `/f admin sync` | Синхронизировать данные фракций в хранилище | -## Configuration Files +## Файлы конфигурации -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | +| Файл | Содержимое | +|------|-----------| +| `factions.json` | Роли, сила, захваты, бой, отношения | +| `server.json` | Телепортация, автосохранение, сообщения, интерфейс, права | +| `economy.json` | Казна, содержание, настройки транзакций | +| `backup.json` | Ротация и хранение резервных копий | +| `chat.json` | Форматирование чата фракции и союзников | +| `debug.json` | Категории отладочного логирования | +| `faction-permissions.json` | Права по умолчанию для каждой роли | +| `announcements.json` | Оповещения о событиях и территории | +| `gravestones.json` | Настройки интеграции с надгробиями | +| `worldmap.json` | Режимы обновления карты мира | +| `worlds.json` | Переопределения поведения по мирам | ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. +>[!TIP] Меню конфигурации предоставляет визуальный редактор с описаниями для каждой настройки. Изменения сохраняются сразу, но некоторые требуют `/f admin reload` для полного вступления в силу. -## Config Location +## Расположение конфигурации -All files are stored in: +Все файлы хранятся в: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Ручные правки JSON требуют `/f admin reload` для применения. Невалидный JSON приведёт к пропуску файла с предупреждением в логе сервера. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] Версия конфигурации отслеживается в `server.json`. Плагин автоматически мигрирует старые конфигурации при запуске. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md index 47e8dffe..86c96462 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Настройки по мирам -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions поддерживает конфигурацию по мирам для захватов, PvP и поведения защиты. -## World Commands +## Команды миров -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| Команда | Описание | +|---------|----------| +| `/f admin world list` | Список всех переопределений по мирам | +| `/f admin world info ` | Показать настройки для мира | +| `/f admin world set ` | Установить настройку | +| `/f admin world reset ` | Сбросить мир к значениям по умолчанию | -## Available Settings +## Доступные настройки -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Настройка | Тип | Описание | +|-----------|-----|----------| +| claiming_enabled | boolean | Разрешить захваты фракций в этом мире | +| pvp_enabled | boolean | Разрешить PvP-бой в этом мире | +| power_loss | boolean | Применять потерю силы при смерти | +| build_protection | boolean | Применять защиту построек на захватах | +| explosion_protection | boolean | Защищать захваты от взрывов | -## World Whitelist / Blacklist +## Белый / чёрный список миров -Control which worlds allow faction features through the `worlds.json` config file: +Управляй, какие миры позволяют функции фракций, через файл конфигурации `worlds.json`: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Режим белого списка**: Только перечисленные миры позволяют захваты +- **Режим чёрного списка**: Все миры позволяют захваты, кроме перечисленных ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Настройки миров хранятся в `worlds.json` и переопределяют глобальные значения из `factions.json`. -## Examples +## Примеры - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- восстановить все значения по умолчанию ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Отключай захваты в творческих или лобби мирах, чтобы система фракций была сосредоточена на выживании. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Настройки по мирам имеют приоритет над глобальной конфигурацией, но переопределяются флагами зон внутри этого мира. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md index b219d330..1adcdd14 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Управление казной -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Админ-команды для управления казнами фракций. Требуется право `hyperfactions.admin.economy`. -## Treasury Commands +## Команды казны -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| Команда | Описание | +|---------|----------| +| `/f admin economy balance ` | Просмотр баланса казны фракции | +| `/f admin economy set ` | Установить точный баланс | +| `/f admin economy add ` | Добавить средства в казну | +| `/f admin economy take ` | Снять средства из казны | +| `/f admin economy reset ` | Сбросить казну до нуля | -## Examples +## Примеры -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- проверить баланс +- `/f admin economy set Vikings 5000` -- установить 5000 +- `/f admin economy add Vikings 1000` -- внести 1000 +- `/f admin economy take Vikings 500` -- снять 500 +- `/f admin economy reset Vikings` -- обнулить баланс ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Используй `/f admin info `, чтобы увидеть полный обзор экономики, включая историю транзакций вместе с балансом казны. -## Use Cases +## Случаи использования -| Scenario | Command | +| Сценарий | Команда | |----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Распределение призов за мероприятие | `economy add ` | +| Штраф за нарушение правил | `economy take ` | +| Сброс экономики после вайпа | `economy reset ` | +| Компенсация за баги | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Изменения казны записываются в историю транзакций фракции. Действия администратора фиксируются с именем админа для подотчётности. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Все админ-команды экономики работают даже когда модуль экономики отключён в конфигурации. Данные хранятся независимо от статуса модуля. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..31a2c582 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Управление содержанием -Faction upkeep charges factions periodically based on their territory and member count. +Содержание фракций взимает с фракций плату периодически на основе их территории и количества участников. -## Admin Controls +## Элементы управления администратора -Upkeep settings are managed through the economy config file or the admin config GUI. +Настройки содержания управляются через файл конфигурации экономики или меню конфигурации администратора. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Открой редактор конфигурации и перейди к настройкам экономики для корректировки значений содержания. -## Default Upkeep Settings +## Настройки содержания по умолчанию -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Настройка | По умолчанию | Описание | +|-----------|-------------|----------| +| Содержание включено | false | Главный переключатель системы | +| Интервал содержания | 24ч | Как часто взимается содержание | +| Стоимость за захват | 5.0 | Стоимость за захваченный чанк за цикл | +| Стоимость за участника | 0.0 | Стоимость за участника за цикл | +| Льготный период | 72ч | Новые фракции освобождены | +| Расформирование при банкротстве | false | Автоматическое расформирование, если нечем платить | -## Monitoring Upkeep +## Мониторинг содержания -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Используй `/f admin info `, чтобы увидеть: +- Текущий баланс казны +- Расчётную стоимость содержания за цикл +- Время до следующего списания содержания +- Может ли фракция оплатить содержание ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Просматривай статистику экономики по всем фракциям из панели администратора, чтобы выявить фракции на грани банкротства до срабатывания содержания. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] Конфигурация содержания хранится в `economy.json`. Изменения через меню конфигурации вступают в силу после перезагрузки с помощью `/f admin reload`. -## Upkeep Formula +## Формула содержания -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Общее содержание** = (захваченные чанки x стоимость за захват) + (количество участников x стоимость за участника) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Включение содержания на сервере с существующими фракциями может привести к неожиданным банкротствам. Рассмотри установку льготного периода или объявление изменения заранее. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md index 253e05ab..cbd20bcb 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Принудительное расформирование -Admins can forcefully disband any faction, regardless of the leader's wishes. +Администраторы могут принудительно расформировать любую фракцию, независимо от желания лидера. -## Command +## Команда `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Принудительно расформировать указанную фракцию. Перед выполнением появится запрос подтверждения. -**Permission**: `hyperfactions.admin.disband` +**Право**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Расформирование фракции **необратимо**. Все захваты освобождаются, все участники исключаются, и фракция перестаёт существовать. Сначала создай резервную копию. -## Consequences +## Последствия -When a faction is disbanded: +При расформировании фракции: -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| Эффект | Описание | +|--------|----------| +| **Захваты** | Вся территория освобождается немедленно | +| **Участники** | Все игроки исключаются из состава | +| **Отношения** | Все союзы и вражды сбрасываются | +| **Казна** | Обрабатывается согласно настройкам экономики | +| **Дом** | Дом фракции удаляется | +| **Чат** | История чата фракции удаляется | -## Best Practices +## Лучшие практики -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Всегда выполняй `/f admin backup create` перед расформированием +2. Уведомляй участников фракции по возможности +3. Документируй причину для записей сервера +4. Проверь `/f admin info ` перед действием ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Если проблема связана с конкретным участником, рассмотри использование меню управления фракциями для передачи лидерства вместо расформирования всей фракции. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md index b00218c9..b3ff6c6c 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Управление фракциями -Admins can inspect and modify any faction on the server through the dashboard or commands. +Администраторы могут просматривать и изменять любую фракцию на сервере через панель управления или команды. -## Browsing Factions +## Обзор фракций `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Открывает браузер фракций администратора. Просмотр всех фракций с количеством участников, уровнями силы и территорией. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Открывает информационную панель администратора для конкретной фракции с полными данными и опциями управления. -## Modifying Faction Settings +## Изменение настроек фракции -With `hyperfactions.admin.modify` permission, you can: +С правом `hyperfactions.admin.modify` ты можешь: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Переименовать** фракцию для разрешения конфликтов +- **Задать цвет** для исправления проблем отображения +- **Переключить открытость/закрытость** для изменения политики вступления +- **Редактировать описание** для целей модерации ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Используй `/f admin who `, чтобы узнать, к какой фракции принадлежит конкретный игрок, и просмотреть его данные. -## Viewing Members and Relations +## Просмотр участников и отношений -The admin info panel shows: +Информационная панель администратора показывает: -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| Раздел | Подробности | +|--------|-------------| +| **Участники** | Полный состав с ролями и временем последнего визита | +| **Отношения** | Все союзные, вражеские и нейтральные связи | +| **Территория** | Захваченные чанки и баланс силы | +| **Экономика** | Баланс казны и журнал транзакций | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Команды инспекции администратора не уведомляют просматриваемую фракцию. Только изменения вызывают оповещения. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md index 84a331f7..c9d86bd1 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Система резервного копирования -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions включает автоматическое и ручное резервное копирование с ротацией GFS (дед-отец-сын). -## Backup Commands +## Команды резервного копирования -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| Команда | Описание | +|---------|----------| +| `/f admin backup create` | Создать резервную копию вручную | +| `/f admin backup list` | Список всех доступных резервных копий | +| `/f admin backup restore ` | Восстановить из резервной копии | +| `/f admin backup delete ` | Удалить конкретную резервную копию | -**Permission**: `hyperfactions.admin.backup` +**Право**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Ротация GFS по умолчанию -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Тип | Хранение | Описание | +|-----|----------|----------| +| Ежечасные | 24 | Последние 24 ежечасных снимка | +| Ежедневные | 7 | Последние 7 ежедневных снимков | +| Еженедельные | 4 | Последние 4 еженедельных снимка | +| Ручные | 10 | Созданные вручную резервные копии | +| При выключении | 5 | Создаются при остановке сервера | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Резервные копии при выключении включены по умолчанию (`onShutdown=true`). Они фиксируют последнее состояние перед остановкой сервера. -## Backup Contents +## Содержимое резервной копии -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Каждый ZIP-архив резервной копии содержит: +- Все файлы данных фракций +- Данные силы игроков +- Определения зон +- Историю чата и данные экономики +- Данные приглашений и запросов на вступление +- Файлы конфигурации ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Восстановление резервной копии -- деструктивная операция.** Оно заменяет все текущие данные содержимым резервной копии. Любые изменения, сделанные после создания копии, будут потеряны. Всегда создавай свежую резервную копию перед восстановлением. -## Best Practices +## Лучшие практики -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Создавай ручную резервную копию перед крупными административными действиями +2. Проверяй настройки хранения в `backup.json` +3. Тестируй восстановление сначала на тестовом сервере +4. Держи включёнными резервные копии при выключении для восстановления после сбоев diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md index e3bf7548..16e6c124 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Импорт данных -Import faction data from other plugins to migrate your server to HyperFactions. +Импортируй данные фракций из других плагинов для миграции сервера на HyperFactions. -## Import Command +## Команда импорта `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Право**: `hyperfactions.admin.use` -## Supported Sources +## Поддерживаемые источники -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| Источник | Описание | +|----------|----------| +| `elbaphfactions` | Импорт из данных ElbaphFactions | +| `hyfactions` | Импорт из данных HyFactions v1 | -## Import Flags +## Флаги импорта -| Flag | Description | -|------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| Флаг | Описание | +|------|----------| +| `--dry-run` | Проверить данные без фактического импорта | +| `--overwrite` | Перезаписать существующие фракции с тем же именем | +| `--no-zones` | Пропустить данные зон при импорте | +| `--no-power` | Пропустить данные силы при импорте | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Всегда сначала запускай с `--dry-run`, чтобы предварительно просмотреть, что будет импортировано, и выявить проблемы с данными перед фиксацией изменений. -## Import Process +## Процесс импорта -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Автоматически создаётся резервная копия перед импортом +2. Загружаются маппинги имён игроков +3. Конвертируются фракции, захваты и зоны +4. Данные валидируются и сохраняются -## Examples +## Примеры - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Использование `--overwrite` **заменит** любую существующую фракцию с таким же именем, как у импортируемой. Данные участников и захваты будут перезаписаны. Сначала выполни `--dry-run` для выявления конфликтов. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Некоторые данные, специфичные для источника (например, рабочие участки, фермерские участки), не имеют аналогов в HyperFactions и будут записаны как предупреждения при импорте. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md index f6dc2880..67a1e2b2 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Проверка обновлений -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions может проверять наличие новых версий и управлять зависимостью HyperProtect-Mixin. -## Update Commands +## Команды обновления -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| Команда | Описание | +|---------|----------| +| `/f admin update` | Проверить обновления HyperFactions | +| `/f admin update mixin` | Проверить/скачать HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Переключить автозагрузку | +| `/f admin version` | Показать текущую версию и информацию о сборке | -## Release Channels +## Каналы выпуска -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| Канал | Описание | +|-------|----------| +| **Stable** | Рекомендуется для продакшн-серверов | +| **Pre-release** | Ранний доступ к предстоящим функциям | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Проверка обновлений только уведомляет о новых версиях. Она **не** устанавливает обновления HyperFactions автоматически. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin -- рекомендованный миксин защиты, включающий расширенные флаги зон (взрывы, распространение огня, сохранение инвентаря и т.д.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` проверяет последнюю версию +и скачивает её, если доступна более новая +- Автозагрузку можно включить или выключить для каждого сервера ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] После скачивания новой версии миксина требуется перезапуск сервера для вступления изменений в силу. -## Rollback Procedure +## Процедура отката -If an update causes issues: +Если обновление вызвало проблемы: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Останови сервер +2. Замени JAR плагина на предыдущую версию +3. Запусти сервер +4. Проверь работоспособность с помощью `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Понижение версии может потребовать сброса миграции конфигурации. Всегда храни резервные копии перед обновлением. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md index bf30a5b4..39987f92 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Начало работы администратора -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Добро пожаловать в администрирование HyperFactions. Это руководство описывает первые шаги после установки плагина. -## Opening the Admin Dashboard +## Открытие панели администратора `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Открывает панель администратора с доступом ко всем инструментам управления, редакторам зон и настройкам сервера. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Тебе нужно право **hyperfactions.admin.use** или статус OP для доступа к админ-командам. -## Requirements +## Требования -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **С плагином прав**: Выдай `hyperfactions.admin.use` +- **Без плагина прав**: Игрок должен быть +оператором сервера (`adminRequiresOp=true` по умолчанию) -## First Steps After Install +## Первые шаги после установки -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Выполни `/f admin` для проверки доступа +2. Открой **Config** для просмотра настроек фракций по умолчанию +3. Создай **SafeZone** на спавне с помощью `/f admin safezone Spawn` +4. По желанию создай **WarZone** для PvP-арен +5. Проверь настройки **Backup** для обеспечения сохранности данных -## Admin Capabilities +## Возможности администратора -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | +| Область | Что можно делать | +|---------|-----------------| +| Фракции | Просматривать, изменять или принудительно расформировать любую фракцию | +| Зоны | Создавать SafeZone и WarZone с настраиваемыми флагами | +| Сила | Переопределять значения силы игроков/фракций | +| Экономика | Управлять казнами фракций и содержанием | +| Конфигурация | Редактировать настройки через меню или перезагружать с диска | +| Резервные копии | Создавать, восстанавливать и управлять резервными копиями данных | +| Импорт | Переносить данные из других плагинов фракций | ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +>[!TIP] Используй `/f admin --text` для получения текстового вывода в чат вместо меню -- полезно для консоли или автоматизации. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md index 979e5543..3a489177 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Права администратора -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Все функции администратора защищены узлами прав в пространстве имён `hyperfactions.admin`. -## Permission Nodes +## Узлы прав -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| Право | Описание | +|-------|----------| +| `hyperfactions.admin.*` | Выдаёт **все** права администратора | +| `hyperfactions.admin.use` | Доступ к панели `/f admin` | +| `hyperfactions.admin.reload` | Перезагрузка файлов конфигурации | +| `hyperfactions.admin.debug` | Переключение категорий отладочного логирования | +| `hyperfactions.admin.zones` | Создание, редактирование и удаление зон | +| `hyperfactions.admin.disband` | Принудительное расформирование любой фракции | +| `hyperfactions.admin.modify` | Изменение настроек любой фракции | +| `hyperfactions.admin.bypass.limits` | Обход лимитов захватов и силы | +| `hyperfactions.admin.backup` | Создание и восстановление резервных копий | +| `hyperfactions.admin.power` | Переопределение значений силы игроков | +| `hyperfactions.admin.economy` | Управление казнами фракций | -## Fallback Behavior +## Поведение при отсутствии плагина -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Когда **плагин прав не установлен**, права администратора определяются по статусу оператора сервера (OP). Это контролируется параметром `adminRequiresOp` в конфигурации сервера (по умолчанию: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Подстановочный знак `hyperfactions.admin.*` выдаёт все права администратора. Используй отдельные узлы для детального контроля над командой модераторов. -## Permission Resolution Order +## Порядок определения прав -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. Провайдер **VaultUnlocked** (если доступен) +2. Провайдер **HyperPerms** (если доступен) +3. Провайдер **LuckPerms** (если доступен) +4. Проверка **OP** для админ-узлов (запасной вариант) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Без плагина прав и с отключённым `adminRequiresOp` админ-команды **доступны всем игрокам**. Всегда используй плагин прав в продакшене. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md index b2c9f463..0bebc33f 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Админ-команды силы -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Переопределение значений силы игроков и фракций. Все команды требуют право `hyperfactions.admin.power`. -## Player Power Commands +## Команды силы игрока -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| Команда | Описание | +|---------|----------| +| `/f admin power set ` | Установить точное значение силы | +| `/f admin power add ` | Добавить силу игроку | +| `/f admin power remove ` | Убрать силу у игрока | +| `/f admin power reset ` | Сбросить до начального значения | +| `/f admin power info ` | Просмотр детальной информации о силе | -## How Power Affects Factions +## Как сила влияет на фракции -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +Общая сила фракции -- это сумма индивидуальной силы всех участников. Захваты территории требуют достаточной общей силы для поддержания. -| Scenario | Effect | +| Сценарий | Эффект | |----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Сила увеличена | Фракция может захватить больше территории | +| Сила уменьшена | Фракция может стать уязвимой для перезахвата | +| Сила сброшена | Возвращает игроку начальное значение | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Снижение силы игрока может привести к потере территории его фракцией, если общая сила упадёт ниже количества захваченных чанков. -## Examples +## Примеры -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- установить ровно 50 +- `/f admin power add Steve 10` -- увеличить на 10 +- `/f admin power remove Steve 5` -- уменьшить на 5 +- `/f admin power reset Steve` -- вернуть к значению по умолчанию +- `/f admin power info Steve` -- показать полную информацию ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Используй `/f admin power info `, чтобы увидеть текущую силу, максимальную силу и активные переопределения перед внесением изменений. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md index 5469f903..62084baf 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Переопределения силы -Special power commands that change how power behaves for specific players or factions. +Специальные команды силы, изменяющие поведение силы для конкретных игроков или фракций. -## Override Commands +## Команды переопределения -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| Команда | Описание | +|---------|----------| +| `/f admin power setmax ` | Установить свой лимит максимальной силы | +| `/f admin power noloss ` | Переключить иммунитет к потере силы при смерти | +| `/f admin power nodecay ` | Переключить иммунитет к затуханию силы офлайн | +| `/f admin power info ` | Просмотр всех переопределений и данных силы | -## Custom Max Power +## Свой максимум силы `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Устанавливает персональный потолок максимальной силы для игрока, переопределяя серверное значение по умолчанию. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Установка своего максимума **не** изменяет текущую силу. Она лишь меняет потолок. Игрок должен ещё заработать силу до нового лимита. -## No-Loss Mode +## Режим без потерь `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Переключает иммунитет к потере силы при смерти. Когда включён, игрок **не** будет терять силу при смерти. -Useful for: -- New player protection periods -- Event participants -- Staff members +Полезно для: +- Периодов защиты новых игроков +- Участников мероприятий +- Персонала сервера -## No-Decay Mode +## Режим без затухания `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Переключает иммунитет к затуханию силы офлайн. Когда включён, сила игрока **не** будет уменьшаться, пока он офлайн. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Полезно для: +- Игроков в длительном отпуске +- VIP-участников +- Сезонной защиты -## Power Info +## Информация о силе `/f admin power info ` -Shows a complete breakdown: +Показывает полный отчёт: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Текущая сила и максимальная сила +- Активные переопределения (noloss, nodecay, свой максимум) +- Время последней смерти и потерянная сила +- Процент вклада во фракцию ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Все переопределения силы сохраняются между перезапусками сервера и хранятся в файле данных игрока. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md index bd0b0fa6..13dc400b 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/all_commands.md @@ -1,34 +1,34 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Справочник админ-команд -Complete list of all `/f admin` subcommands with syntax and required permissions. +Полный список всех подкоманд `/f admin` с синтаксисом и необходимыми правами. -## Dashboard and General +## Панель управления и общее -| Command | Permission | -|---------|-----------| +| Команда | Право | +|---------|-------| | `/f admin` | admin.use | | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Управление фракциями -| Command | Permission | -|---------|-----------| +| Команда | Право | +|---------|-------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | | `/f admin who ` | admin.use | | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Управление зонами -| Command | Permission | -|---------|-----------| +| Команда | Право | +|---------|-------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | | `/f admin removezone ` | admin.zones | @@ -40,19 +40,19 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Сила и экономика -| Command | Permission | -|---------|-----------| +| Команда | Право | +|---------|-------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Обслуживание -| Command | Permission | -|---------|-----------| +| Команда | Право | +|---------|-------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | | `/f admin update` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Все узлы прав имеют префикс `hyperfactions.` (например, `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md index c39bfb3b..f09b57af 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Интеграции плагинов -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions интегрируется с несколькими внешними плагинами через мягкие зависимости. Все интеграции опциональны и корректно работают при их отсутствии. -## Checking Integration Status +## Проверка статуса интеграций `/f admin version` -Shows current version and detected integrations. +Показывает текущую версию и обнаруженные интеграции. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +Открывает панель управления интеграциями с детальным статусом каждого обнаруженного плагина. + +## Таблица интеграций + +| Плагин | Тип | Описание | +|--------|-----|----------| +| **HyperPerms** | Права | Полная система прав с группами, наследованием и контекстом | +| **LuckPerms** | Права | Альтернативный провайдер прав | +| **VaultUnlocked** | Права/Экономика | Мост для прав и экономики | +| **HyperProtect-Mixin** | Защита | Включает расширенные флаги зон (взрывы, огонь, сохранение инвентаря) | +| **OrbisGuard-Mixins** | Защита | Альтернативный миксин для применения флагов зон | +| **PlaceholderAPI** | Плейсхолдеры | 49 плейсхолдеров фракций для других плагинов | +| **WiFlow PlaceholderAPI** | Плейсхолдеры | Альтернативный провайдер плейсхолдеров | +| **GravestonePlugin** | Смерть | Контроль доступа к надгробиям в зонах | +| **HyperEssentials** | Функции | Флаги зон для домов, варпов и китов | +| **KyuubiSoft Core** | Фреймворк | Интеграция с основной библиотекой | +| **Sentry** | Мониторинг | Отслеживание ошибок и диагностика | + +## Приоритет провайдера прав + +1. **VaultUnlocked** (наивысший приоритет) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **OP-проверка** (если провайдер не найден) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Интеграции обнаруживаются один раз при запуске с помощью рефлексии. Результаты кешируются на сессию. Перезапуск сервера требуется после добавления или удаления интегрированного плагина. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Используй `/f admin debug toggle integration` для включения детального логирования интеграций при устранении неполадок. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin -- **рекомендованный** миксин защиты. Без него 15 флагов зон не будут действовать. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md index 933a9b2d..aeff0005 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Основы зон -Zones are admin-controlled territories with custom rules that override normal faction protection. +Зоны -- это контролируемые администратором территории с особыми правилами, которые переопределяют обычную защиту территории фракций. -## Zone Types +## Типы зон -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Нет PvP, нет строительства, нет урона. +Идеально для зон спавна и торговых хабов. +- **WarZone** -- PvP всегда включён, нет строительства. +Идеально для арен и спорных боевых зон. -## Creating Zones +## Создание зон `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Создаёт SafeZone и захватывает текущий чанк. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Создаёт WarZone и захватывает текущий чанк. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +После создания встань в дополнительные чанки и используй `/f admin zone claim ` для расширения зоны. -## Managing Zone Chunks +## Управление чанками зоны `/f admin zone claim ` -Add the current chunk to the named zone. +Добавить текущий чанк в указанную зону. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Убрать текущий чанк из указанной зоны. `/f admin zone radius ` -Claim a square of chunks around your position. +Захватить квадрат чанков вокруг твоей позиции. -## Deleting Zones +## Удаление зон `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Полностью удаляет зону и освобождает все её захваченные чанки. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Удаление зоны мгновенно освобождает все её чанки. Это нельзя отменить без восстановления из резервной копии. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Правила зон **всегда переопределяют** правила территории фракций. SafeZone внутри вражеской земли всё равно безопасна. diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md index 403b6b63..9c49a9f3 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Справочник команд зон -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Полный справочник по всем командам управления зонами. Все требуют право `hyperfactions.admin.zones`. -## Quick Creation +## Быстрое создание -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| Команда | Описание | +|---------|----------| +| `/f admin safezone ` | Создать SafeZone в текущем чанке | +| `/f admin warzone ` | Создать WarZone в текущем чанке | +| `/f admin removezone ` | Удалить зону и освободить чанки | -## Zone Management +## Управление зонами -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | +| Команда | Описание | +|---------|----------| +| `/f admin zone create ` | Создать зону (safezone/warzone) | +| `/f admin zone delete ` | Удалить зону | +| `/f admin zone claim ` | Добавить текущий чанк в зону | +| `/f admin zone unclaim ` | Убрать текущий чанк из зоны | +| `/f admin zone radius ` | Захватить квадратный радиус чанков | +| `/f admin zone list` | Список всех зон с количеством чанков | +| `/f admin zone notify ` | Переключить сообщения входа/выхода | +| `/f admin zone title upper/lower ` | Задать текст заголовка зоны | +| `/f admin zone properties ` | Открыть меню свойств зоны | -## Flag Management +## Управление флагами -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| Команда | Описание | +|---------|----------| +| `/f admin zoneflag ` | Установить конкретный флаг | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Используй меню **свойств зоны** для визуального редактора с переключателями для каждого флага, сгруппированными по категориям. -## Examples +## Примеры -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- создать защиту спавна +- `/f admin zone radius Spawn 3` -- расширить до 7x7 чанков +- `/f admin zoneflag Spawn door_use true` -- разрешить двери +- `/f admin zone notify Spawn true` -- показывать сообщения при входе diff --git a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md index 368a4ec9..f6b03612 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/ru-RU/help/admin/admin_zones/zone_flags.md @@ -1,28 +1,28 @@ --- id: admin_zone_flags --- -# Zone Flags +# Флаги зон -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Зоны поддерживают **47 булевых флагов** в 10 категориях. Каждый флаг контролирует конкретное поведение внутри зоны. -## Flag Categories Overview +## Обзор категорий флагов -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | +| Категория | Кол-во | Ключевые флаги | +|-----------|--------|----------------| +| Бой | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Урон | 4 | fall_damage, explosion_damage, fire_spread | +| Смерть | 2 | keep_inventory, power_loss | +| Строительство | 4 | build_allowed, block_place, hammer_use | +| Взаимодействие | 13 | door_use, container_use, bench_use, npc_tame | +| Транспорт | 3 | teleporter_use, portal_use, mount_entry | +| Предметы | 4 | item_drop, item_pickup, invincible_items | +| Спавн мобов | 5 | mob_spawning, hostile/passive/neutral | +| Очистка мобов | 4 | mob_clear, hostile/passive/neutral clear | +| Интеграция | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Значения по умолчанию (SafeZone vs WarZone) -| Flag | SafeZone | WarZone | +| Флаг | SafeZone | WarZone | |------|----------|---------| | pvp_enabled | false | **true** | | build_allowed | false | false | @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Некоторые флаги требуют **HyperProtect-Mixin** для работы (например, keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Без миксина эти флаги не действуют, даже если включены. -## Setting Flags +## Установка флагов `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Используй `/f admin zone properties ` для визуального редактора переключателей, сгруппированных по категориям. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/death.md b/src/main/resources/Server/Languages/ru-RU/help/combat/death.md index 8690b43a..e8298da8 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/combat/death.md +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Смерть и восстановление -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +Смерть несёт реальные последствия во фракциях. Каждая смерть отнимает личную силу, ослабляя способность фракции удерживать территорию. -## Power Loss +## Потеря силы -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Каждая смерть стоит -1.0 силы от твоей личной силы. Это снижает общую силу фракции. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Событие | Изменение силы | +|---------|---------------| +| Смерть (любая причина) | -1.0 | +| Восстановление онлайн | +0.1 в минуту | +| Выход из боя | -1.0 (гибель) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. -## Example Scenarios +## Примеры сценариев -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 участников по 10.0 силы = 50 всего, 20 захватов.* +*Один участник умирает дважды: 8.0 силы, общая фракции 48.* +*Три участника умирают по разу: общая падает до 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Если сила фракции упадёт ниже количества захватов, враги смогут перезахватить твою территорию. -## Recovery +## Восстановление -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Сила восстанавливается со скоростью 0.1 в минуту, пока ты онлайн. Восстановление 1.0 потерянной силы занимает около 10 минут. Множественные смерти суммируются, так что избегай повторных боёв. --- -## All Death Types +## Все типы смерти -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +Потеря силы применяется ко всем смертям: PvP, убийства мобами, урон от падения, утопление и любая другая причина. Безопасного способа умереть нет. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Установи дом фракции с помощью /f sethome, чтобы участники могли быстро перегруппироваться после гибели. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md b/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md index e564ec2d..f837a80d 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Защита территории -Claimed territory provides several layers of defense for your faction's builds and resources. +Захваченная территория обеспечивает несколько уровней защиты для построек и ресурсов твоей фракции. -## Block Protection +## Защита блоков -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Только участники фракции могут ставить или ломать блоки на твоей территории. Враги и нейтралы не могут ничего изменять. -## Container Protection +## Защита контейнеров -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Сундуки, бочки и другие контейнеры защищены. Только участники твоей фракции могут открывать или взаимодействовать с хранилищами на захваченных чанках. -## Entry Alerts +## Оповещения о вторжении -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Когда посторонний входит на твою захваченную территорию, онлайн-участники фракции получают уведомление с именем и местоположением нарушителя. --- -## Ally Access +## Доступ союзников -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Союзники не могут строить или ломать блоки на твоей территории по умолчанию. Урон между союзниками также отключён, так что союзные игроки не могут навредить друг другу. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Территория защищает блоки, а не игроков. PvP на твоей собственной территории зависит от отношения атакующего к твоей фракции. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Держи свои захваты связанными и избегай изолированных чанков, которые сложнее защищать. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md index f0b2ab76..f66a514b 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Защита при возрождении -After respawning from death, you receive temporary protection to prevent spawn camping. +После возрождения от смерти ты получаешь временную защиту для предотвращения кемпинга на точке спавна. -## How It Works +## Как это работает -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- Защита длится 5 секунд после возрождения +- Ты не можешь получать урон в этот период +- Визуальный индикатор показывает твой защищённый статус -## Protection Breaks +## Снятие защиты -Spawn protection ends early if you: +Защита при возрождении снимается досрочно, если ты: -- Attack another player or entity -- Move from your spawn position +- Атакуешь другого игрока или существо +- Сдвинешься с точки возрождения -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Это предотвращает злоупотребления. Ты не можешь атаковать других, пока неуязвим. Как только ты совершишь любое действие, защита спадёт и вступят в силу обычные правила боя. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Используй время защиты, чтобы оценить ситуацию, прежде чем двигаться. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md b/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md index e45cbdb3..bafee26f 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Боевая метка -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Когда ты атакуешь или тебя атакует другой игрок, ты получаешь боевую метку на 15 секунд. -## While Tagged +## Пока ты помечен -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Нельзя использовать /f home или /f stuck для телепортации +- Нельзя использовать серверные команды телепортации +- Метка сбрасывается с каждым новым боевым действием +- Таймер отображает оставшееся время метки --- -## Logout Penalty +## Штраф за выход ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Выход из игры с боевой меткой убивает твоего персонажа, и ты теряешь 1.0 силы. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Твои вещи выпадут там, где ты отключился, и враги смогут их подобрать. Всегда жди, пока метка истечёт. -## How the Timer Works +## Как работает таймер -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Таймер боевой метки появляется на экране, когда ты вступаешь в бой. Каждый новый удар сбрасывает его на 15 секунд. Как только он достигнет нуля, все ограничения снимаются. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Выйди из боя и переждай таймер, если тебе нужно телепортироваться. diff --git a/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md b/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md index d1d957d2..030a5fc5 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md +++ b/src/main/resources/Server/Languages/ru-RU/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Специальные зоны -Admins can designate areas with special rules that override normal faction territory protection. +Администраторы могут назначать области с особыми правилами, которые переопределяют обычную защиту территории фракций. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Нет PvP-урона, нет разрушения блоков не-администраторами. Идеально подходит для зон спавна, торговых хабов и площадок для мероприятий. Здесь игрокам нельзя навредить. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +PvP всегда включён. Защита блоков не действует. Открытые боевые зоны, где всё разрешено. В WarZone ты не получаешь преимуществ защиты территории. --- -## Zone Comparison +## Сравнение зон -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| Особенность | SafeZone | WarZone | Земля фракции | +|-------------|----------|---------|---------------| +| PvP | Отключён | Всегда вкл. | Зависит от отношений | +| Разрушение блоков | Отключено | Разрешено | Только участники | +| Контейнеры | Защищены | Открыты | Только участники | +| Лучше всего для | Спавн/Торговля | Арены | Базы | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Правила зон всегда переопределяют правила территории фракций. Захваченный чанк внутри WarZone подчиняется правилам WarZone. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Проверь карту территорий с помощью /f map, чтобы увидеть границы зон. diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md index 45da7756..04e54738 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Заключение союзов -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Союзы -- это взаимные соглашения между двумя фракциями, обеспечивающие защиту и преимущества сотрудничества. --- -## How to Form an Alliance +## Как заключить союз `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Отправляет запрос на союз целевой фракции. Союз вступает в силу только когда обе стороны согласятся. Офицер или Лидер другой фракции тоже должен выполнить эту команду, указав твою фракцию, для подтверждения. -## How to Break an Alliance +## Как разорвать союз `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Любая сторона может в одностороннем порядке разорвать союз, сбросив отношения до нейтральных. --- -## Alliance Benefits +## Преимущества союза -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Преимущество | Подробности | +|-------------|-------------| +| Нет огня по своим | Союзные игроки не могут наносить урон друг другу | +| Общая видимость на карте | Территория союзников отображается синим на карте территорий | +| Взаимодействие на территории | Союзники могут использовать двери, сиденья и транспорт на твоей территории | +| Союзный чат | Переключись на режим союзного чата для общения между фракциями | +| Защита от перезахвата | Союзники не могут перезахватывать территорию друг друга | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Твоя фракция может иметь до 10 союзов одновременно. Выбирай союзников с умом. --- -## Alliance Etiquette +## Этикет союзов ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Общение -- это ключ. Прежде чем отправлять запрос на союз, свяжись с лидером другой фракции, чтобы обсудить условия. Крепкий союз строится на взаимной выгоде, а не просто на удобстве. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Союзы работают в обе стороны -- если ты пользуешься защитой, твои союзники ожидают того же +- Разрыв союза во время войны может навредить репутации твоей фракции +- Союзные фракции могут координировать захваты территорий для создания оборонительных границ diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md index 70688ad4..611d1987 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Вражеские фракции -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Объявление врага -- это одностороннее действие, которое немедленно включает PvP и территориальную агрессию против целевой фракции. Согласие не требуется. --- -## Declaring an Enemy +## Объявление врага `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Мгновенно отмечает целевую фракцию как твоего врага. Вступает в силу немедленно -- подтверждение другой стороны не нужно. Требуется ранг Офицера или выше. -## Resetting to Neutral +## Сброс до нейтрального `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Снимает вражеский статус и сбрасывает отношения до нейтральных. Также требуется Офицер+ и вступает в силу немедленно. --- -## What Enemy Status Enables +## Что даёт вражеский статус -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| Эффект | Подробности | +|--------|-------------| +| PvP на территории | Полный PvP включён на территории обеих фракций | +| Перезахват | Ты можешь перезахватывать их чанки, если они в дефиците силы | +| Отметка на карте | Вражеская территория отображается красным на карте территорий | +| Нет защиты | Стандартная защита территории не предотвращает вражеский PvP | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Объявление врага -- серьёзное решение. Их участники тоже смогут сражаться с тобой на твоей собственной территории после объявления. --- -## Strategic Considerations +## Стратегические соображения -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Объявления врага односторонние -- ты можешь объявить без их согласия, но они тоже будут видеть тебя как враждебного +- Перед объявлением проверь силу цели с помощью /f info. Если они сильны, ты можешь потерять территорию вместо них +- Ослабляй врагов повторными боями, чтобы истощить их силу, затем перезахватывай их землю +- Количество врагов не ограничено, но воевать на нескольких фронтах рискованно ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Используй /f neutral для деэскалации конфликтов. Иногда стратегический мир ценнее продолжения войны. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Если ты в союзе с фракцией и объявляешь её врагом, союз разрывается первым. diff --git a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md index 89711eee..1c91cfba 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/ru-RU/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Отношения фракций -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Каждая пара фракций имеет дипломатические отношения, определяющие правила взаимодействия. Есть три состояния: Союзник, Враг и Нейтрал. --- -## Relation Comparison +## Сравнение отношений -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| Эффект | Союзник | Нейтрал | Враг | +|--------|---------|---------|------| +| PvP на территории | Отключён | Стандартные правила | Включён | +| Защита территории | Взаимная защита | Стандартная защита | Перезахват при ослаблении | +| Огонь по своим | Отключён | Н/Д | Включён везде | +| Цвет на карте | Синий | Серый | Красный | +| Как установить | Взаимное соглашение | Состояние по умолчанию | Одностороннее объявление | +| Доступ к чату | Союзный канал чата | Нет | Нет | --- -## Viewing Relations +## Просмотр отношений `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Показывает все текущие союзы, врагов и ожидающие запросы на союз. -## How Relations Work +## Как работают отношения -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Нейтрал -- состояние по умолчанию между всеми фракциями. Действуют стандартные правила сервера. +- Союз требует согласия обеих фракций. Любая сторона может разорвать его в одностороннем порядке. +- Враг объявляется односторонне. Согласие не нужно -- другая фракция немедленно отмечается как твой враг. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Отношениями управляют Офицеры и Лидеры. Участники могут просматривать отношения, но не изменять их. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Используй /f relations регулярно, чтобы отслеживать дипломатическую обстановку. Знание своих врагов помогает подготовиться к территориальным конфликтам. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md b/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md index 020190cd..388e5175 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Команды экономики -Quick reference for all faction economy commands. +Краткий справочник по всем командам экономики фракции. -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| Команда | Описание | Роль | +|---------|----------|------| +| /f balance | Просмотр баланса казны | Любой | +| /f deposit (amount) | Внести в казну | Любой | +| /f withdraw (amount) | Снять из казны | Офицер+ | +| /f money transfer (faction) (amount) | Перевести другой фракции | Офицер+ | +| /f money log [page] | Просмотр истории транзакций | Офицер+ | --- -## Command Aliases +## Псевдонимы команд -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance также доступна как /f bal +- /f deposit и /f withdraw принимают дробные суммы -## Role Requirements +## Требования к роли -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Команды снятия и перевода доступны только Офицерам и Лидерам. Все остальные команды экономики доступны любому участнику фракции. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Используй /f money log для просмотра недавних внесений, снятий и переводов с отметками времени. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md b/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md index 4fe4539c..b1b18622 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Управление средствами -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Участники фракции работают вместе, чтобы поддерживать казну через внесения, снятия и переводы. -## Depositing +## Внесение -Any member can deposit personal funds into the faction treasury. +Любой участник может внести личные средства в казну фракции. `/f deposit ` -Deposit from your personal balance into the treasury. +Внести со своего личного баланса в казну. -## Withdrawing +## Снятие -Officers and the Leader can withdraw funds back to their personal balance. +Офицеры и Лидер могут снимать средства обратно на свой личный баланс. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Снять из казны на свой баланс. (Офицер+) -## Transferring +## Перевод -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Офицеры могут переводить средства напрямую между казнами фракций для торговых сделок или дипломатии. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Отправить средства в казну другой фракции. (Офицер+) --- -## Fees +## Комиссии -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Транзакция | Комиссия | +|-----------|----------| +| Внесение | 0% | +| Снятие | 0% | +| Перевод | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Размеры комиссий настраиваются сервером и могут отличаться от значений по умолчанию, показанных выше. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Все транзакции записываются. Используй /f money log для просмотра недавней активности. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md b/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md index e4e7307b..70bdfd54 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Казна фракции -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +У каждой фракции есть общая казна, которая служит банком фракции. Средства используются для оплаты содержания, обслуживания территории и операций фракции. -## Starting Balance +## Начальный баланс -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Новые фракции начинают с 0 в казне. Участники должны вносить средства для накопления резервов. -## Who Can Manage +## Кто может управлять -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Любой участник может вносить средства +- Офицеры и Лидер могут снимать и переводить +- Лидер имеет полный контроль над казной --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Проверить текущий баланс казны фракции. Также доступно как /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Вноси средства регулярно, чтобы поддерживать фракцию на плаву. Расходы на содержание территории могут быстро опустошить пустую казну. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Все транзакции казны записываются и могут быть просмотрены офицерами. diff --git a/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md b/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md index 8a2d12e4..eaa31895 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/ru-RU/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Содержание территории -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Фракции должны платить постоянное содержание за свою захваченную территорию. Это предотвращает накопление земли и поддерживает карту динамичной. -## Upkeep Costs +## Стоимость содержания -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Настройка | По умолчанию | +|-----------|-------------| +| Стоимость за чанк | 2.0 за цикл | +| Интервал оплаты | Каждые 24 часа | +| Бесплатные чанки | 3 (без стоимости) | +| Режим масштабирования | Фиксированная ставка | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Первые 3 чанка бесплатны. Сверх этого каждый дополнительный захваченный чанк стоит 2.0 за платёжный цикл. -## Auto-Pay +## Автоплатёж -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Автоплатёж включён по умолчанию. Система автоматически списывает содержание из казны в каждый интервал. Никаких ручных действий не требуется. --- -## Grace Period +## Льготный период -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Если казна не может покрыть содержание, начинается 48-часовой льготный период. Предупреждение отправляется за 6 часов до начала потери захватов. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Если содержание остаётся неоплаченным после льготного периода, фракция теряет 1 захват за цикл, пока расходы не будут покрыты или все лишние захваты не будут потеряны. -## Example +## Пример -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Фракция с 8 захватами платит за 5 чанков (8 минус 3 бесплатных). При 2.0 за чанк это 10.0 за цикл.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Поддерживай казну выше стоимости содержания. Используй /f balance для проверки резервов. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md index f70427cb..dc7aacce 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Захват территории -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Захват чанка ставит его под контроль твоей фракции. Только участники фракции могут строить, ломать или открывать контейнеры на захваченной территории. --- -## How to Claim +## Как захватить `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Встань в чанк, который хочешь захватить, и введи эту команду. Чанк сразу же станет защищённым. Требуется ранг Офицера или выше. -## How to Unclaim +## Как освободить `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Освобождает чанк, в котором ты стоишь, обратно в дикую местность. Также требуется Офицер+. --- -## Claim Rules +## Правила захвата -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Правило | По умолчанию | +|---------|-------------| +| Стоимость силы на захват | 2.0 силы | +| Максимум захватов | 100 на фракцию | +| Только смежные | Нет (можно захватывать где угодно) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Каждый захват стоит 2.0 силы на содержание. Фракция с 50 общей силы может безопасно удерживать до 25 захватов. --- -## What Protection Provides +## Что даёт защита -Inside claimed territory, the following is enforced by default: +На захваченной территории по умолчанию действуют следующие правила: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Посторонние не могут ломать, ставить или взаимодействовать с блоками +- Союзники могут использовать двери, сиденья и транспорт, но не могут ломать или ставить блоки +- Участники и Офицеры имеют полный доступ к строительству, разрушению и использованию всего +- Доступ к контейнерам (сундуки, ящики) ограничен только участниками ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Ты также можешь захватывать прямо с карты территорий. Открой /f map и нажми на незахваченные чанки, чтобы захватить их. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Не расширяйся чрезмерно. Если фракция потеряет силу из-за смертей, захваты сверх бюджета силы станут уязвимыми для перезахвата. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md index ea39186b..c35a6a7b 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Потеря территории -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Когда общая сила фракции падает ниже стоимости её захватов, она становится уязвимой для рейда. Враги могут перезахватить чанки прямо из-под тебя. --- -## How Overclaiming Works +## Как работает перезахват `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Офицер или Лидер вражеской фракции встаёт в твой захваченный чанк и вводит эту команду. Если твоя фракция в дефиците силы, чанк переходит к их фракции. -## The Math +## Математика -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Каждый захват стоит 2.0 силы на содержание. Если общая сила падает ниже этого порога, чанки в дефиците становятся уязвимыми. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Перезахват необратим. Как только враг забирает чанк, тебе нужно захватить его заново (или перезахватить обратно, если они ослабнут). --- -## Example Scenario +## Пример сценария -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Фактор | Значение | +|--------|----------| +| Участники | 5 игроков | +| Сила на участника | 10 у каждого (начальная) | +| Общая сила | 50 | +| Захваты | 30 чанков | +| Необходимая сила (30 x 2.0) | 60 | +| Дефицит | Не хватает 10 силы | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +В этом примере фракция уязвима для рейда с самого начала. Враги могут перезахватить до 5 чанков (10 дефицита / 2.0 за захват) до достижения равновесия. --- -## How to Prevent Overclaiming +## Как предотвратить перезахват -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Не расширяйся чрезмерно -- всегда держи общую силу выше стоимости захватов с запасом +- Будь активен -- сила восстанавливается только когда ты онлайн (+0.1/мин) +- Избегай ненужных смертей -- каждая смерть стоит 1.0 силы +- Набирай больше участников -- больше игроков значит больше общей силы +- Освобождай неиспользуемые чанки -- высвобождай силу с помощью /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Проверяй свой статус силы регулярно с помощью /f power. Если общая сила близка к стоимости захватов, подумай об освобождении менее важных чанков перед войной. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md index 207c041d..df05f9dc 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# Карта территорий -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +Карта территорий даёт тебе вид сверху на захваченные чанки в твоём районе, показывая, какие фракции контролируют землю вокруг тебя. --- -## Opening the Map +## Открытие карты `/f map` -Opens the territory map GUI centered on your current location. +Открывает меню карты территорий с центром на твоём текущем местоположении. --- -## Color Legend +## Цветовая легенда -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Цвет | Значение | +|------|----------| +| [#55FF55] Цвет твоей фракции | Территория, захваченная твоей фракцией | +| [#5555FF] Синий | Территория союзной фракции | +| [#FF5555] Красный | Территория вражеской фракции | +| [#AAAAAA] Серый | Территория нейтральной фракции | +| [#333333] Тёмный | Дикая местность (незахваченная земля) | +| [#FFAA00] Золотой | Специальные зоны (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] Цвет твоей фракции на карте соответствует цвету, установленному в настройках фракции. Союзники и враги используют фиксированные цвета для удобства распознавания. --- -## Click to Claim +## Нажми для захвата -The map is not just for viewing -- you can interact with it directly. +Карта не только для просмотра -- ты можешь взаимодействовать с ней напрямую. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Нажми на незахваченный чанк, чтобы захватить его (требуется ранг Офицер+ и достаточно силы) +- Нажми на захваченный чанк, чтобы узнать, какая фракция им владеет +- Прокручивай или перемещайся для исследования окрестностей ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] Карта -- самый удобный способ планировать расширение территории. Ищи незахваченные участки рядом с базой и захватывай стратегически, чтобы создать непрерывную границу. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] Карта показывает фиксированную область вокруг твоей позиции. Перемести персонажа в другое место и открой карту снова, чтобы увидеть другие части мира. diff --git a/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md index ae158ed5..ff766cbf 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/ru-RU/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Понимание силы -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Сила -- это основной ресурс, определяющий, сколько территории может удерживать твоя фракция. У каждого игрока есть личная сила, которая вносит вклад в общую силу фракции. --- -## Default Power Values +## Значения силы по умолчанию -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Настройка | Значение | +|-----------|----------| +| Максимальная сила на игрока | 20 | +| Начальная сила | 10 | +| Штраф за смерть | -1.0 за смерть | +| Награда за убийство | 0.0 | +| Скорость восстановления | +0.1 в минуту (пока онлайн) | +| Стоимость силы на захват | 2.0 | +| Выход с боевой меткой | -1.0 дополнительно | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Это значения по умолчанию. Администратор сервера мог настроить другие параметры. -## How It Works +## Как это работает -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Общая сила твоей фракции -- это сумма личной силы всех участников. Необходимая сила -- это количество захватов, умноженное на 2.0. Пока общая сила остаётся выше необходимой, твоя территория в безопасности. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Сила восстанавливается пассивно со скоростью 0.1 в минуту, пока ты онлайн. При такой скорости восстановление 1.0 силы занимает около 10 минут. --- -## Checking Your Power +## Проверка силы `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Показывает твою личную силу, общую силу фракции и сколько нужно для поддержания текущих захватов. -## The Danger Zone +## Опасная зона -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Если общая сила упадёт ниже необходимой для твоих захватов, фракция становится уязвимой. Враги смогут перезахватить твои чанки. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Несколько смертей за короткий период могут быстро привести к лавинному эффекту. Если у тебя 5 участников по 10 силы (50 всего) и 20 захватов (нужно 40), всего 5 смертей в команде снижают силу до 45 -- ещё безопасно. Но 11 смертей опускают до 39, ниже порога в 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Держи запас силы. Не захватывай каждый чанк, который можешь себе позволить -- оставляй место для нескольких смертей, чтобы не стать уязвимым для рейда. diff --git a/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md index 0540d550..ed952f93 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/ru-RU/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | - -## Chat - -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +# Все команды + +## Основные + +| Команда | Описание | Роль | +|---------|----------|------| +| /f | Открыть меню фракции | Любой | +| /f help | Открыть справочный центр | Любой | +| /f create (name) | Создать фракцию | Любой | +| /f disband | Расформировать фракцию | Лидер | +| /f leave | Покинуть фракцию | Любой | + +## Членство + +| Команда | Описание | Роль | +|---------|----------|------| +| /f invite (player) | Пригласить игрока | Офицер+ | +| /f accept [faction] | Принять приглашение | Любой | +| /f request (faction) | Запросить вступление | Любой | +| /f kick (player) | Исключить участника | Офицер+ | +| /f promote (player) | Повысить до Офицера | Лидер | +| /f demote (player) | Понизить до Участника | Лидер | +| /f transfer (player) | Передать лидерство | Лидер | + +## Территория + +| Команда | Описание | Роль | +|---------|----------|------| +| /f claim | Захватить текущий чанк | Офицер+ | +| /f unclaim | Освободить текущий чанк | Офицер+ | +| /f overclaim | Перезахватить ослабленный чанк | Офицер+ | +| /f map | Открыть карту территорий | Любой | + +## Телепортация + +| Команда | Описание | Роль | +|---------|----------|------| +| /f home | Телепортироваться домой | Любой | +| /f sethome | Установить дом фракции | Офицер+ | +| /f delhome | Удалить дом фракции | Офицер+ | +| /f stuck | Выбраться с вражеской территории | Любой | + +## Информация + +| Команда | Описание | Роль | +|---------|----------|------| +| /f info [faction] | Просмотр данных фракции | Любой | +| /f list | Обзор всех фракций | Любой | +| /f members | Просмотр состава | Любой | +| /f who [player] | Просмотр информации об игроке | Любой | +| /f power [player] | Проверка уровня силы | Любой | +| /f invites | Управление приглашениями/запросами | Любой | +| /f relations | Просмотр дипломатических отношений | Любой | + +## Дипломатия + +| Команда | Описание | Роль | +|---------|----------|------| +| /f ally (faction) | Запросить союз | Офицер+ | +| /f enemy (faction) | Объявить врага | Офицер+ | +| /f neutral (faction) | Сбросить до нейтрала | Офицер+ | + +## Настройки + +| Команда | Описание | Роль | +|---------|----------|------| +| /f settings | Открыть меню настроек | Офицер+ | +| /f rename (name) | Переименовать фракцию | Лидер | +| /f desc [text] | Задать описание | Офицер+ | +| /f color (code) | Задать цвет фракции | Офицер+ | +| /f open | Разрешить вступление всем | Лидер | +| /f close | Требовать приглашение | Лидер | + +## Экономика + +| Команда | Описание | Роль | +|---------|----------|------| +| /f balance | Просмотр казны | Любой | +| /f deposit (amount) | Внести средства | Любой | +| /f withdraw (amount) | Снять средства | Офицер+ | +| /f money transfer (faction) (amt) | Перевести средства | Офицер+ | +| /f money log [page] | История транзакций | Офицер+ | + +## Чат + +| Команда | Описание | Роль | +|---------|----------|------| +| /f c | Переключить режим чата | Любой | +| /f c f | Чат фракции | Любой | +| /f c a | Союзный чат | Любой | +| /f c off | Публичный чат | Любой | diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md index 2155ff0c..22068902 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Начало работы -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Добро пожаловать в HyperFactions! Вот как начать играть всего за несколько шагов. --- -## Step 1: Open the Faction Menu +## Шаг 1: Открой меню фракции -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Набери /f, чтобы открыть главное меню фракций. Это твой центр управления -- просмотр фракций, создание собственной и управление приглашениями. -## Step 2: Choose Your Path +## Шаг 2: Выбери свой путь -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Вариант | Как сделать | +|---------|-------------| +| Найти открытые фракции | Нажми "Обзор" в меню и выбери "Вступить" в любую открытую фракцию. | +| Принять приглашение | Проверь вкладку "Приглашения". Если тебя пригласили, нажми "Принять". | +| Создать свою | Нажми "Создать фракцию", выбери название, и ты станешь Лидером. | -## Step 3: Explore Your Faction +## Шаг 3: Исследуй свою фракцию -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Когда ты вступишь во фракцию, ты увидишь Панель фракции с составом участников, картой территорий, отношениями и настройками. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Если ты новичок, попробуй сначала вступить в существующую фракцию. С опытными игроками рядом ты быстрее разберёшься. --- -## Essential First Commands +## Основные первые команды -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Открывает меню фракции +- /f home -- Телепортация на базу фракции +- /f c -- Переключение режима чата между Обычным, Фракционным и Союзным +- /f map -- Просмотр карты территорий вокруг тебя ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Ты также можешь набрать /f help в чате для быстрой справки по командам в любой момент. diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md index dcd1df1a..c141d34c 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Полезные советы -Handy advice organized by category to help you thrive. +Удобные подсказки по категориям, которые помогут тебе преуспеть. --- -## Territory +## Территория -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Захватывай землю вокруг базы заранее с помощью `/f claim` -- незахваченные постройки **не защищены** +- Каждый захват стоит **2.0 силы** на содержание, так что не расширяйся сверх того, что твои участники могут поддерживать +- Используй `/f map` для разведки ближайших захватов и поиска безопасных мест для строительства +- Освобождай ненужные чанки с помощью `/f unclaim`, чтобы высвободить силу -## Combat +## Бой -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Смерть стоит **1.0 силы** -- избегай ненужных драк, когда фракция близка к лимиту захватов +- После возрождения у тебя есть **5 секунд защиты** +- Боевая метка длится **15 секунд** -- выход из игры с меткой стоит дополнительной силы +- Огонь по своим **отключён** между участниками фракции и союзниками по умолчанию ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Выход из игры с боевой меткой приводит к дополнительной потере силы (1.0 за выход). Оставайся и сражайся или сначала убеги. -## Social +## Общение -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Используй `/f c` для переключения режимов чата, чтобы разговоры фракции оставались приватными +- Приглашай проверенных игроков с помощью `/f invite ` -- приглашения истекают через **5 минут** +- Заключай союзы с помощью `/f ally ` для взаимной защиты и видимости на карте +- Проверяй `/f relations`, чтобы видеть полный дипломатический статус -## Economy +## Экономика ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Если на сервере включена экономика, у твоей фракции может быть казна. Участники могут вносить средства, но только Офицеры и Лидеры могут снимать или переводить деньги. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Вноси средства через меню казны, чтобы укрепить свою фракцию +- Более богатая фракция может позволить себе больше захватов и быстрее восстанавливаться после неудач -## General +## Общее -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Набери `/f` в любой момент, чтобы открыть панель фракции -- всё доступно оттуда +- Повышай активных участников до Офицера, чтобы они помогали захватывать и управлять территорией +- Поддерживай фракцию активной -- сила восстанавливается только когда игроки **онлайн** diff --git a/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md index 5fedf54c..e48e76d2 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/ru-RU/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Что такое фракции? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Фракции -- это команды игроков, которые захватывают территории, строят базы и соревнуются за господство. Когда ты вступаешь или создаёшь фракцию, ты получаешь доступ к защищённой земле, общему дому, приватному чату и дипломатическим инструментам. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Фракции -- это прежде всего командная игра. Чем больше активных участников, тем сильнее твоя фракция. --- -## Core Mechanics +## Основные механики -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Механика | Что она делает | +|----------|---------------| +| Сила | Каждый игрок генерирует силу со временем (макс. 20). Общая сила фракции определяет, сколько земли можно удерживать. | +| Захваты | Захваченные чанки защищены -- только участники могут строить, ломать или открывать контейнеры внутри них. Каждый захват стоит 2.0 силы на содержание. | +| Отношения | Фракции могут заключать союзы для взаимной защиты или объявлять врагов для включения PvP и территориальной агрессии. | +| Роли | Три ранга -- Лидер, Офицер, Участник -- каждый с разными возможностями. | --- -## How Strength Works +## Как работает мощь -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +Сила твоей фракции зависит от её участников. Каждый игрок начинает с 10 силы и восстанавливает до 20, пока онлайн. Смерть отнимает силу. Если общая сила фракции упадёт ниже стоимости захватов, враги смогут перезахватить твою территорию. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Одна смерть стоит 1.0 силы. Несколько смертей за короткое время могут сделать твою фракцию уязвимой для перезахвата. --- -## Diplomacy at a Glance +## Дипломатия в двух словах -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Союзники** -- Взаимные соглашения, которые предотвращают огонь по своим и защищают территории друг друга +- **Враги** -- Односторонние объявления, которые включают PvP на территории друг друга и позволяют перезахват +- **Нейтралы** -- Состояние по умолчанию между всеми фракциями со стандартными правилами ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Всем этим можно управлять через игровое меню, набрав `/f`, или через команды чата. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md index e1eaa33b..37ec9728 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Создание фракции -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Создание собственной фракции делает тебя Лидером с полным контролем над настройками, участниками и территорией. --- -## How to Create +## Как создать `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Это создаёт твою фракцию и сразу открывает Панель фракции, где ты можешь начать приглашать участников, захватывать землю и настраивать параметры. -## Name Rules +## Правила названия -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Правило | Требование | +|---------|------------| +| Длина | От 3 до 24 символов | +| Символы | Только буквы, цифры и пробелы | +| Уникальность | Две фракции не могут иметь одинаковое название | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Выбирай название тщательно. Переименование позже требует прав Лидера и может иметь кулдаун. --- -## What Happens on Creation +## Что происходит при создании -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Ты становишься Лидером (высший ранг) +- Твоя фракция начинает с 0 захватов и твоей личной силой (10 по умолчанию) +- Панель фракции открывается автоматически +- Ты можешь сразу приглашать игроков, захватывать территорию и устанавливать дом фракции ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Если на сервере включена интеграция экономики, создание фракции может стоить денег. Стоимость создания устанавливается администратором сервера. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] После создания твои первые приоритеты: пригласить друзей, найти место для базы и захватить его. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md index 7dbabdcd..0b237780 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Вступление во фракцию -There are three ways to join an existing faction, depending on how the faction is configured. +Есть три способа вступить в существующую фракцию, в зависимости от её настроек. --- -## Methods Compared +## Сравнение способов -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Способ | Как | Требуется | +|--------|-----|-----------| +| Обзор и вступление | Открой /f, нажми "Обзор", нажми "Вступить" | Фракция открыта | +| Принять приглашение | Проверь вкладку "Приглашения" в меню /f | Активное приглашение | +| Запрос на вступление | Используй /f request, жди одобрения | Одобрение Офицера или Лидера | --- -## Invite Details +## Подробности о приглашениях -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Приглашения отправляются Офицерами или Лидерами +- Приглашения истекают через 5 минут -- принимай быстро +- Просмотри ожидающие приглашения во вкладке "Приглашения" в меню фракции +- Прими через меню или командой /f accept -## Join Requests +## Запросы на вступление -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Используй /f request, чтобы запросить членство в закрытой фракции +- Запросы истекают через 24 часа, если по ним не приняты меры +- Офицеры и Лидеры могут одобрить или отклонить запросы из панели фракции ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Не уверен, к какой фракции присоединиться? Используй вкладку "Обзор" в /f, чтобы увидеть описания фракций, количество участников и открыты ли они для вступления. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Каждая фракция может вмещать до 50 участников по умолчанию. Если фракция полна, придётся подождать, пока освободится место. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md index 870c6133..390b75e5 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Управление участниками -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Офицеры и Лидеры совместно отвечают за управление составом фракции. Вот основные команды и кто может их использовать. --- -## Commands +## Команды -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Команда | Что делает | Необходимая роль | +|---------|-----------|-----------------| +| `/f invite ` | Отправляет приглашение (истекает через 5 мин) | Офицер+ | +| `/f kick ` | Исключает участника из фракции | Офицер+ (см. примечание) | +| `/f promote ` | Повышает Участника до Офицера | Только Лидер | +| `/f demote ` | Понижает Офицера до Участника | Только Лидер | +| `/f transfer ` | Передаёт владение фракцией | Только Лидер | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Офицеры могут исключать только Участников. Чтобы исключить другого Офицера, Лидер должен сначала понизить его или исключить напрямую. --- -## Invitations +## Приглашения -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Приглашения истекают через 5 минут, если не приняты +- Приглашённый игрок видит приглашение во вкладке "Приглашения" при открытии /f +- Количество одновременных приглашений не ограничено +- Фракция может вмещать до 50 участников -## Promotions and Demotions +## Повышения и понижения -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Только Лидер может повышать или понижать +- /f promote повышает Участника до Офицера +- /f demote понижает Офицера до Участника -## Transferring Leadership +## Передача лидерства ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Передача лидерства необратима. Ты будешь понижен до Офицера, а выбранный игрок станет новым Лидером. Убедись, что полностью ему доверяешь. `/f transfer ` -The target must be a current member of your faction. +Целевой игрок должен быть текущим участником твоей фракции. diff --git a/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md b/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md index 67bb5962..cf2b7b9f 100644 --- a/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/ru-RU/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Роли и ранги -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +В каждой фракции есть три роли в строгой иерархии. Более высокие роли наследуют все возможности нижестоящих. --- -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +## Таблица прав + +| Действие | Лидер | Офицер | Участник | +|----------|-------|--------|----------| +| Строить на территории | Да | Да | Да | +| Использовать дом фракции | Да | Да | Да | +| Чат фракции и союзников | Да | Да | Да | +| Приглашать игроков | Да | Да | Нет | +| Исключать участников | Да | Да (только Участников) | Нет | +| Захватывать / освобождать землю | Да | Да | Нет | +| Перезахватывать вражескую территорию | Да | Да | Нет | +| Устанавливать дом фракции | Да | Да | Нет | +| Удалять дом фракции | Да | Да | Нет | +| Управлять отношениями (союз/враг) | Да | Да | Нет | +| Просматривать логи фракции | Да | Да | Нет | +| Повышать до Офицера | Да | Нет | Нет | +| Понижать из Офицера | Да | Нет | Нет | +| Переименовывать фракцию | Да | Нет | Нет | +| Задавать описание / тег / цвет | Да | Нет | Нет | +| Открывать / закрывать фракцию | Да | Нет | Нет | +| Доступ к настройкам фракции | Да | Нет | Нет | +| Передавать лидерство | Да | Нет | Нет | +| Расформировать фракцию | Да | Нет | Нет | + +>[!NOTE] Офицеры могут исключать Участников, но не других Офицеров. Только Лидер может исключать Офицеров. --- -## Role Details +## Описание ролей -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Лидер -- Один на фракцию. Имеет полный контроль над настройками, участниками и территорией. Может передать владение другому участнику. +- Офицер -- Доверенные участники, помогающие управлять фракцией. Могут приглашать, исключать участников, захватывать землю и вести дипломатию. +- Участник -- Роль по умолчанию при вступлении. Может строить на территории, использовать дом фракции и участвовать в чате фракции. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Повышай самых активных и надёжных участников до Офицера, чтобы они помогали управлять территорией и набирать новых игроков. From c88198ab74430bfc6c0ded0c2da105394655fd8c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:17:29 -0700 Subject: [PATCH 71/76] i18n: add Italian (it-IT) help file translations Translate all 42 help markdown files into Italian, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 56 +++--- .../help/admin/admin_config/world_settings.md | 50 ++--- .../admin_economy/treasury_management.md | 48 ++--- .../admin/admin_economy/upkeep_management.md | 50 ++--- .../help/admin/admin_factions/disbanding.md | 44 ++--- .../admin/admin_factions/managing_factions.md | 42 ++--- .../help/admin/admin_maintenance/backups.md | 64 +++---- .../help/admin/admin_maintenance/imports.md | 48 ++--- .../help/admin/admin_maintenance/updates.md | 52 +++--- .../admin/admin_overview/getting_started.md | 52 +++--- .../help/admin/admin_overview/permissions.md | 50 ++--- .../help/admin/admin_power/power_commands.md | 48 ++--- .../help/admin/admin_power/power_overrides.md | 60 +++--- .../admin/admin_reference/all_commands.md | 36 ++-- .../admin/admin_reference/integrations.md | 52 +++--- .../help/admin/admin_zones/zone_basics.md | 38 ++-- .../help/admin/admin_zones/zone_commands.md | 58 +++--- .../help/admin/admin_zones/zone_flags.md | 38 ++-- .../Languages/it-IT/help/combat/death.md | 40 ++-- .../Languages/it-IT/help/combat/protection.md | 24 +-- .../it-IT/help/combat/spawn_protection.md | 26 +-- .../Languages/it-IT/help/combat/tagging.md | 28 +-- .../Languages/it-IT/help/combat/zones.md | 26 +-- .../it-IT/help/diplomacy/alliances.md | 40 ++-- .../Languages/it-IT/help/diplomacy/enemies.md | 42 ++--- .../it-IT/help/diplomacy/relations.md | 38 ++-- .../Languages/it-IT/help/economy/commands.md | 30 +-- .../Languages/it-IT/help/economy/funds.md | 38 ++-- .../Languages/it-IT/help/economy/treasury.md | 22 +-- .../Languages/it-IT/help/economy/upkeep.md | 38 ++-- .../it-IT/help/power_land/claiming.md | 44 ++--- .../it-IT/help/power_land/losing_territory.md | 50 ++--- .../it-IT/help/power_land/territory_map.md | 42 ++--- .../help/power_land/understanding_power.md | 44 ++--- .../it-IT/help/quick_ref/all_commands.md | 176 +++++++++--------- .../it-IT/help/welcome/getting_started.md | 38 ++-- .../it-IT/help/welcome/quick_tips.md | 52 +++--- .../it-IT/help/welcome/what_are_factions.md | 36 ++-- .../it-IT/help/your_faction/creating.md | 36 ++-- .../it-IT/help/your_faction/joining.md | 38 ++-- .../it-IT/help/your_faction/managing.md | 46 ++--- .../it-IT/help/your_faction/roles.md | 64 +++---- 42 files changed, 972 insertions(+), 972 deletions(-) diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md index 95b6c952..c47e0272 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Sistema di Configurazione -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions utilizza un sistema di configurazione JSON modulare con 11 file di configurazione. -## Admin Config Commands +## Comandi Configurazione Admin -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| `/f admin config` | Apri la GUI dell'editor visuale di configurazione | +| `/f admin reload` | Ricarica tutti i file di configurazione dal disco | +| `/f admin sync` | Sincronizza i dati delle fazioni con lo storage | -## Configuration Files +## File di Configurazione -| File | Contents | +| File | Contenuti | |------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | - ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: +| `factions.json` | Ruoli, potere, claim, combattimento, relazioni | +| `server.json` | Teletrasporto, salvataggio automatico, messaggi, GUI, permessi | +| `economy.json` | Tesoro, mantenimento, impostazioni transazioni | +| `backup.json` | Rotazione backup e impostazioni di conservazione | +| `chat.json` | Formattazione chat fazione e alleati | +| `debug.json` | Categorie di log debug | +| `faction-permissions.json` | Permessi predefiniti per ruolo | +| `announcements.json` | Notifiche eventi e territorio | +| `gravestones.json` | Impostazioni integrazione tombe | +| `worldmap.json` | Modalita' aggiornamento mappa mondo | +| `worlds.json` | Override comportamento per mondo | + +>[!TIP] La GUI di configurazione fornisce un editor visuale con descrizioni per ogni impostazione. Le modifiche vengono salvate immediatamente ma alcune richiedono `/f admin reload` per avere pieno effetto. + +## Posizione Configurazione + +Tutti i file sono salvati in: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Le modifiche manuali al JSON richiedono `/f admin reload` per essere applicate. Un JSON non valido causera' il salto del file con un avviso nel log del server. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] La versione della configurazione e' tracciata in `server.json`. Il plugin migra automaticamente le configurazioni piu' vecchie all'avvio. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md index 47e8dffe..19d1e1b3 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Impostazioni Per-Mondo -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions supporta la configurazione per-mondo per claim, PvP e comportamento di protezione. -## World Commands +## Comandi Mondo -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| `/f admin world list` | Elenca tutti gli override per mondo | +| `/f admin world info ` | Mostra le impostazioni per un mondo | +| `/f admin world set ` | Imposta un'impostazione | +| `/f admin world reset ` | Ripristina il mondo ai valori predefiniti | -## Available Settings +## Impostazioni Disponibili -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Impostazione | Tipo | Descrizione | +|--------------|------|-------------| +| claiming_enabled | boolean | Permetti claim delle fazioni in questo mondo | +| pvp_enabled | boolean | Permetti combattimento PvP in questo mondo | +| power_loss | boolean | Applica perdita di potere alla morte | +| build_protection | boolean | Applica protezione costruzione nei claim | +| explosion_protection | boolean | Proteggi i claim dalle esplosioni | -## World Whitelist / Blacklist +## Whitelist / Blacklist Mondi -Control which worlds allow faction features through the `worlds.json` config file: +Controlla quali mondi permettono le funzionalita' delle fazioni tramite il file di configurazione `worlds.json`: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Modalita' whitelist**: Solo i mondi elencati permettono il claim +- **Modalita' blacklist**: Tutti i mondi permettono il claim tranne quelli elencati ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Le impostazioni per mondo sono salvate in `worlds.json` e sovrascrivono i valori predefiniti globali da `factions.json`. -## Examples +## Esempi - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- ripristina tutti i valori predefiniti ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Disabilita il claim nei mondi creativi o lobby per mantenere il sistema fazioni focalizzato sul gameplay survival. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Le impostazioni per-mondo hanno priorita' sulla configurazione globale ma sono sovrascritte dai flag delle zone all'interno di quel mondo. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md index b219d330..05eb4035 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Gestione del Tesoro -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Comandi admin per gestire i tesori delle fazioni. Richiede il permesso `hyperfactions.admin.economy`. -## Treasury Commands +## Comandi del Tesoro -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| `/f admin economy balance ` | Visualizza il saldo del tesoro della fazione | +| `/f admin economy set ` | Imposta il saldo esatto | +| `/f admin economy add ` | Aggiungi fondi al tesoro | +| `/f admin economy take ` | Rimuovi fondi dal tesoro | +| `/f admin economy reset ` | Azzera il tesoro | -## Examples +## Esempi -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- controlla il saldo +- `/f admin economy set Vikings 5000` -- imposta a 5000 +- `/f admin economy add Vikings 1000` -- deposita 1000 +- `/f admin economy take Vikings 500` -- preleva 500 +- `/f admin economy reset Vikings` -- azzera il saldo ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Usa `/f admin info ` per vedere la panoramica economica completa incluso lo storico transazioni insieme al saldo del tesoro. -## Use Cases +## Casi d'Uso -| Scenario | Command | +| Scenario | Comando | |----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Distribuzione premi evento | `economy add ` | +| Penalita' per violazione regole | `economy take ` | +| Reset economia dopo wipe | `economy reset ` | +| Compensazione per bug | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Le modifiche al tesoro vengono registrate nello storico transazioni della fazione. Le modifiche admin vengono registrate con il nome dell'admin per responsabilita'. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Tutti i comandi admin economia funzionano anche quando il modulo economia e' disabilitato nella configurazione. I dati vengono salvati indipendentemente dallo stato del modulo. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..bc4799ef 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Gestione del Mantenimento -Faction upkeep charges factions periodically based on their territory and member count. +Il mantenimento delle fazioni addebita le fazioni periodicamente in base al loro territorio e numero di membri. -## Admin Controls +## Controlli Admin -Upkeep settings are managed through the economy config file or the admin config GUI. +Le impostazioni di mantenimento sono gestite attraverso il file di configurazione economia o la GUI di configurazione admin. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Apri l'editor di configurazione e naviga alle impostazioni economia per regolare i valori di mantenimento. -## Default Upkeep Settings +## Impostazioni Predefinite del Mantenimento -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Impostazione | Predefinito | Descrizione | +|--------------|-------------|-------------| +| Mantenimento abilitato | false | Interruttore principale del sistema | +| Intervallo mantenimento | 24h | Quanto spesso viene addebitato il mantenimento | +| Costo per claim | 5.0 | Costo per chunk reclamato per ciclo | +| Costo per membro | 0.0 | Costo per membro per ciclo | +| Periodo di grazia | 72h | Le nuove fazioni sono esenti | +| Scioglimento per bancarotta | false | Scioglimento automatico se non puo' pagare | -## Monitoring Upkeep +## Monitorare il Mantenimento -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Usa `/f admin info ` per vedere: +- Saldo attuale del tesoro +- Costo stimato di mantenimento per ciclo +- Tempo fino al prossimo addebito di mantenimento +- Se la fazione puo' permettersi il mantenimento ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Controlla le statistiche economiche di tutte le fazioni dalla dashboard admin per identificare le fazioni a rischio di bancarotta prima che il mantenimento venga addebitato. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] La configurazione del mantenimento e' salvata in `economy.json`. Le modifiche fatte tramite la GUI di configurazione hanno effetto dopo il ricaricamento con `/f admin reload`. -## Upkeep Formula +## Formula del Mantenimento -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Mantenimento totale** = (chunk reclamati x costo per claim) + (numero membri x costo per membro) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Abilitare il mantenimento su un server con fazioni esistenti potrebbe causare bancarotte inaspettate. Considera di impostare un periodo di grazia o annunciare il cambiamento in anticipo. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md index 253e05ab..3219bf01 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Scioglimento Forzato -Admins can forcefully disband any faction, regardless of the leader's wishes. +Gli admin possono sciogliere forzatamente qualsiasi fazione, indipendentemente dalla volonta' del leader. -## Command +## Comando `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Scioglie forzatamente la fazione indicata. Apparira' un messaggio di conferma prima che l'azione venga eseguita. -**Permission**: `hyperfactions.admin.disband` +**Permesso**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Sciogliere una fazione e' **irreversibile**. Tutti i claim vengono rilasciati, tutti i membri vengono rimossi e la fazione cessa di esistere. Crea un backup prima. -## Consequences +## Conseguenze -When a faction is disbanded: +Quando una fazione viene sciolta: -| Effect | Description | -|--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| Effetto | Descrizione | +|---------|-------------| +| **Claim** | Tutto il territorio viene rilasciato immediatamente | +| **Membri** | Tutti i giocatori vengono rimossi dal roster | +| **Relazioni** | Tutte le alleanze e le inimicizie vengono cancellate | +| **Tesoro** | Gestito secondo le impostazioni della configurazione economia | +| **Home** | La home della fazione viene eliminata | +| **Chat** | Lo storico della chat della fazione viene rimosso | -## Best Practices +## Buone Pratiche -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Esegui sempre `/f admin backup create` prima di sciogliere +2. Notifica i membri della fazione quando possibile +3. Documenta il motivo per i registri del server +4. Controlla `/f admin info ` per rivedere prima di agire ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Se il problema e' con un membro specifico, considera di usare la GUI admin fazioni per trasferire la leadership piuttosto che sciogliere l'intera fazione. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md index b00218c9..375816d6 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Gestione delle Fazioni -Admins can inspect and modify any faction on the server through the dashboard or commands. +Gli admin possono ispezionare e modificare qualsiasi fazione sul server tramite la dashboard o i comandi. -## Browsing Factions +## Sfogliare le Fazioni `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Apre il browser admin delle fazioni. Visualizza tutte le fazioni con numero di membri, livelli di potere e territorio. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Apre il pannello info admin per una fazione specifica con tutti i dettagli e le opzioni di gestione. -## Modifying Faction Settings +## Modificare le Impostazioni della Fazione -With `hyperfactions.admin.modify` permission, you can: +Con il permesso `hyperfactions.admin.modify`, puoi: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Rinominare** una fazione per risolvere conflitti +- **Impostare il colore** per risolvere problemi di visualizzazione +- **Attivare/disattivare aperta/chiusa** per sovrascrivere la politica di adesione +- **Modificare la descrizione** per scopi di moderazione ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Usa `/f admin who ` per cercare a quale fazione appartiene un giocatore specifico e visualizzare i suoi dettagli. -## Viewing Members and Relations +## Visualizzare Membri e Relazioni -The admin info panel shows: +Il pannello info admin mostra: -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| Sezione | Dettagli | +|---------|----------| +| **Membri** | Roster completo con ruoli e ultimo accesso | +| **Relazioni** | Tutti gli stati di alleato, nemico e neutrale | +| **Territorio** | Chunk reclamati e bilancio di potere | +| **Economia** | Saldo del tesoro e log delle transazioni | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] I comandi di ispezione admin non notificano la fazione che viene visualizzata. Solo le modifiche attivano gli avvisi. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md index 84a331f7..259cfdb0 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Sistema di Backup -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions include backup automatici e manuali con rotazione GFS (Nonno-Padre-Figlio). -## Backup Commands +## Comandi Backup -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| `/f admin backup create` | Crea un backup manuale ora | +| `/f admin backup list` | Elenca tutti i backup disponibili | +| `/f admin backup restore ` | Ripristina da un backup | +| `/f admin backup delete ` | Elimina un backup specifico | -**Permission**: `hyperfactions.admin.backup` +**Permesso**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Valori Predefiniti Rotazione GFS -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Tipo | Conservazione | Descrizione | +|------|---------------|-------------| +| Orario | 24 | Ultimi 24 snapshot orari | +| Giornaliero | 7 | Ultimi 7 snapshot giornalieri | +| Settimanale | 4 | Ultimi 4 snapshot settimanali | +| Manuale | 10 | Backup creati manualmente | +| Spegnimento | 5 | Creati allo stop del server | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] I backup allo spegnimento sono abilitati per impostazione predefinita (`onShutdown=true`). Catturano lo stato piu' recente prima dell'arresto del server. -## Backup Contents +## Contenuti del Backup -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Ogni archivio ZIP di backup contiene: +- Tutti i file dati delle fazioni +- Dati potere dei giocatori +- Definizioni delle zone +- Storico chat e dati economia +- Dati inviti e richieste di adesione +- File di configurazione ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Il ripristino di un backup e' distruttivo.** Sostituisce tutti i dati attuali con i contenuti del backup. Qualsiasi modifica fatta dopo la creazione del backup andra' persa. Crea sempre un backup fresco prima di ripristinare. -## Best Practices +## Buone Pratiche -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Crea un backup manuale prima di azioni admin importanti +2. Controlla la conservazione dei backup in `backup.json` +3. Testa il ripristino su un server di staging prima +4. Mantieni i backup allo spegnimento abilitati per il recupero da crash diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md index e3bf7548..b9d9faa2 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Importazione Dati -Import faction data from other plugins to migrate your server to HyperFactions. +Importa dati di fazioni da altri plugin per migrare il tuo server a HyperFactions. -## Import Command +## Comando di Importazione `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Permesso**: `hyperfactions.admin.use` -## Supported Sources +## Sorgenti Supportate -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| Sorgente | Descrizione | +|----------|-------------| +| `elbaphfactions` | Importa da dati ElbaphFactions | +| `hyfactions` | Importa da dati HyFactions v1 | -## Import Flags +## Flag di Importazione -| Flag | Description | +| Flag | Descrizione | |------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| `--dry-run` | Valida i dati senza importare nulla | +| `--overwrite` | Sovrascrivi le fazioni esistenti con lo stesso nome | +| `--no-zones` | Salta i dati delle zone durante l'importazione | +| `--no-power` | Salta i dati del potere durante l'importazione | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Esegui sempre con `--dry-run` prima per visualizzare in anteprima cosa verra' importato e individuare eventuali problemi nei dati prima di confermare le modifiche. -## Import Process +## Processo di Importazione -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Un backup pre-importazione viene creato automaticamente +2. Le mappature dei nomi giocatore vengono caricate +3. Fazioni, claim e zone vengono convertiti +4. I dati vengono validati e salvati -## Examples +## Esempi - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Usare `--overwrite` **sostituira'** qualsiasi fazione esistente che condivide un nome con una fazione importata. I dati dei membri e i claim verranno sovrascritti. Esegui prima con `--dry-run` per identificare i conflitti. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Alcuni dati specifici della sorgente (es. worker plots, farm plots) non hanno un equivalente in HyperFactions e verranno registrati come avvisi durante l'importazione. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md index f6dc2880..00f65032 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Controllo Aggiornamenti -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions puo' controllare nuove versioni e gestire la dipendenza HyperProtect-Mixin. -## Update Commands +## Comandi Aggiornamento -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| `/f admin update` | Controlla aggiornamenti di HyperFactions | +| `/f admin update mixin` | Controlla/scarica HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Attiva/disattiva download automatico | +| `/f admin version` | Mostra versione attuale e info build | -## Release Channels +## Canali di Rilascio -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| Canale | Descrizione | +|--------|-------------| +| **Stable** | Raccomandato per server di produzione | +| **Pre-release** | Accesso anticipato alle prossime funzionalita' | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Il controllo aggiornamenti notifica solo le nuove versioni. **Non** installa automaticamente gli aggiornamenti di HyperFactions stesso. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin e' il mixin di protezione raccomandato che abilita flag avanzati delle zone (esplosioni, propagazione fuoco, conservazione inventario, ecc.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` controlla l'ultima versione +e la scarica se una versione piu' recente e' disponibile +- Il download automatico puo' essere attivato o disattivato per ogni server ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Dopo aver scaricato una nuova versione del mixin, e' necessario un riavvio del server affinche' le modifiche abbiano effetto. -## Rollback Procedure +## Procedura di Rollback -If an update causes issues: +Se un aggiornamento causa problemi: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Ferma il server +2. Sostituisci il JAR del plugin con la versione precedente +3. Avvia il server +4. Verifica il funzionamento con `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Il downgrade potrebbe richiedere un reset della migrazione della configurazione. Mantieni sempre i backup prima di aggiornare. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md index bf30a5b4..ae85643a 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Per Iniziare come Admin -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Benvenuto nell'amministrazione di HyperFactions. Questa guida copre i tuoi primi passi dopo l'installazione del plugin. -## Opening the Admin Dashboard +## Aprire la Dashboard Admin `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Apre la GUI della dashboard admin con accesso a tutti gli strumenti di gestione, editor di zone e impostazioni del server. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Hai bisogno del permesso **hyperfactions.admin.use** o dello stato OP per accedere ai comandi admin. -## Requirements +## Requisiti -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Con un plugin di permessi**: Assegna `hyperfactions.admin.use` +- **Senza un plugin di permessi**: Il giocatore deve essere un +operatore del server (`adminRequiresOp=true` per impostazione predefinita) -## First Steps After Install +## Primi Passi Dopo l'Installazione -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Esegui `/f admin` per verificare il tuo accesso +2. Apri **Config** per rivedere le impostazioni predefinite della fazione +3. Crea una **SafeZone** allo spawn con `/f admin safezone Spawn` +4. Opzionalmente crea **WarZone** per arene PvP +5. Controlla le impostazioni di **Backup** per garantire la sicurezza dei dati -## Admin Capabilities +## Capacita' Admin -| Area | What You Can Do | +| Area | Cosa Puoi Fare | |------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +| Fazioni | Ispezionare, modificare o forzare lo scioglimento di qualsiasi fazione | +| Zone | Creare SafeZone e WarZone con flag personalizzati | +| Potere | Sovrascrivere i valori di potere di giocatori/fazioni | +| Economia | Gestire i tesori delle fazioni e il mantenimento | +| Configurazione | Modificare le impostazioni in tempo reale tramite GUI o ricaricare da disco | +| Backup | Creare, ripristinare e gestire backup dei dati | +| Importazioni | Migrare dati da altri plugin di fazioni | + +>[!TIP] Usa `/f admin --text` per ottenere output basato su chat invece della GUI, utile per console o automazione. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md index 979e5543..88b87945 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Permessi Admin -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Tutte le funzionalita' admin sono protette da nodi di permesso nel namespace `hyperfactions.admin`. -## Permission Nodes +## Nodi di Permesso -| Permission | Description | -|-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| Permesso | Descrizione | +|----------|-------------| +| `hyperfactions.admin.*` | Concede **tutti** i permessi admin | +| `hyperfactions.admin.use` | Accesso alla dashboard `/f admin` | +| `hyperfactions.admin.reload` | Ricaricare i file di configurazione | +| `hyperfactions.admin.debug` | Attivare/disattivare le categorie di log debug | +| `hyperfactions.admin.zones` | Creare, modificare ed eliminare zone | +| `hyperfactions.admin.disband` | Forzare lo scioglimento di qualsiasi fazione | +| `hyperfactions.admin.modify` | Modificare le impostazioni di qualsiasi fazione | +| `hyperfactions.admin.bypass.limits` | Ignorare i limiti di claim e potere | +| `hyperfactions.admin.backup` | Creare e ripristinare backup | +| `hyperfactions.admin.power` | Sovrascrivere i valori di potere dei giocatori | +| `hyperfactions.admin.economy` | Gestire i tesori delle fazioni | -## Fallback Behavior +## Comportamento di Fallback -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Quando **nessun plugin di permessi** e' installato, i permessi admin ricadono sullo stato di operatore del server (OP). Questo e' controllato da `adminRequiresOp` nella configurazione del server (predefinito: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Il wildcard `hyperfactions.admin.*` concede ogni permesso admin. Usa i nodi individuali per un controllo granulare sul tuo team di staff. -## Permission Resolution Order +## Ordine di Risoluzione dei Permessi -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. Provider **VaultUnlocked** (se disponibile) +2. Provider **HyperPerms** (se disponibile) +3. Provider **LuckPerms** (se disponibile) +4. **Controllo OP** per i nodi admin (fallback) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Senza un plugin di permessi e con `adminRequiresOp` disabilitato, i comandi admin sono **aperti a tutti i giocatori**. Usa sempre un plugin di permessi in produzione. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md index b2c9f463..9728bfb0 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Comandi Admin Potere -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Sovrascrivi i valori di potere di giocatori e fazioni. Tutti i comandi richiedono il permesso `hyperfactions.admin.power`. -## Player Power Commands +## Comandi Potere Giocatore -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| `/f admin power set ` | Imposta il valore esatto di potere | +| `/f admin power add ` | Aggiunge potere al giocatore | +| `/f admin power remove ` | Rimuove potere dal giocatore | +| `/f admin power reset ` | Ripristina al potere iniziale predefinito | +| `/f admin power info ` | Visualizza il dettaglio completo del potere | -## How Power Affects Factions +## Come il Potere Influisce sulle Fazioni -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +Il potere totale di una fazione e' la somma del potere individuale di tutti i suoi membri. I claim territoriali richiedono un potere totale sufficiente per essere mantenuti. -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Scenario | Effetto | +|----------|---------| +| Potere impostato piu' alto | La fazione puo' reclamare piu' territorio | +| Potere impostato piu' basso | La fazione potrebbe diventare vulnerabile al sovra-claim | +| Potere resettato | Riporta il giocatore al valore iniziale predefinito | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Ridurre il potere di un giocatore potrebbe causare alla sua fazione la perdita di territorio se il potere totale scende sotto il numero di chunk reclamati. -## Examples +## Esempi -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- imposta a esattamente 50 +- `/f admin power add Steve 10` -- aumenta di 10 +- `/f admin power remove Steve 5` -- diminuisce di 5 +- `/f admin power reset Steve` -- riporta al predefinito +- `/f admin power info Steve` -- mostra il dettaglio completo ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Usa `/f admin power info ` per vedere il potere attuale, il potere massimo e qualsiasi override attivo prima di apportare modifiche. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md index 5469f903..0094febb 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Override del Potere -Special power commands that change how power behaves for specific players or factions. +Comandi speciali del potere che cambiano il comportamento del potere per giocatori o fazioni specifici. -## Override Commands +## Comandi Override -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| `/f admin power setmax ` | Imposta un tetto massimo di potere personalizzato | +| `/f admin power noloss ` | Attiva/disattiva l'immunita' alla penalita' di morte | +| `/f admin power nodecay ` | Attiva/disattiva l'immunita' al decadimento offline | +| `/f admin power info ` | Visualizza tutti gli override e i dettagli del potere | -## Custom Max Power +## Potere Massimo Personalizzato `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Imposta un tetto massimo di potere personale per il giocatore, sovrascrivendo il valore predefinito del server. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Impostare un massimo personalizzato **non** cambia il potere attuale. Cambia solo il tetto. Il giocatore deve comunque guadagnare potere fino al nuovo limite. -## No-Loss Mode +## Modalita' No-Loss `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Attiva/disattiva l'immunita' alla perdita di potere per morte. Quando abilitata, il giocatore **non** perdera' potere alla morte. -Useful for: -- New player protection periods -- Event participants -- Staff members +Utile per: +- Periodi di protezione nuovi giocatori +- Partecipanti ad eventi +- Membri dello staff -## No-Decay Mode +## Modalita' No-Decay `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Attiva/disattiva l'immunita' al decadimento del potere offline. Quando abilitata, il potere del giocatore **non** diminuira' mentre e' offline. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Utile per: +- Giocatori in congedo prolungato +- Membri VIP +- Protezione stagionale -## Power Info +## Info Potere `/f admin power info ` -Shows a complete breakdown: +Mostra un dettaglio completo: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Potere attuale e potere massimo +- Override attivi (noloss, nodecay, massimo personalizzato) +- Orario ultima morte e potere perso +- Percentuale di contributo alla fazione ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Tutti gli override del potere persistono attraverso i riavvii del server e sono salvati nel file dati del giocatore. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md index bd0b0fa6..51707a1e 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/all_commands.md @@ -1,34 +1,34 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Riferimento Comandi Admin -Complete list of all `/f admin` subcommands with syntax and required permissions. +Lista completa di tutti i sottocomandi `/f admin` con sintassi e permessi richiesti. -## Dashboard and General +## Dashboard e Generali -| Command | Permission | -|---------|-----------| +| Comando | Permesso | +|---------|----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Gestione Fazioni -| Command | Permission | -|---------|-----------| +| Comando | Permesso | +|---------|----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | | `/f admin who ` | admin.use | | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Gestione Zone -| Command | Permission | -|---------|-----------| +| Comando | Permesso | +|---------|----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | | `/f admin removezone ` | admin.zones | @@ -40,19 +40,19 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Potere ed Economia -| Command | Permission | -|---------|-----------| +| Comando | Permesso | +|---------|----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Manutenzione -| Command | Permission | -|---------|-----------| +| Comando | Permesso | +|---------|----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | | `/f admin update` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Tutti i nodi di permesso sono prefissati con `hyperfactions.` (es. `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md index c39bfb3b..cb0c959f 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Integrazioni Plugin -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions si integra con diversi plugin esterni tramite dipendenze soft. Tutte le integrazioni sono opzionali e gestiscono l'assenza in modo trasparente. -## Checking Integration Status +## Controllare lo Stato delle Integrazioni `/f admin version` -Shows current version and detected integrations. +Mostra la versione attuale e le integrazioni rilevate. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. +Apre il pannello di gestione integrazioni con stato dettagliato per ogni plugin rilevato. -## Integration Table +## Tabella Integrazioni -| Plugin | Type | Description | +| Plugin | Tipo | Descrizione | |--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +| **HyperPerms** | Permessi | Sistema completo di permessi con gruppi, ereditarieta' e contesto | +| **LuckPerms** | Permessi | Provider di permessi alternativo | +| **VaultUnlocked** | Permessi/Economia | Bridge per permessi ed economia | +| **HyperProtect-Mixin** | Protezione | Abilita flag avanzati delle zone (esplosioni, fuoco, conservazione inventario) | +| **OrbisGuard-Mixins** | Protezione | Mixin alternativo per l'applicazione dei flag zone | +| **PlaceholderAPI** | Placeholder | 49 placeholder fazione per altri plugin | +| **WiFlow PlaceholderAPI** | Placeholder | Provider di placeholder alternativo | +| **GravestonePlugin** | Morte | Controllo accesso tombe nelle zone | +| **HyperEssentials** | Funzionalita' | Flag zone per home, warp e kit | +| **KyuubiSoft Core** | Framework | Integrazione libreria core | +| **Sentry** | Monitoraggio | Tracciamento errori e diagnostica | + +## Priorita' Provider Permessi + +1. **VaultUnlocked** (priorita' massima) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **Fallback OP** (se nessun provider trovato) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Le integrazioni vengono rilevate una volta all'avvio tramite reflection. I risultati vengono memorizzati per la sessione. E' necessario un riavvio del server dopo aver aggiunto o rimosso un plugin integrato. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Usa `/f admin debug toggle integration` per abilitare il logging dettagliato delle integrazioni per la risoluzione dei problemi. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin e' il mixin di protezione **raccomandato**. Senza di esso, 15 flag delle zone non avranno effetto. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md index 933a9b2d..0908aa24 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Basi delle Zone -Zones are admin-controlled territories with custom rules that override normal faction protection. +Le zone sono territori controllati dagli admin con regole personalizzate che sovrascrivono la normale protezione delle fazioni. -## Zone Types +## Tipi di Zona -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Niente PvP, niente costruzione, niente danni. +Ideale per aree di spawn e hub commerciali. +- **WarZone** -- PvP sempre abilitato, niente costruzione. +Ideale per arene e aree di battaglia contese. -## Creating Zones +## Creare Zone `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Crea una SafeZone e reclama il tuo chunk corrente. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Crea una WarZone e reclama il tuo chunk corrente. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Dopo la creazione, posizionati in chunk aggiuntivi e usa `/f admin zone claim ` per espandere la zona. -## Managing Zone Chunks +## Gestire i Chunk della Zona `/f admin zone claim ` -Add the current chunk to the named zone. +Aggiungi il chunk corrente alla zona indicata. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Rimuovi il chunk corrente dalla zona indicata. `/f admin zone radius ` -Claim a square of chunks around your position. +Reclama un quadrato di chunk intorno alla tua posizione. -## Deleting Zones +## Eliminare Zone `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Elimina permanentemente la zona e rilascia tutti i suoi chunk reclamati. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Eliminare una zona rilascia tutti i suoi chunk istantaneamente. Questa operazione non puo' essere annullata senza un ripristino da backup. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Le regole delle zone **sovrascrivono sempre** le regole del territorio delle fazioni. Una SafeZone all'interno di territorio nemico e' comunque sicura. diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md index 403b6b63..6e9a041c 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Riferimento Comandi Zone -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Riferimento completo per tutti i comandi di gestione zone. Tutti richiedono il permesso `hyperfactions.admin.zones`. -## Quick Creation +## Creazione Rapida -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| `/f admin safezone ` | Crea una SafeZone nel chunk corrente | +| `/f admin warzone ` | Crea una WarZone nel chunk corrente | +| `/f admin removezone ` | Elimina una zona e rilascia i chunk | -## Zone Management +## Gestione Zone -| Command | Description | +| Comando | Descrizione | |---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | +| `/f admin zone create ` | Crea una zona (safezone/warzone) | +| `/f admin zone delete ` | Elimina una zona | +| `/f admin zone claim ` | Aggiungi il chunk corrente alla zona | +| `/f admin zone unclaim ` | Rimuovi il chunk corrente dalla zona | +| `/f admin zone radius ` | Reclama un raggio quadrato di chunk | +| `/f admin zone list` | Elenca tutte le zone con conteggio chunk | +| `/f admin zone notify ` | Attiva/disattiva messaggi di ingresso/uscita | +| `/f admin zone title upper/lower ` | Imposta il testo del titolo della zona | +| `/f admin zone properties ` | Apri la GUI proprieta' della zona | + +## Gestione Flag + +| Comando | Descrizione | |---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| `/f admin zoneflag ` | Imposta un flag specifico | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Usa la **GUI proprieta'** della zona per un editor visuale con interruttori per ogni flag, organizzati per categoria. -## Examples +## Esempi -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- crea protezione spawn +- `/f admin zone radius Spawn 3` -- espandi a 7x7 chunk +- `/f admin zoneflag Spawn door_use true` -- permetti le porte +- `/f admin zone notify Spawn true` -- mostra messaggi di ingresso diff --git a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md index 368a4ec9..71fc5df4 100644 --- a/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/it-IT/help/admin/admin_zones/zone_flags.md @@ -1,26 +1,26 @@ --- id: admin_zone_flags --- -# Zone Flags +# Flag delle Zone -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Le zone supportano **47 flag booleani** in 10 categorie. Ogni flag controlla un comportamento specifico all'interno della zona. -## Flag Categories Overview +## Panoramica Categorie Flag -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | -| Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | +| Categoria | Conteggio | Flag Principali | +|-----------|-----------|-----------------| +| Combattimento | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Danni | 4 | fall_damage, explosion_damage, fire_spread | +| Morte | 2 | keep_inventory, power_loss | +| Costruzione | 4 | build_allowed, block_place, hammer_use | +| Interazione | 13 | door_use, container_use, bench_use, npc_tame | +| Trasporto | 3 | teleporter_use, portal_use, mount_entry | +| Oggetti | 4 | item_drop, item_pickup, invincible_items | +| Spawn Mob | 5 | mob_spawning, hostile/passive/neutral | +| Rimozione Mob | 4 | mob_clear, hostile/passive/neutral clear | +| Integrazione | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Valori Predefiniti (SafeZone vs WarZone) | Flag | SafeZone | WarZone | |------|----------|---------| @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Alcuni flag richiedono **HyperProtect-Mixin** per funzionare (es. keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Senza il mixin, questi flag non hanno effetto anche quando abilitati. -## Setting Flags +## Impostare i Flag `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Usa `/f admin zone properties ` per un editor visuale con interruttori raggruppati per categoria. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/death.md b/src/main/resources/Server/Languages/it-IT/help/combat/death.md index 8690b43a..fd2cdbbf 100644 --- a/src/main/resources/Server/Languages/it-IT/help/combat/death.md +++ b/src/main/resources/Server/Languages/it-IT/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Morte e Recupero -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +La morte ha conseguenze reali nelle fazioni. Ogni morte ti costa potere personale, indebolendo la capacita' della tua fazione di mantenere il territorio. -## Power Loss +## Perdita di Potere -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Ogni morte costa -1.0 potere dal tuo totale personale. Questo riduce il potere combinato della fazione. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Evento | Variazione Potere | +|--------|-------------------| +| Morte (qualsiasi causa) | -1.0 | +| Rigenerazione online | +0.1 al minuto | +| Disconnessione in combattimento | -1.0 (ucciso) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. -## Example Scenarios +## Scenari di Esempio -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 membri con 10.0 potere ciascuno = 50 totale, 20 claim.* +*Un membro muore due volte: 8.0 potere, totale fazione 48.* +*Tre membri muoiono una volta ciascuno: il totale scende a 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Se il potere della tua fazione scende sotto il numero dei tuoi claim, i nemici possono sovra-reclamare il tuo territorio. -## Recovery +## Recupero -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Il potere si rigenera a 0.1 al minuto mentre sei online. Recuperare 1.0 potere perso richiede circa 10 minuti. Le morti multiple si accumulano, quindi evita combattimenti ripetuti. --- -## All Death Types +## Tutti i Tipi di Morte -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +La perdita di potere si applica a tutte le morti: PvP, uccisioni da mob, danno da caduta, annegamento e qualsiasi altra causa. Non esiste un modo sicuro per morire. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Imposta una home della fazione con /f sethome cosi' i membri possono riunirsi velocemente dopo essere morti. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/protection.md b/src/main/resources/Server/Languages/it-IT/help/combat/protection.md index e564ec2d..b6e922a9 100644 --- a/src/main/resources/Server/Languages/it-IT/help/combat/protection.md +++ b/src/main/resources/Server/Languages/it-IT/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Protezione del Territorio -Claimed territory provides several layers of defense for your faction's builds and resources. +Il territorio reclamato fornisce diversi livelli di difesa per le costruzioni e le risorse della tua fazione. -## Block Protection +## Protezione Blocchi -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Solo i membri della fazione possono piazzare o distruggere blocchi nel tuo territorio. Nemici e neutrali non possono modificare nulla. -## Container Protection +## Protezione Contenitori -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Casse, barili e altri contenitori sono protetti. Solo i membri della tua fazione possono aprire o interagire con lo stoccaggio nei chunk reclamati. -## Entry Alerts +## Avvisi di Ingresso -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Quando un non-membro entra nel tuo territorio reclamato, i membri della fazione online ricevono una notifica con il nome e la posizione dell'intruso. --- -## Ally Access +## Accesso degli Alleati -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Gli alleati non possono costruire o distruggere blocchi nel tuo territorio per impostazione predefinita. Anche il danno tra alleati e' disabilitato, quindi i giocatori alleati non possono danneggiarsi a vicenda. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Il territorio protegge i blocchi, non i giocatori. Il PvP nel tuo territorio dipende dalla relazione dell'attaccante con la tua fazione. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Mantieni i tuoi claim collegati ed evita chunk isolati che sono piu' difficili da difendere. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md index f0b2ab76..821544a2 100644 --- a/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/it-IT/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Protezione Spawn -After respawning from death, you receive temporary protection to prevent spawn camping. +Dopo il respawn dalla morte, ricevi una protezione temporanea per prevenire il camp allo spawn. -## How It Works +## Come Funziona -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- La protezione dura 5 secondi dopo il respawn +- Non puoi subire danni durante questo periodo +- Un indicatore visivo mostra il tuo stato di protezione -## Protection Breaks +## La Protezione si Interrompe -Spawn protection ends early if you: +La protezione spawn termina anticipatamente se: -- Attack another player or entity -- Move from your spawn position +- Attacchi un altro giocatore o entita' +- Ti muovi dalla tua posizione di spawn -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Questo previene abusi. Non puoi attaccare altri mentre sei invulnerabile. Una volta che compi qualsiasi azione, la protezione cade e si applicano le regole di combattimento normali. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Usa il tempo di protezione per valutare la situazione prima di muoverti. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md b/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md index e45cbdb3..a80b04bb 100644 --- a/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/it-IT/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Combat Tag -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Quando attacchi o vieni attaccato da un altro giocatore, ricevi il combat tag per 15 secondi. -## While Tagged +## Mentre Sei Taggato -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Niente teletrasporti con /f home o /f stuck +- Niente comandi di teletrasporto del server +- Il tag si resetta con ogni nuova azione di combattimento +- Un timer mostra la durata rimanente del tag --- -## Logout Penalty +## Penalita' di Disconnessione ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Disconnettersi mentre sei in combat tag uccide il tuo personaggio e perdi 1.0 potere. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +I tuoi oggetti cadono dove ti sei disconnesso e i nemici possono raccoglierli. Attendi sempre che il tag scada. -## How the Timer Works +## Come Funziona il Timer -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Il timer del combat tag appare sullo schermo quando entri in combattimento. Ogni nuovo colpo lo resetta a 15 secondi. Una volta che raggiunge lo zero, tutte le restrizioni vengono rimosse. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Disimpegnati e attendi la fine del timer se hai bisogno di teletrasportarti. diff --git a/src/main/resources/Server/Languages/it-IT/help/combat/zones.md b/src/main/resources/Server/Languages/it-IT/help/combat/zones.md index d1d957d2..d99d296b 100644 --- a/src/main/resources/Server/Languages/it-IT/help/combat/zones.md +++ b/src/main/resources/Server/Languages/it-IT/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Zone Speciali -Admins can designate areas with special rules that override normal faction territory protection. +Gli admin possono designare aree con regole speciali che sovrascrivono la protezione territoriale normale delle fazioni. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Niente danni PvP, niente distruzione blocchi da parte dei non-admin. Ideale per aree di spawn, hub commerciali e aree di preparazione eventi. I giocatori non possono essere danneggiati qui. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +Il PvP e' sempre abilitato. Nessuna protezione blocchi si applica. Aree di battaglia aperte dove tutto e' permesso. Non ricevi benefici di protezione territoriale in una WarZone. --- -## Zone Comparison +## Confronto Zone -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| Caratteristica | SafeZone | WarZone | Terreno Fazione | +|----------------|----------|---------|-----------------| +| PvP | Disabilitato | Sempre Attivo | Basato sulla relazione | +| Distruzione Blocchi | Disabilitata | Permessa | Solo Membri | +| Contenitori | Protetti | Aperti | Solo Membri | +| Ideale Per | Spawn/Commercio | Arene | Basi | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Le regole delle zone sovrascrivono sempre le regole del territorio delle fazioni. Un chunk reclamato all'interno di una WarZone segue le regole della WarZone. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Controlla la tua mappa del territorio con /f map per vedere i confini delle zone. diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md index 45da7756..57902191 100644 --- a/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Formare Alleanze -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Le alleanze sono accordi reciproci tra due fazioni che forniscono benefici di protezione e cooperazione. --- -## How to Form an Alliance +## Come Formare un'Alleanza `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Invia una richiesta di alleanza alla fazione bersaglio. L'alleanza ha effetto solo quando entrambe le parti accettano. Un Ufficiale o Leader dell'altra fazione deve anch'egli eseguire lo stesso comando verso la tua fazione per confermare. -## How to Break an Alliance +## Come Rompere un'Alleanza `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Entrambe le parti possono rompere unilateralmente un'alleanza riportando la relazione a neutrale. --- -## Alliance Benefits +## Benefici dell'Alleanza -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Beneficio | Dettagli | +|-----------|----------| +| Niente fuoco amico | I giocatori alleati non possono danneggiarsi a vicenda | +| Visibilita' mappa condivisa | Il territorio alleato appare in blu sulla mappa del territorio | +| Interazione nel territorio | Gli alleati possono usare porte, sedili e trasporti nel tuo territorio | +| Chat alleati | Passa alla modalita' chat alleati per comunicare tra fazioni | +| Protezione dal sovra-claim | Gli alleati non possono sovra-reclamare il territorio l'uno dell'altro | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] La tua fazione puo' avere fino a 10 alleanze contemporaneamente. Scegli i tuoi alleati con saggezza. --- -## Alliance Etiquette +## Galateo delle Alleanze ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] La comunicazione e' fondamentale. Prima di inviare una richiesta di alleanza, considera di contattare il leader dell'altra fazione per discutere i termini. Un'alleanza forte si basa sul beneficio reciproco, non solo sulla convenienza. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Le alleanze funzionano in entrambe le direzioni -- se benefici della protezione, i tuoi alleati si aspettano lo stesso +- Rompere un'alleanza durante un conflitto puo' danneggiare la reputazione della tua fazione +- Le fazioni alleate possono coordinare i claim territoriali per creare confini difendibili diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md index 70688ad4..6016ca44 100644 --- a/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Fazioni Nemiche -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Dichiarare un nemico e' un'azione unilaterale che abilita immediatamente il PvP e l'aggressione territoriale contro la fazione bersaglio. Non e' richiesto alcun accordo. --- -## Declaring an Enemy +## Dichiarare un Nemico `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Segna istantaneamente la fazione bersaglio come tuo nemico. Ha effetto immediato -- nessuna conferma dall'altra parte e' necessaria. Richiede il grado di Ufficiale o superiore. -## Resetting to Neutral +## Ripristinare a Neutrale `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Termina lo stato di nemico e riporta la relazione a neutrale. Richiede anch'esso Ufficiale+ e ha effetto immediato. --- -## What Enemy Status Enables +## Cosa Abilita lo Stato di Nemico -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| Effetto | Dettagli | +|---------|----------| +| PvP nel territorio | Il PvP completo e' abilitato nel territorio di entrambe le fazioni | +| Sovra-claim | Puoi sovra-reclamare i loro chunk se sono in deficit di potere | +| Segnalazione sulla mappa | Il territorio nemico appare in rosso sulla mappa del territorio | +| Nessuna protezione | La protezione territoriale standard non impedisce il PvP nemico | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Dichiarare un nemico e' una decisione seria. Anche i loro membri possono combatterti nel tuo stesso territorio una volta che dichiari. --- -## Strategic Considerations +## Considerazioni Strategiche -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Le dichiarazioni di nemico sono unilaterali -- puoi dichiarare senza il loro consenso, ma anche loro ti vedranno come ostile +- Prima di dichiarare, controlla il potere del bersaglio con /f info. Se sono forti, potresti perdere territorio invece tu +- Indebolisci i nemici attraverso combattimenti ripetuti per drenare il loro potere, poi sovra-reclama il loro terreno +- Non c'e' limite al numero di nemici che puoi avere, ma combattere su piu' fronti e' rischioso ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Usa /f neutral per de-escalare i conflitti. A volte una pace strategica e' piu' preziosa di una guerra continua. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Se sei alleato con una fazione e la dichiari nemica, l'alleanza viene rotta prima. diff --git a/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md b/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md index 89711eee..d0d20b2e 100644 --- a/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/it-IT/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Relazioni tra Fazioni -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Ogni coppia di fazioni ha una relazione diplomatica che determina come interagiscono. Ci sono tre stati: Alleato, Nemico e Neutrale. --- -## Relation Comparison +## Confronto Relazioni -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| Effetto | Alleato | Neutrale | Nemico | +|---------|---------|----------|--------| +| PvP nel territorio | Disabilitato | Regole standard | Abilitato | +| Protezione territoriale | Protezione reciproca | Protezione standard | Puo' sovra-reclamare se indebolito | +| Fuoco amico | Disabilitato | N/A | Abilitato ovunque | +| Colore mappa | Blu | Grigio | Rosso | +| Come impostare | Accordo reciproco | Stato predefinito | Dichiarazione unilaterale | +| Accesso chat | Canale chat alleati | Nessuno | Nessuno | --- -## Viewing Relations +## Visualizzare le Relazioni `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Mostra tutte le tue alleanze attuali, i nemici e le richieste di alleanza in sospeso. -## How Relations Work +## Come Funzionano le Relazioni -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutrale e' lo stato predefinito tra tutte le fazioni. Si applicano le regole standard del server. +- L'alleanza richiede l'accordo di entrambe le fazioni. Entrambe le parti possono romperla unilateralmente. +- Nemico viene dichiarato unilateralmente. Non serve accordo -- l'altra fazione viene immediatamente segnata come tuo nemico. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Le relazioni sono gestite da Ufficiali e Leader. I Membri possono visualizzare le relazioni ma non possono modificarle. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Usa /f relations regolarmente per tenere traccia del panorama diplomatico. Sapere chi sono i tuoi nemici ti aiuta a prepararti per i conflitti territoriali. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/commands.md b/src/main/resources/Server/Languages/it-IT/help/economy/commands.md index 020190cd..78068a39 100644 --- a/src/main/resources/Server/Languages/it-IT/help/economy/commands.md +++ b/src/main/resources/Server/Languages/it-IT/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Comandi Economia -Quick reference for all faction economy commands. +Riferimento rapido per tutti i comandi economia della fazione. -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f balance | Visualizza il saldo del tesoro | Tutti | +| /f deposit (amount) | Deposita nel tesoro | Tutti | +| /f withdraw (amount) | Preleva dal tesoro | Ufficiale+ | +| /f money transfer (faction) (amount) | Trasferisci a un'altra fazione | Ufficiale+ | +| /f money log [page] | Visualizza lo storico transazioni | Ufficiale+ | --- -## Command Aliases +## Alias dei Comandi -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance puo' essere usato anche come /f bal +- /f deposit e /f withdraw accettano importi decimali -## Role Requirements +## Requisiti di Ruolo -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +I comandi di prelievo e trasferimento sono limitati a Ufficiali e Leader. Tutti gli altri comandi economia sono disponibili per qualsiasi membro della fazione. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Usa /f money log per controllare depositi, prelievi e trasferimenti recenti con data e ora. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/funds.md b/src/main/resources/Server/Languages/it-IT/help/economy/funds.md index 4fe4539c..b7a4047c 100644 --- a/src/main/resources/Server/Languages/it-IT/help/economy/funds.md +++ b/src/main/resources/Server/Languages/it-IT/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Gestione dei Fondi -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +I membri della fazione collaborano per mantenere il tesoro finanziato attraverso depositi, prelievi e trasferimenti. -## Depositing +## Depositare -Any member can deposit personal funds into the faction treasury. +Qualsiasi membro puo' depositare fondi personali nel tesoro della fazione. `/f deposit ` -Deposit from your personal balance into the treasury. +Deposita dal tuo saldo personale nel tesoro. -## Withdrawing +## Prelevare -Officers and the Leader can withdraw funds back to their personal balance. +Gli Ufficiali e il Leader possono prelevare fondi riportandoli al proprio saldo personale. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Preleva dal tesoro al tuo saldo. (Ufficiale+) -## Transferring +## Trasferire -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Gli Ufficiali possono trasferire fondi direttamente tra i tesori delle fazioni per accordi commerciali o diplomazia. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Invia fondi al tesoro di un'altra fazione. (Ufficiale+) --- -## Fees +## Commissioni -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Transazione | Commissione | +|-------------|-------------| +| Deposito | 0% | +| Prelievo | 0% | +| Trasferimento | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Le percentuali delle commissioni sono configurabili dal server e potrebbero differire dai valori predefiniti mostrati sopra. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Tutte le transazioni vengono registrate. Usa /f money log per controllare l'attivita' recente. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md b/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md index e4e7307b..8b47791a 100644 --- a/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/it-IT/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Tesoro della Fazione -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Ogni fazione ha un tesoro condiviso che funge da banca della fazione. I fondi vengono utilizzati per i costi di mantenimento, la manutenzione del territorio e le operazioni della fazione. -## Starting Balance +## Saldo Iniziale -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Le nuove fazioni iniziano con 0 nel loro tesoro. I membri devono depositare fondi per accumulare riserve. -## Who Can Manage +## Chi Puo' Gestire -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Qualsiasi membro puo' depositare fondi +- Ufficiali e Leader possono prelevare e trasferire +- Il Leader ha il controllo completo del tesoro --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Controlla il saldo attuale del tesoro della tua fazione. Disponibile anche come /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Contribuisci regolarmente per mantenere la tua fazione finanziata. I costi di mantenimento del territorio possono svuotare un tesoro vuoto rapidamente. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Tutte le transazioni del tesoro vengono registrate e possono essere consultate dagli ufficiali. diff --git a/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md b/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md index 8a2d12e4..97c8734c 100644 --- a/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/it-IT/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Mantenimento del Territorio -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Le fazioni devono pagare un mantenimento continuo per conservare il territorio reclamato. Questo previene l'accumulo di terreni e mantiene la mappa dinamica. -## Upkeep Costs +## Costi di Mantenimento -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Impostazione | Predefinito | +|--------------|-------------| +| Costo per chunk | 2.0 per ciclo | +| Intervallo di pagamento | Ogni 24 ore | +| Chunk gratuiti | 3 (nessun costo) | +| Modalita' di scalatura | Tariffa fissa | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +I tuoi primi 3 chunk sono gratuiti. Oltre a cio', ogni chunk reclamato aggiuntivo costa 2.0 per ciclo di pagamento. -## Auto-Pay +## Pagamento Automatico -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Il pagamento automatico e' abilitato per impostazione predefinita. Il sistema deduce automaticamente il mantenimento dal tuo tesoro ad ogni intervallo. Nessuna azione manuale necessaria. --- -## Grace Period +## Periodo di Grazia -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Se il tuo tesoro non puo' coprire il mantenimento, inizia un periodo di grazia di 48 ore. Un avviso viene inviato 6 ore prima che i claim inizino ad essere persi. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Se il mantenimento resta non pagato dopo il periodo di grazia, la tua fazione perde 1 claim per ciclo fino a quando i costi non sono coperti o tutti i claim extra sono stati rimossi. -## Example +## Esempio -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Una fazione con 8 claim paga per 5 chunk (8 meno 3 gratuiti). A 2.0 per chunk, sono 10.0 per ciclo.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Mantieni il tuo tesoro al di sopra del costo di mantenimento. Usa /f balance per controllare le tue riserve. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md b/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md index f70427cb..447f293d 100644 --- a/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Reclamare Territorio -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Reclamare un chunk lo protegge sotto il controllo della tua fazione. Solo i membri della fazione possono costruire, distruggere o accedere ai contenitori nel territorio reclamato. --- -## How to Claim +## Come Reclamare `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Posizionati nel chunk che vuoi reclamare ed esegui questo comando. Il chunk viene immediatamente protetto. Richiede il grado di Ufficiale o superiore. -## How to Unclaim +## Come Rilasciare `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Rilascia il chunk in cui ti trovi riportandolo a natura selvaggia. Richiede anch'esso Ufficiale+. --- -## Claim Rules +## Regole di Claim -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Regola | Predefinito | +|--------|-------------| +| Costo in potere per claim | 2.0 potere | +| Claim massimi | 100 per fazione | +| Solo adiacenti | No (puoi reclamare ovunque) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Ogni claim costa 2.0 potere da mantenere. Una fazione con 50 potere totale puo' mantenere fino a 25 claim in sicurezza. --- -## What Protection Provides +## Cosa Fornisce la Protezione -Inside claimed territory, the following is enforced by default: +All'interno del territorio reclamato, le seguenti regole sono applicate per impostazione predefinita: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Gli esterni non possono distruggere, piazzare o interagire con i blocchi +- Gli alleati possono usare porte, sedili e trasporti ma non possono distruggere o piazzare blocchi +- Membri e Ufficiali hanno pieno accesso per costruire, distruggere e usare tutto +- L'accesso ai contenitori (casse, bauli) e' limitato ai soli membri ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Puoi anche reclamare direttamente dalla mappa del territorio. Apri /f map e clicca sui chunk non reclamati per reclamarli. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Non espanderti troppo. Se la tua fazione perde potere a causa delle morti, i claim oltre il tuo budget di potere diventano vulnerabili al sovra-claim. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md index ea39186b..f663e9ab 100644 --- a/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Perdere Territorio -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Quando il potere totale di una fazione scende sotto il costo dei suoi claim, diventa attaccabile. I nemici possono sovra-reclamare i chunk togliendoteli da sotto i piedi. --- -## How Overclaiming Works +## Come Funziona il Sovra-Claim `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Un Ufficiale o Leader di una fazione nemica si posiziona nel tuo chunk reclamato ed esegue questo comando. Se la tua fazione e' in deficit di potere, il chunk viene trasferito alla loro fazione. -## The Math +## I Calcoli -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Ogni claim costa 2.0 potere da mantenere. Se il tuo potere totale scende sotto quella soglia, i chunk in deficit sono vulnerabili. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Il sovra-claim e' permanente. Una volta che un nemico prende un chunk, devi reclamarlo di nuovo (o sovra-reclamarlo a tua volta se si indeboliscono). --- -## Example Scenario +## Scenario di Esempio -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Fattore | Valore | +|---------|--------| +| Membri | 5 giocatori | +| Potere per membro | 10 ciascuno (iniziale) | +| Potere totale | 50 | +| Claim | 30 chunk | +| Potere necessario (30 x 2.0) | 60 | +| Deficit | 10 potere in meno | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +In questo esempio, la fazione e' gia' attaccabile fin dall'inizio. I nemici potrebbero sovra-reclamare fino a 5 chunk (10 deficit / 2.0 per claim) prima che la fazione raggiunga l'equilibrio. --- -## How to Prevent Overclaiming +## Come Prevenire il Sovra-Claim -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Non espanderti troppo -- mantieni sempre il potere totale sopra il costo dei claim con un margine +- Resta attivo -- il potere si rigenera solo mentre sei online (+0.1/min) +- Evita morti inutili -- ogni morte costa 1.0 potere +- Recluta piu' membri -- piu' giocatori significa piu' potere totale +- Rilascia i chunk inutilizzati -- libera potere con /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Controlla regolarmente il tuo stato di potere con /f power. Se il tuo potere totale e' vicino al costo dei claim, considera di rilasciare i chunk meno importanti prima di una guerra. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md b/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md index 207c041d..f4314a29 100644 --- a/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# La Mappa del Territorio -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +La mappa del territorio ti offre una vista dall'alto dei chunk reclamati nella tua zona, mostrando quali fazioni controllano il terreno intorno a te. --- -## Opening the Map +## Aprire la Mappa `/f map` -Opens the territory map GUI centered on your current location. +Apre la GUI della mappa del territorio centrata sulla tua posizione attuale. --- -## Color Legend +## Legenda Colori -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Colore | Significato | +|--------|-------------| +| [#55FF55] Il colore della tua fazione | Territorio reclamato dalla tua fazione | +| [#5555FF] Blu | Territorio di fazione alleata | +| [#FF5555] Rosso | Territorio di fazione nemica | +| [#AAAAAA] Grigio | Territorio di fazione neutrale | +| [#333333] Scuro | Natura selvaggia (terreno non reclamato) | +| [#FFAA00] Oro | Zone speciali (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] Il colore della tua fazione sulla mappa corrisponde al colore che hai impostato con l'impostazione colore della fazione. Alleati e nemici usano colori fissi per una facile identificazione. --- -## Click to Claim +## Clicca per Reclamare -The map is not just for viewing -- you can interact with it directly. +La mappa non serve solo per guardare -- puoi interagirci direttamente. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Clicca su un chunk non reclamato per reclamarlo (richiede grado Ufficiale+ e potere sufficiente) +- Clicca su un chunk reclamato per vedere quale fazione lo possiede +- Scorri o trascina per esplorare l'area intorno a te ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] La mappa e' il modo piu' facile per pianificare l'espansione del tuo territorio. Cerca le aree non reclamate vicino alla tua base e reclama strategicamente per creare un confine contiguo. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] La mappa mostra un'area fissa intorno alla tua posizione. Spostati in un'altra posizione e riaprila per vedere altre parti del mondo. diff --git a/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md index ae158ed5..22418627 100644 --- a/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/it-IT/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Comprendere il Potere -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Il potere e' la risorsa fondamentale che determina quanto territorio la tua fazione puo' mantenere. Ogni giocatore ha un potere personale che contribuisce al totale della fazione. --- -## Default Power Values +## Valori Predefiniti del Potere -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Impostazione | Valore | +|--------------|--------| +| Potere massimo per giocatore | 20 | +| Potere iniziale | 10 | +| Penalita' morte | -1.0 per morte | +| Ricompensa uccisione | 0.0 | +| Tasso di rigenerazione | +0.1 al minuto (mentre online) | +| Costo potere per claim | 2.0 | +| Disconnessione mentre taggato | -1.0 aggiuntivo | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Questi sono valori predefiniti. L'amministratore del tuo server potrebbe aver configurato impostazioni diverse. -## How It Works +## Come Funziona -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Il potere totale della tua fazione e' la somma del potere personale di ogni membro. Il potere richiesto e' il numero di claim moltiplicato per 2.0. Finche' il potere totale resta sopra il potere richiesto, il tuo territorio e' al sicuro. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Il potere si rigenera passivamente a 0.1 al minuto mentre sei online. A quel ritmo, recuperare 1.0 potere richiede circa 10 minuti. --- -## Checking Your Power +## Controllare il Tuo Potere `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Mostra il tuo potere personale, il potere totale della fazione e quanto e' necessario per mantenere i claim attuali. -## The Danger Zone +## La Zona di Pericolo -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Se il potere totale scende sotto la quantita' richiesta per i tuoi claim, la tua fazione diventa vulnerabile. I nemici possono sovra-reclamare i tuoi chunk. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Morti multiple in un breve periodo possono accumulare conseguenze rapidamente. Se hai 5 membri ciascuno con 10 potere (50 totale) e 20 claim (40 necessari), appena 5 morti nel tuo team ti portano a 45 -- ancora al sicuro. Ma 11 morti ti portano a 39, sotto la soglia di 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Mantieni un margine di potere. Non reclamare ogni chunk che puoi permetterti -- lascia spazio per qualche morte senza diventare attaccabile. diff --git a/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md index 0540d550..6dedf307 100644 --- a/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/it-IT/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | - -## Teleport - -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | +# Tutti i Comandi + +## Base + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f | Apri menu fazione | Tutti | +| /f help | Apri centro assistenza | Tutti | +| /f create (name) | Crea una fazione | Tutti | +| /f disband | Elimina la tua fazione | Leader | +| /f leave | Lascia la tua fazione | Tutti | + +## Membri + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f invite (player) | Invita un giocatore | Ufficiale+ | +| /f accept [faction] | Accetta un invito | Tutti | +| /f request (faction) | Richiedi di unirti | Tutti | +| /f kick (player) | Rimuovi un membro | Ufficiale+ | +| /f promote (player) | Promuovi a Ufficiale | Leader | +| /f demote (player) | Degrada a Membro | Leader | +| /f transfer (player) | Trasferisci leadership | Leader | + +## Territorio + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f claim | Reclama il chunk corrente | Ufficiale+ | +| /f unclaim | Rilascia il chunk corrente | Ufficiale+ | +| /f overclaim | Prendi un chunk indebolito | Ufficiale+ | +| /f map | Apri mappa del territorio | Tutti | + +## Teletrasporto + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f home | Teletrasportati alla home della fazione | Tutti | +| /f sethome | Imposta la home della fazione | Ufficiale+ | +| /f delhome | Elimina la home della fazione | Ufficiale+ | +| /f stuck | Esci dal territorio nemico | Tutti | + +## Informazioni + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f info [faction] | Visualizza dettagli fazione | Tutti | +| /f list | Sfoglia tutte le fazioni | Tutti | +| /f members | Visualizza roster | Tutti | +| /f who [player] | Visualizza info giocatore | Tutti | +| /f power [player] | Controlla livelli di potere | Tutti | +| /f invites | Gestisci inviti/richieste | Tutti | +| /f relations | Visualizza relazioni diplomatiche | Tutti | + +## Diplomazia + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f ally (faction) | Richiedi alleanza | Ufficiale+ | +| /f enemy (faction) | Dichiara nemico | Ufficiale+ | +| /f neutral (faction) | Ripristina a neutrale | Ufficiale+ | + +## Impostazioni + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f settings | Apri GUI impostazioni | Ufficiale+ | +| /f rename (name) | Rinomina fazione | Leader | +| /f desc [text] | Imposta descrizione | Ufficiale+ | +| /f color (code) | Imposta colore fazione | Ufficiale+ | +| /f open | Permetti a chiunque di unirsi | Leader | +| /f close | Richiedi invito | Leader | + +## Economia + +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f balance | Visualizza tesoro | Tutti | +| /f deposit (amount) | Deposita fondi | Tutti | +| /f withdraw (amount) | Preleva fondi | Ufficiale+ | +| /f money transfer (faction) (amt) | Trasferisci fondi | Ufficiale+ | +| /f money log [page] | Storico transazioni | Ufficiale+ | ## Chat -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| Comando | Descrizione | Ruolo | +|---------|-------------|-------| +| /f c | Cambia modalita' chat | Tutti | +| /f c f | Imposta chat fazione | Tutti | +| /f c a | Imposta chat alleati | Tutti | +| /f c off | Imposta chat pubblica | Tutti | diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md b/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md index 2155ff0c..3d7f5cff 100644 --- a/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Per Iniziare -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Benvenuto su HyperFactions! Ecco come iniziare in pochi semplici passaggi. --- -## Step 1: Open the Faction Menu +## Passaggio 1: Apri il Menu Fazione -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Digita /f per aprire la GUI principale della fazione. Questo e' il tuo centro per tutto -- sfogliare le fazioni, crearne una tua e gestire gli inviti. -## Step 2: Choose Your Path +## Passaggio 2: Scegli il Tuo Percorso -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Opzione | Come | +|---------|------| +| Sfoglia le fazioni aperte | Clicca Sfoglia nel menu e premi Unisciti su qualsiasi fazione aperta. | +| Accetta un invito | Controlla la scheda Inviti. Se qualcuno ti ha invitato, clicca Accetta. | +| Creane una tua | Clicca Crea Fazione, scegli un nome e diventerai il Leader. | -## Step 3: Explore Your Faction +## Passaggio 3: Esplora la Tua Fazione -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Una volta entrato in una fazione, vedrai la Dashboard della Fazione con il roster, la mappa del territorio, le relazioni e le impostazioni. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Se sei completamente nuovo, prova prima a unirti a una fazione esistente. Imparerai piu' velocemente con membri esperti intorno a te. --- -## Essential First Commands +## Comandi Essenziali Iniziali -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Apre la GUI della fazione +- /f home -- Teletrasportati alla base della tua fazione +- /f c -- Cambia modalita' chat tra Normale, Fazione e Alleato +- /f map -- Visualizza la mappa del territorio intorno a te ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Puoi anche digitare /f help in chat per un riferimento rapido ai comandi in qualsiasi momento. diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md index dcd1df1a..1cf47534 100644 --- a/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Consigli Rapidi -Handy advice organized by category to help you thrive. +Consigli utili organizzati per categoria per aiutarti a prosperare. --- -## Territory +## Territorio -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Reclama il terreno intorno alla tua base il prima possibile con `/f claim` -- le costruzioni non reclamate non hanno **nessuna protezione** +- Ogni claim costa **2.0 potere** da mantenere, quindi non espanderti oltre quello che i tuoi membri possono sostenere +- Usa `/f map` per esplorare i claim vicini e trovare punti sicuri dove costruire +- Rilascia i chunk che non ti servono piu' con `/f unclaim` per liberare potere -## Combat +## Combattimento -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Morire costa **1.0 potere** -- evita combattimenti inutili quando la tua fazione e' vicina al limite di claim +- Hai **5 secondi di protezione spawn** dopo il respawn +- Il combat tag dura **15 secondi** -- disconnettersi mentre sei taggato costa potere extra +- Il fuoco amico e' **disabilitato** tra membri della fazione e alleati per impostazione predefinita ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Disconnettersi mentre sei in combat tag causa una perdita di potere aggiuntiva (1.0 per disconnessione). Resta e combatti o scappa prima. -## Social +## Sociale -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Usa `/f c` per scorrere le modalita' chat cosi' la conversazione della fazione resta privata +- Invita giocatori fidati con `/f invite ` -- gli inviti scadono dopo **5 minuti** +- Forma alleanze con `/f ally ` per protezione reciproca e visibilita' condivisa sulla mappa +- Controlla `/f relations` per vedere il tuo stato diplomatico completo -## Economy +## Economia ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Se il server ha l'economia abilitata, la tua fazione puo' accumulare un tesoro. I membri possono depositare, ma solo gli Ufficiali e i Leader possono prelevare o trasferire fondi. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Deposita fondi tramite la GUI del tesoro per rafforzare la tua fazione +- Una fazione piu' ricca puo' permettersi piu' claim e riprendersi piu' velocemente dai contrattempi -## General +## Generale -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Digita `/f` in qualsiasi momento per aprire la dashboard della tua fazione -- tutto e' accessibile da li' +- Promuovi i membri attivi a Ufficiale cosi' possono aiutare a reclamare e gestire il territorio +- Mantieni la tua fazione attiva -- il potere si rigenera solo mentre i giocatori sono **online** diff --git a/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md index 5fedf54c..b4e10ac3 100644 --- a/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/it-IT/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Cosa Sono le Fazioni? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Le fazioni sono squadre gestite dai giocatori che reclamano territorio, costruiscono basi e competono per il dominio. Quando ti unisci o crei una fazione, ottieni accesso a terreni protetti, una home condivisa, chat privata e strumenti diplomatici. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Le Fazioni sono tutte basate sul lavoro di squadra. Piu' membri attivi hai, piu' forte diventa la tua fazione. --- -## Core Mechanics +## Meccaniche Principali -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Meccanica | Cosa Fa | +|-----------|---------| +| Potere | Ogni giocatore genera potere nel tempo (max 20). Il potere totale della tua fazione determina quanto territorio puoi mantenere. | +| Claim | I chunk reclamati sono protetti -- solo i membri possono costruire, distruggere o aprire contenitori al loro interno. Ogni claim costa 2.0 potere da mantenere. | +| Relazioni | Le fazioni possono formare alleanze per protezione reciproca o dichiarare nemici per abilitare il PvP e l'aggressione territoriale. | +| Ruoli | Tre gradi -- Leader, Ufficiale, Membro -- ognuno con capacita' diverse. | --- -## How Strength Works +## Come Funziona la Forza -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +La forza della tua fazione viene dai suoi membri. Ogni giocatore inizia con 10 potere e rigenera fino a 20 mentre e' online. Morire costa potere. Se il potere totale della fazione scende sotto il costo dei tuoi claim, i nemici possono sovra-reclamare il tuo territorio. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Una singola morte costa 1.0 potere. Morti multiple in breve tempo possono lasciare la tua fazione vulnerabile al sovra-claim. --- -## Diplomacy at a Glance +## Diplomazia in Sintesi -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Alleati** -- Accordi reciproci che prevengono il fuoco amico e proteggono il territorio l'uno dell'altro +- **Nemici** -- Dichiarazioni unilaterali che abilitano il PvP nel territorio di ciascuno e permettono il sovra-claim +- **Neutrali** -- Lo stato predefinito tra tutte le fazioni con regole standard ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Puoi gestire tutto questo tramite la GUI in-game digitando `/f` o tramite i comandi in chat. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md index e1eaa33b..74c55e85 100644 --- a/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Creare una Fazione -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Creare la tua fazione ti rende il Leader con pieno controllo su impostazioni, membri e territorio. --- -## How to Create +## Come Creare `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Questo crea la tua fazione e apre immediatamente la Dashboard della Fazione dove puoi iniziare a invitare membri, reclamare terreno e configurare le impostazioni. -## Name Rules +## Regole del Nome -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Regola | Requisito | +|--------|-----------| +| Lunghezza | Tra 3 e 24 caratteri | +| Caratteri | Solo lettere, numeri e spazi | +| Unicita' | Due fazioni non possono condividere lo stesso nome | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Scegli il nome con attenzione. Rinominare in seguito richiede i permessi da Leader e potrebbe avere un cooldown. --- -## What Happens on Creation +## Cosa Succede alla Creazione -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Diventi il Leader (grado piu' alto) +- La tua fazione inizia con 0 claim e il tuo potere personale (10 per impostazione predefinita) +- La dashboard della fazione si apre automaticamente +- Puoi immediatamente invitare giocatori, reclamare territorio e impostare una home della fazione ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Se il server ha l'integrazione economia abilitata, creare una fazione potrebbe costare denaro. Il costo di creazione e' impostato dall'amministratore del server. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Dopo la creazione, le tue prime priorita' dovrebbero essere: invitare amici, trovare una posizione per la base e reclamarla. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md index 7dbabdcd..8cb9c1ce 100644 --- a/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Unirsi a una Fazione -There are three ways to join an existing faction, depending on how the faction is configured. +Ci sono tre modi per unirsi a una fazione esistente, a seconda di come e' configurata la fazione. --- -## Methods Compared +## Confronto dei Metodi -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Metodo | Come | Richiede | +|--------|------|----------| +| Sfoglia e Unisciti | Apri /f, clicca Sfoglia, clicca Unisciti | La fazione e' impostata come aperta | +| Accetta Invito | Controlla la scheda Inviti nel menu /f | Un invito attivo | +| Richiedi di Unirti | Usa /f request, attendi l'approvazione | Un Ufficiale o Leader approva | --- -## Invite Details +## Dettagli Inviti -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Gli inviti vengono inviati da Ufficiali o Leader +- Gli inviti scadono dopo 5 minuti -- accetta prontamente +- Visualizza i tuoi inviti in sospeso nella scheda Inviti del menu fazione +- Accetta tramite la GUI o /f accept -## Join Requests +## Richieste di Adesione -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Usa /f request per richiedere l'adesione a una fazione chiusa +- Le richieste scadono dopo 24 ore se non vengono gestite +- Ufficiali e Leader possono approvare o rifiutare le richieste dalla dashboard della fazione ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Non sai quale fazione scegliere? Usa la scheda Sfoglia in /f per vedere le descrizioni delle fazioni, il numero di membri e se sono aperte o solo su invito. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Ogni fazione puo' contenere fino a 50 membri per impostazione predefinita. Se una fazione e' piena, dovrai attendere che si liberi un posto. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md index 870c6133..38f56503 100644 --- a/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Gestione dei Membri -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Ufficiali e Leader condividono la responsabilita' di gestire il roster della fazione. Ecco i comandi principali e chi puo' usarli. --- -## Commands +## Comandi -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Comando | Cosa Fa | Ruolo Richiesto | +|---------|---------|-----------------| +| `/f invite ` | Invia un invito di adesione (scade in 5 min) | Ufficiale+ | +| `/f kick ` | Rimuove un membro dalla fazione | Ufficiale+ (vedi nota) | +| `/f promote ` | Promuove un Membro a Ufficiale | Solo Leader | +| `/f demote ` | Degrada un Ufficiale a Membro | Solo Leader | +| `/f transfer ` | Trasferisce la proprieta' della fazione | Solo Leader | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Gli Ufficiali possono espellere solo i Membri. Per rimuovere un altro Ufficiale, il Leader deve prima degradarlo o espellerlo direttamente. --- -## Invitations +## Inviti -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Gli inviti scadono dopo 5 minuti se non vengono accettati +- Il giocatore invitato li vede nella scheda Inviti quando apre /f +- Non c'e' limite al numero di inviti che puoi inviare contemporaneamente +- La tua fazione puo' contenere fino a 50 membri in totale -## Promotions and Demotions +## Promozioni e Degradamenti -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Solo il Leader puo' promuovere o degradare +- /f promote eleva un Membro a Ufficiale +- /f demote riporta un Ufficiale a Membro -## Transferring Leadership +## Trasferimento della Leadership ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Il trasferimento della leadership e' irreversibile. Verrai degradato a Ufficiale e il giocatore designato diventera' il nuovo Leader. Assicurati di fidarti completamente di lui. `/f transfer ` -The target must be a current member of your faction. +Il destinatario deve essere un membro attuale della tua fazione. diff --git a/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md b/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md index 67bb5962..40cfee45 100644 --- a/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/it-IT/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Ruoli e Gradi -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Ogni fazione ha tre ruoli in una gerarchia rigida. I ruoli superiori ereditano tutte le capacita' dei ruoli sottostanti. --- -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +## Dettaglio Permessi + +| Azione | Leader | Ufficiale | Membro | +|--------|--------|-----------|--------| +| Costruire nel territorio | Si' | Si' | Si' | +| Usare la home della fazione | Si' | Si' | Si' | +| Chat fazione e alleati | Si' | Si' | Si' | +| Invitare giocatori | Si' | Si' | No | +| Espellere membri | Si' | Si' (solo Membri) | No | +| Reclamare / rilasciare terreno | Si' | Si' | No | +| Sovra-reclamare territorio nemico | Si' | Si' | No | +| Impostare la home della fazione | Si' | Si' | No | +| Eliminare la home della fazione | Si' | Si' | No | +| Gestire relazioni (alleato/nemico) | Si' | Si' | No | +| Visualizzare i log della fazione | Si' | Si' | No | +| Promuovere a Ufficiale | Si' | No | No | +| Degradare da Ufficiale | Si' | No | No | +| Rinominare la fazione | Si' | No | No | +| Impostare descrizione / tag / colore | Si' | No | No | +| Aprire / chiudere la fazione | Si' | No | No | +| Accedere alle impostazioni della fazione | Si' | No | No | +| Trasferire la leadership | Si' | No | No | +| Sciogliere la fazione | Si' | No | No | + +>[!NOTE] Gli Ufficiali possono espellere i Membri ma non possono espellere altri Ufficiali. Solo il Leader puo' rimuovere gli Ufficiali. --- -## Role Details +## Dettagli dei Ruoli -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Leader -- Uno per fazione. Ha il controllo completo su tutte le impostazioni, i membri e il territorio. Puo' trasferire la proprieta' a un altro membro. +- Ufficiale -- Membri fidati che aiutano a gestire la fazione. Possono invitare, espellere membri, reclamare terreno e gestire la diplomazia. +- Membro -- Il ruolo predefinito quando ci si unisce. Puo' costruire nel territorio, usare la home della fazione e partecipare alla chat della fazione. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Promuovi i tuoi membri piu' attivi e fidati a Ufficiale cosi' possono aiutare a gestire il territorio e reclutare nuovi giocatori. From 00e83653d5b955a7512cd50859be95bfdfaead1c Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:17:47 -0700 Subject: [PATCH 72/76] i18n: add Polish (pl-PL) help file translations Translate all 42 help markdown files into Polish, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 56 ++++---- .../help/admin/admin_config/world_settings.md | 48 +++---- .../admin_economy/treasury_management.md | 48 +++---- .../admin/admin_economy/upkeep_management.md | 48 +++---- .../help/admin/admin_factions/disbanding.md | 42 +++--- .../admin/admin_factions/managing_factions.md | 40 +++--- .../help/admin/admin_maintenance/backups.md | 62 ++++----- .../help/admin/admin_maintenance/imports.md | 46 +++---- .../help/admin/admin_maintenance/updates.md | 50 +++---- .../admin/admin_overview/getting_started.md | 51 ++++--- .../help/admin/admin_overview/permissions.md | 48 +++---- .../help/admin/admin_power/power_commands.md | 46 +++---- .../help/admin/admin_power/power_overrides.md | 60 ++++---- .../admin/admin_reference/all_commands.md | 26 ++-- .../admin/admin_reference/integrations.md | 52 +++---- .../help/admin/admin_zones/zone_basics.md | 38 +++--- .../help/admin/admin_zones/zone_commands.md | 58 ++++---- .../help/admin/admin_zones/zone_flags.md | 36 ++--- .../Languages/pl-PL/help/combat/death.md | 38 +++--- .../Languages/pl-PL/help/combat/protection.md | 24 ++-- .../pl-PL/help/combat/spawn_protection.md | 26 ++-- .../Languages/pl-PL/help/combat/tagging.md | 28 ++-- .../Languages/pl-PL/help/combat/zones.md | 24 ++-- .../pl-PL/help/diplomacy/alliances.md | 38 +++--- .../Languages/pl-PL/help/diplomacy/enemies.md | 40 +++--- .../pl-PL/help/diplomacy/relations.md | 36 ++--- .../Languages/pl-PL/help/economy/commands.md | 28 ++-- .../Languages/pl-PL/help/economy/funds.md | 36 ++--- .../Languages/pl-PL/help/economy/treasury.md | 22 +-- .../Languages/pl-PL/help/economy/upkeep.md | 36 ++--- .../pl-PL/help/power_land/claiming.md | 42 +++--- .../pl-PL/help/power_land/losing_territory.md | 48 +++---- .../pl-PL/help/power_land/territory_map.md | 40 +++--- .../help/power_land/understanding_power.md | 42 +++--- .../pl-PL/help/quick_ref/all_commands.md | 128 +++++++++--------- .../pl-PL/help/welcome/getting_started.md | 36 ++--- .../pl-PL/help/welcome/quick_tips.md | 52 +++---- .../pl-PL/help/welcome/what_are_factions.md | 34 ++--- .../pl-PL/help/your_faction/creating.md | 34 ++--- .../pl-PL/help/your_faction/joining.md | 36 ++--- .../pl-PL/help/your_faction/managing.md | 44 +++--- .../pl-PL/help/your_faction/roles.md | 60 ++++---- 42 files changed, 913 insertions(+), 914 deletions(-) diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md index 95b6c952..1f52a97d 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# System konfiguracji -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions używa modularnego systemu konfiguracji JSON z 11 plikami konfiguracyjnymi. -## Admin Config Commands +## Komendy konfiguracji administracyjnej -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| `/f admin config` | Otwórz wizualny edytor konfiguracji GUI | +| `/f admin reload` | Przeładuj wszystkie pliki konfiguracyjne z dysku | +| `/f admin sync` | Synchronizuj dane frakcji do magazynu | -## Configuration Files +## Pliki konfiguracyjne -| File | Contents | +| Plik | Zawartość | |------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | - ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: +| `factions.json` | Role, moc, zajęcia, walka, relacje | +| `server.json` | Teleportacja, auto-zapis, wiadomości, GUI, uprawnienia | +| `economy.json` | Skarbiec, utrzymanie, ustawienia transakcji | +| `backup.json` | Rotacja i retencja kopii zapasowych | +| `chat.json` | Formatowanie czatu frakcyjnego i sojuszniczego | +| `debug.json` | Kategorie logowania debugowego | +| `faction-permissions.json` | Domyślne uprawnienia dla ról | +| `announcements.json` | Transmisja wydarzeń i powiadomienia terytorialne | +| `gravestones.json` | Ustawienia integracji nagrobków | +| `worldmap.json` | Tryby odświeżania mapy świata | +| `worlds.json` | Nadpisania zachowań dla poszczególnych światów | + +>[!TIP] GUI konfiguracji zapewnia wizualny edytor z opisami dla każdego ustawienia. Zmiany są zapisywane natychmiast, ale niektóre wymagają `/f admin reload`, aby w pełni zadziałać. + +## Lokalizacja konfiguracji + +Wszystkie pliki są przechowywane w: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Ręczne edycje JSON wymagają `/f admin reload`, aby zostały zastosowane. Niepoprawny JSON spowoduje pominięcie pliku z ostrzeżeniem w logu serwera. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] Wersja konfiguracji jest śledzona w `server.json`. Plugin automatycznie migruje starsze konfiguracje przy uruchomieniu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md index 47e8dffe..9001fae6 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Ustawienia per-świat -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions obsługuje konfigurację per-świat dla zajmowania, PvP i zachowania ochrony. -## World Commands +## Komendy światów -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| `/f admin world list` | Lista wszystkich nadpisań światów | +| `/f admin world info ` | Pokaż ustawienia dla świata | +| `/f admin world set ` | Ustaw ustawienie | +| `/f admin world reset ` | Resetuj świat do domyślnych | -## Available Settings +## Dostępne ustawienia -| Setting | Type | Description | +| Ustawienie | Typ | Opis | |---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| claiming_enabled | boolean | Zezwól na zajęcia frakcji w tym świecie | +| pvp_enabled | boolean | Zezwól na walkę PvP w tym świecie | +| power_loss | boolean | Zastosuj utratę mocy przy śmierci | +| build_protection | boolean | Wymuś ochronę budowania na zajęciach | +| explosion_protection | boolean | Chroń zajęcia przed eksplozjami | -## World Whitelist / Blacklist +## Biała lista / czarna lista światów -Control which worlds allow faction features through the `worlds.json` config file: +Kontroluj, które światy pozwalają na funkcje frakcji przez plik konfiguracyjny `worlds.json`: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Tryb białej listy**: Tylko wymienione światy pozwalają na zajmowanie +- **Tryb czarnej listy**: Wszystkie światy pozwalają na zajmowanie oprócz wymienionych ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Ustawienia światów są przechowywane w `worlds.json` i nadpisują globalne domyślne z `factions.json`. -## Examples +## Przykłady - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- przywróć wszystkie domyślne ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Wyłącz zajmowanie w światach kreatywnych lub lobby, aby skupić system frakcji na rozgrywce survivalowej. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Ustawienia per-świat mają priorytet nad globalną konfiguracją, ale są nadpisywane przez flagi stref w danym świecie. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md index b219d330..1afda30c 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Zarządzanie skarbcem -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Komendy administracyjne do zarządzania skarbcami frakcji. Wymaga uprawnienia `hyperfactions.admin.economy`. -## Treasury Commands +## Komendy skarbca -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| `/f admin economy balance ` | Wyświetl saldo skarbca frakcji | +| `/f admin economy set ` | Ustaw dokładne saldo | +| `/f admin economy add ` | Dodaj fundusze do skarbca | +| `/f admin economy take ` | Usuń fundusze ze skarbca | +| `/f admin economy reset ` | Resetuj skarbiec do zera | -## Examples +## Przykłady -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- sprawdź saldo +- `/f admin economy set Vikings 5000` -- ustaw na 5000 +- `/f admin economy add Vikings 1000` -- wpłać 1000 +- `/f admin economy take Vikings 500` -- wypłać 500 +- `/f admin economy reset Vikings` -- wyzeruj saldo ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Użyj `/f admin info `, aby zobaczyć pełny przegląd ekonomii, w tym historię transakcji obok salda skarbca. -## Use Cases +## Przypadki użycia -| Scenario | Command | +| Scenariusz | Komenda | |----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Dystrybucja nagród za wydarzenie | `economy add ` | +| Kara za złamanie regulaminu | `economy take ` | +| Reset ekonomii po wipe | `economy reset ` | +| Kompensacja za błędy | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Zmiany w skarbcu są rejestrowane w historii transakcji frakcji. Modyfikacje administracyjne są zapisywane z nazwą administratora dla odpowiedzialności. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Wszystkie komendy ekonomii administracyjnej działają nawet gdy moduł ekonomii jest wyłączony w konfiguracji. Dane są przechowywane niezależnie od statusu modułu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..d7f49262 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Zarządzanie utrzymaniem -Faction upkeep charges factions periodically based on their territory and member count. +Utrzymanie frakcji obciąża frakcje okresowo na podstawie ich terytorium i liczby członków. -## Admin Controls +## Kontrole administracyjne -Upkeep settings are managed through the economy config file or the admin config GUI. +Ustawienia utrzymania są zarządzane przez plik konfiguracji ekonomii lub GUI konfiguracji administracyjnej. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Otwórz edytor konfiguracji i przejdź do ustawień ekonomii, aby dostosować wartości utrzymania. -## Default Upkeep Settings +## Domyślne ustawienia utrzymania -| Setting | Default | Description | +| Ustawienie | Domyślnie | Opis | |---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Utrzymanie włączone | false | Główny przełącznik systemu | +| Interwał utrzymania | 24h | Jak często pobierane jest utrzymanie | +| Koszt za zajęcie | 5.0 | Koszt za zajęty chunk na cykl | +| Koszt za członka | 0.0 | Koszt za członka na cykl | +| Okres karencji | 72h | Nowe frakcje są zwolnione | +| Rozwiązanie przy bankructwie | false | Automatyczne rozwiązanie jeśli nie może zapłacić | -## Monitoring Upkeep +## Monitorowanie utrzymania -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Użyj `/f admin info `, aby zobaczyć: +- Aktualne saldo skarbca +- Szacowany koszt utrzymania za cykl +- Czas do następnego pobrania utrzymania +- Czy frakcja stać na utrzymanie ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Przeglądaj statystyki ekonomii wszystkich frakcji z panelu administracyjnego, aby zidentyfikować frakcje zagrożone bankructwem przed uruchomieniem utrzymania. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] Konfiguracja utrzymania jest przechowywana w `economy.json`. Zmiany dokonane przez GUI konfiguracji wchodzą w życie po przeładowaniu komendą `/f admin reload`. -## Upkeep Formula +## Formuła utrzymania -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Łączne utrzymanie** = (zajęte chunki x koszt za zajęcie) + (liczba członków x koszt za członka) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Włączenie utrzymania na serwerze z istniejącymi frakcjami może spowodować niespodziewane bankructwa. Rozważ ustawienie okresu karencji lub wcześniejsze ogłoszenie zmiany. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md index 253e05ab..3a378d8a 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Wymuszone rozwiązanie -Admins can forcefully disband any faction, regardless of the leader's wishes. +Administratorzy mogą wymusić rozwiązanie dowolnej frakcji, niezależnie od woli lidera. -## Command +## Komenda `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Wymusza rozwiązanie nazwanej frakcji. Przed wykonaniem akcji pojawi się monit o potwierdzenie. -**Permission**: `hyperfactions.admin.disband` +**Uprawnienie**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Rozwiązanie frakcji jest **nieodwracalne**. Wszystkie zajęcia są zwalniane, wszyscy członkowie są usuwani, a frakcja przestaje istnieć. Najpierw utwórz kopię zapasową. -## Consequences +## Konsekwencje -When a faction is disbanded: +Gdy frakcja zostaje rozwiązana: -| Effect | Description | +| Efekt | Opis | |--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| **Zajęcia** | Całe terytorium jest natychmiast zwalniane | +| **Członkowie** | Wszyscy gracze są usuwani ze składu | +| **Relacje** | Wszystkie sojusze i wrogości są czyszczone | +| **Skarbiec** | Obsługiwany zgodnie z ustawieniami konfiguracji ekonomii | +| **Baza** | Baza frakcji jest usuwana | +| **Czat** | Historia czatu frakcji jest usuwana | -## Best Practices +## Najlepsze praktyki -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Zawsze wpisz `/f admin backup create` przed rozwiązaniem +2. Powiadom członków frakcji, gdy to możliwe +3. Udokumentuj powód dla rejestrów serwera +4. Sprawdź `/f admin info `, aby przejrzeć przed podjęciem akcji ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Jeśli problem dotyczy konkretnego członka, rozważ użycie GUI administracyjnego frakcji do przekazania przywództwa zamiast rozwiązywania całej frakcji. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md index b00218c9..a118c896 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Zarządzanie frakcjami -Admins can inspect and modify any faction on the server through the dashboard or commands. +Administratorzy mogą przeglądać i modyfikować dowolną frakcję na serwerze przez panel administracyjny lub komendy. -## Browsing Factions +## Przeglądanie frakcji `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Otwiera przeglądarkę frakcji administracyjną. Wyświetla wszystkie frakcje z liczbą członków, poziomami mocy i terytorium. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Otwiera panel informacji administracyjnych dla konkretnej frakcji z pełnymi szczegółami i opcjami zarządzania. -## Modifying Faction Settings +## Modyfikowanie ustawień frakcji -With `hyperfactions.admin.modify` permission, you can: +Z uprawnieniem `hyperfactions.admin.modify` możesz: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Zmienić nazwę** frakcji, aby rozwiązać konflikty +- **Ustawić kolor**, aby naprawić problemy z wyświetlaniem +- **Przełączyć otwartą/zamkniętą**, aby nadpisać politykę dołączania +- **Edytować opis** w celach moderacyjnych ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Użyj `/f admin who `, aby sprawdzić, do której frakcji należy dany gracz i wyświetlić jego szczegóły. -## Viewing Members and Relations +## Przeglądanie członków i relacji -The admin info panel shows: +Panel informacji administracyjnych pokazuje: -| Section | Details | +| Sekcja | Szczegóły | |---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| **Członkowie** | Pełny skład z rolami i ostatnią aktywnością | +| **Relacje** | Wszystkie statusy sojuszy, wrogości i neutralności | +| **Terytorium** | Zajęte chunki i bilans mocy | +| **Ekonomia** | Saldo skarbca i log transakcji | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Komendy inspekcji administracyjnej nie powiadamiają przeglądanej frakcji. Tylko modyfikacje wywołują alerty. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md index 84a331f7..6ede43a6 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# System kopii zapasowych -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions zawiera automatyczne i ręczne kopie zapasowe z rotacją GFS (Grandfather-Father-Son). -## Backup Commands +## Komendy kopii zapasowych -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| `/f admin backup create` | Utwórz ręczną kopię zapasową teraz | +| `/f admin backup list` | Lista wszystkich dostępnych kopii zapasowych | +| `/f admin backup restore ` | Przywróć z kopii zapasowej | +| `/f admin backup delete ` | Usuń konkretną kopię zapasową | -**Permission**: `hyperfactions.admin.backup` +**Uprawnienie**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Domyślna rotacja GFS -| Type | Retention | Description | +| Typ | Retencja | Opis | |------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Godzinowe | 24 | Ostatnie 24 godzinne migawki | +| Dzienne | 7 | Ostatnie 7 dziennych migawek | +| Tygodniowe | 4 | Ostatnie 4 tygodniowe migawki | +| Ręczne | 10 | Ręcznie utworzone kopie zapasowe | +| Przy wyłączeniu | 5 | Tworzone przy zatrzymaniu serwera | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Kopie zapasowe przy wyłączeniu są domyślnie włączone (`onShutdown=true`). Przechwytują najnowszy stan przed zatrzymaniem serwera. -## Backup Contents +## Zawartość kopii zapasowej -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Każde archiwum ZIP kopii zapasowej zawiera: +- Wszystkie pliki danych frakcji +- Dane mocy graczy +- Definicje stref +- Historię czatu i dane ekonomii +- Dane zaproszeń i próśb o dołączenie +- Pliki konfiguracyjne ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Przywracanie kopii zapasowej jest destrukcyjne.** Zastępuje wszystkie aktualne dane zawartością kopii zapasowej. Wszelkie zmiany dokonane po utworzeniu kopii zapasowej zostaną utracone. Zawsze twórz świeżą kopię zapasową przed przywracaniem. -## Best Practices +## Najlepsze praktyki -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Utwórz ręczną kopię zapasową przed ważnymi akcjami administracyjnymi +2. Przejrzyj retencję kopii zapasowych w `backup.json` +3. Przetestuj przywracanie na serwerze testowym +4. Utrzymuj kopie zapasowe przy wyłączeniu włączone dla odzyskiwania po awariach diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md index e3bf7548..0ff91cca 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Import danych -Import faction data from other plugins to migrate your server to HyperFactions. +Importuj dane frakcji z innych pluginów, aby zmigrować swój serwer na HyperFactions. -## Import Command +## Komenda importu `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Uprawnienie**: `hyperfactions.admin.use` -## Supported Sources +## Obsługiwane źródła -| Source | Description | +| Źródło | Opis | |--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| `elbaphfactions` | Import z danych ElbaphFactions | +| `hyfactions` | Import z danych HyFactions v1 | -## Import Flags +## Flagi importu -| Flag | Description | +| Flaga | Opis | |------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| `--dry-run` | Waliduj dane bez importowania czegokolwiek | +| `--overwrite` | Nadpisz istniejące frakcje o tej samej nazwie | +| `--no-zones` | Pomiń dane stref podczas importu | +| `--no-power` | Pomiń dane mocy podczas importu | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Zawsze uruchom najpierw z `--dry-run`, aby zobaczyć podgląd tego, co zostanie zaimportowane i wykryć problemy z danymi przed zatwierdzeniem zmian. -## Import Process +## Proces importu -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Kopia zapasowa przed importem jest tworzona automatycznie +2. Mapowania nazw graczy są ładowane +3. Frakcje, zajęcia i strefy są konwertowane +4. Dane są walidowane i zapisywane -## Examples +## Przykłady - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Użycie `--overwrite` **zastąpi** każdą istniejącą frakcję, która dzieli nazwę z importowaną frakcją. Dane członków i zajęcia zostaną nadpisane. Uruchom najpierw z `--dry-run`, aby zidentyfikować konflikty. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Niektóre dane specyficzne dla źródła (np. działki robocze, działki rolnicze) nie mają odpowiednika w HyperFactions i zostaną zalogowane jako ostrzeżenia podczas importu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md index f6dc2880..164a112d 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Sprawdzanie aktualizacji -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions może sprawdzać nowe wersje i zarządzać zależnością HyperProtect-Mixin. -## Update Commands +## Komendy aktualizacji -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| `/f admin update` | Sprawdź aktualizacje HyperFactions | +| `/f admin update mixin` | Sprawdź/pobierz HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Przełącz automatyczne pobieranie | +| `/f admin version` | Pokaż aktualną wersję i informacje o buildzie | -## Release Channels +## Kanały wydań -| Channel | Description | +| Kanał | Opis | |---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| **Stable** | Zalecany dla serwerów produkcyjnych | +| **Pre-release** | Wczesny dostęp do nadchodzących funkcji | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Sprawdzanie aktualizacji jedynie powiadamia o nowych wersjach. **Nie** instaluje automatycznie aktualizacji samego HyperFactions. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin to zalecany mixin ochrony, który włącza zaawansowane flagi stref (eksplozje, rozprzestrzenianie ognia, zachowanie ekwipunku, itp.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` sprawdza najnowszą wersję +i pobiera ją, jeśli nowsza wersja jest dostępna +- Automatyczne pobieranie można włączać i wyłączać dla każdego serwera ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Po pobraniu nowej wersji mixina wymagany jest restart serwera, aby zmiany zadziałały. -## Rollback Procedure +## Procedura wycofania -If an update causes issues: +Jeśli aktualizacja powoduje problemy: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Zatrzymaj serwer +2. Zastąp plik JAR pluginu poprzednią wersją +3. Uruchom serwer +4. Zweryfikuj funkcjonalność komendą `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Obniżenie wersji może wymagać resetu migracji konfiguracji. Zawsze utrzymuj kopie zapasowe przed aktualizacją. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md index bf30a5b4..ff9d1134 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/getting_started.md @@ -1,41 +1,40 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Pierwsze kroki jako administrator -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Witaj w administracji HyperFactions. Ten poradnik opisuje twoje pierwsze kroki po zainstalowaniu pluginu. -## Opening the Admin Dashboard +## Otwieranie panelu administracyjnego `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Otwiera GUI panelu administracyjnego z dostępem do wszystkich narzędzi zarządzania, edytorów stref i ustawień serwera. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Potrzebujesz uprawnienia **hyperfactions.admin.use** lub statusu OP, aby uzyskać dostęp do komend administracyjnych. -## Requirements +## Wymagania -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Z pluginem uprawnień**: Nadaj `hyperfactions.admin.use` +- **Bez pluginu uprawnień**: Gracz musi być operatorem serwera (`adminRequiresOp=true` domyślnie) -## First Steps After Install +## Pierwsze kroki po instalacji -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Wpisz `/f admin`, aby zweryfikować swój dostęp +2. Otwórz **Konfigurację**, aby przejrzeć domyślne ustawienia frakcji +3. Utwórz **SafeZone** na spawnie komendą `/f admin safezone Spawn` +4. Opcjonalnie utwórz **WarZone** dla aren PvP +5. Przejrzyj ustawienia **kopii zapasowych**, aby zapewnić bezpieczeństwo danych -## Admin Capabilities +## Możliwości administracyjne -| Area | What You Can Do | +| Obszar | Co możesz zrobić | |------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +| Frakcje | Przeglądaj, modyfikuj lub wymuś rozwiązanie dowolnej frakcji | +| Strefy | Twórz SafeZone i WarZone z niestandardowymi flagami | +| Moc | Nadpisuj wartości mocy graczy/frakcji | +| Ekonomia | Zarządzaj skarbcami frakcji i utrzymaniem | +| Konfiguracja | Edytuj ustawienia na żywo przez GUI lub przeładuj z dysku | +| Kopie zapasowe | Twórz, przywracaj i zarządzaj kopiami zapasowymi danych | +| Importy | Migruj dane z innych pluginów frakcji | + +>[!TIP] Użyj `/f admin --text`, aby uzyskać wynik tekstowy na czacie zamiast GUI -- przydatne dla konsoli lub automatyzacji. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md index 979e5543..400c8e1d 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Uprawnienia administracyjne -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Wszystkie funkcje administracyjne są chronione węzłami uprawnień w przestrzeni nazw `hyperfactions.admin`. -## Permission Nodes +## Węzły uprawnień -| Permission | Description | +| Uprawnienie | Opis | |-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| `hyperfactions.admin.*` | Nadaje **wszystkie** uprawnienia administracyjne | +| `hyperfactions.admin.use` | Dostęp do panelu `/f admin` | +| `hyperfactions.admin.reload` | Przeładowanie plików konfiguracyjnych | +| `hyperfactions.admin.debug` | Przełączanie kategorii logowania debugowego | +| `hyperfactions.admin.zones` | Tworzenie, edycja i usuwanie stref | +| `hyperfactions.admin.disband` | Wymuszone rozwiązanie dowolnej frakcji | +| `hyperfactions.admin.modify` | Modyfikacja ustawień dowolnej frakcji | +| `hyperfactions.admin.bypass.limits` | Pomijanie limitów zajęć i mocy | +| `hyperfactions.admin.backup` | Tworzenie i przywracanie kopii zapasowych | +| `hyperfactions.admin.power` | Nadpisywanie wartości mocy graczy | +| `hyperfactions.admin.economy` | Zarządzanie skarbcami frakcji | -## Fallback Behavior +## Zachowanie awaryjne -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Gdy **nie jest zainstalowany żaden plugin uprawnień**, uprawnienia administracyjne przechodzą na status operatora serwera (OP). Kontroluje to `adminRequiresOp` w konfiguracji serwera (domyślnie: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Wieloznacznik `hyperfactions.admin.*` nadaje każde uprawnienie administracyjne. Używaj indywidualnych węzłów dla szczegółowej kontroli nad swoim zespołem. -## Permission Resolution Order +## Kolejność rozwiązywania uprawnień -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. **VaultUnlocked** (najwyższy priorytet) +2. **HyperPerms** (jeśli dostępny) +3. **LuckPerms** (jeśli dostępny) +4. **Sprawdzenie OP** dla węzłów administracyjnych (awaryjnie) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Bez pluginu uprawnień i z wyłączonym `adminRequiresOp`, komendy administracyjne są **otwarte dla wszystkich graczy**. Zawsze używaj pluginu uprawnień na serwerze produkcyjnym. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md index b2c9f463..2456b381 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Komendy administracyjne mocy -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Nadpisywanie wartości mocy graczy i frakcji. Wszystkie komendy wymagają uprawnienia `hyperfactions.admin.power`. -## Player Power Commands +## Komendy mocy gracza -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| `/f admin power set ` | Ustaw dokładną wartość mocy | +| `/f admin power add ` | Dodaj moc graczowi | +| `/f admin power remove ` | Odejmij moc graczowi | +| `/f admin power reset ` | Resetuj do domyślnej mocy startowej | +| `/f admin power info ` | Wyświetl szczegółowy podgląd mocy | -## How Power Affects Factions +## Jak moc wpływa na frakcje -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +Łączna moc frakcji to suma indywidualnej mocy wszystkich jej członków. Zajęcia terytorialne wymagają wystarczającej łącznej mocy do utrzymania. -| Scenario | Effect | +| Scenariusz | Efekt | |----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Moc ustawiona wyżej | Frakcja może zajmować więcej terytorium | +| Moc ustawiona niżej | Frakcja może stać się podatna na przejęcie | +| Reset mocy | Przywraca gracza do domyślnej wartości startowej | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Obniżenie mocy gracza może spowodować utratę terytorium przez jego frakcję, jeśli łączna moc spadnie poniżej liczby zajętych chunków. -## Examples +## Przykłady -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- ustaw na dokładnie 50 +- `/f admin power add Steve 10` -- zwiększ o 10 +- `/f admin power remove Steve 5` -- zmniejsz o 5 +- `/f admin power reset Steve` -- wróć do domyślnej +- `/f admin power info Steve` -- pokaż pełny podgląd ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Użyj `/f admin power info `, aby zobaczyć aktualną moc, maksymalną moc i wszelkie aktywne nadpisania przed wprowadzeniem zmian. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md index 5469f903..535229c9 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Nadpisania mocy -Special power commands that change how power behaves for specific players or factions. +Specjalne komendy mocy, które zmieniają zachowanie mocy dla konkretnych graczy lub frakcji. -## Override Commands +## Komendy nadpisań -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| `/f admin power setmax ` | Ustaw niestandardowy maksymalny limit mocy | +| `/f admin power noloss ` | Przełącz odporność na karę mocy za śmierć | +| `/f admin power nodecay ` | Przełącz odporność na zanikanie mocy offline | +| `/f admin power info ` | Wyświetl wszystkie nadpisania i szczegóły mocy | -## Custom Max Power +## Niestandardowa maksymalna moc `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Ustawia osobisty limit maksymalnej mocy dla gracza, nadpisując domyślną wartość serwera. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Ustawienie niestandardowego maksimum **nie** zmienia aktualnej mocy. Zmienia jedynie pułap. Gracz wciąż musi zdobywać moc do nowego limitu. -## No-Loss Mode +## Tryb bez utraty `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Przełącza odporność na utratę mocy przy śmierci. Gdy włączony, gracz **nie** traci mocy przy śmierci. -Useful for: -- New player protection periods -- Event participants -- Staff members +Przydatne dla: +- Okresów ochrony nowych graczy +- Uczestników wydarzeń +- Członków ekipy -## No-Decay Mode +## Tryb bez zanikania `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Przełącza odporność na zanikanie mocy offline. Gdy włączony, moc gracza **nie** zmniejsza się będąc offline. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Przydatne dla: +- Graczy na dłuższej przerwie +- Członków VIP +- Ochrony sezonowej -## Power Info +## Informacje o mocy `/f admin power info ` -Shows a complete breakdown: +Pokazuje kompletny podgląd: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Aktualna moc i maksymalna moc +- Aktywne nadpisania (noloss, nodecay, niestandardowe maksimum) +- Czas ostatniej śmierci i utracona moc +- Procentowy wkład we frakcję ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Wszystkie nadpisania mocy zachowują się po restartach serwera i są zapisywane w pliku danych gracza. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md index bd0b0fa6..659f9a4b 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/all_commands.md @@ -1,13 +1,13 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Opis komend administracyjnych -Complete list of all `/f admin` subcommands with syntax and required permissions. +Kompletna lista wszystkich podkomend `/f admin` ze składnią i wymaganymi uprawnieniami. -## Dashboard and General +## Panel i ogólne -| Command | Permission | +| Komenda | Uprawnienie | |---------|-----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | @@ -15,9 +15,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Zarządzanie frakcjami -| Command | Permission | +| Komenda | Uprawnienie | |---------|-----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | @@ -25,9 +25,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Zarządzanie strefami -| Command | Permission | +| Komenda | Uprawnienie | |---------|-----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | @@ -40,18 +40,18 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Moc i ekonomia -| Command | Permission | +| Komenda | Uprawnienie | |---------|-----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Konserwacja -| Command | Permission | +| Komenda | Uprawnienie | |---------|-----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Wszystkie węzły uprawnień mają prefiks `hyperfactions.` (np. `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md index c39bfb3b..29888500 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Integracje pluginów -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions integruje się z kilkoma zewnętrznymi pluginami poprzez miękkie zależności. Wszystkie integracje są opcjonalne i działają poprawnie, gdy plugin jest niedostępny. -## Checking Integration Status +## Sprawdzanie statusu integracji `/f admin version` -Shows current version and detected integrations. +Pokazuje aktualną wersję i wykryte integracje. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. +Otwiera panel zarządzania integracjami ze szczegółowym statusem każdego wykrytego pluginu. -## Integration Table +## Tabela integracji -| Plugin | Type | Description | +| Plugin | Typ | Opis | |--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +| **HyperPerms** | Uprawnienia | Pełny system uprawnień z grupami, dziedziczeniem i kontekstem | +| **LuckPerms** | Uprawnienia | Alternatywny dostawca uprawnień | +| **VaultUnlocked** | Uprawnienia/Ekonomia | Most uprawnień i ekonomii | +| **HyperProtect-Mixin** | Ochrona | Włącza zaawansowane flagi stref (eksplozje, ogień, zachowanie ekwipunku) | +| **OrbisGuard-Mixins** | Ochrona | Alternatywny mixin do egzekwowania flag stref | +| **PlaceholderAPI** | Placeholdery | 49 placeholderów frakcji dla innych pluginów | +| **WiFlow PlaceholderAPI** | Placeholdery | Alternatywny dostawca placeholderów | +| **GravestonePlugin** | Śmierć | Kontrola dostępu do nagrobków w strefach | +| **HyperEssentials** | Funkcje | Flagi stref dla domów, warpów i kitów | +| **KyuubiSoft Core** | Framework | Integracja z biblioteką bazową | +| **Sentry** | Monitoring | Śledzenie błędów i diagnostyka | + +## Priorytet dostawcy uprawnień + +1. **VaultUnlocked** (najwyższy priorytet) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **Awaryjnie OP** (jeśli nie znaleziono dostawcy) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Integracje są wykrywane raz przy uruchomieniu za pomocą refleksji. Wyniki są cachowane na sesję. Restart serwera jest wymagany po dodaniu lub usunięciu zintegrowanego pluginu. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Użyj `/f admin debug toggle integration`, aby włączyć szczegółowe logowanie integracji do rozwiązywania problemów. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin to **zalecany** mixin ochrony. Bez niego 15 flag stref nie będzie miało efektu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md index 933a9b2d..4501883f 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Podstawy stref -Zones are admin-controlled territories with custom rules that override normal faction protection. +Strefy to kontrolowane przez administratorów terytoria z niestandardowymi zasadami, które nadpisują normalną ochronę terytorialną frakcji. -## Zone Types +## Typy stref -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Brak PvP, brak budowania, brak obrażeń. +Idealne dla stref odrodzenia i hubów handlowych. +- **WarZone** -- PvP zawsze włączone, brak budowania. +Idealne dla aren i spornych stref walki. -## Creating Zones +## Tworzenie stref `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Tworzy SafeZone i zajmuje twój obecny chunk. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Tworzy WarZone i zajmuje twój obecny chunk. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Po utworzeniu stań na dodatkowych chunkach i użyj `/f admin zone claim `, aby rozszerzyć strefę. -## Managing Zone Chunks +## Zarządzanie chunkami stref `/f admin zone claim ` -Add the current chunk to the named zone. +Dodaj obecny chunk do nazwanej strefy. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Usuń obecny chunk ze strefy. `/f admin zone radius ` -Claim a square of chunks around your position. +Zajmij kwadrat chunków wokół twojej pozycji. -## Deleting Zones +## Usuwanie stref `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Trwale usuwa strefę i zwalnia wszystkie jej zajęte chunki. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Usunięcie strefy natychmiast zwalnia wszystkie jej chunki. Nie można tego cofnąć bez przywrócenia kopii zapasowej. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Zasady stref **zawsze nadpisują** zasady terytoriów frakcji. SafeZone na wrogim terenie wciąż jest bezpieczna. diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md index 403b6b63..593dc49a 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Opis komend stref -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Kompletna lista wszystkich komend zarządzania strefami. Wszystkie wymagają uprawnienia `hyperfactions.admin.zones`. -## Quick Creation +## Szybkie tworzenie -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| `/f admin safezone ` | Utwórz SafeZone na obecnym chunku | +| `/f admin warzone ` | Utwórz WarZone na obecnym chunku | +| `/f admin removezone ` | Usuń strefę i zwolnij chunki | -## Zone Management +## Zarządzanie strefami -| Command | Description | +| Komenda | Opis | |---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | +| `/f admin zone create ` | Utwórz strefę (safezone/warzone) | +| `/f admin zone delete ` | Usuń strefę | +| `/f admin zone claim ` | Dodaj obecny chunk do strefy | +| `/f admin zone unclaim ` | Usuń obecny chunk ze strefy | +| `/f admin zone radius ` | Zajmij kwadratowy promień chunków | +| `/f admin zone list` | Lista wszystkich stref z liczbą chunków | +| `/f admin zone notify ` | Przełącz wiadomości wejścia/wyjścia | +| `/f admin zone title upper/lower ` | Ustaw tekst tytułu strefy | +| `/f admin zone properties ` | Otwórz GUI właściwości strefy | + +## Zarządzanie flagami + +| Komenda | Opis | |---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| `/f admin zoneflag ` | Ustaw konkretną flagę | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Użyj **GUI właściwości** strefy dla wizualnego edytora z przełącznikami dla każdej flagi, zorganizowanymi według kategorii. -## Examples +## Przykłady -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- utwórz ochronę spawnu +- `/f admin zone radius Spawn 3` -- rozszerz do 7x7 chunków +- `/f admin zoneflag Spawn door_use true` -- zezwól na drzwi +- `/f admin zone notify Spawn true` -- pokaż wiadomości wejścia diff --git a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md index 368a4ec9..e068cee8 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/pl-PL/help/admin/admin_zones/zone_flags.md @@ -1,28 +1,28 @@ --- id: admin_zone_flags --- -# Zone Flags +# Flagi stref -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Strefy obsługują **47 flag boolowskich** w 10 kategoriach. Każda flaga kontroluje konkretne zachowanie wewnątrz strefy. -## Flag Categories Overview +## Przegląd kategorii flag -| Category | Count | Key Flags | +| Kategoria | Liczba | Kluczowe flagi | |----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Walka | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Obrażenia | 4 | fall_damage, explosion_damage, fire_spread | +| Śmierć | 2 | keep_inventory, power_loss | +| Budowanie | 4 | build_allowed, block_place, hammer_use | +| Interakcja | 13 | door_use, container_use, bench_use, npc_tame | | Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | +| Przedmioty | 4 | item_drop, item_pickup, invincible_items | +| Pojawianie mobów | 5 | mob_spawning, hostile/passive/neutral | +| Czyszczenie mobów | 4 | mob_clear, hostile/passive/neutral clear | +| Integracja | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Wartości domyślne (SafeZone vs WarZone) -| Flag | SafeZone | WarZone | +| Flaga | SafeZone | WarZone | |------|----------|---------| | pvp_enabled | false | **true** | | build_allowed | false | false | @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Niektóre flagi wymagają **HyperProtect-Mixin** do działania (np. keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Bez mixina te flagi nie mają efektu, nawet gdy są włączone. -## Setting Flags +## Ustawianie flag `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Użyj `/f admin zone properties ` dla wizualnego edytora przełączników pogrupowanych według kategorii. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/death.md b/src/main/resources/Server/Languages/pl-PL/help/combat/death.md index 8690b43a..c33b6802 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/combat/death.md +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Śmierć i odzyskiwanie -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +Śmierć niesie realne konsekwencje we frakcjach. Każda śmierć kosztuje cię osobistą moc, osłabiając zdolność twojej frakcji do utrzymania terytorium. -## Power Loss +## Utrata mocy -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Każda śmierć kosztuje -1.0 mocy z twojego osobistego stanu. To obniża łączną moc frakcji. -| Event | Power Change | +| Zdarzenie | Zmiana mocy | |-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Śmierć (dowolna przyczyna) | -1.0 | +| Regeneracja online | +0.1 na minutę | +| Wylogowanie w walce | -1.0 (zabity) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. -## Example Scenarios +## Przykładowe scenariusze -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 członków po 10.0 mocy każdy = 50 łącznie, 20 zajęć.* +*Jeden członek ginie dwukrotnie: 8.0 mocy, łącznie we frakcji 48.* +*Trzech członków ginie po razie: łącznie spada do 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Jeśli moc twojej frakcji spadnie poniżej liczby zajęć, wrogowie mogą przejąć twoje terytorium. -## Recovery +## Odzyskiwanie -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Moc regeneruje się z prędkością 0.1 na minutę będąc online. Odzyskanie 1.0 utraconej mocy zajmuje około 10 minut. Wielokrotne śmierci się kumulują, więc unikaj powtarzanych walk. --- -## All Death Types +## Wszystkie rodzaje śmierci -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +Utrata mocy dotyczy wszystkich śmierci: PvP, zabójstw przez moby, obrażeń od upadku, utonięcia i każdej innej przyczyny. Nie ma bezpiecznego sposobu na śmierć. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Ustaw bazę frakcji komendą /f sethome, aby członkowie mogli szybko się przegrupować po śmierci. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md b/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md index e564ec2d..cdd645d8 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Ochrona terytorialna -Claimed territory provides several layers of defense for your faction's builds and resources. +Zajęte terytorium zapewnia kilka warstw obrony dla budowli i zasobów twojej frakcji. -## Block Protection +## Ochrona bloków -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Tylko członkowie frakcji mogą stawiać lub niszczyć bloki na twoim terytorium. Wrogowie i neutralni nie mogą modyfikować niczego. -## Container Protection +## Ochrona pojemników -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Skrzynie, beczki i inne pojemniki są zabezpieczone. Tylko członkowie twojej frakcji mogą otwierać lub wchodzić w interakcje z magazynami na zajętych chunkach. -## Entry Alerts +## Alerty wejścia -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Gdy nie-członek wejdzie na twoje zajęte terytorium, online'owi członkowie frakcji otrzymują powiadomienie z nazwą i lokalizacją intruza. --- -## Ally Access +## Dostęp sojuszników -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Sojusznicy domyślnie nie mogą budować ani niszczyć bloków na twoim terytorium. Obrażenia sojusznicze są również wyłączone, więc sojuszniczy gracze nie mogą się nawzajem ranić. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Terytorium chroni bloki, nie graczy. PvP na twoim własnym terytorium zależy od relacji atakującego z twoją frakcją. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Utrzymuj swoje zajęcia połączone i unikaj izolowanych chunków, które trudniej bronić. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md index f0b2ab76..703844b6 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Ochrona spawnu -After respawning from death, you receive temporary protection to prevent spawn camping. +Po odrodzeniu się ze śmierci otrzymujesz tymczasową ochronę, aby zapobiec campingowi na spawnie. -## How It Works +## Jak to działa -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- Ochrona trwa 5 sekund po odrodzeniu +- Nie możesz otrzymywać obrażeń w tym okresie +- Wskaźnik wizualny pokazuje twój status ochrony -## Protection Breaks +## Zakończenie ochrony -Spawn protection ends early if you: +Ochrona spawnu kończy się wcześniej, jeśli: -- Attack another player or entity -- Move from your spawn position +- Zaatakujesz innego gracza lub istotę +- Ruszysz się z pozycji odrodzenia -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +To zapobiega nadużyciom. Nie możesz atakować innych będąc nietykalnym. Gdy podejmiesz jakąkolwiek akcję, ochrona spada i obowiązują normalne zasady walki. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Wykorzystaj czas ochrony na ocenę sytuacji przed ruszeniem się. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md b/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md index e45cbdb3..d868b327 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Oznaczenie bojowe -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Gdy atakujesz lub zostajesz zaatakowany przez innego gracza, otrzymujesz oznaczenie bojowe na 15 sekund. -## While Tagged +## Podczas oznaczenia -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Brak teleportacji /f home lub /f stuck +- Brak serwerowych komend teleportacji +- Oznaczenie resetuje się z każdą nową akcją bojową +- Timer wyświetla pozostały czas oznaczenia --- -## Logout Penalty +## Kara za wylogowanie ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Wylogowanie się podczas oznaczenia bojowego zabija twoją postać i tracisz 1.0 mocy. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Twoje przedmioty wypadają w miejscu rozłączenia i wrogowie mogą je zebrać. Zawsze czekaj na wygaśnięcie oznaczenia. -## How the Timer Works +## Jak działa timer -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Timer oznaczenia bojowego pojawia się na ekranie, gdy wejdziesz w walkę. Każde nowe trafienie resetuje go do 15 sekund. Gdy osiągnie zero, wszystkie ograniczenia zostają zniesione. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Wycofaj się i przeczekaj timer, jeśli potrzebujesz się teleportować. diff --git a/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md b/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md index d1d957d2..353cfe5d 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md +++ b/src/main/resources/Server/Languages/pl-PL/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Strefy specjalne -Admins can designate areas with special rules that override normal faction territory protection. +Administratorzy mogą wyznaczać obszary ze specjalnymi zasadami, które nadpisują normalną ochronę terytorialną frakcji. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Brak obrażeń PvP, brak niszczenia bloków przez nie-administratorów. Idealne dla stref odrodzenia, hubów handlowych i miejsc wydarzeń. Gracze nie mogą tu zostać skrzywdzeni. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +PvP jest zawsze włączone. Brak ochrony bloków. Otwarte strefy walki, gdzie wszystko jest dozwolone. Nie otrzymujesz korzyści z ochrony terytorialnej w WarZone. --- -## Zone Comparison +## Porównanie stref -| Feature | SafeZone | WarZone | Faction Land | +| Cecha | SafeZone | WarZone | Teren frakcji | |---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| PvP | Wyłączone | Zawsze włączone | Zależne od relacji | +| Niszczenie bloków | Wyłączone | Dozwolone | Tylko członkowie | +| Pojemniki | Chronione | Otwarte | Tylko członkowie | +| Idealne do | Spawn/Handel | Areny | Bazy | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Zasady stref zawsze nadpisują zasady terytoriów frakcji. Zajęty chunk wewnątrz WarZone podlega zasadom WarZone. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Sprawdź mapę terytoriów komendą /f map, aby zobaczyć granice stref. diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md index 45da7756..60bafee3 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Zawieranie sojuszy -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Sojusze to wzajemne porozumienia między dwoma frakcjami, które zapewniają ochronę i korzyści ze współpracy. --- -## How to Form an Alliance +## Jak zawrzeć sojusz `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Wysyła propozycję sojuszu do docelowej frakcji. Sojusz wchodzi w życie dopiero gdy obie strony się zgodzą. Oficer lub Lider z drugiej frakcji musi również wpisać tę samą komendę, celując w twoją frakcję, aby potwierdzić. -## How to Break an Alliance +## Jak zerwać sojusz `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Każda strona może jednostronnie zakończyć sojusz, resetując relację do neutralnej. --- -## Alliance Benefits +## Korzyści z sojuszu -| Benefit | Details | +| Korzyść | Szczegóły | |---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Brak ognia przyjacielskiego | Sojuszniczy gracze nie mogą się nawzajem ranić | +| Wspólna widoczność na mapie | Terytorium sojusznicze wyświetla się na niebiesko na mapie | +| Interakcja z terytorium | Sojusznicy mogą używać drzwi, siedzeń i transportu na twoim terytorium | +| Czat sojuszniczy | Przełącz na tryb czatu sojuszniczego do komunikacji międzyfrakcyjnej | +| Ochrona przed przejęciem | Sojusznicy nie mogą przejmować nawzajem swoich terytoriów | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Twoja frakcja może mieć jednocześnie do 10 sojuszy. Wybieraj sojuszników mądrze. --- -## Alliance Etiquette +## Etykieta sojuszu ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Komunikacja to klucz. Przed wysłaniem propozycji sojuszu rozważ skontaktowanie się z liderem drugiej frakcji, aby omówić warunki. Silny sojusz opiera się na wzajemnych korzyściach, nie tylko na wygodzie. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Sojusze działają w obie strony -- jeśli korzystasz z ochrony, twoi sojusznicy oczekują tego samego +- Zerwanie sojuszu podczas wojny może zaszkodzić reputacji twojej frakcji +- Sojusznicze frakcje mogą koordynować zajęcia terytoriów, aby tworzyć obronne granice diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md index 70688ad4..6568a6d7 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Wrogie frakcje -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Ogłoszenie wroga to jednostronna akcja, która natychmiast włącza PvP i agresję terytorialną wobec docelowej frakcji. Nie wymaga zgody drugiej strony. --- -## Declaring an Enemy +## Ogłaszanie wroga `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Natychmiast oznacza docelową frakcję jako twojego wroga. Działa od razu -- potwierdzenie z drugiej strony nie jest potrzebne. Wymaga rangi Oficera lub wyższej. -## Resetting to Neutral +## Resetowanie do neutralnego `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Kończy status wroga i resetuje relację do neutralnej. Również wymaga Oficera+ i działa natychmiast. --- -## What Enemy Status Enables +## Co włącza status wroga -| Effect | Details | +| Efekt | Szczegóły | |--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| PvP na terytorium | Pełne PvP jest włączone na terytoriach obu frakcji | +| Przejmowanie | Możesz przejmować ich chunki, jeśli mają deficyt mocy | +| Oznaczenie na mapie | Wrogie terytorium wyświetla się na czerwono na mapie | +| Brak ochrony | Standardowa ochrona terytorialna nie zapobiega wrogim walkom PvP | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Ogłoszenie wroga to poważna decyzja. Ich członkowie mogą również walczyć z tobą na twoim własnym terytorium po ogłoszeniu. --- -## Strategic Considerations +## Rozważania strategiczne -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Deklaracje wrogości są jednostronne -- możesz ogłosić bez ich zgody, ale oni również widzą cię jako wrogiego +- Przed ogłoszeniem sprawdź moc celu komendą /f info. Jeśli są silni, to ty możesz stracić terytorium +- Osłabiaj wrogów powtarzanymi walkami, aby wyczerpać ich moc, a potem przejmuj ich teren +- Nie ma limitu na liczbę wrogów, ale walka na wielu frontach jest ryzykowna ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Użyj /f neutral, aby deeskalować konflikty. Czasem strategiczny pokój jest cenniejszy niż kontynuowanie wojny. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Jeśli jesteś w sojuszu z frakcją i ogłosisz ją wrogiem, sojusz zostanie najpierw zerwany. diff --git a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md index 89711eee..c4056446 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/pl-PL/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Relacje frakcji -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Każda para frakcji ma relację dyplomatyczną, która określa, jak ze sobą współdziałają. Istnieją trzy stany: Sojusznik, Wróg i Neutralny. --- -## Relation Comparison +## Porównanie relacji -| Effect | Ally | Neutral | Enemy | +| Efekt | Sojusznik | Neutralny | Wróg | |--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| PvP na terytorium | Wyłączone | Standardowe zasady | Włączone | +| Ochrona terytorialna | Wzajemna ochrona | Standardowa ochrona | Można przejmować po osłabieniu | +| Ogień przyjacielski | Wyłączony | Nie dotyczy | Włączony wszędzie | +| Kolor na mapie | Niebieski | Szary | Czerwony | +| Jak ustawić | Wzajemna zgoda | Stan domyślny | Jednostronna deklaracja | +| Dostęp do czatu | Kanał czatu sojuszniczego | Brak | Brak | --- -## Viewing Relations +## Przeglądanie relacji `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Pokazuje wszystkie twoje aktualne sojusze, wrogów i oczekujące propozycje sojuszy. -## How Relations Work +## Jak działają relacje -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutralny to domyślny stan między wszystkimi frakcjami. Obowiązują standardowe zasady serwera. +- Sojusz wymaga zgody obu frakcji. Każda strona może go zerwać jednostronnie. +- Wróg jest deklarowany jednostronnie. Nie potrzeba zgody -- druga frakcja jest natychmiast oznaczona jako twój wróg. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Relacjami zarządzają Oficerowie i Liderzy. Członkowie mogą przeglądać relacje, ale nie mogą ich zmieniać. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Używaj /f relations regularnie, aby śledzić sytuację dyplomatyczną. Wiedza o tym, kim są twoi wrogowie, pomaga przygotować się na konflikty terytorialne. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md b/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md index 020190cd..6d1ab267 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Komendy ekonomii -Quick reference for all faction economy commands. +Szybka ściągawka wszystkich komend ekonomii frakcji. -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| /f balance | Sprawdź stan skarbca | Każdy | +| /f deposit (kwota) | Wpłać do skarbca | Każdy | +| /f withdraw (kwota) | Wypłać ze skarbca | Oficer+ | +| /f money transfer (frakcja) (kwota) | Przelej do innej frakcji | Oficer+ | +| /f money log [strona] | Sprawdź historię transakcji | Oficer+ | --- -## Command Aliases +## Aliasy komend -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance może być też używane jako /f bal +- /f deposit i /f withdraw akceptują kwoty dziesiętne -## Role Requirements +## Wymagania ról -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Komendy wypłat i przelewów są ograniczone do Oficerów i Liderów. Wszystkie inne komendy ekonomiczne są dostępne dla każdego członka frakcji. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Używaj /f money log do przeglądania ostatnich wpłat, wypłat i przelewów ze znacznikami czasu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md b/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md index 4fe4539c..29e208df 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Zarządzanie funduszami -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Członkowie frakcji współpracują, aby utrzymać skarbiec zasilony poprzez wpłaty, wypłaty i przelewy. -## Depositing +## Wpłacanie -Any member can deposit personal funds into the faction treasury. +Każdy członek może wpłacić osobiste fundusze do skarbca frakcji. `/f deposit ` -Deposit from your personal balance into the treasury. +Wpłać ze swojego osobistego salda do skarbca. -## Withdrawing +## Wypłacanie -Officers and the Leader can withdraw funds back to their personal balance. +Oficerowie i Lider mogą wypłacać fundusze z powrotem na swoje osobiste saldo. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Wypłać ze skarbca na swoje saldo. (Oficer+) -## Transferring +## Przelewanie -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Oficerowie mogą przelewać fundusze bezpośrednio między skarbcami frakcji w ramach umów handlowych lub dyplomacji. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Wyślij fundusze do skarbca innej frakcji. (Oficer+) --- -## Fees +## Opłaty -| Transaction | Fee | +| Transakcja | Opłata | |------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Wpłata | 0% | +| Wypłata | 0% | +| Przelew | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Stawki opłat są konfigurowalne przez serwer i mogą różnić się od domyślnych wartości pokazanych powyżej. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Wszystkie transakcje są rejestrowane. Używaj /f money log do przeglądania ostatniej aktywności. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md b/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md index e4e7307b..c0f87ec6 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Skarbiec frakcji -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Każda frakcja ma wspólny skarbiec, który służy jako bank frakcji. Fundusze są wykorzystywane na koszty utrzymania, konserwację terytoriów i operacje frakcji. -## Starting Balance +## Saldo początkowe -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Nowe frakcje zaczynają z 0 w skarbcu. Członkowie muszą wpłacać fundusze, aby gromadzić rezerwy. -## Who Can Manage +## Kto może zarządzać -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Każdy członek może wpłacać fundusze +- Oficerowie i Lider mogą wypłacać i przelewać +- Lider ma pełną kontrolę nad skarbcem --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Sprawdź aktualne saldo skarbca twojej frakcji. Dostępne również jako /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Wpłacaj regularnie, aby utrzymać frakcję z funduszami. Koszty utrzymania terytorium mogą szybko opróżnić pusty skarbiec. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Wszystkie transakcje skarbcowe są rejestrowane i mogą być przeglądane przez oficerów. diff --git a/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md b/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md index 8a2d12e4..849b13ac 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/pl-PL/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Utrzymanie terytorium -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Frakcje muszą płacić bieżące koszty utrzymania swoich zajętych terytoriów. Zapobiega to gromadzeniu ziem i utrzymuje mapę dynamiczną. -## Upkeep Costs +## Koszty utrzymania -| Setting | Default | +| Ustawienie | Domyślnie | |---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Koszt za chunk | 2.0 za cykl | +| Interwał płatności | Co 24 godziny | +| Darmowe chunki | 3 (bez kosztu) | +| Tryb skalowania | Stawka stała | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Twoje pierwsze 3 chunki są darmowe. Powyżej tego, każdy dodatkowy zajęty chunk kosztuje 2.0 za cykl płatności. -## Auto-Pay +## Automatyczna płatność -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Automatyczna płatność jest domyślnie włączona. System automatycznie potrąca koszty utrzymania ze skarbca w każdym interwale. Nie wymaga ręcznej akcji. --- -## Grace Period +## Okres karencji -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Jeśli twój skarbiec nie pokrywa kosztów utrzymania, rozpoczyna się 48-godzinny okres karencji. Ostrzeżenie jest wysyłane 6 godzin przed rozpoczęciem utraty zajęć. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Jeśli koszty utrzymania pozostaną nieopłacone po okresie karencji, twoja frakcja traci 1 zajęcie na cykl, dopóki koszty nie zostaną pokryte lub wszystkie dodatkowe zajęcia nie zostaną utracone. -## Example +## Przykład -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Frakcja z 8 zajęciami płaci za 5 chunków (8 minus 3 darmowe). Przy 2.0 za chunk, to 10.0 za cykl.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Utrzymuj skarbiec zasilony powyżej kosztu utrzymania. Używaj /f balance, aby sprawdzić rezerwy. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md index f70427cb..1a4b988d 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Zajmowanie terytorium -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Zajęcie chunka chroni go pod kontrolą twojej frakcji. Tylko członkowie frakcji mogą budować, niszczyć i korzystać z pojemników na zajętym terytorium. --- -## How to Claim +## Jak zajmować `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Stań na chunku, który chcesz zająć i wpisz tę komendę. Chunk jest natychmiast chroniony. Wymaga rangi Oficera lub wyższej. -## How to Unclaim +## Jak oddawać `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Oddaje chunk, na którym stoisz, z powrotem na pustkowia. Również wymaga Oficera+. --- -## Claim Rules +## Zasady zajmowania -| Rule | Default | +| Zasada | Domyślnie | |------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Koszt mocy za zajęcie | 2.0 mocy | +| Maksymalna liczba zajęć | 100 na frakcję | +| Tylko przyległe | Nie (możesz zajmować gdziekolwiek) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Każde zajęcie kosztuje 2.0 mocy w utrzymaniu. Frakcja z 50 łącznej mocy może bezpiecznie utrzymać do 25 zajęć. --- -## What Protection Provides +## Co zapewnia ochrona -Inside claimed territory, the following is enforced by default: +Na zajętym terytorium domyślnie obowiązuje: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Obcy nie mogą niszczyć, stawiać ani wchodzić w interakcje z blokami +- Sojusznicy mogą używać drzwi, siedzeń i transportu, ale nie mogą niszczyć ani stawiać bloków +- Członkowie i Oficerowie mają pełny dostęp do budowania, niszczenia i korzystania ze wszystkiego +- Dostęp do pojemników (skrzynie, skrzynki) jest ograniczony tylko do członków ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Możesz też zajmować bezpośrednio z mapy terytoriów. Otwórz /f map i kliknij na niezajęte chunki, aby je zająć. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Nie rozszerzaj się nadmiernie. Jeśli twoja frakcja straci moc przez śmierci, zajęcia przekraczające budżet mocy staną się podatne na przejęcie. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md index ea39186b..820a1802 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Tracenie terytorium -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Gdy łączna moc frakcji spadnie poniżej kosztu jej zajęć, staje się ona podatna na rajdy. Wrogowie mogą przejmować chunki spod twoich nóg. --- -## How Overclaiming Works +## Jak działa przejmowanie `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Oficer lub Lider z wrogiej frakcji staje na twoim zajętym chunku i wpisuje tę komendę. Jeśli twoja frakcja ma deficyt mocy, chunk przechodzi pod ich kontrolę. -## The Math +## Matematyka -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Każde zajęcie kosztuje 2.0 mocy w utrzymaniu. Jeśli twoja łączna moc spadnie poniżej tego progu, chunki z deficytu są podatne na przejęcie. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Przejęcie jest trwałe. Gdy wróg zabierze chunk, musisz go odzyskać (lub przejąć z powrotem, jeśli osłabną). --- -## Example Scenario +## Przykładowy scenariusz -| Factor | Value | +| Czynnik | Wartość | |--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Członkowie | 5 graczy | +| Moc na członka | 10 każdy (startowa) | +| Łączna moc | 50 | +| Zajęcia | 30 chunków | +| Wymagana moc (30 x 2.0) | 60 | +| Deficyt | brakuje 10 mocy | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +W tym przykładzie frakcja jest podatna na rajdy od samego początku. Wrogowie mogą przejąć do 5 chunków (10 deficytu / 2.0 na zajęcie) zanim frakcja osiągnie równowagę. --- -## How to Prevent Overclaiming +## Jak zapobiegać przejęciu -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Nie rozszerzaj się nadmiernie -- zawsze utrzymuj łączną moc powyżej kosztu zajęć z zapasem +- Bądź aktywny -- moc regeneruje się tylko będąc online (+0.1/min) +- Unikaj niepotrzebnych śmierci -- każda śmierć kosztuje 1.0 mocy +- Rekrutuj więcej członków -- więcej graczy oznacza więcej łącznej mocy +- Oddawaj nieużywane chunki -- zwolnij moc komendą /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Regularnie sprawdzaj status mocy komendą /f power. Jeśli twoja łączna moc jest blisko kosztu zajęć, rozważ oddanie mniej ważnych chunków przed wojną. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md index 207c041d..ef4708d0 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# Mapa terytoriów -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +Mapa terytoriów daje ci widok z lotu ptaka na zajęte chunki w twojej okolicy, pokazując które frakcje kontrolują teren wokół ciebie. --- -## Opening the Map +## Otwieranie mapy `/f map` -Opens the territory map GUI centered on your current location. +Otwiera GUI mapy terytoriów wycentrowane na twojej aktualnej lokalizacji. --- -## Color Legend +## Legenda kolorów -| Color | Meaning | +| Kolor | Znaczenie | |-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| [#55FF55] Kolor twojej frakcji | Terytorium zajęte przez twoją frakcję | +| [#5555FF] Niebieski | Terytorium sojuszniczej frakcji | +| [#FF5555] Czerwony | Terytorium wrogiej frakcji | +| [#AAAAAA] Szary | Terytorium neutralnej frakcji | +| [#333333] Ciemny | Pustkowia (niezajęty teren) | +| [#FFAA00] Złoty | Strefy specjalne (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] Kolor twojej frakcji na mapie odpowiada kolorowi ustawionemu w ustawieniach frakcji. Sojusznicy i wrogowie używają stałych kolorów dla łatwej identyfikacji. --- -## Click to Claim +## Kliknij, aby zająć -The map is not just for viewing -- you can interact with it directly. +Mapa służy nie tylko do oglądania -- możesz z nią wchodzić w interakcje. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Kliknij niezajęty chunk, aby go zająć (wymaga rangi Oficer+ i wystarczającej mocy) +- Kliknij zajęty chunk, aby zobaczyć, która frakcja jest jego właścicielem +- Przewijaj lub przesuwaj, aby eksplorować okolicę ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] Mapa to najłatwiejszy sposób na planowanie rozszerzania terytorium. Szukaj niezajętych obszarów blisko twojej bazy i zajmuj strategicznie, aby stworzyć ciągłą granicę. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] Mapa pokazuje stały obszar wokół twojej pozycji. Przesuń się w inne miejsce i otwórz ją ponownie, aby zobaczyć inne części świata. diff --git a/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md index ae158ed5..832e916b 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/pl-PL/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Zrozumienie mocy -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Moc to podstawowy zasób, który określa, ile terytorium może utrzymać twoja frakcja. Każdy gracz ma osobistą moc, która wlicza się do łącznej mocy frakcji. --- -## Default Power Values +## Domyślne wartości mocy -| Setting | Value | +| Ustawienie | Wartość | |---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Maksymalna moc na gracza | 20 | +| Moc startowa | 10 | +| Kara za śmierć | -1.0 za śmierć | +| Nagroda za zabójstwo | 0.0 | +| Tempo regeneracji | +0.1 na minutę (będąc online) | +| Koszt mocy na zajęcie | 2.0 | +| Wylogowanie podczas oznaczenia | -1.0 dodatkowo | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] To są wartości domyślne. Administrator serwera mógł skonfigurować inne ustawienia. -## How It Works +## Jak to działa -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Łączna moc twojej frakcji to suma osobistej mocy wszystkich członków. Wymagana moc to liczba zajęć pomnożona przez 2.0. Dopóki łączna moc pozostaje powyżej wymaganej mocy, twoje terytorium jest bezpieczne. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Moc regeneruje się pasywnie z prędkością 0.1 na minutę, gdy jesteś online. W tym tempie odzyskanie 1.0 mocy zajmuje około 10 minut. --- -## Checking Your Power +## Sprawdzanie mocy `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Pokazuje twoją osobistą moc, łączną moc frakcji i ile jest potrzebne do utrzymania obecnych zajęć. -## The Danger Zone +## Strefa zagrożenia -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Jeśli łączna moc spadnie poniżej wymaganej ilości dla twoich zajęć, twoja frakcja staje się podatna. Wrogowie mogą przejąć twoje chunki. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Wiele śmierci w krótkim okresie może szybko się nawarstwiać. Jeśli masz 5 członków po 10 mocy każdy (50 łącznie) i 20 zajęć (40 potrzebne), zaledwie 5 śmierci w twoim zespole obniży moc do 45 -- wciąż bezpiecznie. Ale 11 śmierci da wam 39, poniżej progu 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Utrzymuj zapas mocy. Nie zajmuj każdego chunka, na jaki cię stać -- zostaw margines na kilka śmierci bez stawania się podatnym na rajdy. diff --git a/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md index 0540d550..adebaa2f 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/pl-PL/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands +# Wszystkie komendy -## Core +## Podstawowe -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | +| /f | Otwórz menu frakcji | Każdy | +| /f help | Otwórz centrum pomocy | Każdy | +| /f create (nazwa) | Utwórz frakcję | Każdy | +| /f disband | Usuń swoją frakcję | Lider | +| /f leave | Opuść swoją frakcję | Każdy | -## Membership +## Członkostwo -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | +| /f invite (gracz) | Zaproś gracza | Oficer+ | +| /f accept [frakcja] | Przyjmij zaproszenie | Każdy | +| /f request (frakcja) | Poproś o dołączenie | Każdy | +| /f kick (gracz) | Usuń członka | Oficer+ | +| /f promote (gracz) | Awansuj na Oficera | Lider | +| /f demote (gracz) | Degraduj na Członka | Lider | +| /f transfer (gracz) | Przekaż przywództwo | Lider | -## Territory +## Terytorium -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | +| /f claim | Zajmij obecny chunk | Oficer+ | +| /f unclaim | Oddaj obecny chunk | Oficer+ | +| /f overclaim | Przejmij osłabiony chunk | Oficer+ | +| /f map | Otwórz mapę terytoriów | Każdy | -## Teleport +## Teleportacja -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | +| /f home | Teleportuj do bazy frakcji | Każdy | +| /f sethome | Ustaw bazę frakcji | Oficer+ | +| /f delhome | Usuń bazę frakcji | Oficer+ | +| /f stuck | Ucieknij z wrogiego terytorium | Każdy | -## Information +## Informacje -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | +| /f info [frakcja] | Szczegóły frakcji | Każdy | +| /f list | Przeglądaj wszystkie frakcje | Każdy | +| /f members | Wyświetl skład | Każdy | +| /f who [gracz] | Info o graczu | Każdy | +| /f power [gracz] | Sprawdź poziomy mocy | Każdy | +| /f invites | Zarządzaj zaproszeniami/prośbami | Każdy | +| /f relations | Wyświetl relacje dyplomatyczne | Każdy | -## Diplomacy +## Dyplomacja -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | +| /f ally (frakcja) | Zaproponuj sojusz | Oficer+ | +| /f enemy (frakcja) | Ogłoś wroga | Oficer+ | +| /f neutral (frakcja) | Resetuj do neutralnego | Oficer+ | -## Settings +## Ustawienia -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | +| /f settings | Otwórz GUI ustawień | Oficer+ | +| /f rename (nazwa) | Zmień nazwę frakcji | Lider | +| /f desc [tekst] | Ustaw opis | Oficer+ | +| /f color (kod) | Ustaw kolor frakcji | Oficer+ | +| /f open | Zezwól każdemu na dołączenie | Lider | +| /f close | Wymagaj zaproszenia | Lider | -## Economy +## Ekonomia -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | +| /f balance | Sprawdź skarbiec | Każdy | +| /f deposit (kwota) | Wpłać fundusze | Każdy | +| /f withdraw (kwota) | Wypłać fundusze | Oficer+ | +| /f money transfer (frakcja) (kwota) | Przelej fundusze | Oficer+ | +| /f money log [strona] | Historia transakcji | Oficer+ | -## Chat +## Czat -| Command | Description | Role | +| Komenda | Opis | Rola | |---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| /f c | Przełącz tryb czatu | Każdy | +| /f c f | Ustaw czat frakcyjny | Każdy | +| /f c a | Ustaw czat sojuszniczy | Każdy | +| /f c off | Ustaw czat publiczny | Każdy | diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md index 2155ff0c..54b7dcc9 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Pierwsze kroki -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Witaj w HyperFactions! Oto jak zacząć grę w kilku prostych krokach. --- -## Step 1: Open the Faction Menu +## Krok 1: Otwórz menu frakcji -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Wpisz /f, aby otworzyć główne GUI frakcji. To twoje centrum dowodzenia -- przeglądanie frakcji, tworzenie własnej i zarządzanie zaproszeniami. -## Step 2: Choose Your Path +## Krok 2: Wybierz swoją drogę -| Option | How | +| Opcja | Jak to zrobić | |--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Przeglądaj otwarte frakcje | Kliknij Przeglądaj w menu i naciśnij Dołącz przy dowolnej otwartej frakcji. | +| Przyjmij zaproszenie | Sprawdź zakładkę Zaproszenia. Jeśli ktoś cię zaprosił, kliknij Akceptuj. | +| Stwórz własną | Kliknij Utwórz frakcję, wybierz nazwę i zostań Liderem. | -## Step 3: Explore Your Faction +## Krok 3: Poznaj swoją frakcję -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Gdy dołączysz do frakcji, zobaczysz Panel frakcji z listą członków, mapą terytoriów, relacjami i ustawieniami. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Jeśli dopiero zaczynasz, spróbuj najpierw dołączyć do istniejącej frakcji. Szybciej nauczysz się zasad z doświadczonymi graczami wokół siebie. --- -## Essential First Commands +## Podstawowe komendy na start -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Otwiera GUI frakcji +- /f home -- Teleportuje do bazy twojej frakcji +- /f c -- Przełącza tryb czatu między Normalnym, Frakcyjnym i Sojuszniczym +- /f map -- Wyświetla mapę terytoriów wokół ciebie ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Możesz też wpisać /f help na czacie, aby w każdej chwili zobaczyć szybki spis komend. diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md index dcd1df1a..f7abf04a 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Szybkie porady -Handy advice organized by category to help you thrive. +Przydatne wskazówki podzielone na kategorie, które pomogą ci się rozwinąć. --- -## Territory +## Terytorium -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Zajmij teren wokół swojej bazy jak najwcześniej komendą `/f claim` -- niezajęte budowle **nie mają ochrony** +- Każde zajęcie kosztuje **2.0 mocy** w utrzymaniu, więc nie rozszerzaj się ponad możliwości swoich członków +- Używaj `/f map` do rozpoznania pobliskich terenów i szukania bezpiecznych miejsc do budowy +- Oddawaj chunki, których już nie potrzebujesz, komendą `/f unclaim`, aby zwolnić moc -## Combat +## Walka -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Śmierć kosztuje **1.0 mocy** -- unikaj niepotrzebnych walk, gdy twoja frakcja jest blisko limitu zajęć +- Po odrodzeniu masz **5 sekund ochrony spawnu** +- Oznaczenie bojowe trwa **15 sekund** -- wylogowanie się podczas oznaczenia kosztuje dodatkową moc +- Ogień przyjacielski jest domyślnie **wyłączony** między członkami frakcji i sojusznikami ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Wylogowanie się podczas oznaczenia bojowego powoduje dodatkową utratę mocy (1.0 za wylogowanie). Zostań i walcz albo najpierw ucieknij. -## Social +## Społeczność -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Używaj `/f c` do przełączania trybów czatu, aby rozmowy frakcyjne pozostały prywatne +- Zapraszaj zaufanych graczy komendą `/f invite ` -- zaproszenia wygasają po **5 minutach** +- Twórz sojusze komendą `/f ally `, aby uzyskać wzajemną ochronę i wspólną widoczność na mapie +- Sprawdzaj `/f relations`, aby zobaczyć pełny status dyplomatyczny -## Economy +## Ekonomia ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Jeśli serwer ma włączoną ekonomię, twoja frakcja może gromadzić skarbiec. Członkowie mogą wpłacać, ale tylko Oficerowie i Liderzy mogą wypłacać lub przekazywać fundusze. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Wpłacaj fundusze przez GUI skarbca, aby wzmocnić swoją frakcję +- Bogatsza frakcja może pozwolić sobie na więcej zajęć i szybciej wracać do formy po porażkach -## General +## Ogólne -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Wpisz `/f` w dowolnym momencie, aby otworzyć panel frakcji -- wszystko jest dostępne stamtąd +- Awansuj aktywnych członków na Oficerów, aby mogli pomagać w zajmowaniu i zarządzaniu terytorium +- Utrzymuj swoją frakcję aktywną -- moc regeneruje się tylko wtedy, gdy gracze są **online** diff --git a/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md index 5fedf54c..997f0398 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/pl-PL/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Czym są frakcje? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Frakcje to prowadzone przez graczy drużyny, które zajmują terytorium, budują bazy i rywalizują o dominację. Gdy dołączysz do frakcji lub ją utworzysz, zyskujesz dostęp do chronionego terenu, wspólnej bazy, prywatnego czatu i narzędzi dyplomatycznych. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] We frakcjach chodzi o pracę zespołową. Im więcej aktywnych członków masz, tym silniejsza staje się twoja frakcja. --- -## Core Mechanics +## Podstawowe mechaniki -| Mechanic | What It Does | +| Mechanika | Opis | |----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Moc | Każdy gracz generuje moc z czasem (maks. 20). Łączna moc twojej frakcji określa, ile terenu możesz utrzymać. | +| Zajęcia | Zajęte chunki są chronione -- tylko członkowie mogą budować, niszczyć i otwierać pojemniki na ich terenie. Każde zajęcie kosztuje 2.0 mocy w utrzymaniu. | +| Relacje | Frakcje mogą tworzyć sojusze dla wzajemnej ochrony lub ogłaszać wrogów, aby umożliwić PvP i agresję terytorialną. | +| Role | Trzy rangi -- Lider, Oficer, Członek -- każda z innymi uprawnieniami. | --- -## How Strength Works +## Jak działa siła -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +Siła twojej frakcji pochodzi od jej członków. Każdy gracz zaczyna z 10 mocy i regeneruje do 20 będąc online. Śmierć kosztuje moc. Jeśli łączna moc frakcji spadnie poniżej kosztu zajęć, wrogowie mogą przejąć twoje terytorium. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Pojedyncza śmierć kosztuje 1.0 mocy. Wiele śmierci w krótkim czasie może sprawić, że twoja frakcja stanie się podatna na przejęcie terenu. --- -## Diplomacy at a Glance +## Dyplomacja w skrócie -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Sojusznicy** -- Wzajemne porozumienia, które zapobiegają ogniowi przyjacielskiemu i chronią wzajemne terytorium +- **Wrogowie** -- Jednostronne deklaracje, które włączają PvP na terenie drugiej frakcji i pozwalają na przejmowanie terenu +- **Neutralni** -- Domyślny stan między wszystkimi frakcjami ze standardowymi zasadami ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Wszystkim tym możesz zarządzać przez GUI w grze, wpisując `/f`, lub przez komendy czatu. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md index e1eaa33b..60f6fb81 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Tworzenie frakcji -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Założenie własnej frakcji czyni cię Liderem z pełną kontrolą nad ustawieniami, członkami i terytorium. --- -## How to Create +## Jak utworzyć `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Tworzy twoją frakcję i natychmiast otwiera Panel frakcji, gdzie możesz zacząć zapraszać członków, zajmować teren i konfigurować ustawienia. -## Name Rules +## Zasady nazewnictwa -| Rule | Requirement | +| Zasada | Wymóg | |------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Długość | Od 3 do 24 znaków | +| Znaki | Tylko litery, cyfry i spacje | +| Unikalność | Dwie frakcje nie mogą mieć tej samej nazwy | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Wybierz nazwę ostrożnie. Zmiana nazwy później wymaga uprawnień Lidera i może mieć czas odnowienia. --- -## What Happens on Creation +## Co dzieje się po utworzeniu -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Zostajesz Liderem (najwyższa ranga) +- Twoja frakcja zaczyna z 0 zajęciami i twoją osobistą mocą (domyślnie 10) +- Panel frakcji otwiera się automatycznie +- Możesz natychmiast zapraszać graczy, zajmować terytorium i ustawić bazę frakcji ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Jeśli serwer ma włączoną integrację ekonomiczną, utworzenie frakcji może kosztować pieniądze. Koszt utworzenia jest ustalany przez administratora serwera. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Po utworzeniu, twoje pierwsze priorytety powinny być: zaproś znajomych, znajdź lokalizację na bazę i zajmij ją. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md index 7dbabdcd..71235417 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Dołączanie do frakcji -There are three ways to join an existing faction, depending on how the faction is configured. +Istnieją trzy sposoby dołączenia do istniejącej frakcji, w zależności od jej konfiguracji. --- -## Methods Compared +## Porównanie metod -| Method | How | Requires | +| Metoda | Jak to zrobić | Wymagane | |--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Przeglądaj i dołącz | Otwórz /f, kliknij Przeglądaj, kliknij Dołącz | Frakcja ustawiona jako otwarta | +| Przyjmij zaproszenie | Sprawdź zakładkę Zaproszenia w menu /f | Aktywne zaproszenie | +| Poproś o dołączenie | Użyj /f request, czekaj na zatwierdzenie | Zatwierdzenie przez Oficera lub Lidera | --- -## Invite Details +## Szczegóły zaproszeń -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Zaproszenia są wysyłane przez Oficerów lub Liderów +- Zaproszenia wygasają po 5 minutach -- akceptuj szybko +- Sprawdzaj oczekujące zaproszenia w zakładce Zaproszenia w menu frakcji +- Akceptuj przez GUI lub /f accept -## Join Requests +## Prośby o dołączenie -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Użyj /f request, aby poprosić o członkostwo w zamkniętej frakcji +- Prośby wygasają po 24 godzinach, jeśli nie zostaną rozpatrzone +- Oficerowie i Liderzy mogą zatwierdzać lub odrzucać prośby z panelu frakcji ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Nie wiesz, do której frakcji dołączyć? Użyj zakładki Przeglądaj w /f, aby zobaczyć opisy frakcji, liczbę członków i czy są otwarte czy tylko na zaproszenie. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Każda frakcja może mieć domyślnie do 50 członków. Jeśli frakcja jest pełna, musisz poczekać na zwolnienie miejsca. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md index 870c6133..5d3d3032 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Zarządzanie członkami -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Oficerowie i Liderzy wspólnie odpowiadają za zarządzanie składem frakcji. Oto kluczowe komendy i kto może ich używać. --- -## Commands +## Komendy -| Command | What It Does | Required Role | +| Komenda | Opis | Wymagana rola | |---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| `/f invite ` | Wysyła zaproszenie do dołączenia (wygasa po 5 min) | Oficer+ | +| `/f kick ` | Usuwa członka z frakcji | Oficer+ (patrz uwaga) | +| `/f promote ` | Awansuje Członka na Oficera | Tylko Lider | +| `/f demote ` | Degraduje Oficera na Członka | Tylko Lider | +| `/f transfer ` | Przekazuje własność frakcji | Tylko Lider | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Oficerowie mogą wyrzucać tylko Członków. Aby usunąć innego Oficera, Lider musi go najpierw zdegradować lub wyrzucić bezpośrednio. --- -## Invitations +## Zaproszenia -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Zaproszenia wygasają po 5 minutach, jeśli nie zostaną zaakceptowane +- Zaproszony gracz widzi je w zakładce Zaproszenia po otwarciu /f +- Nie ma limitu na liczbę wysłanych zaproszeń jednocześnie +- Twoja frakcja może mieć łącznie do 50 członków -## Promotions and Demotions +## Awanse i degradacje -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Tylko Lider może awansować lub degradować +- /f promote podnosi Członka do rangi Oficera +- /f demote obniża Oficera z powrotem do Członka -## Transferring Leadership +## Przekazywanie przywództwa ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Przekazanie przywództwa jest nieodwracalne. Zostaniesz zdegradowany do Oficera, a wybrany gracz stanie się nowym Liderem. Upewnij się, że mu w pełni ufasz. `/f transfer ` -The target must be a current member of your faction. +Wybrany gracz musi być aktualnym członkiem twojej frakcji. diff --git a/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md b/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md index 67bb5962..da3f1e07 100644 --- a/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/pl-PL/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Role i rangi -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Każda frakcja ma trzy role w ścisłej hierarchii. Wyższe role dziedziczą wszystkie uprawnienia ról niższych. --- -## Permission Breakdown +## Podział uprawnień -| Action | Leader | Officer | Member | +| Akcja | Lider | Oficer | Członek | |--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +| Budowanie na terytorium | Tak | Tak | Tak | +| Korzystanie z bazy frakcji | Tak | Tak | Tak | +| Czat frakcyjny i sojuszniczy | Tak | Tak | Tak | +| Zapraszanie graczy | Tak | Tak | Nie | +| Wyrzucanie członków | Tak | Tak (tylko Członków) | Nie | +| Zajmowanie / oddawanie terenu | Tak | Tak | Nie | +| Przejmowanie wrogiego terytorium | Tak | Tak | Nie | +| Ustawianie bazy frakcji | Tak | Tak | Nie | +| Usuwanie bazy frakcji | Tak | Tak | Nie | +| Zarządzanie relacjami (sojusz/wrogość) | Tak | Tak | Nie | +| Przeglądanie logów frakcji | Tak | Tak | Nie | +| Awansowanie do Oficera | Tak | Nie | Nie | +| Degradowanie Oficera | Tak | Nie | Nie | +| Zmiana nazwy frakcji | Tak | Nie | Nie | +| Ustawianie opisu / tagu / koloru | Tak | Nie | Nie | +| Otwieranie / zamykanie frakcji | Tak | Nie | Nie | +| Dostęp do ustawień frakcji | Tak | Nie | Nie | +| Przekazywanie przywództwa | Tak | Nie | Nie | +| Rozwiązywanie frakcji | Tak | Nie | Nie | + +>[!NOTE] Oficerowie mogą wyrzucać Członków, ale nie mogą wyrzucać innych Oficerów. Tylko Lider może usuwać Oficerów. --- -## Role Details +## Szczegóły ról -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Lider -- Jeden na frakcję. Ma pełną kontrolę nad wszystkimi ustawieniami, członkami i terytorium. Może przekazać własność innemu członkowi. +- Oficer -- Zaufani członkowie pomagający zarządzać frakcją. Mogą zapraszać, wyrzucać członków, zajmować teren i prowadzić dyplomację. +- Członek -- Domyślna rola po dołączeniu. Może budować na terytorium, korzystać z bazy frakcji i uczestniczyć w czacie frakcyjnym. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Awansuj swoich najbardziej aktywnych i zaufanych członków na Oficerów, aby pomagali zarządzać terytorium i rekrutować nowych graczy. From 760fd61974bd2cb760538fe5c92db6a34d5a4011 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:18:00 -0700 Subject: [PATCH 73/76] i18n: add German (de-DE) help file translations Translate all 42 help markdown files into German, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 56 ++++---- .../help/admin/admin_config/world_settings.md | 48 +++---- .../admin_economy/treasury_management.md | 48 +++---- .../admin/admin_economy/upkeep_management.md | 48 +++---- .../help/admin/admin_factions/disbanding.md | 42 +++--- .../admin/admin_factions/managing_factions.md | 40 +++--- .../help/admin/admin_maintenance/backups.md | 62 ++++----- .../help/admin/admin_maintenance/imports.md | 46 +++---- .../help/admin/admin_maintenance/updates.md | 50 +++---- .../admin/admin_overview/getting_started.md | 52 ++++---- .../help/admin/admin_overview/permissions.md | 48 +++---- .../help/admin/admin_power/power_commands.md | 46 +++---- .../help/admin/admin_power/power_overrides.md | 60 ++++----- .../admin/admin_reference/all_commands.md | 26 ++-- .../admin/admin_reference/integrations.md | 52 ++++---- .../help/admin/admin_zones/zone_basics.md | 38 +++--- .../help/admin/admin_zones/zone_commands.md | 58 ++++----- .../help/admin/admin_zones/zone_flags.md | 32 ++--- .../Languages/de-DE/help/combat/death.md | 38 +++--- .../Languages/de-DE/help/combat/protection.md | 24 ++-- .../de-DE/help/combat/spawn_protection.md | 26 ++-- .../Languages/de-DE/help/combat/tagging.md | 28 ++-- .../Languages/de-DE/help/combat/zones.md | 24 ++-- .../de-DE/help/diplomacy/alliances.md | 38 +++--- .../Languages/de-DE/help/diplomacy/enemies.md | 40 +++--- .../de-DE/help/diplomacy/relations.md | 36 +++--- .../Languages/de-DE/help/economy/commands.md | 28 ++-- .../Languages/de-DE/help/economy/funds.md | 36 +++--- .../Languages/de-DE/help/economy/treasury.md | 22 ++-- .../Languages/de-DE/help/economy/upkeep.md | 36 +++--- .../de-DE/help/power_land/claiming.md | 44 +++---- .../de-DE/help/power_land/losing_territory.md | 48 +++---- .../de-DE/help/power_land/territory_map.md | 40 +++--- .../help/power_land/understanding_power.md | 42 +++--- .../de-DE/help/quick_ref/all_commands.md | 122 +++++++++--------- .../de-DE/help/welcome/getting_started.md | 36 +++--- .../de-DE/help/welcome/quick_tips.md | 52 ++++---- .../de-DE/help/welcome/what_are_factions.md | 34 ++--- .../de-DE/help/your_faction/creating.md | 36 +++--- .../de-DE/help/your_faction/joining.md | 38 +++--- .../de-DE/help/your_faction/managing.md | 44 +++---- .../de-DE/help/your_faction/roles.md | 60 ++++----- 42 files changed, 912 insertions(+), 912 deletions(-) diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md index 95b6c952..fe963cc1 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Konfigurationssystem -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions verwendet ein modulares JSON-Konfigurationssystem mit 11 Konfigurationsdateien. -## Admin Config Commands +## Admin-Konfigurationsbefehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| `/f admin config` | Visuellen Konfigurationseditor-GUI oeffnen | +| `/f admin reload` | Alle Konfigurationsdateien von der Festplatte neu laden | +| `/f admin sync` | Fraktionsdaten mit dem Speicher synchronisieren | -## Configuration Files +## Konfigurationsdateien -| File | Contents | +| Datei | Inhalt | |------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | - ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. - -## Config Location - -All files are stored in: +| `factions.json` | Rollen, Macht, Ansprueche, Kampf, Beziehungen | +| `server.json` | Teleport, Auto-Speichern, Nachrichten, GUI, Berechtigungen | +| `economy.json` | Schatzkammer, Unterhalt, Transaktionseinstellungen | +| `backup.json` | Backup-Rotation und Aufbewahrungseinstellungen | +| `chat.json` | Fraktions- und Verbuendeten-Chat-Formatierung | +| `debug.json` | Debug-Protokollierungskategorien | +| `faction-permissions.json` | Standard-Berechtigungen pro Rolle | +| `announcements.json` | Event-Broadcasts und Gebietsbenachrichtigungen | +| `gravestones.json` | Grabstein-Integrationseinstellungen | +| `worldmap.json` | Weltkarten-Aktualisierungsmodi | +| `worlds.json` | Welt-spezifische Verhaltensaenderungen | + +>[!TIP] Das Konfigurations-GUI bietet einen visuellen Editor mit Beschreibungen fuer jede Einstellung. Aenderungen werden sofort gespeichert, aber einige erfordern `/f admin reload`, um vollstaendig wirksam zu werden. + +## Konfigurationsort + +Alle Dateien sind gespeichert in: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Manuelle JSON-Bearbeitungen erfordern `/f admin reload` zur Anwendung. Ungueltiges JSON fuehrt dazu, dass die Datei mit einer Warnung im Serverlog uebersprungen wird. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] Die Konfigurationsversion wird in `server.json` verfolgt. Das Plugin migriert aeltere Konfigurationen beim Start automatisch. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md index 47e8dffe..be031540 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Welt-spezifische Einstellungen -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions unterstuetzt welt-spezifische Konfiguration fuer Beanspruchung, PvP und Schutzverhalten. -## World Commands +## Welt-Befehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| `/f admin world list` | Alle Welt-Ueberschreibungen auflisten | +| `/f admin world info ` | Einstellungen fuer eine Welt anzeigen | +| `/f admin world set ` | Eine Einstellung setzen | +| `/f admin world reset ` | Welt auf Standards zuruecksetzen | -## Available Settings +## Verfuegbare Einstellungen -| Setting | Type | Description | +| Einstellung | Typ | Beschreibung | |---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| claiming_enabled | boolean | Fraktions-Beanspruchungen in dieser Welt erlauben | +| pvp_enabled | boolean | PvP-Kampf in dieser Welt erlauben | +| power_loss | boolean | Machtverlust bei Tod anwenden | +| build_protection | boolean | Anspruchs-Bauschutz durchsetzen | +| explosion_protection | boolean | Ansprueche vor Explosionen schuetzen | -## World Whitelist / Blacklist +## Welt-Whitelist / Blacklist -Control which worlds allow faction features through the `worlds.json` config file: +Steuere, welche Welten Fraktionsfunktionen erlauben, ueber die `worlds.json` Konfigurationsdatei: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Whitelist-Modus**: Nur gelistete Welten erlauben Beanspruchung +- **Blacklist-Modus**: Alle Welten erlauben Beanspruchung ausser den gelisteten ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Welt-Einstellungen sind in `worlds.json` gespeichert und ueberschreiben die globalen Standards aus `factions.json`. -## Examples +## Beispiele - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- alle Standards wiederherstellen ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Deaktiviere Beanspruchung in Kreativ- oder Lobby-Welten, um das Fraktionssystem auf das Survival-Gameplay zu konzentrieren. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Welt-spezifische Einstellungen haben Vorrang vor der globalen Konfiguration, werden aber von Zonen-Flags innerhalb dieser Welt ueberschrieben. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md index b219d330..ca9c1f4d 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Schatzkammer-Verwaltung -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Admin-Befehle zur Verwaltung von Fraktions-Schatzkammern. Erfordert die `hyperfactions.admin.economy` Berechtigung. -## Treasury Commands +## Schatzkammer-Befehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| `/f admin economy balance ` | Schatzkammer-Kontostand der Fraktion anzeigen | +| `/f admin economy set ` | Exakten Kontostand setzen | +| `/f admin economy add ` | Mittel zur Schatzkammer hinzufuegen | +| `/f admin economy take ` | Mittel aus der Schatzkammer entfernen | +| `/f admin economy reset ` | Schatzkammer auf Null zuruecksetzen | -## Examples +## Beispiele -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- Kontostand pruefen +- `/f admin economy set Vikings 5000` -- auf 5000 setzen +- `/f admin economy add Vikings 1000` -- 1000 einzahlen +- `/f admin economy take Vikings 500` -- 500 abheben +- `/f admin economy reset Vikings` -- Kontostand nullen ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Nutze `/f admin info `, um die vollstaendige Wirtschaftsuebersicht einschliesslich Transaktionsverlauf zusammen mit dem Schatzkammer-Kontostand zu sehen. -## Use Cases +## Anwendungsfaelle -| Scenario | Command | +| Szenario | Befehl | |----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Event-Preisverteilung | `economy add ` | +| Strafe fuer Regelverstoss | `economy take ` | +| Wirtschaftsreset nach Wipe | `economy reset ` | +| Kompensation fuer Fehler | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Schatzkammer-Aenderungen werden im Transaktionsverlauf der Fraktion protokolliert. Admin-Aenderungen werden mit dem Namen des Admins fuer die Nachverfolgung aufgezeichnet. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Alle Wirtschafts-Admin-Befehle funktionieren auch dann, wenn das Wirtschaftsmodul in der Konfiguration deaktiviert ist. Die Daten werden unabhaengig vom Modulstatus gespeichert. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..a23fc3c4 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Unterhaltsverwaltung -Faction upkeep charges factions periodically based on their territory and member count. +Fraktionsunterhalt belastet Fraktionen periodisch basierend auf ihrem Gebiet und ihrer Mitgliederzahl. -## Admin Controls +## Admin-Steuerung -Upkeep settings are managed through the economy config file or the admin config GUI. +Unterhaltseinstellungen werden ueber die Wirtschafts-Konfigurationsdatei oder das Admin-Konfigurations-GUI verwaltet. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Oeffne den Konfigurationseditor und navigiere zu den Wirtschaftseinstellungen, um Unterhaltswerte anzupassen. -## Default Upkeep Settings +## Standard-Unterhaltseinstellungen -| Setting | Default | Description | +| Einstellung | Standard | Beschreibung | |---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Unterhalt aktiviert | false | Hauptschalter fuer das System | +| Unterhaltsintervall | 24h | Wie oft Unterhalt berechnet wird | +| Kosten pro Anspruch | 5.0 | Kosten pro beanspruchtem Chunk pro Zyklus | +| Kosten pro Mitglied | 0.0 | Kosten pro Mitglied pro Zyklus | +| Gnadenfrist | 72h | Neue Fraktionen sind befreit | +| Aufloesung bei Bankrott | false | Automatische Aufloesung bei Zahlungsunfaehigkeit | -## Monitoring Upkeep +## Unterhalt ueberwachen -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Nutze `/f admin info `, um zu sehen: +- Aktueller Schatzkammer-Kontostand +- Geschaetzte Unterhaltskosten pro Zyklus +- Zeit bis zur naechsten Unterhaltsberechnung +- Ob die Fraktion sich den Unterhalt leisten kann ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Ueberpreufe die Wirtschaftsstatistiken aller Fraktionen vom Admin-Dashboard aus, um Fraktionen zu identifizieren, die vor dem Unterhaltszeitpunkt bankrottgefaehrdet sind. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] Die Unterhaltskonfiguration ist in `economy.json` gespeichert. Aenderungen ueber das Konfigurations-GUI werden nach dem Neuladen mit `/f admin reload` wirksam. -## Upkeep Formula +## Unterhaltsformel -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Gesamtunterhalt** = (beanspruchte Chunks x Kosten pro Anspruch) + (Mitgliederzahl x Kosten pro Mitglied) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Das Aktivieren von Unterhalt auf einem Server mit bestehenden Fraktionen kann unerwartete Bankrotte verursachen. Erwaege, eine Gnadenfrist festzulegen oder die Aenderung im Voraus anzukuendigen. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md index 253e05ab..ee74502e 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Zwangsaufloesung -Admins can forcefully disband any faction, regardless of the leader's wishes. +Admins koennen jede Fraktion zwangsweise aufloesen, unabhaengig vom Wunsch des Anfuehrers. -## Command +## Befehl `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Loest die genannte Fraktion zwangsweise auf. Eine Bestaetigungsabfrage erscheint, bevor die Aktion ausgefuehrt wird. -**Permission**: `hyperfactions.admin.disband` +**Berechtigung**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Das Aufloesen einer Fraktion ist **unwiderruflich**. Alle Ansprueche werden freigegeben, alle Mitglieder werden entfernt und die Fraktion hoert auf zu existieren. Erstelle zuerst ein Backup. -## Consequences +## Konsequenzen -When a faction is disbanded: +Wenn eine Fraktion aufgeloest wird: -| Effect | Description | +| Auswirkung | Beschreibung | |--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| **Ansprueche** | Alles Gebiet wird sofort freigegeben | +| **Mitglieder** | Alle Spieler werden aus der Liste entfernt | +| **Beziehungen** | Alle Allianzen und Feindschaften werden geloescht | +| **Schatzkammer** | Wird gemaess Wirtschaftskonfiguration behandelt | +| **Zuhause** | Fraktions-Zuhause wird geloescht | +| **Chat** | Fraktions-Chatverlauf wird entfernt | -## Best Practices +## Empfohlene Vorgehensweise -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Fuehre immer `/f admin backup create` vor der Aufloesung aus +2. Benachrichtige die Fraktionsmitglieder wenn moeglich +3. Dokumentiere den Grund fuer die Serveraufzeichnungen +4. Pruefe `/f admin info ` zur Ueberpruefung vor dem Handeln ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Wenn das Problem bei einem bestimmten Mitglied liegt, erwaege, ueber das Admin-Fraktions-GUI die Fuehrung zu uebertragen, anstatt die gesamte Fraktion aufzuloesen. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md index b00218c9..2497a0e6 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Fraktionen verwalten -Admins can inspect and modify any faction on the server through the dashboard or commands. +Admins koennen jede Fraktion auf dem Server ueber das Dashboard oder Befehle einsehen und aendern. -## Browsing Factions +## Fraktionen durchsuchen `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Oeffnet den Admin-Fraktionsbrowser. Zeigt alle Fraktionen mit Mitgliederzahlen, Machtwerten und Gebiet an. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Oeffnet das Admin-Infopanel fuer eine bestimmte Fraktion mit allen Details und Verwaltungsoptionen. -## Modifying Faction Settings +## Fraktionseinstellungen aendern -With `hyperfactions.admin.modify` permission, you can: +Mit der `hyperfactions.admin.modify` Berechtigung kannst du: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- Fraktion **umbenennen**, um Konflikte zu loesen +- **Farbe setzen**, um Anzeigeprobleme zu beheben +- **Offen/Geschlossen umschalten**, um die Beitrittspolitik zu ueberschreiben +- **Beschreibung bearbeiten** fuer Moderationszwecke ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Nutze `/f admin who `, um nachzuschlagen, zu welcher Fraktion ein bestimmter Spieler gehoert, und seine Details einzusehen. -## Viewing Members and Relations +## Mitglieder und Beziehungen einsehen -The admin info panel shows: +Das Admin-Infopanel zeigt: -| Section | Details | +| Bereich | Details | |---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| **Mitglieder** | Vollstaendige Liste mit Rollen und letzter Aktivitaet | +| **Beziehungen** | Alle Verbuendeten-, Feind- und Neutral-Verhaeltnisse | +| **Gebiet** | Beanspruchte Chunks und Machtbilanz | +| **Wirtschaft** | Schatzkammer-Kontostand und Transaktionsprotokoll | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Admin-Einsichtsbefehle benachrichtigen die eingesehene Fraktion nicht. Nur Aenderungen loesen Benachrichtigungen aus. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md index 84a331f7..f46b6a86 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Backup-System -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions beinhaltet automatische und manuelle Backups mit GFS-Rotation (Grossvater-Vater-Sohn). -## Backup Commands +## Backup-Befehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| `/f admin backup create` | Jetzt ein manuelles Backup erstellen | +| `/f admin backup list` | Alle verfuegbaren Backups auflisten | +| `/f admin backup restore ` | Aus einem Backup wiederherstellen | +| `/f admin backup delete ` | Ein bestimmtes Backup loeschen | -**Permission**: `hyperfactions.admin.backup` +**Berechtigung**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## GFS-Rotationsstandards -| Type | Retention | Description | +| Typ | Aufbewahrung | Beschreibung | |------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Stuendlich | 24 | Letzte 24 stuendliche Schnappschuesse | +| Taeglich | 7 | Letzte 7 taegliche Schnappschuesse | +| Woechentlich | 4 | Letzte 4 woechentliche Schnappschuesse | +| Manuell | 10 | Manuell erstellte Backups | +| Herunterfahren | 5 | Beim Server-Stopp erstellt | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Herunterfahren-Backups sind standardmaessig aktiviert (`onShutdown=true`). Sie erfassen den letzten Stand vor dem Server-Stopp. -## Backup Contents +## Backup-Inhalte -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Jedes Backup-ZIP-Archiv enthaelt: +- Alle Fraktionsdaten-Dateien +- Spieler-Machtdaten +- Zonendefinitionen +- Chatverlauf und Wirtschaftsdaten +- Einladungs- und Beitrittsanfragedaten +- Konfigurationsdateien ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Das Wiederherstellen eines Backups ist destruktiv.** Es ersetzt alle aktuellen Daten durch den Inhalt des Backups. Alle Aenderungen nach der Backup-Erstellung gehen verloren. Erstelle immer ein frisches Backup vor der Wiederherstellung. -## Best Practices +## Empfohlene Vorgehensweise -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Erstelle ein manuelles Backup vor groesseren Admin-Aktionen +2. Ueberpreufe die Backup-Aufbewahrung in `backup.json` +3. Teste die Wiederherstellung zuerst auf einem Testserver +4. Halte Herunterfahren-Backups fuer Absturzwiederherstellung aktiviert diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md index e3bf7548..143dcb65 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Datenimport -Import faction data from other plugins to migrate your server to HyperFactions. +Importiere Fraktionsdaten von anderen Plugins, um deinen Server zu HyperFactions zu migrieren. -## Import Command +## Import-Befehl `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Berechtigung**: `hyperfactions.admin.use` -## Supported Sources +## Unterstuetzte Quellen -| Source | Description | +| Quelle | Beschreibung | |--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| `elbaphfactions` | Import von ElbaphFactions-Daten | +| `hyfactions` | Import von HyFactions v1-Daten | -## Import Flags +## Import-Flags -| Flag | Description | +| Flag | Beschreibung | |------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| `--dry-run` | Daten validieren, ohne etwas zu importieren | +| `--overwrite` | Bestehende Fraktionen mit gleichem Namen ueberschreiben | +| `--no-zones` | Zonendaten beim Import ueberspringen | +| `--no-power` | Machtdaten beim Import ueberspringen | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Fuehre immer zuerst mit `--dry-run` aus, um eine Vorschau dessen zu erhalten, was importiert wird, und Datenprobleme vor der endgueltigen Uebernahme zu erkennen. -## Import Process +## Importprozess -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Ein Vor-Import-Backup wird automatisch erstellt +2. Spielernamens-Zuordnungen werden geladen +3. Fraktionen, Ansprueche und Zonen werden konvertiert +4. Daten werden validiert und gespeichert -## Examples +## Beispiele - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Die Verwendung von `--overwrite` wird jede bestehende Fraktion **ersetzen**, die denselben Namen wie eine importierte Fraktion traegt. Mitgliederdaten und Ansprueche werden ueberschrieben. Fuehre zuerst `--dry-run` aus, um Konflikte zu identifizieren. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Einige quellenspezifische Daten (z.B. Arbeitergrundstucke, Farmgrundstucke) haben kein Aequivalent in HyperFactions und werden als Warnungen waehrend des Imports protokolliert. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md index f6dc2880..dbf8aa19 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Update-Pruefung -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions kann nach neuen Versionen suchen und die HyperProtect-Mixin-Abhaengigkeit verwalten. -## Update Commands +## Update-Befehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| `/f admin update` | Nach HyperFactions-Updates suchen | +| `/f admin update mixin` | HyperProtect-Mixin pruefen/herunterladen | +| `/f admin update toggle-mixin-download` | Automatischen Download umschalten | +| `/f admin version` | Aktuelle Version und Build-Info anzeigen | -## Release Channels +## Release-Kanaele -| Channel | Description | +| Kanal | Beschreibung | |---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| **Stable** | Empfohlen fuer Produktivserver | +| **Pre-release** | Fruehzeitiger Zugang zu kommenden Funktionen | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Die Update-Pruefung benachrichtigt nur ueber neue Versionen. Sie installiert **keine** Updates fuer HyperFactions selbst automatisch. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin ist das empfohlene Schutz-Mixin, das erweiterte Zonen-Flags aktiviert (Explosionen, Feuerausbreitung, Inventar behalten usw.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` prueft auf die neueste Version +und laedt sie herunter, wenn eine neuere Version verfuegbar ist +- Automatischer Download kann pro Server ein- oder ausgeschaltet werden ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Nach dem Herunterladen einer neuen Mixin-Version ist ein Serverneustart erforderlich, damit die Aenderungen wirksam werden. -## Rollback Procedure +## Rollback-Verfahren -If an update causes issues: +Wenn ein Update Probleme verursacht: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Stoppe den Server +2. Ersetze die Plugin-JAR-Datei durch die vorherige Version +3. Starte den Server +4. Ueberpreufe die Funktionalitaet mit `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Ein Downgrade kann ein Zuruecksetzen der Konfigurationsmigration erfordern. Halte immer Backups bereit, bevor du aktualisierst. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md index bf30a5b4..9516be85 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Erste Schritte als Admin -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Willkommen in der HyperFactions-Administration. Dieser Leitfaden behandelt deine ersten Schritte nach der Installation des Plugins. -## Opening the Admin Dashboard +## Das Admin-Dashboard oeffnen `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Oeffnet das Admin-Dashboard-GUI mit Zugang zu allen Verwaltungswerkzeugen, Zonen-Editoren und Servereinstellungen. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Du benoetigst die **hyperfactions.admin.use** Berechtigung oder OP-Status, um auf Admin-Befehle zugreifen zu koennen. -## Requirements +## Voraussetzungen -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Mit einem Berechtigungs-Plugin**: Vergib `hyperfactions.admin.use` +- **Ohne Berechtigungs-Plugin**: Der Spieler muss ein +Server-Operator sein (`adminRequiresOp=true` standardmaessig) -## First Steps After Install +## Erste Schritte nach der Installation -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Fuehre `/f admin` aus, um deinen Zugang zu ueberpruefen +2. Oeffne **Config**, um die Standard-Fraktionseinstellungen zu ueberpruefen +3. Erstelle eine **SafeZone** am Spawn mit `/f admin safezone Spawn` +4. Erstelle optional **WarZones** fuer PvP-Arenen +5. Ueberpreufe die **Backup**-Einstellungen, um Datensicherheit zu gewaehrleisten -## Admin Capabilities +## Admin-Faehigkeiten -| Area | What You Can Do | +| Bereich | Moeglichkeiten | |------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | - ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +| Fraktionen | Jede Fraktion einsehen, aendern oder zwangsaufloesen | +| Zonen | SafeZones und WarZones mit benutzerdefinierten Flags erstellen | +| Macht | Spieler-/Fraktionsmachtwerte ueberschreiben | +| Wirtschaft | Fraktions-Schatzkammern und Unterhalt verwalten | +| Konfiguration | Einstellungen live ueber GUI bearbeiten oder von der Festplatte neu laden | +| Backups | Datensicherungen erstellen, wiederherstellen und verwalten | +| Importe | Daten von anderen Fraktions-Plugins migrieren | + +>[!TIP] Nutze `/f admin --text`, um Chat-basierte Ausgabe statt des GUIs zu erhalten -- nuetzlich fuer Konsole oder Automatisierung. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md index 979e5543..51b8eaf0 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Admin-Berechtigungen -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Alle Admin-Funktionen sind hinter Berechtigungsknoten im `hyperfactions.admin`-Namensraum gesperrt. -## Permission Nodes +## Berechtigungsknoten -| Permission | Description | +| Berechtigung | Beschreibung | |-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| `hyperfactions.admin.*` | Gewaehrt **alle** Admin-Berechtigungen | +| `hyperfactions.admin.use` | Zugang zum `/f admin` Dashboard | +| `hyperfactions.admin.reload` | Konfigurationsdateien neu laden | +| `hyperfactions.admin.debug` | Debug-Protokollierungskategorien umschalten | +| `hyperfactions.admin.zones` | Zonen erstellen, bearbeiten und loeschen | +| `hyperfactions.admin.disband` | Jede Fraktion zwangsaufloesen | +| `hyperfactions.admin.modify` | Einstellungen jeder Fraktion aendern | +| `hyperfactions.admin.bypass.limits` | Anspruchs- und Machtgrenzen umgehen | +| `hyperfactions.admin.backup` | Backups erstellen und wiederherstellen | +| `hyperfactions.admin.power` | Spieler-Machtwerte ueberschreiben | +| `hyperfactions.admin.economy` | Fraktions-Schatzkammern verwalten | -## Fallback Behavior +## Fallback-Verhalten -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Wenn **kein Berechtigungs-Plugin** installiert ist, fallen Admin-Berechtigungen auf den Server-Operator (OP)-Status zurueck. Dies wird durch `adminRequiresOp` in der Serverkonfiguration gesteuert (Standard: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Der `hyperfactions.admin.*`-Platzhalter gewaehrt jede Admin-Berechtigung. Nutze individuelle Knoten fuer granulare Kontrolle ueber dein Team. -## Permission Resolution Order +## Reihenfolge der Berechtigungsaufloesung -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. **VaultUnlocked** Anbieter (falls verfuegbar) +2. **HyperPerms** Anbieter (falls verfuegbar) +3. **LuckPerms** Anbieter (falls verfuegbar) +4. **OP-Pruefung** fuer Admin-Knoten (Fallback) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Ohne Berechtigungs-Plugin und mit deaktiviertem `adminRequiresOp` sind Admin-Befehle **fuer alle Spieler offen**. Verwende im Produktivbetrieb immer ein Berechtigungs-Plugin. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md index b2c9f463..011e5266 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Macht-Admin-Befehle -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Spieler- und Fraktionsmachtwerte ueberschreiben. Alle Befehle erfordern die `hyperfactions.admin.power` Berechtigung. -## Player Power Commands +## Spieler-Machtbefehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| `/f admin power set ` | Exakten Machtwert setzen | +| `/f admin power add ` | Macht zum Spieler hinzufuegen | +| `/f admin power remove ` | Macht vom Spieler entfernen | +| `/f admin power reset ` | Auf Standard-Startmacht zuruecksetzen | +| `/f admin power info ` | Detaillierte Machtaufschluesselung anzeigen | -## How Power Affects Factions +## Wie Macht Fraktionen beeinflusst -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +Die Gesamtmacht einer Fraktion ist die Summe der individuellen Macht aller Mitglieder. Gebietsansprueche erfordern ausreichend Gesamtmacht fuer den Unterhalt. -| Scenario | Effect | +| Szenario | Auswirkung | |----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Macht hoeher gesetzt | Fraktion kann mehr Gebiet beanspruchen | +| Macht niedriger gesetzt | Fraktion kann anfaellig fuer Uebernahmen werden | +| Macht zurueckgesetzt | Setzt Spieler auf Standard-Startwert zurueck | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Das Senken der Macht eines Spielers kann dazu fuehren, dass seine Fraktion Gebiet verliert, wenn die Gesamtmacht unter die Anzahl der beanspruchten Chunks faellt. -## Examples +## Beispiele -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- auf genau 50 setzen +- `/f admin power add Steve 10` -- um 10 erhoehen +- `/f admin power remove Steve 5` -- um 5 verringern +- `/f admin power reset Steve` -- auf Standard zuruecksetzen +- `/f admin power info Steve` -- vollstaendige Aufschluesselung anzeigen ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Nutze `/f admin power info `, um aktuelle Macht, maximale Macht und aktive Ueberschreibungen zu sehen, bevor du Aenderungen vornimmst. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md index 5469f903..d39ff32b 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Macht-Ueberschreibungen -Special power commands that change how power behaves for specific players or factions. +Spezielle Machtbefehle, die das Machtverhalten fuer bestimmte Spieler oder Fraktionen aendern. -## Override Commands +## Ueberschreibungsbefehle -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| `/f admin power setmax ` | Benutzerdefiniertes Macht-Maximum setzen | +| `/f admin power noloss ` | Todes-Machtverlust-Immunitaet umschalten | +| `/f admin power nodecay ` | Offline-Machtverfall-Immunitaet umschalten | +| `/f admin power info ` | Alle Ueberschreibungen und Machtdetails anzeigen | -## Custom Max Power +## Benutzerdefiniertes Macht-Maximum `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Setzt ein persoenliches maximales Macht-Limit fuer den Spieler, das den Serverstandard ueberschreibt. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Das Setzen eines benutzerdefinierten Maximums aendert **nicht** die aktuelle Macht. Es aendert nur die Obergrenze. Der Spieler muss Macht bis zum neuen Limit noch verdienen. -## No-Loss Mode +## Kein-Verlust-Modus `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Schaltet die Todes-Machtverlust-Immunitaet um. Wenn aktiviert, verliert der Spieler beim Tod **keine** Macht. -Useful for: -- New player protection periods -- Event participants -- Staff members +Nuetzlich fuer: +- Schutzperioden fuer neue Spieler +- Event-Teilnehmer +- Team-Mitglieder -## No-Decay Mode +## Kein-Verfall-Modus `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Schaltet die Offline-Machtverfall-Immunitaet um. Wenn aktiviert, wird die Macht des Spielers im Offline-Zustand **nicht** abnehmen. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Nuetzlich fuer: +- Spieler in laengerer Abwesenheit +- VIP-Mitglieder +- Saisonaler Schutz -## Power Info +## Macht-Info `/f admin power info ` -Shows a complete breakdown: +Zeigt eine vollstaendige Aufschluesselung: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Aktuelle Macht und maximale Macht +- Aktive Ueberschreibungen (noloss, nodecay, benutzerdefiniertes Maximum) +- Letzter Todeszeitpunkt und verlorene Macht +- Fraktionsbeitragsprozentsatz ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Alle Macht-Ueberschreibungen bleiben ueber Serverneustarts bestehen und werden in der Datendatei des Spielers gespeichert. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md index bd0b0fa6..5d239eaa 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/all_commands.md @@ -1,13 +1,13 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Admin-Befehlsreferenz -Complete list of all `/f admin` subcommands with syntax and required permissions. +Vollstaendige Liste aller `/f admin` Unterbefehle mit Syntax und erforderlichen Berechtigungen. -## Dashboard and General +## Dashboard und Allgemein -| Command | Permission | +| Befehl | Berechtigung | |---------|-----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | @@ -15,9 +15,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Fraktionsverwaltung -| Command | Permission | +| Befehl | Berechtigung | |---------|-----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | @@ -25,9 +25,9 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Zonenverwaltung -| Command | Permission | +| Befehl | Berechtigung | |---------|-----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | @@ -40,18 +40,18 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Macht und Wirtschaft -| Command | Permission | +| Befehl | Berechtigung | |---------|-----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Wartung -| Command | Permission | +| Befehl | Berechtigung | |---------|-----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Alle Berechtigungsknoten haben das Praefix `hyperfactions.` (z.B. `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md index c39bfb3b..b29c5998 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Plugin-Integrationen -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions integriert sich mit mehreren externen Plugins ueber weiche Abhaengigkeiten. Alle Integrationen sind optional und funktionieren problemlos auch ohne die externen Plugins. -## Checking Integration Status +## Integrationsstatus pruefen `/f admin version` -Shows current version and detected integrations. +Zeigt aktuelle Version und erkannte Integrationen an. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. +Oeffnet das Integrationsverwaltungs-Panel mit detailliertem Status fuer jedes erkannte Plugin. -## Integration Table +## Integrationstabelle -| Plugin | Type | Description | +| Plugin | Typ | Beschreibung | |--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +| **HyperPerms** | Berechtigungen | Vollstaendiges Berechtigungssystem mit Gruppen, Vererbung und Kontext | +| **LuckPerms** | Berechtigungen | Alternativer Berechtigungsanbieter | +| **VaultUnlocked** | Berechtigungen/Wirtschaft | Berechtigungs- und Wirtschaftsbruecke | +| **HyperProtect-Mixin** | Schutz | Aktiviert erweiterte Zonen-Flags (Explosionen, Feuer, Inventar behalten) | +| **OrbisGuard-Mixins** | Schutz | Alternatives Mixin fuer Zonen-Flag-Durchsetzung | +| **PlaceholderAPI** | Platzhalter | 49 Fraktions-Platzhalter fuer andere Plugins | +| **WiFlow PlaceholderAPI** | Platzhalter | Alternativer Platzhalter-Anbieter | +| **GravestonePlugin** | Tod | Grabstein-Zugriffskontrolle in Zonen | +| **HyperEssentials** | Funktionen | Zonen-Flags fuer Zuhause, Warps und Kits | +| **KyuubiSoft Core** | Framework | Kernbibliotheks-Integration | +| **Sentry** | Ueberwachung | Fehlerverfolgung und Diagnose | + +## Prioritaet der Berechtigungsanbieter + +1. **VaultUnlocked** (hoechste Prioritaet) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **OP-Fallback** (wenn kein Anbieter gefunden) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Integrationen werden einmalig beim Start per Reflection erkannt. Ergebnisse werden fuer die Sitzung zwischengespeichert. Ein Serverneustart ist erforderlich, nachdem ein integriertes Plugin hinzugefuegt oder entfernt wurde. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Nutze `/f admin debug toggle integration`, um detaillierte Integrations-Protokollierung zur Fehlerbehebung zu aktivieren. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin ist das **empfohlene** Schutz-Mixin. Ohne es haben 15 Zonen-Flags keine Wirkung. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md index 933a9b2d..d2b017af 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Zonen-Grundlagen -Zones are admin-controlled territories with custom rules that override normal faction protection. +Zonen sind von Admins kontrollierte Gebiete mit benutzerdefinierten Regeln, die den normalen Fraktionsschutz ueberschreiben. -## Zone Types +## Zonentypen -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Kein PvP, kein Bauen, kein Schaden. +Ideal fuer Spawngebiete und Handelsplaetze. +- **WarZone** -- PvP ist immer aktiviert, kein Bauen. +Ideal fuer Arenen und umkaempfte Kampfgebiete. -## Creating Zones +## Zonen erstellen `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Erstellt eine SafeZone und beansprucht deinen aktuellen Chunk. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Erstellt eine WarZone und beansprucht deinen aktuellen Chunk. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Nach der Erstellung stelle dich in weitere Chunks und nutze `/f admin zone claim `, um die Zone zu erweitern. -## Managing Zone Chunks +## Zonen-Chunks verwalten `/f admin zone claim ` -Add the current chunk to the named zone. +Fuegt den aktuellen Chunk zur benannten Zone hinzu. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Entfernt den aktuellen Chunk aus der benannten Zone. `/f admin zone radius ` -Claim a square of chunks around your position. +Beansprucht ein Quadrat von Chunks um deine Position. -## Deleting Zones +## Zonen loeschen `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Loescht die Zone dauerhaft und gibt alle beanspruchten Chunks frei. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Das Loeschen einer Zone gibt alle Chunks sofort frei. Dies kann ohne Backup-Wiederherstellung nicht rueckgaengig gemacht werden. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Zonenregeln **ueberschreiben immer** Fraktions-Gebietsregeln. Eine SafeZone in feindlichem Land ist trotzdem sicher. diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md index 403b6b63..a213f804 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Zonen-Befehlsreferenz -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Vollstaendige Referenz fuer alle Zonen-Verwaltungsbefehle. Alle erfordern die `hyperfactions.admin.zones` Berechtigung. -## Quick Creation +## Schnellerstellung -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| `/f admin safezone ` | SafeZone am aktuellen Chunk erstellen | +| `/f admin warzone ` | WarZone am aktuellen Chunk erstellen | +| `/f admin removezone ` | Zone loeschen und Chunks freigeben | -## Zone Management +## Zonenverwaltung -| Command | Description | +| Befehl | Beschreibung | |---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | +| `/f admin zone create ` | Zone erstellen (safezone/warzone) | +| `/f admin zone delete ` | Zone loeschen | +| `/f admin zone claim ` | Aktuellen Chunk zur Zone hinzufuegen | +| `/f admin zone unclaim ` | Aktuellen Chunk aus Zone entfernen | +| `/f admin zone radius ` | Quadratischen Radius von Chunks beanspruchen | +| `/f admin zone list` | Alle Zonen mit Chunk-Anzahl auflisten | +| `/f admin zone notify ` | Betreten-/Verlassen-Nachrichten umschalten | +| `/f admin zone title upper/lower ` | Zonen-Titeltext setzen | +| `/f admin zone properties ` | Zonen-Eigenschaften-GUI oeffnen | + +## Flag-Verwaltung + +| Befehl | Beschreibung | |---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| `/f admin zoneflag ` | Ein bestimmtes Flag setzen | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Nutze das Zonen-**Eigenschaften-GUI** fuer einen visuellen Editor mit Schaltern fuer jedes Flag, nach Kategorie geordnet. -## Examples +## Beispiele -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- Spawn-Schutz erstellen +- `/f admin zone radius Spawn 3` -- auf 7x7 Chunks erweitern +- `/f admin zoneflag Spawn door_use true` -- Tueren erlauben +- `/f admin zone notify Spawn true` -- Eintrittsnachrichten anzeigen diff --git a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md index 368a4ec9..155851c9 100644 --- a/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/de-DE/help/admin/admin_zones/zone_flags.md @@ -1,26 +1,26 @@ --- id: admin_zone_flags --- -# Zone Flags +# Zonen-Flags -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Zonen unterstuetzen **47 boolesche Flags** in 10 Kategorien. Jedes Flag steuert ein bestimmtes Verhalten innerhalb der Zone. -## Flag Categories Overview +## Flag-Kategorienuebersicht -| Category | Count | Key Flags | +| Kategorie | Anzahl | Wichtige Flags | |----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Kampf | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Schaden | 4 | fall_damage, explosion_damage, fire_spread | +| Tod | 2 | keep_inventory, power_loss | +| Bauen | 4 | build_allowed, block_place, hammer_use | +| Interaktion | 13 | door_use, container_use, bench_use, npc_tame | | Transport | 3 | teleporter_use, portal_use, mount_entry | -| Items | 4 | item_drop, item_pickup, invincible_items | -| Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | +| Gegenstaende | 4 | item_drop, item_pickup, invincible_items | +| Mob-Spawning | 5 | mob_spawning, hostile/passive/neutral | +| Mob-Bereinigung | 4 | mob_clear, hostile/passive/neutral clear | | Integration | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Standardwerte (SafeZone vs WarZone) | Flag | SafeZone | WarZone | |------|----------|---------| @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Einige Flags erfordern **HyperProtect-Mixin** zur Funktion (z.B. keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Ohne das Mixin haben diese Flags keine Wirkung, selbst wenn sie aktiviert sind. -## Setting Flags +## Flags setzen `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Nutze `/f admin zone properties ` fuer einen visuellen Schalter-Editor, nach Kategorie gruppiert. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/death.md b/src/main/resources/Server/Languages/de-DE/help/combat/death.md index 8690b43a..f10abb35 100644 --- a/src/main/resources/Server/Languages/de-DE/help/combat/death.md +++ b/src/main/resources/Server/Languages/de-DE/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Tod und Erholung -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +Der Tod hat echte Konsequenzen bei Fraktionen. Jeder Tod kostet dich persoenliche Macht und schwaecht die Faehigkeit deiner Fraktion, Gebiet zu halten. -## Power Loss +## Machtverlust -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Jeder Tod kostet -1.0 Macht von deinem persoenlichen Gesamtwert. Dies senkt die kombinierte Macht der Fraktion. -| Event | Power Change | +| Ereignis | Machtaenderung | |-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Tod (jede Ursache) | -1.0 | +| Online-Regeneration | +0.1 pro Minute | +| Kampf-Abmeldung | -1.0 (getoetet) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. -## Example Scenarios +## Beispielszenarien -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 Mitglieder mit je 10.0 Macht = 50 gesamt, 20 Ansprueche.* +*Ein Mitglied stirbt zweimal: 8.0 Macht, Fraktionsgesamt 48.* +*Drei Mitglieder sterben je einmal: Gesamt faellt auf 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Wenn die Macht deiner Fraktion unter die Anzahl eurer Ansprueche faellt, koennen Feinde euer Gebiet ueberbeanspruchen. -## Recovery +## Erholung -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Macht regeneriert sich mit 0.1 pro Minute, solange du online bist. Die Erholung von 1.0 verlorener Macht dauert etwa 10 Minuten. Mehrere Tode summieren sich, also vermeide wiederholte Kaempfe. --- -## All Death Types +## Alle Todesarten -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +Machtverlust gilt fuer alle Tode: PvP, Mob-Kills, Fallschaden, Ertrinken und jede andere Ursache. Es gibt keinen sicheren Weg zu sterben. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Setze ein Fraktions-Zuhause mit /f sethome, damit Mitglieder sich nach dem Tod schnell sammeln koennen. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/protection.md b/src/main/resources/Server/Languages/de-DE/help/combat/protection.md index e564ec2d..22b8d452 100644 --- a/src/main/resources/Server/Languages/de-DE/help/combat/protection.md +++ b/src/main/resources/Server/Languages/de-DE/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Gebietsschutz -Claimed territory provides several layers of defense for your faction's builds and resources. +Beanspruchtes Gebiet bietet mehrere Verteidigungsschichten fuer die Bauten und Ressourcen deiner Fraktion. -## Block Protection +## Blockschutz -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Nur Fraktionsmitglieder koennen in eurem Gebiet Bloecke platzieren oder abbauen. Feinde und Neutrale koennen nichts veraendern. -## Container Protection +## Behaelterschutz -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Truhen, Faesser und andere Behaelter sind gesichert. Nur eure Fraktionsmitglieder koennen Lager in beanspruchten Chunks oeffnen oder damit interagieren. -## Entry Alerts +## Eindringlingsalarme -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Wenn ein Nicht-Mitglied euer beanspruchtes Gebiet betritt, erhalten online anwesende Fraktionsmitglieder eine Benachrichtigung mit dem Namen und Standort des Eindringlings. --- -## Ally Access +## Verbuendeten-Zugang -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Verbuendete koennen standardmaessig keine Bloecke in eurem Gebiet bauen oder abbauen. Verbuendeten-Schaden ist ebenfalls deaktiviert, sodass verbuendete Spieler einander nicht verletzen koennen. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Gebietsschutz schuetzt Bloecke, nicht Spieler. PvP in eurem eigenen Gebiet haengt von der Beziehung des Angreifers zu eurer Fraktion ab. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Halte deine Ansprueche zusammenhaengend und vermeide isolierte Chunks, die schwerer zu verteidigen sind. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md index f0b2ab76..aabcff51 100644 --- a/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/de-DE/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Spawn-Schutz -After respawning from death, you receive temporary protection to prevent spawn camping. +Nach dem Wiedererscheinen vom Tod erhaeltst du voruebergehenden Schutz, um Spawn-Camping zu verhindern. -## How It Works +## So funktioniert es -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- Der Schutz dauert 5 Sekunden nach dem Wiedererscheinen +- Du kannst in dieser Zeit keinen Schaden nehmen +- Ein visueller Indikator zeigt deinen Schutzstatus an -## Protection Breaks +## Schutz endet vorzeitig -Spawn protection ends early if you: +Der Spawn-Schutz endet fruehzeitig, wenn du: -- Attack another player or entity -- Move from your spawn position +- Einen anderen Spieler oder eine Entitaet angreifst +- Dich von deiner Spawnposition bewegst -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Dies verhindert Missbrauch. Du kannst andere nicht angreifen, waehrend du unverwundbar bist. Sobald du eine Aktion ausfuehrst, faellt der Schutz weg und normale Kampfregeln gelten. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Nutze deine Schutzzeit, um die Lage einzuschaetzen, bevor du dich bewegst. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md b/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md index e45cbdb3..41253710 100644 --- a/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/de-DE/help/combat/tagging.md @@ -1,29 +1,29 @@ --- id: combat_tagging --- -# Combat Tagging +# Kampfmarkierung -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Wenn du einen anderen Spieler angreifst oder von einem angegriffen wirst, wirst du fuer 15 Sekunden kampfmarkiert. -## While Tagged +## Waehrend der Markierung -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Keine /f home oder /f stuck Teleportationen +- Keine Server-Teleportbefehle +- Die Markierung wird bei jeder neuen Kampfaktion zurueckgesetzt +- Ein Timer zeigt die verbleibende Markierungsdauer an --- -## Logout Penalty +## Abmeldestrafe ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Sich abzumelden waehrend einer Kampfmarkierung toetet deinen Charakter und du verlierst 1.0 Macht. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Deine Gegenstaende fallen dort, wo du dich abgemeldet hast, und Feinde koennen sie pluendern. Warte immer, bis die Markierung abgelaufen ist. -## How the Timer Works +## So funktioniert der Timer -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Der Kampfmarkierungs-Timer erscheint auf dem Bildschirm, wenn du in den Kampf eintrittst. Jeder neue Treffer setzt ihn auf 15 Sekunden zurueck. Sobald er Null erreicht, werden alle Einschraenkungen aufgehoben. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Ziehe dich zurueck und warte den Timer ab, wenn du teleportieren musst. diff --git a/src/main/resources/Server/Languages/de-DE/help/combat/zones.md b/src/main/resources/Server/Languages/de-DE/help/combat/zones.md index d1d957d2..7a6f1078 100644 --- a/src/main/resources/Server/Languages/de-DE/help/combat/zones.md +++ b/src/main/resources/Server/Languages/de-DE/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Spezialzonen -Admins can designate areas with special rules that override normal faction territory protection. +Admins koennen Gebiete mit speziellen Regeln festlegen, die den normalen Fraktions-Gebietsschutz ueberschreiben. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Kein PvP-Schaden, kein Blockabbauen durch Nicht-Admins. Ideal fuer Spawngebiete, Handelsplaetze und Event-Bereiche. Spieler koennen hier nicht verletzt werden. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +PvP ist immer aktiviert. Kein Blockschutz gilt. Offene Kampfgebiete, in denen alles erlaubt ist. Du erhaeltst in einer WarZone keine Gebietsschutz-Vorteile. --- -## Zone Comparison +## Zonenvergleich -| Feature | SafeZone | WarZone | Faction Land | +| Eigenschaft | SafeZone | WarZone | Fraktionsland | |---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| PvP | Deaktiviert | Immer An | Beziehungsabhaengig | +| Blockabbau | Deaktiviert | Erlaubt | Nur Mitglieder | +| Behaelter | Geschuetzt | Offen | Nur Mitglieder | +| Geeignet fuer | Spawn/Handel | Arenen | Basen | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Zonenregeln ueberschreiben immer Fraktions-Gebietsregeln. Ein beanspruchter Chunk innerhalb einer WarZone folgt den WarZone-Regeln. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Pruefe deine Gebietskarte mit /f map, um Zonengrenzen zu sehen. diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md index 45da7756..a9fd61a1 100644 --- a/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Allianzen bilden -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Allianzen sind gegenseitige Abkommen zwischen zwei Fraktionen, die Schutz- und Kooperationsvorteile bieten. --- -## How to Form an Alliance +## So bildest du eine Allianz `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Sendet eine Allianzanfrage an die Zielfraktion. Die Allianz tritt erst in Kraft, wenn beide Seiten zustimmen. Ein Offizier oder Anfuehrer der anderen Fraktion muss ebenfalls denselben Befehl auf deine Fraktion ausfuehren, um zu bestaetigen. -## How to Break an Alliance +## So beendest du eine Allianz `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Jede Seite kann eine Allianz einseitig beenden, indem sie die Beziehung auf neutral zuruecksetzt. --- -## Alliance Benefits +## Allianzvorteile -| Benefit | Details | +| Vorteil | Details | |---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Kein Eigenbeschuss | Verbuendete Spieler koennen einander keinen Schaden zufuegen | +| Gemeinsame Kartensichtbarkeit | Verbuendetes Gebiet wird blau auf der Gebietskarte angezeigt | +| Gebietsinteraktion | Verbuendete koennen Tueren, Sitzplaetze und Transportmittel in eurem Gebiet nutzen | +| Verbuendeten-Chat | Wechsle zum Verbuendeten-Chat fuer fraktionsuebergreifende Kommunikation | +| Schutz vor Uebernahme | Verbuendete koennen das Gebiet des anderen nicht ueberbeanspruchen | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Deine Fraktion kann gleichzeitig bis zu 10 Allianzen haben. Waehle deine Verbuendeten weise. --- -## Alliance Etiquette +## Allianz-Etikette ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Kommunikation ist entscheidend. Bevor du eine Allianzanfrage sendest, erwaege, den Anfuehrer der anderen Fraktion zu kontaktieren, um Bedingungen zu besprechen. Eine starke Allianz basiert auf gegenseitigem Nutzen, nicht nur auf Bequemlichkeit. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Allianzen funktionieren in beide Richtungen -- wenn du vom Schutz profitierst, erwarten deine Verbuendeten dasselbe +- Eine Allianz waehrend eines Krieges zu brechen, kann den Ruf deiner Fraktion schaedigen +- Verbuendete Fraktionen koennen Gebietsansprueche koordinieren, um verteidigungsfaehige Grenzen zu schaffen diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md index 70688ad4..9ee4f60b 100644 --- a/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Feindliche Fraktionen -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Einen Feind zu erklaeren ist eine einseitige Aktion, die sofort PvP und territoriale Aggression gegen die Zielfraktion aktiviert. Keine Zustimmung ist erforderlich. --- -## Declaring an Enemy +## Einen Feind erklaeren `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Markiert die Zielfraktion sofort als euren Feind. Dies tritt sofort in Kraft -- keine Bestaetigung von der anderen Seite ist noetig. Erfordert den Rang Offizier oder hoeher. -## Resetting to Neutral +## Auf Neutral zuruecksetzen `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Beendet den Feindstatus und setzt die Beziehung auf neutral zurueck. Dies erfordert ebenfalls Offizier+ und tritt sofort in Kraft. --- -## What Enemy Status Enables +## Was der Feindstatus bewirkt -| Effect | Details | +| Effekt | Details | |--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| PvP im Gebiet | Volles PvP ist in den Gebieten beider Fraktionen aktiviert | +| Ueberbeanspruchung | Du kannst deren Chunks ueberbeanspruchen, wenn sie ein Machtdefizit haben | +| Kartenmarkierung | Feindliches Gebiet wird rot auf der Gebietskarte angezeigt | +| Kein Schutz | Standard-Gebietsschutz verhindert kein feindliches PvP | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Einen Feind zu erklaeren ist eine ernste Entscheidung. Deren Mitglieder koennen euch auch in eurem eigenen Gebiet bekaempfen, sobald ihr es erklaert habt. --- -## Strategic Considerations +## Strategische Ueberlegungen -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Feinderklaerungen sind einseitig -- du kannst ohne deren Zustimmung erklaeren, aber sie sehen dich ebenfalls als feindlich +- Pruefe vor der Erklaerung die Macht des Ziels mit /f info. Wenn sie stark sind, koenntest stattdessen du Gebiet verlieren +- Schwaeche Feinde durch wiederholten Kampf, um ihre Macht zu entziehen, dann ueberbeanspruche ihr Land +- Es gibt kein Limit fuer die Anzahl der Feinde, aber an mehreren Fronten zu kaempfen ist riskant ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Nutze /f neutral, um Konflikte zu deeskalieren. Manchmal ist ein strategischer Frieden wertvoller als fortgesetzter Krieg. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Wenn du mit einer Fraktion verbuendet bist und sie zum Feind erklaerst, wird zuerst die Allianz aufgeloest. diff --git a/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md b/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md index 89711eee..727a70c5 100644 --- a/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/de-DE/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Fraktionsbeziehungen -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Jedes Fraktionspaar hat eine diplomatische Beziehung, die bestimmt, wie sie miteinander interagieren. Es gibt drei Zustaende: Verbuendet, Feindlich und Neutral. --- -## Relation Comparison +## Beziehungsvergleich -| Effect | Ally | Neutral | Enemy | +| Effekt | Verbuendet | Neutral | Feindlich | |--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| PvP im Gebiet | Deaktiviert | Standardregeln | Aktiviert | +| Gebietsschutz | Gegenseitiger Schutz | Standardschutz | Kann bei Schwaeche uebernommen werden | +| Eigenbeschuss | Deaktiviert | N/A | Ueberall aktiviert | +| Kartenfarbe | Blau | Grau | Rot | +| Wie zu setzen | Gegenseitiges Abkommen | Standardzustand | Einseitige Erklaerung | +| Chat-Zugang | Verbuendeten-Chat | Keiner | Keiner | --- -## Viewing Relations +## Beziehungen anzeigen `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Zeigt alle aktuellen Allianzen, Feindschaften und ausstehenden Allianzanfragen an. -## How Relations Work +## Wie Beziehungen funktionieren -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutral ist der Standardzustand zwischen allen Fraktionen. Standardmaessige Serverregeln gelten. +- Allianzen erfordern die Zustimmung beider Fraktionen. Jede Seite kann sie einseitig beenden. +- Feindschaft wird einseitig erklaert. Keine Zustimmung noetig -- die andere Fraktion wird sofort als Feind markiert. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Beziehungen werden von Offizieren und Anfuehrern verwaltet. Mitglieder koennen Beziehungen einsehen, aber nicht aendern. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Nutze /f relations regelmaessig, um die diplomatische Landschaft im Blick zu behalten. Zu wissen, wer deine Feinde sind, hilft dir, dich auf territoriale Konflikte vorzubereiten. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/commands.md b/src/main/resources/Server/Languages/de-DE/help/economy/commands.md index 020190cd..cef5503e 100644 --- a/src/main/resources/Server/Languages/de-DE/help/economy/commands.md +++ b/src/main/resources/Server/Languages/de-DE/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Wirtschaftsbefehle -Quick reference for all faction economy commands. +Schnellreferenz fuer alle Fraktions-Wirtschaftsbefehle. -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| /f balance | Schatzkammer-Kontostand anzeigen | Alle | +| /f deposit (amount) | In die Schatzkammer einzahlen | Alle | +| /f withdraw (amount) | Aus der Schatzkammer abheben | Offizier+ | +| /f money transfer (faction) (amount) | An eine andere Fraktion ueberweisen | Offizier+ | +| /f money log [page] | Transaktionsverlauf anzeigen | Offizier+ | --- -## Command Aliases +## Befehlsaliase -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance kann auch als /f bal verwendet werden +- /f deposit und /f withdraw akzeptieren Dezimalbetraege -## Role Requirements +## Ranganforderungen -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Abhebe- und Ueberweisungsbefehle sind auf Offiziere und Anfuehrer beschraenkt. Alle anderen Wirtschaftsbefehle stehen jedem Fraktionsmitglied zur Verfuegung. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Nutze /f money log, um aktuelle Einzahlungen, Abhebungen und Ueberweisungen mit Zeitstempeln zu pruefen. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/funds.md b/src/main/resources/Server/Languages/de-DE/help/economy/funds.md index 4fe4539c..a9e03129 100644 --- a/src/main/resources/Server/Languages/de-DE/help/economy/funds.md +++ b/src/main/resources/Server/Languages/de-DE/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Finanzen verwalten -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Fraktionsmitglieder arbeiten zusammen, um die Schatzkammer durch Einzahlungen, Abhebungen und Ueberweisungen finanziert zu halten. -## Depositing +## Einzahlen -Any member can deposit personal funds into the faction treasury. +Jedes Mitglied kann persoenliche Mittel in die Fraktions-Schatzkammer einzahlen. `/f deposit ` -Deposit from your personal balance into the treasury. +Zahle von deinem persoenlichen Kontostand in die Schatzkammer ein. -## Withdrawing +## Abheben -Officers and the Leader can withdraw funds back to their personal balance. +Offiziere und der Anfuehrer koennen Mittel zurueck auf ihr persoenliches Konto abheben. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Hebe von der Schatzkammer auf dein Konto ab. (Offizier+) -## Transferring +## Ueberweisen -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Offiziere koennen Mittel direkt zwischen Fraktions-Schatzkammern fuer Handelsgeschaefte oder Diplomatie ueberweisen. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Sende Mittel an die Schatzkammer einer anderen Fraktion. (Offizier+) --- -## Fees +## Gebuehren -| Transaction | Fee | +| Transaktion | Gebuehr | |------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Einzahlung | 0% | +| Abhebung | 0% | +| Ueberweisung | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Gebuehrensaetze sind vom Server konfigurierbar und koennen von den oben gezeigten Standardwerten abweichen. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Alle Transaktionen werden protokolliert. Nutze /f money log, um die letzten Aktivitaeten einzusehen. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md b/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md index e4e7307b..eae010cf 100644 --- a/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/de-DE/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Fraktions-Schatzkammer -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Jede Fraktion hat eine gemeinsame Schatzkammer, die als Bank der Fraktion dient. Mittel werden fuer Unterhaltskosten, Gebietspflege und Fraktionsoperationen verwendet. -## Starting Balance +## Startguthaben -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Neue Fraktionen starten mit 0 in ihrer Schatzkammer. Mitglieder muessen Mittel einzahlen, um Reserven aufzubauen. -## Who Can Manage +## Wer verwalten darf -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Jedes Mitglied kann Mittel einzahlen +- Offiziere und Anfuehrer koennen abheben und ueberweisen +- Der Anfuehrer hat volle Kontrolle ueber die Schatzkammer --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Pruefe den aktuellen Kontostand der Schatzkammer deiner Fraktion. Auch verfuegbar als /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Zahle regelmaessig ein, um deine Fraktion finanziert zu halten. Gebietsunterhaltskosten koennen eine leere Schatzkammer schnell aufbrauchen. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Alle Schatzkammer-Transaktionen werden protokolliert und koennen von Offizieren eingesehen werden. diff --git a/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md b/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md index 8a2d12e4..d2ac08c9 100644 --- a/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/de-DE/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Gebietsunterhalt -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Fraktionen muessen laufenden Unterhalt zahlen, um ihr beanspruchtes Gebiet zu halten. Dies verhindert Landhamsterei und haelt die Karte dynamisch. -## Upkeep Costs +## Unterhaltskosten -| Setting | Default | +| Einstellung | Standard | |---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Kosten pro Chunk | 2.0 pro Zyklus | +| Zahlungsintervall | Alle 24 Stunden | +| Kostenlose Chunks | 3 (keine Kosten) | +| Skalierungsmodus | Pauschale | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Deine ersten 3 Chunks sind kostenlos. Darueber hinaus kostet jeder zusaetzliche beanspruchte Chunk 2.0 pro Zahlungszyklus. -## Auto-Pay +## Automatische Zahlung -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Automatische Zahlung ist standardmaessig aktiviert. Das System zieht den Unterhalt automatisch bei jedem Intervall von eurer Schatzkammer ab. Kein manuelles Eingreifen noetig. --- -## Grace Period +## Gnadenfrist -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Wenn eure Schatzkammer den Unterhalt nicht decken kann, beginnt eine 48-stuendige Gnadenfrist. Eine Warnung wird 6 Stunden vor dem Verlust von Anspruechen gesendet. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Wenn der Unterhalt nach der Gnadenfrist unbezahlt bleibt, verliert eure Fraktion 1 Anspruch pro Zyklus, bis die Kosten gedeckt sind oder alle zusaetzlichen Ansprueche aufgebraucht sind. -## Example +## Beispiel -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Eine Fraktion mit 8 Anspruechen zahlt fuer 5 Chunks (8 minus 3 kostenlose). Bei 2.0 pro Chunk sind das 10.0 pro Zyklus.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Halte deine Schatzkammer ueber den Unterhaltskosten. Nutze /f balance, um deine Reserven zu pruefen. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md b/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md index f70427cb..612995c8 100644 --- a/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Gebiet beanspruchen -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Einen Chunk zu beanspruchen schuetzt ihn unter der Kontrolle deiner Fraktion. Nur Fraktionsmitglieder koennen in beanspruchtem Gebiet bauen, abbauen oder auf Behaelter zugreifen. --- -## How to Claim +## So beanspruchst du Gebiet `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Stelle dich in den Chunk, den du beanspruchen moechtest, und fuehre diesen Befehl aus. Der Chunk wird sofort geschuetzt. Erfordert den Rang Offizier oder hoeher. -## How to Unclaim +## So gibst du Gebiet frei `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Gibt den Chunk, in dem du stehst, als Wildnis frei. Erfordert ebenfalls Offizier+. --- -## Claim Rules +## Anspruchsregeln -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Regel | Standard | +|-------|---------| +| Machtkosten pro Anspruch | 2.0 Macht | +| Maximale Ansprueche | 100 pro Fraktion | +| Nur angrenzend | Nein (du kannst ueberall beanspruchen) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Jeder Anspruch kostet 2.0 Macht im Unterhalt. Eine Fraktion mit 50 Gesamtmacht kann sicher bis zu 25 Ansprueche halten. --- -## What Protection Provides +## Was der Schutz bietet -Inside claimed territory, the following is enforced by default: +Innerhalb beanspruchten Gebiets gilt standardmaessig Folgendes: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Aussenstehende koennen keine Bloecke abbauen, platzieren oder mit ihnen interagieren +- Verbuendete koennen Tueren, Sitzplaetze und Transportmittel nutzen, aber keine Bloecke abbauen oder platzieren +- Mitglieder und Offiziere haben vollen Zugang zum Bauen, Abbauen und Nutzen von allem +- Behaelterzugriff (Truhen, Kisten) ist nur fuer Mitglieder beschraenkt ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Du kannst auch direkt ueber die Gebietskarte beanspruchen. Oeffne /f map und klicke auf nicht beanspruchte Chunks, um sie zu beanspruchen. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Ueberdehne dich nicht. Wenn deine Fraktion durch Tode Macht verliert, werden Ansprueche ueber eurem Machtbudget anfaellig fuer feindliche Uebernahmen. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md index ea39186b..cde1dc24 100644 --- a/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Gebiet verlieren -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Wenn die Gesamtmacht einer Fraktion unter die Kosten ihrer Ansprueche faellt, wird sie ueberfallbar. Feinde koennen Chunks direkt unter euch wegbeanspruchen. --- -## How Overclaiming Works +## So funktioniert das Ueberbeanspruchen `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Ein Offizier oder Anfuehrer einer feindlichen Fraktion stellt sich in euren beanspruchten Chunk und fuehrt diesen Befehl aus. Wenn eure Fraktion ein Machtdefizit hat, wechselt der Chunk zu deren Fraktion. -## The Math +## Die Berechnung -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Jeder Anspruch kostet 2.0 Macht im Unterhalt. Wenn eure Gesamtmacht unter diese Schwelle faellt, sind die Defizit-Chunks verwundbar. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Ueberbeanspruchung ist dauerhaft. Sobald ein Feind einen Chunk uebernimmt, musst du ihn zurueckerobern (oder zurueckbeanspruchen, wenn sie geschwaecht sind). --- -## Example Scenario +## Beispielszenario -| Factor | Value | +| Faktor | Wert | |--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Mitglieder | 5 Spieler | +| Macht pro Mitglied | Jeweils 10 (Start) | +| Gesamtmacht | 50 | +| Ansprueche | 30 Chunks | +| Benoetigte Macht (30 x 2.0) | 60 | +| Defizit | 10 Macht zu wenig | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +In diesem Beispiel ist die Fraktion von Anfang an ueberfallbar. Feinde koennten bis zu 5 Chunks ueberbeanspruchen (10 Defizit / 2.0 pro Anspruch), bevor die Fraktion ein Gleichgewicht erreicht. --- -## How to Prevent Overclaiming +## So verhinderst du Gebietsverlust -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Ueberdehne dich nicht -- halte die Gesamtmacht immer mit einem Puffer ueber deinen Anspruchskosten +- Bleib aktiv -- Macht regeneriert sich nur im Online-Zustand (+0.1/Min.) +- Vermeide unnoetige Tode -- jeder Tod kostet 1.0 Macht +- Rekrutiere mehr Mitglieder -- mehr Spieler bedeuten mehr Gesamtmacht +- Gib ungenutzte Chunks frei -- setze Macht frei mit /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Pruefe regelmaessig deinen Machtstatus mit /f power. Wenn deine Gesamtmacht nahe an deinen Anspruchskosten liegt, erwaege, weniger wichtige Chunks vor einem Krieg freizugeben. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md b/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md index 207c041d..8c54d19c 100644 --- a/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# Die Gebietskarte -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +Die Gebietskarte bietet dir eine Vogelperspektive auf beanspruchte Chunks in deiner Umgebung und zeigt, welche Fraktionen das Land um dich herum kontrollieren. --- -## Opening the Map +## Karte oeffnen `/f map` -Opens the territory map GUI centered on your current location. +Oeffnet das Gebietskarten-GUI, zentriert auf deinen aktuellen Standort. --- -## Color Legend +## Farblegende -| Color | Meaning | +| Farbe | Bedeutung | |-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| [#55FF55] Farbe deiner Fraktion | Von deiner Fraktion beanspruchtes Gebiet | +| [#5555FF] Blau | Gebiet verbuendeter Fraktionen | +| [#FF5555] Rot | Gebiet feindlicher Fraktionen | +| [#AAAAAA] Grau | Gebiet neutraler Fraktionen | +| [#333333] Dunkel | Wildnis (nicht beanspruchtes Land) | +| [#FFAA00] Gold | Spezialzonen (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] Die Farbe deiner Fraktion auf der Karte entspricht der Farbe, die du in den Fraktionseinstellungen festgelegt hast. Verbuendete und Feinde verwenden feste Farben zur einfachen Identifikation. --- -## Click to Claim +## Klicken zum Beanspruchen -The map is not just for viewing -- you can interact with it directly. +Die Karte ist nicht nur zum Ansehen -- du kannst direkt damit interagieren. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Klicke auf einen nicht beanspruchten Chunk, um ihn zu beanspruchen (erfordert Offizier+ Rang und ausreichend Macht) +- Klicke auf einen beanspruchten Chunk, um zu sehen, welche Fraktion ihn besitzt +- Scrolle oder verschiebe die Ansicht, um die Umgebung zu erkunden ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] Die Karte ist der einfachste Weg, deine Gebietsexpansion zu planen. Suche nach nicht beanspruchten Gebieten in der Naehe deiner Basis und beanspruche strategisch, um eine zusammenhaengende Grenze zu schaffen. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] Die Karte zeigt einen festen Bereich um deine Position. Bewege dich an einen anderen Standort und oeffne sie erneut, um andere Teile der Welt zu sehen. diff --git a/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md index ae158ed5..be7b9290 100644 --- a/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/de-DE/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Macht verstehen -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Macht ist die zentrale Ressource, die bestimmt, wie viel Gebiet deine Fraktion halten kann. Jeder Spieler hat persoenliche Macht, die zur Fraktionsgesamtmacht beitraegt. --- -## Default Power Values +## Standard-Machtwerte -| Setting | Value | +| Einstellung | Wert | |---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Maximale Macht pro Spieler | 20 | +| Startmacht | 10 | +| Todesstrafe | -1.0 pro Tod | +| Belohnung fuer Kills | 0.0 | +| Regenerationsrate | +0.1 pro Minute (solange online) | +| Machtkosten pro Anspruch | 2.0 | +| Abmeldung waehrend Markierung | -1.0 zusaetzlich | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dies sind Standardwerte. Dein Server-Administrator hat moeglicherweise andere Einstellungen konfiguriert. -## How It Works +## So funktioniert es -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Die Gesamtmacht deiner Fraktion ist die Summe der persoenlichen Macht aller Mitglieder. Die benoetigte Macht ist die Anzahl der Ansprueche multipliziert mit 2.0. Solange die Gesamtmacht ueber der benoetigten Macht bleibt, ist euer Gebiet sicher. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Macht regeneriert sich passiv mit 0.1 pro Minute, solange du online bist. Mit dieser Rate dauert die Erholung von 1.0 Macht etwa 10 Minuten. --- -## Checking Your Power +## Deine Macht pruefen `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Zeigt deine persoenliche Macht, die Gesamtmacht deiner Fraktion und wie viel benoetigt wird, um die aktuellen Ansprueche zu halten. -## The Danger Zone +## Die Gefahrenzone -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Wenn die Gesamtmacht unter den fuer eure Ansprueche benoetigten Betrag faellt, wird eure Fraktion verwundbar. Feinde koennen eure Chunks ueberbeanspruchen. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Mehrere Tode in kurzer Zeit koennen sich schnell aufsummieren. Wenn ihr 5 Mitglieder mit je 10 Macht habt (50 gesamt) und 20 Ansprueche (40 benoetigt), bringen euch 5 Tode im Team auf 45 -- noch sicher. Aber 11 Tode bringen euch auf 39, unter die 40er-Schwelle. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Halte einen Machtpuffer. Beanspruche nicht jeden Chunk, den du dir leisten kannst -- lass Spielraum fuer ein paar Tode, ohne ueberfallbar zu werden. diff --git a/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md index 0540d550..6945d482 100644 --- a/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/de-DE/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands +# Alle Befehle -## Core +## Kern -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | +| /f | Fraktions-Menu oeffnen | Alle | +| /f help | Hilfezentrum oeffnen | Alle | +| /f create (name) | Eine Fraktion gruenden | Alle | +| /f disband | Fraktion aufloesen | Anfuehrer | +| /f leave | Fraktion verlassen | Alle | -## Membership +## Mitgliedschaft -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | +| /f invite (player) | Spieler einladen | Offizier+ | +| /f accept [faction] | Einladung annehmen | Alle | +| /f request (faction) | Beitrittsanfrage stellen | Alle | +| /f kick (player) | Mitglied entfernen | Offizier+ | +| /f promote (player) | Zum Offizier befoerdern | Anfuehrer | +| /f demote (player) | Zum Mitglied degradieren | Anfuehrer | +| /f transfer (player) | Fuehrung uebertragen | Anfuehrer | -## Territory +## Gebiet -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | +| /f claim | Aktuellen Chunk beanspruchen | Offizier+ | +| /f unclaim | Aktuellen Chunk freigeben | Offizier+ | +| /f overclaim | Geschwaechteh Chunk uebernehmen | Offizier+ | +| /f map | Gebietskarte oeffnen | Alle | ## Teleport -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | +| /f home | Zum Fraktions-Zuhause teleportieren | Alle | +| /f sethome | Fraktions-Zuhause setzen | Offizier+ | +| /f delhome | Fraktions-Zuhause loeschen | Offizier+ | +| /f stuck | Aus feindlichem Gebiet entkommen | Alle | ## Information -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | +| /f info [faction] | Fraktionsdetails anzeigen | Alle | +| /f list | Alle Fraktionen durchsuchen | Alle | +| /f members | Mitgliederliste anzeigen | Alle | +| /f who [player] | Spielerinfo anzeigen | Alle | +| /f power [player] | Machtwerte pruefen | Alle | +| /f invites | Einladungen/Anfragen verwalten | Alle | +| /f relations | Diplomatische Beziehungen anzeigen | Alle | -## Diplomacy +## Diplomatie -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | +| /f ally (faction) | Allianz anfragen | Offizier+ | +| /f enemy (faction) | Feind erklaeren | Offizier+ | +| /f neutral (faction) | Auf neutral zuruecksetzen | Offizier+ | -## Settings +## Einstellungen -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | +| /f settings | Einstellungs-GUI oeffnen | Offizier+ | +| /f rename (name) | Fraktion umbenennen | Anfuehrer | +| /f desc [text] | Beschreibung setzen | Offizier+ | +| /f color (code) | Fraktionsfarbe setzen | Offizier+ | +| /f open | Beitritt fuer alle erlauben | Anfuehrer | +| /f close | Einladung erforderlich | Anfuehrer | -## Economy +## Wirtschaft -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | +| /f balance | Schatzkammer anzeigen | Alle | +| /f deposit (amount) | Mittel einzahlen | Alle | +| /f withdraw (amount) | Mittel abheben | Offizier+ | +| /f money transfer (faction) (amt) | Mittel ueberweisen | Offizier+ | +| /f money log [page] | Transaktionsverlauf | Offizier+ | ## Chat -| Command | Description | Role | +| Befehl | Beschreibung | Rang | |---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| /f c | Chat-Modus wechseln | Alle | +| /f c f | Fraktions-Chat setzen | Alle | +| /f c a | Verbuendeten-Chat setzen | Alle | +| /f c off | Oeffentlichen Chat setzen | Alle | diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md b/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md index 2155ff0c..b97141aa 100644 --- a/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Erste Schritte -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Willkommen bei HyperFactions! So startest du in wenigen Schritten durch. --- -## Step 1: Open the Faction Menu +## Schritt 1: Das Fraktions-Menu oeffnen -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Tippe /f, um das Fraktions-GUI zu oeffnen. Dies ist deine Zentrale fuer alles -- Fraktionen durchsuchen, eigene gruenden und Einladungen verwalten. -## Step 2: Choose Your Path +## Schritt 2: Waehle deinen Weg -| Option | How | +| Option | Wie | |--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Offene Fraktionen durchsuchen | Klicke im Menu auf Durchsuchen und dann auf Beitreten bei einer offenen Fraktion. | +| Einladung annehmen | Pruefe den Einladungs-Tab. Wenn dich jemand eingeladen hat, klicke auf Annehmen. | +| Eigene Fraktion gruenden | Klicke auf Fraktion erstellen, waehle einen Namen und du bist der Anfuehrer. | -## Step 3: Explore Your Faction +## Schritt 3: Deine Fraktion erkunden -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Sobald du in einer Fraktion bist, siehst du das Fraktions-Dashboard mit der Mitgliederliste, der Gebietskarte, den Beziehungen und den Einstellungen. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Wenn du ganz neu bist, tritt zuerst einer bestehenden Fraktion bei. Mit erfahrenen Mitgliedern lernst du schneller die Grundlagen. --- -## Essential First Commands +## Wichtige erste Befehle -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Oeffnet das Fraktions-GUI +- /f home -- Teleportiert dich zur Heimatbasis deiner Fraktion +- /f c -- Wechselt den Chat-Modus zwischen Normal, Fraktion und Verbuendete +- /f map -- Zeigt die Gebietskarte um dich herum ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Du kannst auch jederzeit /f help im Chat eingeben, um eine schnelle Befehlsuebersicht zu erhalten. diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md index dcd1df1a..d6f27077 100644 --- a/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Schnelle Tipps -Handy advice organized by category to help you thrive. +Nuetzliche Ratschlaege nach Kategorie sortiert, die dir zum Erfolg verhelfen. --- -## Territory +## Gebiet -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Beanspruche frueh Land um deine Basis mit `/f claim` -- ungeschuetzte Bauten haben **keinen Schutz** +- Jeder Gebietsanspruch kostet **2.0 Macht** im Unterhalt, also dehne dich nicht ueber das hinaus aus, was deine Mitglieder tragen koennen +- Nutze `/f map`, um nahegelegene Gebietsansprueche zu erkunden und sichere Bauplaetze zu finden +- Gib nicht mehr benoetigte Chunks mit `/f unclaim` frei, um Macht freizusetzen -## Combat +## Kampf -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Ein Tod kostet **1.0 Macht** -- vermeide unnoetige Kaempfe, wenn deine Fraktion nahe am Gebietslimit ist +- Du hast **5 Sekunden Spawn-Schutz** nach dem Wiedererscheinen +- Kampfmarkierung dauert **15 Sekunden** -- sich abzumelden waehrend der Markierung kostet zusaetzliche Macht +- Eigenbeschuss ist standardmaessig zwischen Fraktionsmitgliedern und Verbuendeten **deaktiviert** ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Sich abzumelden waehrend einer Kampfmarkierung verursacht zusaetzlichen Machtverlust (1.0 pro Abmeldung). Bleib und kaempfe oder fliehe zuerst. -## Social +## Soziales -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Nutze `/f c`, um zwischen Chat-Modi zu wechseln, damit Fraktions-Gespraeche privat bleiben +- Lade vertrauenswuerdige Spieler mit `/f invite ` ein -- Einladungen laufen nach **5 Minuten** ab +- Schliesse Allianzen mit `/f ally ` fuer gegenseitigen Schutz und gemeinsame Kartensichtbarkeit +- Pruefe `/f relations`, um deinen vollstaendigen diplomatischen Status zu sehen -## Economy +## Wirtschaft ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Wenn der Server die Wirtschaft aktiviert hat, kann deine Fraktion eine Schatzkammer aufbauen. Mitglieder koennen einzahlen, aber nur Offiziere und Anfuehrer koennen abheben oder Geld ueberweisen. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Zahle ueber das Schatzkammer-GUI Geld ein, um deine Fraktion zu staerken +- Eine wohlhabendere Fraktion kann sich mehr Gebietsansprueche leisten und sich schneller von Rueckschlaegen erholen -## General +## Allgemein -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Tippe jederzeit `/f`, um dein Fraktions-Dashboard zu oeffnen -- alles ist von dort aus erreichbar +- Befoerdere aktive Mitglieder zum Offizier, damit sie beim Beanspruchen und Verwalten von Gebiet helfen koennen +- Halte deine Fraktion aktiv -- Macht regeneriert sich nur, waehrend Spieler **online** sind diff --git a/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md index 5fedf54c..6c90b968 100644 --- a/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/de-DE/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Was sind Fraktionen? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Fraktionen sind von Spielern gefuehrte Teams, die Gebiete beanspruchen, Basen errichten und um die Vorherrschaft kaempfen. Wenn du einer Fraktion beitrittst oder eine gruendest, erhaeltst du Zugang zu geschuetztem Land, einem gemeinsamen Zuhause, privatem Chat und diplomatischen Werkzeugen. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Bei Fraktionen dreht sich alles um Teamwork. Je mehr aktive Mitglieder du hast, desto staerker wird deine Fraktion. --- -## Core Mechanics +## Kernmechaniken -| Mechanic | What It Does | +| Mechanik | Beschreibung | |----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Macht | Jeder Spieler erzeugt ueber die Zeit Macht (max. 20). Die Gesamtmacht deiner Fraktion bestimmt, wie viel Land ihr halten koennt. | +| Gebietsansprueche | Beanspruchte Chunks sind geschuetzt -- nur Mitglieder koennen darin bauen, abbauen oder Behaelter oeffnen. Jeder Anspruch kostet 2.0 Macht im Unterhalt. | +| Beziehungen | Fraktionen koennen Allianzen fuer gegenseitigen Schutz bilden oder Feindschaften erklaeren, um PvP und territoriale Aggression zu ermoeglichen. | +| Raenge | Drei Raenge -- Anfuehrer, Offizier, Mitglied -- jeweils mit unterschiedlichen Faehigkeiten. | --- -## How Strength Works +## Wie Staerke funktioniert -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +Die Staerke deiner Fraktion kommt von ihren Mitgliedern. Jeder Spieler startet mit 10 Macht und regeneriert bis zu 20, solange er online ist. Sterben kostet Macht. Wenn die Gesamtmacht deiner Fraktion unter die Kosten eurer Ansprueche faellt, koennen Feinde euer Gebiet uebernehmen. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Ein einzelner Tod kostet 1.0 Macht. Mehrere Tode in kurzer Zeit koennen deine Fraktion anfaellig fuer Gebietsverlust machen. --- -## Diplomacy at a Glance +## Diplomatie auf einen Blick -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Verbuendete** -- Gegenseitige Abkommen, die Eigenbeschuss verhindern und das Gebiet des anderen schuetzen +- **Feinde** -- Einseitige Erklaerungen, die PvP im Gebiet des anderen aktivieren und Gebietsuebernehmen ermoeglichen +- **Neutral** -- Der Standardzustand zwischen allen Fraktionen mit normalen Regeln ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Du kannst all dies ueber das In-Game-GUI verwalten, indem du `/f` eingibst, oder ueber Chat-Befehle. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md index e1eaa33b..3e640080 100644 --- a/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Eine Fraktion gruenden -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Deine eigene Fraktion zu gruenden macht dich zum Anfuehrer mit voller Kontrolle ueber Einstellungen, Mitglieder und Gebiet. --- -## How to Create +## So gruendest du eine Fraktion `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Dies erstellt deine Fraktion und oeffnet sofort das Fraktions-Dashboard, wo du Mitglieder einladen, Land beanspruchen und Einstellungen konfigurieren kannst. -## Name Rules +## Namensregeln -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Regel | Anforderung | +|-------|------------| +| Laenge | Zwischen 3 und 24 Zeichen | +| Zeichen | Nur Buchstaben, Zahlen und Leerzeichen | +| Einzigartigkeit | Keine zwei Fraktionen koennen den gleichen Namen haben | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Waehle deinen Namen sorgfaeltig. Eine spaetere Umbenennung erfordert Anfuehrer-Berechtigungen und kann eine Abklingzeit haben. --- -## What Happens on Creation +## Was bei der Gruendung passiert -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Du wirst zum Anfuehrer (hoechster Rang) +- Deine Fraktion startet mit 0 Anspruechen und deiner persoenlichen Macht (standardmaessig 10) +- Das Fraktions-Dashboard oeffnet sich automatisch +- Du kannst sofort Spieler einladen, Gebiet beanspruchen und ein Fraktions-Zuhause setzen ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Wenn der Server Wirtschaftsintegration aktiviert hat, kann das Gruenden einer Fraktion Geld kosten. Die Gruendungskosten werden vom Server-Administrator festgelegt. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Nach der Gruendung sollten deine ersten Prioritaeten sein: Freunde einladen, einen Standort fuer die Basis finden und ihn beanspruchen. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md index 7dbabdcd..9135efdc 100644 --- a/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Einer Fraktion beitreten -There are three ways to join an existing faction, depending on how the faction is configured. +Es gibt drei Wege, einer bestehenden Fraktion beizutreten, abhaengig davon, wie die Fraktion konfiguriert ist. --- -## Methods Compared +## Methoden im Vergleich -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Methode | Wie | Voraussetzung | +|---------|-----|----------| +| Durchsuchen und beitreten | Oeffne /f, klicke auf Durchsuchen, klicke auf Beitreten | Fraktion ist offen | +| Einladung annehmen | Pruefe den Einladungs-Tab im /f Menu | Aktive Einladung | +| Beitrittsanfrage stellen | Nutze /f request, warte auf Genehmigung | Offizier oder Anfuehrer genehmigt | --- -## Invite Details +## Einladungsdetails -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Einladungen werden von Offizieren oder Anfuehrern gesendet +- Einladungen laufen nach 5 Minuten ab -- nimm sie rechtzeitig an +- Sieh dir deine ausstehenden Einladungen im Einladungs-Tab des Fraktions-Menus an +- Annehmen ueber das GUI oder mit /f accept -## Join Requests +## Beitrittsanfragen -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Nutze /f request, um die Mitgliedschaft in einer geschlossenen Fraktion zu beantragen +- Anfragen laufen nach 24 Stunden ab, wenn nicht darauf reagiert wird +- Offiziere und Anfuehrer koennen Anfragen ueber das Fraktions-Dashboard genehmigen oder ablehnen ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Nicht sicher, welcher Fraktion du beitreten sollst? Nutze den Durchsuchen-Tab in /f, um Fraktionsbeschreibungen, Mitgliederzahlen und ob sie offen oder nur auf Einladung sind, zu sehen. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Jede Fraktion kann standardmaessig bis zu 50 Mitglieder aufnehmen. Wenn eine Fraktion voll ist, musst du warten, bis ein Platz frei wird. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md index 870c6133..8a633c32 100644 --- a/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Mitglieder verwalten -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Offiziere und Anfuehrer teilen sich die Verantwortung fuer die Verwaltung der Fraktions-Mitgliederliste. Hier sind die wichtigsten Befehle und wer sie nutzen kann. --- -## Commands +## Befehle -| Command | What It Does | Required Role | +| Befehl | Beschreibung | Benoetigter Rang | |---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| `/f invite ` | Sendet eine Beitrittseinladung (laeuft in 5 Min. ab) | Offizier+ | +| `/f kick ` | Entfernt ein Mitglied aus der Fraktion | Offizier+ (siehe Hinweis) | +| `/f promote ` | Befoerdert ein Mitglied zum Offizier | Nur Anfuehrer | +| `/f demote ` | Degradiert einen Offizier zum Mitglied | Nur Anfuehrer | +| `/f transfer ` | Uebertraegt die Fraktionsfuehrung | Nur Anfuehrer | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Offiziere koennen nur Mitglieder entfernen. Um einen anderen Offizier zu entfernen, muss der Anfuehrer ihn entweder zuerst degradieren oder direkt entfernen. --- -## Invitations +## Einladungen -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Einladungen laufen nach 5 Minuten ab, wenn sie nicht angenommen werden +- Der eingeladene Spieler sieht sie im Einladungs-Tab, wenn er /f oeffnet +- Es gibt kein Limit fuer die Anzahl gleichzeitig versendeter Einladungen +- Deine Fraktion kann insgesamt bis zu 50 Mitglieder haben -## Promotions and Demotions +## Befoerderungen und Degradierungen -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Nur der Anfuehrer kann befoerdern oder degradieren +- /f promote befoerdert ein Mitglied zum Offizier +- /f demote degradiert einen Offizier zurueck zum Mitglied -## Transferring Leadership +## Fuehrung uebertragen ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Die Uebertragung der Fuehrung ist unwiderruflich. Du wirst zum Offizier degradiert und der Zielspieler wird der neue Anfuehrer. Stelle sicher, dass du ihm vollstaendig vertraust. `/f transfer ` -The target must be a current member of your faction. +Das Ziel muss ein aktuelles Mitglied deiner Fraktion sein. diff --git a/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md b/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md index 67bb5962..8293438b 100644 --- a/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/de-DE/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Rollen und Raenge -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Jede Fraktion hat drei Rollen in einer strikten Hierarchie. Hoehere Rollen erben alle Faehigkeiten der darunterliegenden Rollen. --- -## Permission Breakdown +## Berechtigungsuebersicht -| Action | Leader | Officer | Member | +| Aktion | Anfuehrer | Offizier | Mitglied | |--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +| Im Gebiet bauen | Ja | Ja | Ja | +| Fraktions-Zuhause nutzen | Ja | Ja | Ja | +| Fraktions- und Verbuendeten-Chat | Ja | Ja | Ja | +| Spieler einladen | Ja | Ja | Nein | +| Mitglieder entfernen | Ja | Ja (nur Mitglieder) | Nein | +| Land beanspruchen / freigeben | Ja | Ja | Nein | +| Feindliches Gebiet uebernehmen | Ja | Ja | Nein | +| Fraktions-Zuhause setzen | Ja | Ja | Nein | +| Fraktions-Zuhause loeschen | Ja | Ja | Nein | +| Beziehungen verwalten (Allianz/Feind) | Ja | Ja | Nein | +| Fraktions-Protokolle einsehen | Ja | Ja | Nein | +| Zum Offizier befoerdern | Ja | Nein | Nein | +| Offizier degradieren | Ja | Nein | Nein | +| Fraktion umbenennen | Ja | Nein | Nein | +| Beschreibung / Tag / Farbe setzen | Ja | Nein | Nein | +| Fraktion oeffnen / schliessen | Ja | Nein | Nein | +| Fraktionseinstellungen oeffnen | Ja | Nein | Nein | +| Fuehrung uebertragen | Ja | Nein | Nein | +| Fraktion aufloesen | Ja | Nein | Nein | + +>[!NOTE] Offiziere koennen Mitglieder entfernen, aber keine anderen Offiziere. Nur der Anfuehrer kann Offiziere entfernen. --- -## Role Details +## Rollendetails -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Anfuehrer -- Einer pro Fraktion. Hat volle Kontrolle ueber alle Einstellungen, Mitglieder und Gebiete. Kann die Fuehrung an ein anderes Mitglied uebertragen. +- Offizier -- Vertrauenswuerdige Mitglieder, die bei der Fraktionsverwaltung helfen. Koennen einladen, Mitglieder entfernen, Land beanspruchen und Diplomatie betreiben. +- Mitglied -- Die Standardrolle beim Beitritt. Kann im Gebiet bauen, das Fraktions-Zuhause nutzen und am Fraktions-Chat teilnehmen. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Befoerdere deine aktivsten und vertrauenswuerdigsten Mitglieder zu Offizieren, damit sie beim Verwalten von Gebiet und beim Rekrutieren neuer Spieler helfen koennen. From 9151dcaabd09c56d4de39ee4ceece778e9ef1a07 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:18:12 -0700 Subject: [PATCH 74/76] i18n: add Dutch (nl-NL) help file translations Translate all 42 help markdown files into Dutch, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 54 +++--- .../help/admin/admin_config/world_settings.md | 52 +++--- .../admin_economy/treasury_management.md | 50 +++--- .../admin/admin_economy/upkeep_management.md | 50 +++--- .../help/admin/admin_factions/disbanding.md | 40 ++--- .../admin/admin_factions/managing_factions.md | 42 ++--- .../help/admin/admin_maintenance/backups.md | 64 +++---- .../help/admin/admin_maintenance/imports.md | 48 ++--- .../help/admin/admin_maintenance/updates.md | 54 +++--- .../admin/admin_overview/getting_started.md | 52 +++--- .../help/admin/admin_overview/permissions.md | 48 ++--- .../help/admin/admin_power/power_commands.md | 46 ++--- .../help/admin/admin_power/power_overrides.md | 60 +++---- .../admin/admin_reference/all_commands.md | 36 ++-- .../admin/admin_reference/integrations.md | 52 +++--- .../help/admin/admin_zones/zone_basics.md | 38 ++-- .../help/admin/admin_zones/zone_commands.md | 60 +++---- .../help/admin/admin_zones/zone_flags.md | 34 ++-- .../Languages/nl-NL/help/combat/death.md | 40 ++--- .../Languages/nl-NL/help/combat/protection.md | 24 +-- .../nl-NL/help/combat/spawn_protection.md | 26 +-- .../Languages/nl-NL/help/combat/tagging.md | 26 +-- .../Languages/nl-NL/help/combat/zones.md | 26 +-- .../nl-NL/help/diplomacy/alliances.md | 40 ++--- .../Languages/nl-NL/help/diplomacy/enemies.md | 38 ++-- .../nl-NL/help/diplomacy/relations.md | 38 ++-- .../Languages/nl-NL/help/economy/commands.md | 30 ++-- .../Languages/nl-NL/help/economy/funds.md | 38 ++-- .../Languages/nl-NL/help/economy/treasury.md | 22 +-- .../Languages/nl-NL/help/economy/upkeep.md | 38 ++-- .../nl-NL/help/power_land/claiming.md | 44 ++--- .../nl-NL/help/power_land/losing_territory.md | 48 ++--- .../nl-NL/help/power_land/territory_map.md | 42 ++--- .../help/power_land/understanding_power.md | 44 ++--- .../nl-NL/help/quick_ref/all_commands.md | 170 +++++++++--------- .../nl-NL/help/welcome/getting_started.md | 38 ++-- .../nl-NL/help/welcome/quick_tips.md | 52 +++--- .../nl-NL/help/welcome/what_are_factions.md | 36 ++-- .../nl-NL/help/your_faction/creating.md | 36 ++-- .../nl-NL/help/your_faction/joining.md | 38 ++-- .../nl-NL/help/your_faction/managing.md | 46 ++--- .../nl-NL/help/your_faction/roles.md | 64 +++---- 42 files changed, 962 insertions(+), 962 deletions(-) diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md index 95b6c952..7318e04c 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Configuratiesysteem -HyperFactions uses a modular JSON config system with 11 configuration files. +HyperFactions gebruikt een modulair JSON-configuratiesysteem met 11 configuratiebestanden. -## Admin Config Commands +## Admin Config-commando's -| Command | Description | -|---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin config` | Open de visuele config-editor-GUI | +| `/f admin reload` | Herlaad alle configuratiebestanden van schijf | +| `/f admin sync` | Synchroniseer factiedata naar opslag | -## Configuration Files +## Configuratiebestanden -| File | Contents | -|------|----------| -| `factions.json` | Roles, power, claims, combat, relations | -| `server.json` | Teleport, auto-save, messages, GUI, permissions | -| `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | -| `debug.json` | Debug logging categories | -| `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | -| `gravestones.json` | Gravestone integration settings | -| `worldmap.json` | World map refresh modes | -| `worlds.json` | Per-world behavior overrides | +| Bestand | Inhoud | +|---------|--------| +| `factions.json` | Rollen, power, claims, gevecht, relaties | +| `server.json` | Teleport, automatisch opslaan, berichten, GUI, permissies | +| `economy.json` | Schatkist, onderhoud, transactie-instellingen | +| `backup.json` | Backuprotatie en bewaarinstellingen | +| `chat.json` | Factie- en bondgenotenchat-opmaak | +| `debug.json` | Debug-logcategorieën | +| `faction-permissions.json` | Standaard permissies per rol | +| `announcements.json` | Evenementuitzendingen en gebiedsmeldingen | +| `gravestones.json` | Gravestone-integratie-instellingen | +| `worldmap.json` | Wereldkaart-verversingsmodi | +| `worlds.json` | Per-wereld gedragsoverschrijvingen | ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. +>[!TIP] De config-GUI biedt een visuele editor met beschrijvingen voor elke instelling. Wijzigingen worden direct opgeslagen, maar sommige vereisen `/f admin reload` om volledig van kracht te worden. -## Config Location +## Configuratielocatie -All files are stored in: +Alle bestanden zijn opgeslagen in: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Handmatige JSON-bewerkingen vereisen `/f admin reload` om toe te passen. Ongeldige JSON zorgt ervoor dat het bestand wordt overgeslagen met een waarschuwing in het serverlog. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] De configuratieversie wordt bijgehouden in `server.json`. De plugin migreert oudere configuraties automatisch bij het opstarten. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md index 47e8dffe..5acee392 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Per-wereld Instellingen -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +HyperFactions ondersteunt per-wereld configuratie voor claimen, PvP en beschermingsgedrag. -## World Commands +## Wereldcommando's -| Command | Description | -|---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin world list` | Toon alle wereldoverschrijvingen | +| `/f admin world info ` | Toon instellingen voor een wereld | +| `/f admin world set ` | Stel een instelling in | +| `/f admin world reset ` | Reset wereld naar standaardwaarden | -## Available Settings +## Beschikbare Instellingen -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Instelling | Type | Beschrijving | +|------------|------|-------------| +| claiming_enabled | boolean | Sta factieclaims toe in deze wereld | +| pvp_enabled | boolean | Sta PvP-gevecht toe in deze wereld | +| power_loss | boolean | Pas powerverlies toe bij overlijden | +| build_protection | boolean | Dwing claimbouwbescherming af | +| explosion_protection | boolean | Bescherm claims tegen explosies | -## World Whitelist / Blacklist +## Wereld Whitelist / Blacklist -Control which worlds allow faction features through the `worlds.json` config file: +Bepaal welke werelden factiefuncties toestaan via het `worlds.json` configuratiebestand: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Whitelist-modus**: Alleen vermelde werelden staan claimen toe +- **Blacklist-modus**: Alle werelden staan claimen toe behalve de vermelde ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Wereldinstellingen worden opgeslagen in `worlds.json` en overschrijven de globale standaardwaarden uit `factions.json`. -## Examples +## Voorbeelden - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- herstel alle standaardwaarden ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] Schakel claimen uit in creative- of lobbywerelden om het factiesysteem gericht te houden op survival-gameplay. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Per-wereld instellingen hebben prioriteit boven globale configuratie, maar worden overschreven door zonevlaggen binnen die wereld. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md index b219d330..e37a27eb 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Schatkistbeheer -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Admincommando's voor het beheren van factieschatkisten. Vereist de `hyperfactions.admin.economy` permissie. -## Treasury Commands +## Schatkistcommando's -| Command | Description | -|---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin economy balance ` | Bekijk factieschatkistsaldo | +| `/f admin economy set ` | Stel exact saldo in | +| `/f admin economy add ` | Voeg geld toe aan schatkist | +| `/f admin economy take ` | Verwijder geld uit schatkist | +| `/f admin economy reset ` | Reset schatkist naar nul | -## Examples +## Voorbeelden -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- controleer saldo +- `/f admin economy set Vikings 5000` -- stel in op 5000 +- `/f admin economy add Vikings 1000` -- stort 1000 +- `/f admin economy take Vikings 500` -- neem 500 op +- `/f admin economy reset Vikings` -- zet saldo op nul ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Gebruik `/f admin info ` om het volledige economie-overzicht te bekijken, inclusief transactiegeschiedenis naast het schatkistsaldo. -## Use Cases +## Gebruiksscenario's -| Scenario | Command | +| Scenario | Commando | |----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Evenementprijzenverdeling | `economy add ` | +| Straf voor regelovertreding | `economy take ` | +| Economie-reset na wipe | `economy reset ` | +| Compensatie voor bugs | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Schatkistwijzigingen worden gelogd in de transactiegeschiedenis van de factie. Adminwijzigingen worden vastgelegd met de naam van de admin voor verantwoording. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Alle economie-admincommando's werken zelfs wanneer de economiemodule is uitgeschakeld in de configuratie. De data wordt opgeslagen ongeacht de modulestatus. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..9aae88b4 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Onderhoudsbeheer -Faction upkeep charges factions periodically based on their territory and member count. +Factieonderhoud brengt facties periodiek kosten in rekening op basis van hun grondgebied en ledenaantal. -## Admin Controls +## Admin Besturingselementen -Upkeep settings are managed through the economy config file or the admin config GUI. +Onderhoudsinstellingen worden beheerd via het economie-configuratiebestand of de admin-config-GUI. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Open de config-editor en navigeer naar economie-instellingen om onderhoudswaarden aan te passen. -## Default Upkeep Settings +## Standaard Onderhoudsinstellingen -| Setting | Default | Description | -|---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Instelling | Standaard | Beschrijving | +|------------|-----------|-------------| +| Onderhoud ingeschakeld | false | Hoofdschakelaar voor het systeem | +| Onderhoudsinterval | 24u | Hoe vaak onderhoud wordt geheven | +| Per-claim kosten | 5.0 | Kosten per geclaimde chunk per cyclus | +| Per-lid kosten | 0.0 | Kosten per lid per cyclus | +| Respijtperiode | 72u | Nieuwe facties zijn vrijgesteld | +| Ontbinden bij faillissement | false | Automatisch ontbinden als niet kan betalen | -## Monitoring Upkeep +## Onderhoud Monitoren -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Gebruik `/f admin info ` om te zien: +- Huidig schatkistsaldo +- Geschatte onderhoudskosten per cyclus +- Tijd tot volgende onderhoudsheffing +- Of de factie onderhoud kan betalen ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] Bekijk economiestatistieken van alle facties vanuit het admin-dashboard om facties met faillissementsrisico te identificeren voordat onderhoud in werking treedt. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] Onderhoudsconfiguratie is opgeslagen in `economy.json`. Wijzigingen via de config-GUI worden van kracht na herladen met `/f admin reload`. -## Upkeep Formula +## Onderhoudsformule -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Totaal onderhoud** = (geclaimde chunks x per-claim kosten) + (ledenaantal x per-lid kosten) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Het inschakelen van onderhoud op een server met bestaande facties kan onverwachte faillissementen veroorzaken. Overweeg een respijtperiode in te stellen of de wijziging van tevoren aan te kondigen. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md index 253e05ab..e6c0e8ea 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/disbanding.md @@ -1,37 +1,37 @@ --- id: admin_disbanding --- -# Force Disbanding +# Geforceerd Ontbinden -Admins can forcefully disband any faction, regardless of the leader's wishes. +Admins kunnen elke factie geforceerd ontbinden, ongeacht de wensen van de leider. -## Command +## Commando `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Ontbindt de genoemde factie geforceerd. Er verschijnt een bevestigingsvraag voordat de actie wordt uitgevoerd. -**Permission**: `hyperfactions.admin.disband` +**Permissie**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Het ontbinden van een factie is **onomkeerbaar**. Alle claims worden vrijgegeven, alle leden worden verwijderd en de factie houdt op te bestaan. Maak eerst een backup. -## Consequences +## Gevolgen -When a faction is disbanded: +Wanneer een factie wordt ontbonden: -| Effect | Description | +| Effect | Beschrijving | |--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| **Claims** | Al het grondgebied wordt direct vrijgegeven | +| **Leden** | Alle spelers worden van de ledenlijst verwijderd | +| **Relaties** | Alle bondgenootschappen en vijandschappen worden gewist | +| **Schatkist** | Afgehandeld volgens economie-configuratie | +| **Thuis** | Factiehuis wordt verwijderd | +| **Chat** | Factiechatgeschiedenis wordt verwijderd | ## Best Practices -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Voer altijd `/f admin backup create` uit voor het ontbinden +2. Informeer factieleden wanneer mogelijk +3. Documenteer de reden voor serveradministratie +4. Controleer `/f admin info ` om te beoordelen voor actie ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Als het probleem bij een specifiek lid ligt, overweeg dan om via de admin-facties-GUI het leiderschap over te dragen in plaats van de hele factie te ontbinden. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md index b00218c9..142b1f93 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Facties Beheren -Admins can inspect and modify any faction on the server through the dashboard or commands. +Admins kunnen elke factie op de server inspecteren en wijzigen via het dashboard of commando's. -## Browsing Factions +## Facties Bekijken `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Opent de admin-factiebrowser. Bekijk alle facties met ledenaantallen, powerniveaus en grondgebied. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Opent het admin-infopaneel voor een specifieke factie met volledige details en beheeropties. -## Modifying Faction Settings +## Factie-instellingen Wijzigen -With `hyperfactions.admin.modify` permission, you can: +Met de `hyperfactions.admin.modify` permissie kun je: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **Hernoemen** van een factie om conflicten op te lossen +- **Kleur instellen** om weergaveproblemen te verhelpen +- **Open/gesloten schakelen** om het toetredingsbeleid te overschrijven +- **Beschrijving bewerken** voor moderatiedoeleinden ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Gebruik `/f admin who ` om op te zoeken bij welke factie een specifieke speler hoort en hun details te bekijken. -## Viewing Members and Relations +## Leden en Relaties Bekijken -The admin info panel shows: +Het admin-infopaneel toont: -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| Sectie | Details | +|--------|---------| +| **Leden** | Volledige ledenlijst met rollen en laatst gezien | +| **Relaties** | Alle bondgenoot-, vijand- en neutrale verhoudingen | +| **Grondgebied** | Geclaimde chunks en powerbalans | +| **Economie** | Schatkistsaldo en transactielog | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Admin-inspectiecommando's melden de bekeken factie niet. Alleen wijzigingen activeren meldingen. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md index 84a331f7..ea561d30 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Backupsysteem -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +HyperFactions bevat automatische en handmatige backups met GFS (Grandfather-Father-Son) rotatie. -## Backup Commands +## Backupcommando's -| Command | Description | -|---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin backup create` | Maak nu een handmatige backup | +| `/f admin backup list` | Toon alle beschikbare backups | +| `/f admin backup restore ` | Herstel vanuit een backup | +| `/f admin backup delete ` | Verwijder een specifieke backup | -**Permission**: `hyperfactions.admin.backup` +**Permissie**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## GFS Rotatiestandaarden -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Type | Bewaarperiode | Beschrijving | +|------|---------------|-------------| +| Per uur | 24 | Laatste 24 uurlijkse snapshots | +| Dagelijks | 7 | Laatste 7 dagelijkse snapshots | +| Wekelijks | 4 | Laatste 4 wekelijkse snapshots | +| Handmatig | 10 | Handmatig gemaakte backups | +| Afsluiting | 5 | Gemaakt bij serverstop | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Afsluitingsbackups zijn standaard ingeschakeld (`onShutdown=true`). Ze leggen de laatste staat vast voordat de server stopt. -## Backup Contents +## Backupinhoud -Each backup ZIP archive contains: -- All faction data files -- Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +Elk backup-ZIP-archief bevat: +- Alle factiedatabestanden +- Speler-powerdata +- Zonedefinities +- Chatgeschiedenis en economiedata +- Uitnodigings- en toetredingsverzoekdata +- Configuratiebestanden ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Het herstellen van een backup is destructief.** Het vervangt alle huidige data door de inhoud van de backup. Alle wijzigingen na het maken van de backup gaan verloren. Maak altijd een verse backup voordat je herstelt. ## Best Practices -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Maak een handmatige backup voor belangrijke adminacties +2. Bekijk backup-bewaarinstellingen in `backup.json` +3. Test eerst herstel op een testserver +4. Houd afsluitingsbackups ingeschakeld voor crashherstel diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md index e3bf7548..a74bec36 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/imports.md @@ -1,48 +1,48 @@ --- id: admin_imports --- -# Data Import +# Data Importeren -Import faction data from other plugins to migrate your server to HyperFactions. +Importeer factiedata van andere plugins om je server te migreren naar HyperFactions. -## Import Command +## Importcommando `/f admin import [path] [flags]` -**Permission**: `hyperfactions.admin.use` +**Permissie**: `hyperfactions.admin.use` -## Supported Sources +## Ondersteunde Bronnen -| Source | Description | -|--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| Bron | Beschrijving | +|------|-------------| +| `elbaphfactions` | Importeer vanuit ElbaphFactions-data | +| `hyfactions` | Importeer vanuit HyFactions v1-data | -## Import Flags +## Importvlaggen -| Flag | Description | +| Vlag | Beschrijving | |------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| `--dry-run` | Valideer data zonder iets te importeren | +| `--overwrite` | Overschrijf bestaande facties met dezelfde naam | +| `--no-zones` | Sla zonedata over tijdens import | +| `--no-power` | Sla powerdata over tijdens import | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Voer altijd eerst uit met `--dry-run` om te bekijken wat er geïmporteerd wordt en dataproblemen te ontdekken voordat je wijzigingen doorvoert. -## Import Process +## Importproces -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Er wordt automatisch een pre-import backup gemaakt +2. Spelernaam-koppelingen worden geladen +3. Facties, claims en zones worden geconverteerd +4. Data wordt gevalideerd en opgeslagen -## Examples +## Voorbeelden - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Het gebruik van `--overwrite` zal elke bestaande factie die dezelfde naam deelt met een geïmporteerde factie **vervangen**. Ledendata en claims worden overschreven. Voer eerst `--dry-run` uit om conflicten te identificeren. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Sommige bronspecifieke data (bijv. werkpercelen, boerderijpercelen) heeft geen equivalent in HyperFactions en wordt als waarschuwingen gelogd tijdens de import. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md index f6dc2880..7984ac22 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Updatecontrole -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +HyperFactions kan controleren op nieuwe versies en de HyperProtect-Mixin afhankelijkheid beheren. -## Update Commands +## Updatecommando's -| Command | Description | -|---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin update` | Controleer op HyperFactions-updates | +| `/f admin update mixin` | Controleer/download HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | Schakel automatisch downloaden in/uit | +| `/f admin version` | Toon huidige versie en build-info | -## Release Channels +## Releasekanalen -| Channel | Description | -|---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| Kanaal | Beschrijving | +|--------|-------------| +| **Stable** | Aanbevolen voor productieservers | +| **Pre-release** | Vroege toegang tot aankomende functies | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] De updatecontrole meldt alleen nieuwe versies. Het installeert **niet** automatisch updates voor HyperFactions zelf. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +HyperProtect-Mixin is de aanbevolen beschermingsmixin die geavanceerde zonevlaggen inschakelt (explosies, brandverspreiding, inventaris behouden, enz.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- `/f admin update mixin` controleert op de nieuwste versie +en downloadt deze als er een nieuwere versie beschikbaar is +- Automatisch downloaden kan per server worden in- of uitgeschakeld ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Na het downloaden van een nieuwe mixinversie is een serverherstart vereist om de wijzigingen van kracht te laten worden. -## Rollback Procedure +## Terugdraaiprocedure -If an update causes issues: +Als een update problemen veroorzaakt: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. Stop de server +2. Vervang de plugin-JAR door de vorige versie +3. Start de server +4. Controleer de functionaliteit met `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Downgraden kan een configuratiemigratiereset vereisen. Houd altijd backups bij voordat je update. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md index bf30a5b4..5a474826 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/getting_started.md @@ -1,41 +1,41 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Aan de Slag als Admin -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Welkom bij HyperFactions administratie. Deze gids behandelt je eerste stappen na het installeren van de plugin. -## Opening the Admin Dashboard +## Het Admin Dashboard Openen `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Opent de admin-dashboard-GUI met toegang tot alle beheertools, zone-editors en serverinstellingen. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Je hebt de **hyperfactions.admin.use** permissie of OP-status nodig om admincommando's te gebruiken. -## Requirements +## Vereisten -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **Met een permissieplugin**: Ken `hyperfactions.admin.use` toe +- **Zonder een permissieplugin**: De speler moet een +serveroperator zijn (`adminRequiresOp=true` standaard) -## First Steps After Install +## Eerste Stappen na Installatie -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Voer `/f admin` uit om je toegang te verifiëren +2. Open **Config** om de standaard factie-instellingen te bekijken +3. Maak een **SafeZone** bij de spawn met `/f admin safezone Spawn` +4. Maak optioneel **WarZones** aan voor PvP-arena's +5. Bekijk **Backup**-instellingen om dataveiligheid te waarborgen -## Admin Capabilities +## Admin Mogelijkheden -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | +| Gebied | Wat je kunt doen | +|--------|-----------------| +| Facties | Inspecteer, wijzig of ontbind elke factie geforceerd | +| Zones | Maak SafeZones en WarZones aan met aangepaste vlaggen | +| Power | Overschrijf speler/factie-powerwaarden | +| Economie | Beheer factieschatkisten en onderhoud | +| Config | Bewerk instellingen live via GUI of herlaad van schijf | +| Backups | Maak backups, herstel en beheer ze | +| Imports | Migreer data van andere factieplugins | ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +>[!TIP] Gebruik `/f admin --text` om chatgebaseerde uitvoer te krijgen in plaats van de GUI, handig voor console of automatisering. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md index 979e5543..79780ee6 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Admin Permissies -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Alle adminfuncties worden afgeschermd door permissienodes in de `hyperfactions.admin` namespace. -## Permission Nodes +## Permissienodes -| Permission | Description | +| Permissie | Beschrijving | |-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| `hyperfactions.admin.*` | Verleent **alle** adminpermissies | +| `hyperfactions.admin.use` | Toegang tot het `/f admin` dashboard | +| `hyperfactions.admin.reload` | Herlaad configuratiebestanden | +| `hyperfactions.admin.debug` | Schakel debug-logcategorieën in/uit | +| `hyperfactions.admin.zones` | Maak zones aan, bewerk en verwijder ze | +| `hyperfactions.admin.disband` | Ontbind elke factie geforceerd | +| `hyperfactions.admin.modify` | Wijzig de instellingen van elke factie | +| `hyperfactions.admin.bypass.limits` | Omzeil claim- en powerlimieten | +| `hyperfactions.admin.backup` | Maak backups en herstel ze | +| `hyperfactions.admin.power` | Overschrijf speler-powerwaarden | +| `hyperfactions.admin.economy` | Beheer factieschatkisten | -## Fallback Behavior +## Terugvalgedrag -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Wanneer er **geen permissieplugin** is geïnstalleerd, vallen adminpermissies terug op serveroperator (OP) status. Dit wordt bepaald door `adminRequiresOp` in de serverconfiguratie (standaard: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] De `hyperfactions.admin.*` wildcard verleent elke adminpermissie. Gebruik individuele nodes voor gedetailleerde controle over je staffteam. -## Permission Resolution Order +## Volgorde van Permissieresolutie -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. **VaultUnlocked** provider (indien beschikbaar) +2. **HyperPerms** provider (indien beschikbaar) +3. **LuckPerms** provider (indien beschikbaar) +4. **OP-controle** voor admin-nodes (terugval) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Zonder een permissieplugin en met `adminRequiresOp` uitgeschakeld, zijn admincommando's **open voor alle spelers**. Gebruik altijd een permissieplugin in productie. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md index b2c9f463..df86e408 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Power Admincommando's -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +Overschrijf speler- en factie-powerwaarden. Alle commando's vereisen de `hyperfactions.admin.power` permissie. -## Player Power Commands +## Speler-powercommando's -| Command | Description | -|---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin power set ` | Stel exacte powerwaarde in | +| `/f admin power add ` | Voeg power toe aan speler | +| `/f admin power remove ` | Verwijder power van speler | +| `/f admin power reset ` | Reset naar standaard startpower | +| `/f admin power info ` | Bekijk gedetailleerd power-overzicht | -## How Power Affects Factions +## Hoe Power Facties Beïnvloedt -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +De totale power van een factie is de som van de individuele power van alle leden. Gebiedsclaims vereisen voldoende totale power om te onderhouden. | Scenario | Effect | |----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Power hoger ingesteld | Factie kan meer grondgebied claimen | +| Power lager ingesteld | Factie kan kwetsbaar worden voor overclaim | +| Power gereset | Speler keert terug naar standaard startwaarde | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Het verlagen van de power van een speler kan ertoe leiden dat hun factie grondgebied verliest als de totale power onder het aantal geclaimde chunks zakt. -## Examples +## Voorbeelden -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- instellen op exact 50 +- `/f admin power add Steve 10` -- verhogen met 10 +- `/f admin power remove Steve 5` -- verlagen met 5 +- `/f admin power reset Steve` -- terug naar standaard +- `/f admin power info Steve` -- toon volledig overzicht ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Gebruik `/f admin power info ` om huidige power, max power en eventuele actieve overschrijvingen te bekijken voordat je wijzigingen aanbrengt. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md index 5469f903..1f968f0a 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Power Overschrijvingen -Special power commands that change how power behaves for specific players or factions. +Speciale powercommando's die het gedrag van power wijzigen voor specifieke spelers of facties. -## Override Commands +## Overschrijvingscommando's -| Command | Description | -|---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin power setmax ` | Stel aangepast max power-plafond in | +| `/f admin power noloss ` | Schakel immuniteit voor sterfte-powerstraf in/uit | +| `/f admin power nodecay ` | Schakel immuniteit voor offline power-verval in/uit | +| `/f admin power info ` | Bekijk alle overschrijvingen en powerdetails | -## Custom Max Power +## Aangepaste Max Power `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Stelt een persoonlijk maximaal power-plafond in voor de speler, dat de serverstandaard overschrijft. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Het instellen van een aangepast maximum wijzigt de huidige power **niet**. Het verandert alleen het plafond. De speler moet nog steeds power verdienen tot de nieuwe limiet. -## No-Loss Mode +## Geen-verlies Modus `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Schakelt immuniteit voor sterfte-powerverlies in of uit. Wanneer ingeschakeld, verliest de speler **geen** power bij overlijden. -Useful for: -- New player protection periods -- Event participants -- Staff members +Handig voor: +- Beschermingsperiodes voor nieuwe spelers +- Evenementdeelnemers +- Staffleden -## No-Decay Mode +## Geen-verval Modus `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Schakelt immuniteit voor offline power-verval in of uit. Wanneer ingeschakeld, zal de power van de speler **niet** afnemen terwijl deze offline is. -Useful for: -- Players on extended leave -- VIP members -- Seasonal protection +Handig voor: +- Spelers met verlengd verlof +- VIP-leden +- Seizoensgebonden bescherming ## Power Info `/f admin power info ` -Shows a complete breakdown: +Toont een volledig overzicht: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Huidige power en max power +- Actieve overschrijvingen (noloss, nodecay, aangepast max) +- Laatste sterftijd en verloren power +- Bijdragepercentage aan de factie ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Alle power-overschrijvingen blijven behouden over server-herstarts en worden opgeslagen in het databestand van de speler. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md index bd0b0fa6..be6c9536 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/all_commands.md @@ -1,34 +1,34 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Admin Commandoreferentie -Complete list of all `/f admin` subcommands with syntax and required permissions. +Volledige lijst van alle `/f admin` subcommando's met syntax en vereiste permissies. -## Dashboard and General +## Dashboard en Algemeen -| Command | Permission | -|---------|-----------| +| Commando | Permissie | +|----------|----------| | `/f admin` | admin.use | | `/f admin version` | admin.use | | `/f admin reload` | admin.reload | | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Factiebeheer -| Command | Permission | -|---------|-----------| +| Commando | Permissie | +|----------|----------| | `/f admin factions` | admin.use | | `/f admin info ` | admin.use | | `/f admin who ` | admin.use | | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Zonebeheer -| Command | Permission | -|---------|-----------| +| Commando | Permissie | +|----------|----------| | `/f admin safezone ` | admin.zones | | `/f admin warzone ` | admin.zones | | `/f admin removezone ` | admin.zones | @@ -40,19 +40,19 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Power en Economie -| Command | Permission | -|---------|-----------| +| Commando | Permissie | +|----------|----------| | `/f admin power set/add/remove/reset [amt]` | admin.power | | `/f admin power setmax/noloss/nodecay [amt]` | admin.power | | `/f admin power info ` | admin.power | | `/f admin economy balance/set/add/take/reset [amt]` | admin.economy | -## Maintenance +## Onderhoud -| Command | Permission | -|---------|-----------| +| Commando | Permissie | +|----------|----------| | `/f admin backup create/list/restore/delete` | admin.backup | | `/f admin import [flags]` | admin.use | | `/f admin update` | admin.use | @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Alle permissienodes hebben het voorvoegsel `hyperfactions.` (bijv. `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md index c39bfb3b..d397faaf 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Plugin Integraties -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +HyperFactions integreert met diverse externe plugins via zachte afhankelijkheden. Alle integraties zijn optioneel en vallen gracelijk terug als ze niet beschikbaar zijn. -## Checking Integration Status +## Integratiestatus Controleren `/f admin version` -Shows current version and detected integrations. +Toont de huidige versie en gedetecteerde integraties. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. +Opent het integratiebeheervenster met gedetailleerde status voor elke gedetecteerde plugin. -## Integration Table +## Integratietabel -| Plugin | Type | Description | +| Plugin | Type | Beschrijving | |--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | -| **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | - -## Permission Provider Priority - -1. **VaultUnlocked** (highest priority) +| **HyperPerms** | Permissies | Volledig permissiesysteem met groepen, overerving en context | +| **LuckPerms** | Permissies | Alternatieve permissieprovider | +| **VaultUnlocked** | Permissies/Economie | Permissie- en economiebrug | +| **HyperProtect-Mixin** | Bescherming | Schakelt geavanceerde zonevlaggen in (explosies, brand, inventaris behouden) | +| **OrbisGuard-Mixins** | Bescherming | Alternatieve mixin voor zonevlaghandhaving | +| **PlaceholderAPI** | Placeholders | 49 factie-placeholders voor andere plugins | +| **WiFlow PlaceholderAPI** | Placeholders | Alternatieve placeholder-provider | +| **GravestonePlugin** | Dood | Grafsteentoegangscontrole in zones | +| **HyperEssentials** | Functies | Zonevlaggen voor homes, warps en kits | +| **KyuubiSoft Core** | Framework | Core-bibliotheekintegratie | +| **Sentry** | Monitoring | Foutopsporing en diagnostiek | + +## Prioriteit Permissieprovider + +1. **VaultUnlocked** (hoogste prioriteit) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **OP-terugval** (als geen provider gevonden) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Integraties worden eenmalig bij het opstarten gedetecteerd via reflectie. Resultaten worden gecached voor de sessie. Een serverherstart is vereist na het toevoegen of verwijderen van een geïntegreerde plugin. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Gebruik `/f admin debug toggle integration` om gedetailleerde integratielogging in te schakelen voor probleemoplossing. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] HyperProtect-Mixin is de **aanbevolen** beschermingsmixin. Zonder deze hebben 15 zonevlaggen geen effect. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md index 933a9b2d..5b129312 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Zone Basis -Zones are admin-controlled territories with custom rules that override normal faction protection. +Zones zijn door admins beheerde gebieden met aangepaste regels die de normale factiegebiedsbescherming overschrijven. -## Zone Types +## Zonetypes -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Geen PvP, geen bouwen, geen schade. +Ideaal voor spawngebieden en handelscentra. +- **WarZone** -- PvP altijd ingeschakeld, geen bouwen. +Ideaal voor arena's en betwiste gevechtsgebieden. -## Creating Zones +## Zones Aanmaken `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Maakt een SafeZone aan en claimt je huidige chunk. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Maakt een WarZone aan en claimt je huidige chunk. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Ga na het aanmaken in extra chunks staan en gebruik `/f admin zone claim ` om de zone uit te breiden. -## Managing Zone Chunks +## Zonechunks Beheren `/f admin zone claim ` -Add the current chunk to the named zone. +Voeg de huidige chunk toe aan de genoemde zone. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Verwijder de huidige chunk uit de genoemde zone. `/f admin zone radius ` -Claim a square of chunks around your position. +Claim een vierkant van chunks rondom je positie. -## Deleting Zones +## Zones Verwijderen `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Verwijdert de zone permanent en geeft al haar geclaimde chunks vrij. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Het verwijderen van een zone geeft al haar chunks direct vrij. Dit kan niet ongedaan worden gemaakt zonder een backup-herstel. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Zoneregels **overschrijven altijd** factiegebiedsregels. Een SafeZone in vijandelijk land is nog steeds veilig. diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md index 403b6b63..53b95523 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Zone Commandoreferentie -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Volledige referentie voor alle zonebeheercommando's. Alle vereisen de `hyperfactions.admin.zones` permissie. -## Quick Creation +## Snel Aanmaken -| Command | Description | -|---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin safezone ` | Maak een SafeZone aan bij de huidige chunk | +| `/f admin warzone ` | Maak een WarZone aan bij de huidige chunk | +| `/f admin removezone ` | Verwijder een zone en geef chunks vrij | -## Zone Management +## Zonebeheer -| Command | Description | -|---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin zone create ` | Maak een zone aan (safezone/warzone) | +| `/f admin zone delete ` | Verwijder een zone | +| `/f admin zone claim ` | Voeg huidige chunk toe aan zone | +| `/f admin zone unclaim ` | Verwijder huidige chunk uit zone | +| `/f admin zone radius ` | Claim vierkante radius aan chunks | +| `/f admin zone list` | Toon alle zones met chunkaantallen | +| `/f admin zone notify ` | Schakel betreed/verlaat-berichten in/uit | +| `/f admin zone title upper/lower ` | Stel zonetiteltekst in | +| `/f admin zone properties ` | Open zone-eigenschappen-GUI | -## Flag Management +## Vlagbeheer -| Command | Description | -|---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| Commando | Beschrijving | +|----------|-------------| +| `/f admin zoneflag ` | Stel een specifieke vlag in | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Gebruik de zone-**eigenschappen-GUI** voor een visuele editor met schakelaars voor elke vlag, georganiseerd per categorie. -## Examples +## Voorbeelden -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- maak spawnbescherming aan +- `/f admin zone radius Spawn 3` -- breid uit naar 7x7 chunks +- `/f admin zoneflag Spawn door_use true` -- sta deuren toe +- `/f admin zone notify Spawn true` -- toon betreedberichten diff --git a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md index 368a4ec9..a90464bd 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/nl-NL/help/admin/admin_zones/zone_flags.md @@ -1,28 +1,28 @@ --- id: admin_zone_flags --- -# Zone Flags +# Zonevlaggen -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Zones ondersteunen **47 booleaanse vlaggen** verdeeld over 10 categorieën. Elke vlag regelt een specifiek gedrag binnen de zone. -## Flag Categories Overview +## Overzicht Vlagcategorieën -| Category | Count | Key Flags | -|----------|-------|-----------| -| Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | -| Damage | 4 | fall_damage, explosion_damage, fire_spread | -| Death | 2 | keep_inventory, power_loss | -| Building | 4 | build_allowed, block_place, hammer_use | -| Interaction | 13 | door_use, container_use, bench_use, npc_tame | +| Categorie | Aantal | Belangrijkste Vlaggen | +|-----------|--------|----------------------| +| Gevecht | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | +| Schade | 4 | fall_damage, explosion_damage, fire_spread | +| Dood | 2 | keep_inventory, power_loss | +| Bouwen | 4 | build_allowed, block_place, hammer_use | +| Interactie | 13 | door_use, container_use, bench_use, npc_tame | | Transport | 3 | teleporter_use, portal_use, mount_entry | | Items | 4 | item_drop, item_pickup, invincible_items | | Mob Spawning | 5 | mob_spawning, hostile/passive/neutral | -| Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | -| Integration | 5 | gravestone_access, show_on_map, essentials_homes | +| Mob Verwijderen | 4 | mob_clear, hostile/passive/neutral clear | +| Integratie | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Standaardwaarden (SafeZone vs WarZone) -| Flag | SafeZone | WarZone | +| Vlag | SafeZone | WarZone | |------|----------|---------| | pvp_enabled | false | **true** | | build_allowed | false | false | @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Sommige vlaggen vereisen **HyperProtect-Mixin** om te functioneren (bijv. keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Zonder de mixin hebben deze vlaggen geen effect, zelfs als ze zijn ingeschakeld. -## Setting Flags +## Vlaggen Instellen `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Gebruik `/f admin zone properties ` voor een visuele schakel-editor gegroepeerd per categorie. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/death.md b/src/main/resources/Server/Languages/nl-NL/help/combat/death.md index 8690b43a..4826a104 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/combat/death.md +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Dood en Herstel -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +De dood heeft echte gevolgen bij facties. Elk sterfgeval kost je persoonlijke power, wat het vermogen van je factie om grondgebied vast te houden verzwakt. -## Power Loss +## Powerverlies -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Elk sterfgeval kost -1.0 power van je persoonlijke totaal. Dit verlaagt de gecombineerde power van de factie. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Gebeurtenis | Powerwijziging | +|-------------|----------------| +| Sterfgeval (elke oorzaak) | -1.0 | +| Online regeneratie | +0.1 per minuut | +| Combat uitloggen | -1.0 (gedood) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. -## Example Scenarios +## Voorbeeldscenario's -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 leden op 10.0 power elk = 50 totaal, 20 claims.* +*Eén lid sterft twee keer: 8.0 power, factietotaal 48.* +*Drie leden sterven elk één keer: totaal daalt naar 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Als je factiepower onder je claimaantal zakt, kunnen vijanden je grondgebied overclaimen. -## Recovery +## Herstel -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Power regenereert met 0.1 per minuut terwijl je online bent. Het herstellen van 1.0 verloren power duurt ongeveer 10 minuten. Meerdere sterfgevallen stapelen, dus vermijd herhaalde gevechten. --- -## All Death Types +## Alle Soorten Sterfgevallen -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +Powerverlies geldt voor alle sterfgevallen: PvP, mob-kills, valschade, verdrinking en elke andere oorzaak. Er is geen veilige manier om dood te gaan. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Stel een factiehuis in met /f sethome zodat leden zich snel kunnen hergroeperen na het sterven. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md b/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md index e564ec2d..b7bf1cba 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Gebiedsbescherming -Claimed territory provides several layers of defense for your faction's builds and resources. +Geclaimed grondgebied biedt meerdere lagen van verdediging voor de bouwwerken en grondstoffen van je factie. -## Block Protection +## Blokbescherming -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Alleen factieleden kunnen blokken plaatsen of breken in je grondgebied. Vijanden en neutralen worden geblokkeerd van het aanpassen van wat dan ook. -## Container Protection +## Containerbescherming -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Kisten, vaten en andere containers zijn beveiligd. Alleen je factieleden kunnen opslag openen of ermee interacteren in geclaimde chunks. -## Entry Alerts +## Betreedmeldingen -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Wanneer een niet-lid je geclaimde grondgebied betreedt, ontvangen online factieleden een melding met de naam en locatie van de indringer. --- -## Ally Access +## Bondgenoottoegang -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Bondgenoten kunnen standaard geen blokken bouwen of breken in je grondgebied. Bondgenootschade is ook uitgeschakeld, zodat bondgenootspelers elkaar niet kunnen verwonden. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Grondgebied beschermt blokken, geen spelers. PvP in je eigen grondgebied hangt af van de relatie van de aanvaller met je factie. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Houd je claims verbonden en vermijd geïsoleerde chunks die moeilijker te verdedigen zijn. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md index f0b2ab76..8a56b542 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/spawn_protection.md @@ -1,27 +1,27 @@ --- id: combat_spawn_protection --- -# Spawn Protection +# Spawnbescherming -After respawning from death, you receive temporary protection to prevent spawn camping. +Na het respawnen van de dood ontvang je tijdelijke bescherming om spawncamping te voorkomen. -## How It Works +## Hoe het Werkt -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- Bescherming duurt 5 seconden na respawn +- Je kunt geen schade oplopen gedurende deze periode +- Een visuele indicator toont je beschermde status -## Protection Breaks +## Bescherming Stopt -Spawn protection ends early if you: +Spawnbescherming eindigt vroegtijdig als je: -- Attack another player or entity -- Move from your spawn position +- Een andere speler of entiteit aanvalt +- Van je spawnpositie beweegt -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Dit voorkomt misbruik. Je kunt anderen niet aanvallen terwijl je onkwetsbaar bent. Zodra je een actie onderneemt, stopt de bescherming en gelden normale gevechtsregels. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Gebruik je beschermingstijd om de situatie te beoordelen voordat je beweegt. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md b/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md index e45cbdb3..01d81e33 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/tagging.md @@ -3,27 +3,27 @@ id: combat_tagging --- # Combat Tagging -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Wanneer je een andere speler aanvalt of wordt aangevallen, word je combat-getagd voor 15 seconden. -## While Tagged +## Terwijl je Getagd Bent -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Geen /f home of /f stuck teleports +- Geen server-teleportcommando's +- Tag reset bij elke nieuwe gevechtsactie +- Een timer toont je resterende tagduur --- -## Logout Penalty +## Uitlogstraf ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Uitloggen terwijl je combat-getagd bent doodt je personage en je verliest 1.0 power. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Je items vallen waar je de verbinding hebt verbroken en vijanden kunnen ze plunderen. Wacht altijd tot de tag verloopt. -## How the Timer Works +## Hoe de Timer Werkt -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +De combat-tagtimer verschijnt op het scherm wanneer je in gevecht gaat. Elke nieuwe klap reset deze naar 15 seconden. Zodra deze nul bereikt, worden alle restricties opgeheven. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Trek je terug en wacht de timer af als je moet teleporteren. diff --git a/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md b/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md index d1d957d2..08503b69 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md +++ b/src/main/resources/Server/Languages/nl-NL/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Speciale Zones -Admins can designate areas with special rules that override normal faction territory protection. +Admins kunnen gebieden aanwijzen met speciale regels die de normale factiegebiedsbescherming overschrijven. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Geen PvP-schade, geen blokken breken door niet-admins. Ideaal voor spawngebieden, handelscentra en evenementlocaties. Spelers kunnen hier niet verwond worden. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +PvP is altijd ingeschakeld. Geen blokbescherming van toepassing. Open gevechtsgebieden waar alles mag. Je ontvangt geen gebiedsbeschermingsvoordelen in een WarZone. --- -## Zone Comparison +## Zonevergelijking -| Feature | SafeZone | WarZone | Faction Land | -|---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| Kenmerk | SafeZone | WarZone | Factieland | +|---------|----------|---------|------------| +| PvP | Uitgeschakeld | Altijd Aan | Relatiegebaseerd | +| Blokken Breken | Uitgeschakeld | Toegestaan | Alleen Leden | +| Containers | Beschermd | Open | Alleen Leden | +| Ideaal Voor | Spawn/Handel | Arena's | Bases | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Zoneregels overschrijven altijd factiegebiedsregels. Een geclaimde chunk binnen een WarZone volgt WarZone-regels. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Controleer je gebiedskaart met /f map om zonegrenzen te bekijken. diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md index 45da7756..7f821b85 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Bondgenootschappen Sluiten -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Bondgenootschappen zijn wederzijdse overeenkomsten tussen twee facties die bescherming en samenwerkingsvoordelen bieden. --- -## How to Form an Alliance +## Hoe je een Bondgenootschap Sluit `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Stuurt een bondgenootschapsverzoek naar de doelfactie. Het bondgenootschap gaat pas in als beide partijen akkoord gaan. Een Officer of Leider van de andere factie moet ook hetzelfde commando uitvoeren gericht op jouw factie om te bevestigen. -## How to Break an Alliance +## Hoe je een Bondgenootschap Verbreekt `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Beide partijen kunnen eenzijdig een bondgenootschap beëindigen door de relatie naar neutraal te resetten. --- -## Alliance Benefits +## Voordelen van een Bondgenootschap -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Voordeel | Details | +|----------|---------| +| Geen friendly fire | Bondgenootspelers kunnen elkaar geen schade toebrengen | +| Gedeelde kaartzichtbaarheid | Bondgenootgebied wordt blauw weergegeven op de gebiedskaart | +| Gebiedsinteractie | Bondgenoten kunnen deuren, stoelen en transport gebruiken in je grondgebied | +| Bondgenotenchat | Wissel naar bondgenotenchat voor communicatie tussen facties | +| Overclaimbescherming | Bondgenoten kunnen elkaars grondgebied niet overclaimen | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Je factie kan maximaal 10 bondgenootschappen tegelijk hebben. Kies je bondgenoten verstandig. --- -## Alliance Etiquette +## Bondgenootschapsetiquette ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Communicatie is essentieel. Overweeg voordat je een bondgenootschapsverzoek stuurt om contact op te nemen met de leider van de andere factie om voorwaarden te bespreken. Een sterk bondgenootschap is gebouwd op wederzijds voordeel, niet alleen gemak. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Bondgenootschappen werken beide kanten op -- als je profiteert van bescherming, verwachten je bondgenoten hetzelfde +- Een bondgenootschap verbreken tijdens oorlogstijd kan de reputatie van je factie schaden +- Bondgenootfacties kunnen gebiedsclaims coördineren om verdedigbare grenzen te creëren diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md index 70688ad4..1dc76dde 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Vijandige Facties -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Een vijand verklaren is een eenzijdige actie die onmiddellijk PvP en territoriale agressie tegen de doelfactie inschakelt. Er is geen toestemming vereist. --- -## Declaring an Enemy +## Een Vijand Verklaren `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Markeert de doelfactie direct als je vijand. Dit gaat onmiddellijk in -- er is geen bevestiging van de andere kant nodig. Vereist Officer-rang of hoger. -## Resetting to Neutral +## Resetten naar Neutraal `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Beëindigt de vijandstatus en reset de relatie naar neutraal. Dit vereist ook Officer+ en gaat direct in. --- -## What Enemy Status Enables +## Wat Vijandstatus Inschakelt | Effect | Details | |--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| PvP in grondgebied | Volledige PvP is ingeschakeld in het grondgebied van beide facties | +| Overclaiming | Je kunt hun chunks overclaimen als ze een powertekort hebben | +| Kaartmarkering | Vijandelijk grondgebied wordt rood weergegeven op de gebiedskaart | +| Geen bescherming | Standaard gebiedsbescherming voorkomt geen vijandelijke PvP | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Een vijand verklaren is een serieuze beslissing. Hun leden kunnen ook tegen je vechten in je eigen grondgebied zodra je verklaart. --- -## Strategic Considerations +## Strategische Overwegingen -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Vijandverklaringen zijn eenzijdig -- je kunt verklaren zonder hun toestemming, maar zij zien jou ook als vijandig +- Controleer voor het verklaren de power van het doelwit met /f info. Als ze sterk zijn, kun je zelf grondgebied verliezen +- Verzwak vijanden door herhaaldelijk gevecht om hun power te laten dalen, en overclaim vervolgens hun land +- Er is geen limiet op het aantal vijanden dat je kunt hebben, maar op meerdere fronten vechten is riskant ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Gebruik /f neutral om conflicten te de-escaleren. Soms is een strategische vrede waardevoller dan voortdurende oorlog. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Als je een bondgenootschap hebt met een factie en ze als vijand verklaart, wordt het bondgenootschap eerst verbroken. diff --git a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md index 89711eee..8715e27e 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/nl-NL/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Factierelaties -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Elk paar facties heeft een diplomatieke relatie die bepaalt hoe ze met elkaar omgaan. Er zijn drie statussen: Bondgenoot, Vijand en Neutraal. --- -## Relation Comparison +## Relatievergelijking -| Effect | Ally | Neutral | Enemy | -|--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| Effect | Bondgenoot | Neutraal | Vijand | +|--------|-----------|----------|--------| +| PvP in grondgebied | Uitgeschakeld | Standaardregels | Ingeschakeld | +| Gebiedsbescherming | Wederzijdse bescherming | Standaardbescherming | Kan overclaimen indien verzwakt | +| Friendly fire | Uitgeschakeld | N.v.t. | Overal ingeschakeld | +| Kaartkleur | Blauw | Grijs | Rood | +| Hoe in te stellen | Wederzijdse overeenkomst | Standaardstatus | Eenzijdige verklaring | +| Chattoegang | Bondgenotenchatkanaal | Geen | Geen | --- -## Viewing Relations +## Relaties Bekijken `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Toont al je huidige bondgenootschappen, vijanden en openstaande bondgenootschapsverzoeken. -## How Relations Work +## Hoe Relaties Werken -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Neutraal is de standaardstatus tussen alle facties. Standaard serverregels zijn van toepassing. +- Een bondgenootschap vereist dat beide facties akkoord gaan. Beide partijen kunnen het eenzijdig verbreken. +- Vijand wordt eenzijdig verklaard. Geen overeenkomst nodig -- de andere factie wordt direct als vijand gemarkeerd. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Relaties worden beheerd door Officers en Leiders. Leden kunnen relaties bekijken maar niet wijzigen. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Gebruik /f relations regelmatig om het diplomatieke landschap bij te houden. Weten wie je vijanden zijn helpt je voor te bereiden op territoriale conflicten. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md b/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md index 020190cd..bcae9e9f 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Economiecommando's -Quick reference for all faction economy commands. +Snelle referentie voor alle factie-economiecommando's. -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f balance | Bekijk schatkistsaldo | Iedereen | +| /f deposit (amount) | Storten in schatkist | Iedereen | +| /f withdraw (amount) | Opnemen uit schatkist | Officer+ | +| /f money transfer (faction) (amount) | Overmaken naar andere factie | Officer+ | +| /f money log [page] | Bekijk transactiegeschiedenis | Officer+ | --- -## Command Aliases +## Commandoaliassen -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance kan ook gebruikt worden als /f bal +- /f deposit en /f withdraw accepteren decimale bedragen -## Role Requirements +## Rolvereisten -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Opname- en overboekingscommando's zijn beperkt tot Officers en Leiders. Alle andere economiecommando's zijn beschikbaar voor elk factielid. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Gebruik /f money log om recente stortingen, opnames en overboekingen met tijdstempels te bekijken. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md b/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md index 4fe4539c..2fb5f99c 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Geld Beheren -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Factieleden werken samen om de schatkist gevuld te houden door stortingen, opnames en overboekingen. -## Depositing +## Storten -Any member can deposit personal funds into the faction treasury. +Elk lid kan persoonlijke fondsen storten in de factieschatkist. `/f deposit ` -Deposit from your personal balance into the treasury. +Stort van je persoonlijke saldo in de schatkist. -## Withdrawing +## Opnemen -Officers and the Leader can withdraw funds back to their personal balance. +Officers en de Leider kunnen geld opnemen terug naar hun persoonlijke saldo. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Neem op uit de schatkist naar je saldo. (Officer+) -## Transferring +## Overboeken -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Officers kunnen geld direct overboeken tussen factieschatkisten voor handelsdeals of diplomatie. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Stuur geld naar de schatkist van een andere factie. (Officer+) --- -## Fees +## Kosten -| Transaction | Fee | -|------------|-----| -| Deposit | 0% | -| Withdraw | 0% | -| Transfer | 0% | +| Transactie | Kosten | +|------------|--------| +| Storting | 0% | +| Opname | 0% | +| Overboeking | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Kostentarieven zijn configureerbaar door de server en kunnen afwijken van de hierboven getoonde standaardwaarden. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Alle transacties worden gelogd. Gebruik /f money log om recente activiteit te bekijken. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md b/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md index e4e7307b..921f4c46 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/treasury.md @@ -2,25 +2,25 @@ id: economy_treasury commands: balance --- -# Faction Treasury +# Factieschatkist -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Elke factie heeft een gedeelde schatkist die dient als de bank van de factie. Geld wordt gebruikt voor onderhoudskosten, gebiedsbeheer en factieoperaties. -## Starting Balance +## Startsaldo -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Nieuwe facties beginnen met 0 in hun schatkist. Leden moeten geld storten om reserves op te bouwen. -## Who Can Manage +## Wie Kan Beheren -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Elk lid kan geld storten +- Officers en Leider kunnen opnemen en overboeken +- Leider heeft volledige schatkistcontrole --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Controleer het huidige schatkistsaldo van je factie. Ook beschikbaar als /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Draag regelmatig bij om je factie gefinancierd te houden. Gebiedsonderhoudskosten kunnen een lege schatkist snel leegtrekken. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Alle schatkisttransacties worden gelogd en kunnen door officers worden bekeken. diff --git a/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md b/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md index 8a2d12e4..b28b95df 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/nl-NL/help/economy/upkeep.md @@ -1,37 +1,37 @@ --- id: economy_upkeep --- -# Territory Upkeep +# Gebiedsonderhoud -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Facties moeten doorlopend onderhoud betalen om hun geclaimd grondgebied te behouden. Dit voorkomt landhamsteren en houdt de kaart dynamisch. -## Upkeep Costs +## Onderhoudskosten -| Setting | Default | -|---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | -| Scaling mode | Flat rate | +| Instelling | Standaard | +|------------|-----------| +| Kosten per chunk | 2.0 per cyclus | +| Betalingsinterval | Elke 24 uur | +| Gratis chunks | 3 (geen kosten) | +| Schaalmodus | Vast tarief | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Je eerste 3 chunks zijn gratis. Daarna kost elke extra geclaimde chunk 2.0 per betalingscyclus. -## Auto-Pay +## Automatisch Betalen -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Automatisch betalen is standaard ingeschakeld. Het systeem trekt automatisch onderhoud af van je schatkist bij elk interval. Geen handmatige actie nodig. --- -## Grace Period +## Respijtperiode -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Als je schatkist het onderhoud niet kan dekken, begint een respijtperiode van 48 uur. Een waarschuwing wordt 6 uur voor het verlies van claims verstuurd. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Als onderhoud onbetaald blijft na de respijtperiode, verliest je factie 1 claim per cyclus totdat de kosten gedekt zijn of alle extra claims weg zijn. -## Example +## Voorbeeld -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Een factie met 8 claims betaalt voor 5 chunks (8 min 3 gratis). Tegen 2.0 per chunk is dat 10.0 per cyclus.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Houd je schatkist boven je onderhoudskosten gevuld. Gebruik /f balance om je reserves te controleren. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md index f70427cb..fb894a4e 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Grondgebied Claimen -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Een chunk claimen beschermt het onder de controle van je factie. Alleen factieleden kunnen bouwen, breken of containers openen in geclaimed grondgebied. --- -## How to Claim +## Hoe je Claimt `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Ga in de chunk staan die je wilt claimen en voer dit commando uit. De chunk is direct beschermd. Vereist Officer-rang of hoger. -## How to Unclaim +## Hoe je Unclaimt `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Geeft de chunk waar je in staat terug aan de wildernis. Vereist ook Officer+. --- -## Claim Rules +## Claimregels -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Regel | Standaard | +|-------|-----------| +| Powerkosten per claim | 2.0 power | +| Maximaal aantal claims | 100 per factie | +| Alleen aangrenzend | Nee (je kunt overal claimen) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Elke claim kost 2.0 power om te onderhouden. Een factie met 50 totale power kan veilig maximaal 25 claims vasthouden. --- -## What Protection Provides +## Wat Bescherming Biedt -Inside claimed territory, the following is enforced by default: +Binnen geclaimed grondgebied wordt standaard het volgende afgedwongen: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Buitenstaanders kunnen geen blokken breken, plaatsen of interacteren +- Bondgenoten kunnen deuren, stoelen en transport gebruiken maar geen blokken breken of plaatsen +- Leden en Officers hebben volledige toegang om te bouwen, breken en alles te gebruiken +- Containertoegang (kisten, kratten) is beperkt tot alleen leden ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Je kunt ook direct claimen vanaf de gebiedskaart. Open /f map en klik op ongeclaimde chunks om ze te claimen. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Breid niet te veel uit. Als je factie power verliest door sterfgevallen, worden claims buiten je powerbudget kwetsbaar voor overclaiming. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md index ea39186b..3fc137d6 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Grondgebied Verliezen -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Wanneer de totale power van een factie onder de kosten van de claims zakt, wordt deze raidbaar. Vijanden kunnen chunks direct onder je vandaan overclaimen. --- -## How Overclaiming Works +## Hoe Overclaiming Werkt `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Een Officer of Leider van een vijandige factie gaat in jouw geclaimde chunk staan en voert dit commando uit. Als je factie een powertekort heeft, gaat de chunk over naar hun factie. -## The Math +## De Berekening -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Elke claim kost 2.0 power om te onderhouden. Als je totale power onder die drempel zakt, zijn de tekortchunks kwetsbaar. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Overclaiming is permanent. Zodra een vijand een chunk overneemt, moet je het terugclaimen (of het overclaimen als zij verzwakken). --- -## Example Scenario +## Voorbeeldscenario -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | +| Factor | Waarde | +|--------|--------| +| Leden | 5 spelers | +| Power per lid | 10 elk (start) | +| Totale power | 50 | | Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Benodigde power (30 x 2.0) | 60 | +| Tekort | 10 power te kort | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +In dit voorbeeld is de factie al raidbaar vanaf het begin. Vijanden kunnen tot 5 chunks overclaimen (10 tekort / 2.0 per claim) voordat de factie evenwicht bereikt. --- -## How to Prevent Overclaiming +## Hoe je Overclaiming Voorkomt -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Breid niet te veel uit -- houd de totale power altijd boven je claimkosten met een buffer +- Blijf actief -- power regenereert alleen terwijl je online bent (+0.1/min) +- Vermijd onnodige sterfgevallen -- elk sterfgeval kost 1.0 power +- Werf meer leden -- meer spelers betekent meer totale power +- Unclaim ongebruikte chunks -- maak power vrij met /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Controleer je powerstatus regelmatig met /f power. Als je totale power dicht bij je claimkosten ligt, overweeg dan om minder belangrijke chunks te unclaimen voor een oorlog. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md index 207c041d..5388c712 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# De Gebiedskaart -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +De gebiedskaart geeft je een vogelperspectief van geclaimde chunks in je omgeving en toont welke facties het land om je heen beheersen. --- -## Opening the Map +## De Kaart Openen `/f map` -Opens the territory map GUI centered on your current location. +Opent de gebiedskaart-GUI gecentreerd op je huidige locatie. --- -## Color Legend +## Kleurlegenda -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Kleur | Betekenis | +|-------|-----------| +| [#55FF55] De kleur van je factie | Grondgebied geclaimed door jouw factie | +| [#5555FF] Blauw | Grondgebied van bondgenootfactie | +| [#FF5555] Rood | Grondgebied van vijandige factie | +| [#AAAAAA] Grijs | Grondgebied van neutrale factie | +| [#333333] Donker | Wildernis (ongeclaimed land) | +| [#FFAA00] Goud | Speciale zones (SafeZone, WarZone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] De kleur van je factie op de kaart komt overeen met de kleur die je hebt ingesteld bij de factiekleurinstelling. Bondgenoten en vijanden gebruiken vaste kleuren voor gemakkelijke herkenning. --- -## Click to Claim +## Klik om te Claimen -The map is not just for viewing -- you can interact with it directly. +De kaart is niet alleen om te bekijken -- je kunt er direct mee interacteren. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- Klik op een ongeclaimde chunk om deze te claimen (vereist Officer+-rang en voldoende power) +- Klik op een geclaimde chunk om te zien welke factie deze bezit +- Scroll of pan om het gebied om je heen te verkennen ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] De kaart is de makkelijkste manier om je gebiedsuitbreiding te plannen. Zoek naar ongeclaimde gebieden bij je basis en claim strategisch om een aaneengesloten grens te creëren. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] De kaart toont een vast gebied rondom je positie. Verplaats je naar een andere locatie en open de kaart opnieuw om andere delen van de wereld te zien. diff --git a/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md index ae158ed5..68b43dea 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/nl-NL/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Power Begrijpen -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Power is de kernresource die bepaalt hoeveel grondgebied je factie kan vasthouden. Elke speler heeft persoonlijke power die bijdraagt aan het factietotaal. --- -## Default Power Values +## Standaard Powerwaarden -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | -| Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Instelling | Waarde | +|------------|--------| +| Maximale power per speler | 20 | +| Startpower | 10 | +| Sterfstraf | -1.0 per sterfgeval | +| Killbeloning | 0.0 | +| Regeneratiesnelheid | +0.1 per minuut (terwijl online) | +| Powerkosten per claim | 2.0 | +| Uitloggen terwijl getagd | -1.0 extra | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Dit zijn standaardwaarden. Je serverbeheerder kan andere instellingen hebben geconfigureerd. -## How It Works +## Hoe het Werkt -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +De totale power van je factie is de som van de persoonlijke power van elk lid. Je vereiste power is het aantal claims vermenigvuldigd met 2.0. Zolang de totale power boven de vereiste power blijft, is je grondgebied veilig. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Power regenereert passief met 0.1 per minuut terwijl je online bent. Met die snelheid duurt het herstellen van 1.0 power ongeveer 10 minuten. --- -## Checking Your Power +## Je Power Controleren `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Toont je persoonlijke power, de totale power van je factie en hoeveel er nodig is om de huidige claims te onderhouden. -## The Danger Zone +## De Gevarenzone -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Als de totale power onder het vereiste bedrag voor je claims zakt, wordt je factie kwetsbaar. Vijanden kunnen je chunks overclaimen. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Meerdere sterfgevallen in korte tijd kunnen snel escaleren. Als je 5 leden hebt elk op 10 power (50 totaal) en 20 claims (40 nodig), dan brengen slechts 5 sterfgevallen in je team je naar 45 -- nog veilig. Maar 11 sterfgevallen brengt je op 39, onder de drempel van 40. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Houd een powerbuffer aan. Claim niet elke chunk die je kunt betalen -- laat ruimte voor een paar sterfgevallen zonder raidbaar te worden. diff --git a/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md index 0540d550..5c773d8a 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/nl-NL/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands - -## Core - -| Command | Description | Role | -|---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | - -## Membership - -| Command | Description | Role | -|---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | - -## Territory - -| Command | Description | Role | -|---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | +# Alle Commando's + +## Basis + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f | Open factiemenu | Iedereen | +| /f help | Open helpcentrum | Iedereen | +| /f create (name) | Maak een factie aan | Iedereen | +| /f disband | Verwijder je factie | Leider | +| /f leave | Verlaat je factie | Iedereen | + +## Lidmaatschap + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f invite (player) | Nodig een speler uit | Officer+ | +| /f accept [faction] | Accepteer een uitnodiging | Iedereen | +| /f request (faction) | Verzoek om toe te treden | Iedereen | +| /f kick (player) | Verwijder een lid | Officer+ | +| /f promote (player) | Promoveer tot Officer | Leider | +| /f demote (player) | Degradeer tot Lid | Leider | +| /f transfer (player) | Draag leiderschap over | Leider | + +## Grondgebied + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f claim | Claim huidige chunk | Officer+ | +| /f unclaim | Geef huidige chunk vrij | Officer+ | +| /f overclaim | Neem verzwakte chunk over | Officer+ | +| /f map | Open gebiedskaart | Iedereen | ## Teleport -| Command | Description | Role | -|---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | - -## Information - -| Command | Description | Role | -|---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | - -## Diplomacy - -| Command | Description | Role | -|---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | - -## Settings - -| Command | Description | Role | -|---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | - -## Economy - -| Command | Description | Role | -|---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | -| /f money log [page] | Transaction history | Officer+ | +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f home | Teleporteer naar factiehuis | Iedereen | +| /f sethome | Stel factiehuis in | Officer+ | +| /f delhome | Verwijder factiehuis | Officer+ | +| /f stuck | Ontsnap uit vijandelijk grondgebied | Iedereen | + +## Informatie + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f info [faction] | Bekijk factiedetails | Iedereen | +| /f list | Blader door alle facties | Iedereen | +| /f members | Bekijk ledenlijst | Iedereen | +| /f who [player] | Bekijk spelerinfo | Iedereen | +| /f power [player] | Controleer powerniveaus | Iedereen | +| /f invites | Beheer uitnodigingen/verzoeken | Iedereen | +| /f relations | Bekijk diplomatieke relaties | Iedereen | + +## Diplomatie + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f ally (faction) | Verzoek bondgenootschap | Officer+ | +| /f enemy (faction) | Verklaar vijand | Officer+ | +| /f neutral (faction) | Reset naar neutraal | Officer+ | + +## Instellingen + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f settings | Open instellingen-GUI | Officer+ | +| /f rename (name) | Hernoem factie | Leider | +| /f desc [text] | Stel beschrijving in | Officer+ | +| /f color (code) | Stel factiekleur in | Officer+ | +| /f open | Sta iedereen toe om te joinen | Leider | +| /f close | Vereist uitnodiging | Leider | + +## Economie + +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f balance | Bekijk schatkist | Iedereen | +| /f deposit (amount) | Stort geld | Iedereen | +| /f withdraw (amount) | Neem geld op | Officer+ | +| /f money transfer (faction) (amt) | Boek geld over | Officer+ | +| /f money log [page] | Transactiegeschiedenis | Officer+ | ## Chat -| Command | Description | Role | -|---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| Commando | Beschrijving | Rol | +|----------|-------------|-----| +| /f c | Wissel chatmodus | Iedereen | +| /f c f | Stel factiechat in | Iedereen | +| /f c a | Stel bondgenotenchat in | Iedereen | +| /f c off | Stel publieke chat in | Iedereen | diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md index 2155ff0c..29f151a0 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Aan de Slag -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Welkom bij HyperFactions! Hier lees je hoe je in een paar stappen kunt beginnen. --- -## Step 1: Open the Faction Menu +## Stap 1: Open het Factiemenu -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +Typ /f om het hoofdmenu van je factie te openen. Dit is je centrale punt voor alles -- facties bekijken, je eigen factie aanmaken en uitnodigingen beheren. -## Step 2: Choose Your Path +## Stap 2: Kies je Pad -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Optie | Hoe | +|-------|-----| +| Open facties bekijken | Klik op Bladeren in het menu en klik op Toetreden bij een open factie. | +| Een uitnodiging accepteren | Bekijk het tabblad Uitnodigingen. Als iemand je heeft uitgenodigd, klik je op Accepteren. | +| Zelf een factie aanmaken | Klik op Factie Aanmaken, kies een naam en je bent de Leider. | -## Step 3: Explore Your Faction +## Stap 3: Verken je Factie -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Zodra je in een factie zit, zie je het Factie Dashboard met je ledenlijst, gebiedskaart, relaties en instellingen. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Als je helemaal nieuw bent, probeer dan eerst een bestaande factie te joinen. Je leert de kneepjes sneller met ervaren leden om je heen. --- -## Essential First Commands +## Essentiële Eerste Commando's -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Opent de factie-GUI +- /f home -- Teleporteer naar de thuisbasis van je factie +- /f c -- Wissel chatmodus tussen Normaal, Factie en Bondgenoot +- /f map -- Bekijk de gebiedskaart om je heen ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Je kunt ook /f help typen in de chat voor een snelle commandoreferentie op elk moment. diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md index dcd1df1a..a0acccdc 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Snelle Tips -Handy advice organized by category to help you thrive. +Handig advies per categorie om je te helpen slagen. --- -## Territory +## Grondgebied -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Claim vroeg land rondom je basis met `/f claim` -- onbeschermde bouwwerken hebben **geen bescherming** +- Elke claim kost **2.0 power** om te onderhouden, dus breid niet verder uit dan je leden kunnen dragen +- Gebruik `/f map` om nabije claims te verkennen en veilige plekken te vinden om te bouwen +- Unclaim chunks die je niet meer nodig hebt met `/f unclaim` om power vrij te maken -## Combat +## Gevecht -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Doodgaan kost **1.0 power** -- vermijd onnodige gevechten als je factie bijna aan de claimlimiet zit +- Je hebt **5 seconden spawnbescherming** na het respawnen +- Combat tagging duurt **15 seconden** -- uitloggen terwijl je getagd bent kost extra power +- Friendly fire is standaard **uitgeschakeld** tussen factieleden en bondgenoten ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Uitloggen terwijl je combat-getagd bent veroorzaakt extra powerverlies (1.0 per uitlog). Blijf en vecht of ontvlucht eerst. -## Social +## Sociaal -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Gebruik `/f c` om tussen chatmodi te wisselen zodat factiegesprekken privé blijven +- Nodig vertrouwde spelers uit met `/f invite ` -- uitnodigingen verlopen na **5 minuten** +- Sluit bondgenootschappen met `/f ally ` voor wederzijdse bescherming en gedeelde kaartzichtbaarheid +- Bekijk `/f relations` om je volledige diplomatieke status te zien -## Economy +## Economie ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Als de server economie heeft ingeschakeld, kan je factie een schatkist opbouwen. Leden kunnen storten, maar alleen Officers en Leiders kunnen opnemen of geld overmaken. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Stort geld via de schatkist-GUI om je factie te versterken +- Een rijkere factie kan meer claims betalen en sneller herstellen van tegenslagen -## General +## Algemeen -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- Typ `/f` op elk moment om je factie-dashboard te openen -- alles is van daaruit bereikbaar +- Promoveer actieve leden tot Officer zodat ze kunnen helpen met claimen en gebiedsbeheer +- Houd je factie actief -- power regenereert alleen terwijl spelers **online** zijn diff --git a/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md index 5fedf54c..5eade385 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/nl-NL/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Wat zijn Facties? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Facties zijn door spelers geleide teams die grondgebied claimen, bases bouwen en strijden om dominantie. Wanneer je een factie aanmaakt of toetreedt, krijg je toegang tot beschermd land, een gedeelde thuisbasis, privéchat en diplomatieke tools. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Facties draait om teamwork. Hoe meer actieve leden je hebt, hoe sterker je factie wordt. --- -## Core Mechanics +## Kernmechanismen -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Mechanisme | Wat het doet | +|------------|-------------| +| Power | Elke speler genereert power over tijd (max 20). De totale power van je factie bepaalt hoeveel land je kunt vasthouden. | +| Claims | Geclaimde chunks zijn beschermd -- alleen leden kunnen bouwen, breken of containers openen erin. Elke claim kost 2.0 power om te onderhouden. | +| Relaties | Facties kunnen bondgenootschappen sluiten voor wederzijdse bescherming of vijanden verklaren om PvP en territoriale agressie mogelijk te maken. | +| Rollen | Drie rangen -- Leider, Officer, Lid -- elk met verschillende bevoegdheden. | --- -## How Strength Works +## Hoe Sterkte Werkt -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +De kracht van je factie komt van de leden. Elke speler begint met 10 power en regenereert tot 20 terwijl ze online zijn. Doodgaan kost power. Als de totale factiepower onder de kosten van je claims zakt, kunnen vijanden je grondgebied overclaimen. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Een enkel sterfgeval kost 1.0 power. Meerdere sterfgevallen in korte tijd kunnen je factie kwetsbaar maken voor overclaiming. --- -## Diplomacy at a Glance +## Diplomatie in een Oogopslag -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Bondgenoten** -- Wederzijdse overeenkomsten die friendly fire voorkomen en elkaars grondgebied beschermen +- **Vijanden** -- Eenzijdige verklaringen die PvP in elkaars land mogelijk maken en overclaiming toestaan +- **Neutraal** -- De standaardstatus tussen alle facties met standaardregels ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Je kunt dit allemaal beheren via de in-game GUI door `/f` te typen of via chatcommando's. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md index e1eaa33b..207b401e 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Een Factie Aanmaken -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Je eigen factie starten maakt je de Leider met volledige controle over instellingen, leden en grondgebied. --- -## How to Create +## Hoe je een Factie Aanmaakt `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Dit maakt je factie aan en opent direct het Factie Dashboard waar je leden kunt uitnodigen, land claimen en instellingen configureren. -## Name Rules +## Naamregels -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Regel | Vereiste | +|-------|---------| +| Lengte | Tussen 3 en 24 tekens | +| Tekens | Alleen letters, cijfers en spaties | +| Uniekheid | Geen twee facties kunnen dezelfde naam hebben | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Kies je naam zorgvuldig. Later hernoemen vereist Leider-rechten en kan een cooldown hebben. --- -## What Happens on Creation +## Wat er Gebeurt bij Aanmaak -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Je wordt de Leider (hoogste rang) +- Je factie begint met 0 claims en jouw persoonlijke power (standaard 10) +- Het factie-dashboard opent automatisch +- Je kunt direct spelers uitnodigen, grondgebied claimen en een factiehuis instellen ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Als de server economie-integratie heeft ingeschakeld, kan het aanmaken van een factie geld kosten. De aanmaakkosten worden ingesteld door de serverbeheerder. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Na het aanmaken zijn je eerste prioriteiten: vrienden uitnodigen, een basislocatie vinden en deze claimen. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md index 7dbabdcd..35ca13ef 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Toetreden tot een Factie -There are three ways to join an existing faction, depending on how the faction is configured. +Er zijn drie manieren om een bestaande factie te joinen, afhankelijk van hoe de factie is geconfigureerd. --- -## Methods Compared +## Methoden Vergeleken -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Methode | Hoe | Vereist | +|---------|-----|---------| +| Bladeren en Toetreden | Open /f, klik op Bladeren, klik op Toetreden | Factie staat op open | +| Uitnodiging Accepteren | Bekijk het tabblad Uitnodigingen in het /f menu | Actieve uitnodiging | +| Verzoek tot Toetreding | Gebruik /f request, wacht op goedkeuring | Officer of Leider keurt goed | --- -## Invite Details +## Details over Uitnodigingen -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Uitnodigingen worden verstuurd door Officers of Leiders +- Uitnodigingen verlopen na 5 minuten -- accepteer snel +- Bekijk je openstaande uitnodigingen in het tabblad Uitnodigingen van het factiemenu +- Accepteer via de GUI of /f accept -## Join Requests +## Toetredingsverzoeken -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Gebruik /f request om lidmaatschap aan te vragen bij een gesloten factie +- Verzoeken verlopen na 24 uur als er niet op gereageerd wordt +- Officers en Leiders kunnen verzoeken goedkeuren of afwijzen vanuit het factie-dashboard ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Weet je niet zeker welke factie je moet joinen? Gebruik het tabblad Bladeren in /f om factiebeschrijvingen, ledenaantallen en of ze open of op uitnodiging zijn te bekijken. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Elke factie kan standaard maximaal 50 leden bevatten. Als een factie vol is, moet je wachten tot er een plek vrijkomt. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md index 870c6133..271253f9 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Leden Beheren -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Officers en Leiders delen de verantwoordelijkheid voor het beheren van de factieledenlijst. Hier zijn de belangrijkste commando's en wie ze kan gebruiken. --- -## Commands +## Commando's -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Commando | Wat het doet | Vereiste Rol | +|----------|-------------|--------------| +| `/f invite ` | Stuurt een uitnodiging (verloopt na 5 min) | Officer+ | +| `/f kick ` | Verwijdert een lid uit de factie | Officer+ (zie opmerking) | +| `/f promote ` | Promoveert een Lid tot Officer | Alleen Leider | +| `/f demote ` | Degradeert een Officer tot Lid | Alleen Leider | +| `/f transfer ` | Draagt het leiderschap over | Alleen Leider | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Officers kunnen alleen Leden kicken. Om een andere Officer te verwijderen, moet de Leider ze eerst degraderen of direct kicken. --- -## Invitations +## Uitnodigingen -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Uitnodigingen verlopen na 5 minuten als ze niet worden geaccepteerd +- De uitgenodigde speler ziet het in het tabblad Uitnodigingen wanneer ze /f openen +- Er is geen limiet op het aantal uitnodigingen dat je tegelijk kunt versturen +- Je factie kan maximaal 50 leden bevatten -## Promotions and Demotions +## Promoties en Degradaties -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Alleen de Leider kan promoveren of degraderen +- /f promote verhoogt een Lid tot Officer +- /f demote verlaagt een Officer terug naar Lid -## Transferring Leadership +## Leiderschap Overdragen ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Het overdragen van leiderschap is onomkeerbaar. Je wordt gedegradeerd tot Officer en de doelspeler wordt de nieuwe Leider. Zorg dat je ze volledig vertrouwt. `/f transfer ` -The target must be a current member of your faction. +Het doelwit moet een huidig lid van je factie zijn. diff --git a/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md b/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md index 67bb5962..c413cb56 100644 --- a/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/nl-NL/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Rollen en Rangen -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Elke factie heeft drie rollen in een strikte hiërarchie. Hogere rollen erven alle bevoegdheden van de onderliggende rollen. --- -## Permission Breakdown - -| Action | Leader | Officer | Member | -|--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +## Overzicht van Bevoegdheden + +| Actie | Leider | Officer | Lid | +|-------|--------|---------|-----| +| Bouwen in grondgebied | Ja | Ja | Ja | +| Factiehuis gebruiken | Ja | Ja | Ja | +| Factie- en bondgenotenchat | Ja | Ja | Ja | +| Spelers uitnodigen | Ja | Ja | Nee | +| Leden kicken | Ja | Ja (alleen Leden) | Nee | +| Land claimen / unclaimen | Ja | Ja | Nee | +| Vijandelijk grondgebied overclaimen | Ja | Ja | Nee | +| Factiehuis instellen | Ja | Ja | Nee | +| Factiehuis verwijderen | Ja | Ja | Nee | +| Relaties beheren (bondgenoot/vijand) | Ja | Ja | Nee | +| Factielogs bekijken | Ja | Ja | Nee | +| Promoveren tot Officer | Ja | Nee | Nee | +| Degraderen van Officer | Ja | Nee | Nee | +| Factie hernoemen | Ja | Nee | Nee | +| Beschrijving / tag / kleur instellen | Ja | Nee | Nee | +| Factie openen / sluiten | Ja | Nee | Nee | +| Factie-instellingen openen | Ja | Nee | Nee | +| Leiderschap overdragen | Ja | Nee | Nee | +| Factie ontbinden | Ja | Nee | Nee | + +>[!NOTE] Officers kunnen Leden kicken maar geen andere Officers. Alleen de Leider kan Officers verwijderen. --- -## Role Details +## Roldetails -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Leider -- Eén per factie. Heeft volledige controle over alle instellingen, leden en grondgebied. Kan eigendom overdragen aan een ander lid. +- Officer -- Vertrouwde leden die helpen de factie te beheren. Kunnen uitnodigen, leden kicken, land claimen en diplomatie afhandelen. +- Lid -- De standaardrol bij toetreding. Kan bouwen in grondgebied, het factiehuis gebruiken en deelnemen aan factiechat. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] Promoveer je meest actieve en vertrouwde leden tot Officer zodat ze kunnen helpen met gebiedsbeheer en het werven van nieuwe spelers. From af0d97a27379fcb5c9df4b15a0dd207d345aa262 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:20:56 -0700 Subject: [PATCH 75/76] i18n: add Filipino/Tagalog (tl-PH) help file translations Translate all 42 help markdown files into Filipino/Tagalog, covering welcome, faction management, power/land, diplomacy, combat, economy, quick reference, and all admin sections. --- .../help/admin/admin_config/configuration.md | 34 ++--- .../help/admin/admin_config/world_settings.md | 48 ++++---- .../admin_economy/treasury_management.md | 50 ++++---- .../admin/admin_economy/upkeep_management.md | 48 ++++---- .../help/admin/admin_factions/disbanding.md | 36 +++--- .../admin/admin_factions/managing_factions.md | 42 +++---- .../help/admin/admin_maintenance/backups.md | 60 ++++----- .../help/admin/admin_maintenance/imports.md | 42 +++---- .../help/admin/admin_maintenance/updates.md | 50 ++++---- .../admin/admin_overview/getting_started.md | 51 ++++---- .../help/admin/admin_overview/permissions.md | 46 +++---- .../help/admin/admin_power/power_commands.md | 48 ++++---- .../help/admin/admin_power/power_overrides.md | 50 ++++---- .../admin/admin_reference/all_commands.md | 14 +-- .../admin/admin_reference/integrations.md | 52 ++++---- .../help/admin/admin_zones/zone_basics.md | 38 +++--- .../help/admin/admin_zones/zone_commands.md | 58 ++++----- .../help/admin/admin_zones/zone_flags.md | 18 +-- .../Languages/tl-PH/help/combat/death.md | 40 +++--- .../Languages/tl-PH/help/combat/protection.md | 22 ++-- .../tl-PH/help/combat/spawn_protection.md | 24 ++-- .../Languages/tl-PH/help/combat/tagging.md | 26 ++-- .../Languages/tl-PH/help/combat/zones.md | 22 ++-- .../tl-PH/help/diplomacy/alliances.md | 40 +++--- .../Languages/tl-PH/help/diplomacy/enemies.md | 42 +++---- .../tl-PH/help/diplomacy/relations.md | 36 +++--- .../Languages/tl-PH/help/economy/commands.md | 28 ++--- .../Languages/tl-PH/help/economy/funds.md | 32 ++--- .../Languages/tl-PH/help/economy/treasury.md | 18 +-- .../Languages/tl-PH/help/economy/upkeep.md | 26 ++-- .../tl-PH/help/power_land/claiming.md | 44 +++---- .../tl-PH/help/power_land/losing_territory.md | 50 ++++---- .../tl-PH/help/power_land/territory_map.md | 42 +++---- .../help/power_land/understanding_power.md | 42 +++---- .../tl-PH/help/quick_ref/all_commands.md | 116 +++++++++--------- .../tl-PH/help/welcome/getting_started.md | 38 +++--- .../tl-PH/help/welcome/quick_tips.md | 52 ++++---- .../tl-PH/help/welcome/what_are_factions.md | 36 +++--- .../tl-PH/help/your_faction/creating.md | 36 +++--- .../tl-PH/help/your_faction/joining.md | 38 +++--- .../tl-PH/help/your_faction/managing.md | 46 +++---- .../tl-PH/help/your_faction/roles.md | 60 ++++----- 42 files changed, 870 insertions(+), 871 deletions(-) diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md index 95b6c952..1577a3db 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/configuration.md @@ -1,41 +1,41 @@ --- id: admin_configuration --- -# Configuration System +# Sistema ng Configuration -HyperFactions uses a modular JSON config system with 11 configuration files. +Ang HyperFactions ay gumagamit ng modular na JSON config system na may 11 configuration file. -## Admin Config Commands +## Mga Admin Config Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin config` | Open the visual config editor GUI | -| `/f admin reload` | Reload all config files from disk | -| `/f admin sync` | Synchronize faction data to storage | +| `/f admin config` | Buksan ang visual config editor GUI | +| `/f admin reload` | Mag-reload ng lahat ng config file mula sa disk | +| `/f admin sync` | I-synchronize ang faction data sa storage | -## Configuration Files +## Mga Configuration File -| File | Contents | +| File | Nilalaman | |------|----------| | `factions.json` | Roles, power, claims, combat, relations | | `server.json` | Teleport, auto-save, messages, GUI, permissions | | `economy.json` | Treasury, upkeep, transaction settings | -| `backup.json` | Backup rotation and retention settings | -| `chat.json` | Faction and ally chat formatting | +| `backup.json` | Backup rotation at retention settings | +| `chat.json` | Faction at ally chat formatting | | `debug.json` | Debug logging categories | | `faction-permissions.json` | Per-role permission defaults | -| `announcements.json` | Event broadcast and territory notifications | +| `announcements.json` | Event broadcast at territory notifications | | `gravestones.json` | Gravestone integration settings | | `worldmap.json` | World map refresh modes | | `worlds.json` | Per-world behavior overrides | ->[!TIP] The config GUI provides a visual editor with descriptions for every setting. Changes are saved immediately but some require `/f admin reload` to take full effect. +>[!TIP] Ang config GUI ay nagbibigay ng visual editor na may mga paglalarawan para sa bawat setting. Agad na nase-save ang mga pagbabago pero ang ilan ay nangangailangan ng `/f admin reload` para lubos na magkabisa. -## Config Location +## Lokasyon ng Config -All files are stored in: +Lahat ng file ay naka-store sa: `mods/com.hyperfactions_HyperFactions/config/` ->[!WARNING] Manual JSON edits require `/f admin reload` to apply. Invalid JSON will cause the file to be skipped with a warning in the server log. +>[!WARNING] Ang mga manual na JSON edit ay nangangailangan ng `/f admin reload` para ma-apply. Ang invalid na JSON ay magdudulot na ma-skip ang file na may babala sa server log. ->[!NOTE] Config version is tracked in `server.json`. The plugin auto-migrates older configs on startup. +>[!NOTE] Ang config version ay naka-track sa `server.json`. Awtomatikong nag-migrate ang plugin ng mga lumang config sa startup. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md index 47e8dffe..3c5a2500 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_config/world_settings.md @@ -1,45 +1,45 @@ --- id: admin_world_settings --- -# Per-World Settings +# Mga Per-World Setting -HyperFactions supports per-world configuration for claiming, PvP, and protection behavior. +Ang HyperFactions ay sumusuporta ng per-world configuration para sa claiming, PvP, at protection behavior. -## World Commands +## Mga World Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin world list` | List all world overrides | -| `/f admin world info ` | Show settings for a world | -| `/f admin world set ` | Set a setting | -| `/f admin world reset ` | Reset world to defaults | +| `/f admin world list` | Ilista ang lahat ng world override | +| `/f admin world info ` | Ipakita ang mga setting para sa isang mundo | +| `/f admin world set ` | Mag-set ng setting | +| `/f admin world reset ` | I-reset ang mundo sa mga default | -## Available Settings +## Mga Available na Setting -| Setting | Type | Description | -|---------|------|-------------| -| claiming_enabled | boolean | Allow faction claims in this world | -| pvp_enabled | boolean | Allow PvP combat in this world | -| power_loss | boolean | Apply power loss on death | -| build_protection | boolean | Enforce claim build protection | -| explosion_protection | boolean | Protect claims from explosions | +| Setting | Uri | Paglalarawan | +|---------|-----|-------------| +| claiming_enabled | boolean | Payagan ang faction claims sa mundong ito | +| pvp_enabled | boolean | Payagan ang PvP combat sa mundong ito | +| power_loss | boolean | I-apply ang power loss sa pagkamatay | +| build_protection | boolean | Ipatupad ang claim build protection | +| explosion_protection | boolean | Protektahan ang mga claim mula sa mga pagsabog | ## World Whitelist / Blacklist -Control which worlds allow faction features through the `worlds.json` config file: +Kontrolin kung aling mga mundo ang nagpapahintulot ng faction features sa pamamagitan ng `worlds.json` config file: -- **Whitelist mode**: Only listed worlds allow claiming -- **Blacklist mode**: All worlds allow claiming except listed +- **Whitelist mode**: Tanging ang mga naka-listang mundo lang ang pwedeng mag-claim +- **Blacklist mode**: Lahat ng mundo ay pwedeng mag-claim maliban sa mga nakalista ->[!INFO] World settings are stored in `worlds.json` and override the global defaults from `factions.json`. +>[!INFO] Ang mga world setting ay naka-store sa `worlds.json` at nag-o-override ng mga global default mula sa `factions.json`. -## Examples +## Mga Halimbawa - `/f admin world set survival claiming_enabled true` - `/f admin world set creative claiming_enabled false` - `/f admin world set pvp_arena pvp_enabled true` -- `/f admin world reset lobby` -- restore all defaults +- `/f admin world reset lobby` -- ibalik ang lahat ng default ->[!TIP] Disable claiming in creative or lobby worlds to keep the faction system focused on survival gameplay. +>[!TIP] I-disable ang claiming sa mga creative o lobby world para mapanatiling nakapokus ang faction system sa survival gameplay. ->[!NOTE] Per-world settings take priority over global config but are overridden by zone flags within that world. +>[!NOTE] Ang mga per-world setting ay mas mataas ang priority kaysa sa global config pero nao-override ng mga zone flag sa loob ng mundong iyon. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md index b219d330..cdf94a05 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/treasury_management.md @@ -1,39 +1,39 @@ --- id: admin_treasury_management --- -# Treasury Management +# Pamamahala ng Treasury -Admin commands for managing faction treasuries. Requires `hyperfactions.admin.economy` permission. +Mga admin command para sa pamamahala ng mga faction treasury. Nangangailangan ng `hyperfactions.admin.economy` permission. -## Treasury Commands +## Mga Treasury Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin economy balance ` | View faction treasury balance | -| `/f admin economy set ` | Set exact balance | -| `/f admin economy add ` | Add funds to treasury | -| `/f admin economy take ` | Remove funds from treasury | -| `/f admin economy reset ` | Reset treasury to zero | +| `/f admin economy balance ` | Tingnan ang faction treasury balance | +| `/f admin economy set ` | I-set ang eksaktong balance | +| `/f admin economy add ` | Magdagdag ng pondo sa treasury | +| `/f admin economy take ` | Magtanggal ng pondo mula sa treasury | +| `/f admin economy reset ` | I-reset ang treasury sa zero | -## Examples +## Mga Halimbawa -- `/f admin economy balance Vikings` -- check balance -- `/f admin economy set Vikings 5000` -- set to 5000 -- `/f admin economy add Vikings 1000` -- deposit 1000 -- `/f admin economy take Vikings 500` -- withdraw 500 -- `/f admin economy reset Vikings` -- zero out balance +- `/f admin economy balance Vikings` -- suriin ang balance +- `/f admin economy set Vikings 5000` -- i-set sa 5000 +- `/f admin economy add Vikings 1000` -- mag-deposit ng 1000 +- `/f admin economy take Vikings 500` -- mag-withdraw ng 500 +- `/f admin economy reset Vikings` -- i-zero out ang balance ->[!TIP] Use `/f admin info ` to see the full economy overview including transaction history alongside the treasury balance. +>[!TIP] Gamitin ang `/f admin info ` para makita ang buong economy overview kasama ang transaction history katabi ng treasury balance. -## Use Cases +## Mga Use Case -| Scenario | Command | -|----------|---------| -| Event prize distribution | `economy add ` | -| Penalty for rule violation | `economy take ` | -| Economy reset after wipe | `economy reset ` | -| Compensation for bugs | `economy add ` | +| Senaryo | Command | +|---------|---------| +| Pamamahagi ng event prize | `economy add ` | +| Parusa sa paglabag sa patakaran | `economy take ` | +| Economy reset pagkatapos ng wipe | `economy reset ` | +| Kompensasyon para sa mga bug | `economy add ` | ->[!WARNING] Treasury changes are logged in the faction's transaction history. Admin modifications are recorded with the admin's name for accountability. +>[!WARNING] Ang mga pagbabago sa treasury ay naka-log sa transaction history ng faction. Ang mga admin modification ay naitatala kasama ang pangalan ng admin para sa accountability. ->[!NOTE] All economy admin commands work even when the economy module is disabled in config. The data is stored regardless of module status. +>[!NOTE] Lahat ng economy admin command ay gumagana kahit naka-disable ang economy module sa config. Ang data ay naka-store anuman ang status ng module. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md index 7df9b4c7..c58d5628 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_economy/upkeep_management.md @@ -1,42 +1,42 @@ --- id: admin_upkeep_management --- -# Upkeep Management +# Pamamahala ng Upkeep -Faction upkeep charges factions periodically based on their territory and member count. +Ang faction upkeep ay nagsisingil sa mga faction nang pana-panahon batay sa kanilang teritoryo at bilang ng miyembro. -## Admin Controls +## Mga Admin Control -Upkeep settings are managed through the economy config file or the admin config GUI. +Ang mga upkeep setting ay pinamamahalaan sa pamamagitan ng economy config file o ng admin config GUI. `/f admin config` -Open the config editor and navigate to economy settings to adjust upkeep values. +Buksan ang config editor at mag-navigate sa economy settings para ayusin ang mga upkeep value. -## Default Upkeep Settings +## Mga Default na Upkeep Setting -| Setting | Default | Description | +| Setting | Default | Paglalarawan | |---------|---------|-------------| -| Upkeep enabled | false | Master toggle for the system | -| Upkeep interval | 24h | How often upkeep is charged | -| Per-claim cost | 5.0 | Cost per claimed chunk per cycle | -| Per-member cost | 0.0 | Cost per member per cycle | -| Grace period | 72h | New factions are exempt | -| Disband on bankrupt | false | Auto-disband if cannot pay | +| Upkeep enabled | false | Master toggle para sa sistema | +| Upkeep interval | 24h | Gaano kadalas sisingilin ang upkeep | +| Per-claim cost | 5.0 | Gastos bawat na-claim na chunk bawat cycle | +| Per-member cost | 0.0 | Gastos bawat miyembro bawat cycle | +| Grace period | 72h | Ang mga bagong faction ay exempt | +| Disband on bankrupt | false | Auto-disband kung hindi makabayad | -## Monitoring Upkeep +## Pag-monitor ng Upkeep -Use `/f admin info ` to see: -- Current treasury balance -- Estimated upkeep cost per cycle -- Time until next upkeep charge -- Whether the faction can afford upkeep +Gamitin ang `/f admin info ` para makita ang: +- Kasalukuyang treasury balance +- Tinatantiyang upkeep cost bawat cycle +- Oras bago ang susunod na upkeep charge +- Kung kaya bang bayaran ng faction ang upkeep ->[!TIP] Review economy statistics across all factions from the admin dashboard to identify factions at risk of bankruptcy before upkeep triggers. +>[!TIP] I-review ang economy statistics sa lahat ng faction mula sa admin dashboard para matukoy ang mga faction na malapit nang ma-bankrupt bago mag-trigger ang upkeep. ->[!INFO] Upkeep configuration is stored in `economy.json`. Changes made via the config GUI take effect after reload with `/f admin reload`. +>[!INFO] Ang upkeep configuration ay naka-store sa `economy.json`. Ang mga pagbabagong ginawa sa config GUI ay magkakabisa pagkatapos mag-reload gamit ang `/f admin reload`. -## Upkeep Formula +## Formula ng Upkeep -**Total upkeep** = (claimed chunks x per-claim cost) + (member count x per-member cost) +**Kabuuang upkeep** = (na-claim na chunk x per-claim cost) + (bilang ng miyembro x per-member cost) ->[!WARNING] Enabling upkeep on a server with existing factions may cause unexpected bankruptcies. Consider setting a grace period or announcing the change in advance. +>[!WARNING] Ang pag-enable ng upkeep sa isang server na may existing faction ay pwedeng magdulot ng mga hindi inaasahang pagkabangkarote. Pag-isipang mag-set ng grace period o mag-anunsyo ng pagbabago nang maaga. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md index 253e05ab..86409912 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/disbanding.md @@ -3,35 +3,35 @@ id: admin_disbanding --- # Force Disbanding -Admins can forcefully disband any faction, regardless of the leader's wishes. +Pwedeng puwersahang i-disband ng mga admin ang kahit anong faction, anuman ang gusto ng leader. ## Command `/f admin disband ` -Force-disband the named faction. A confirmation prompt will appear before the action is executed. +Puwersahang i-disband ang pinangalanang faction. May lalabas na confirmation prompt bago isagawa ang aksyon. **Permission**: `hyperfactions.admin.disband` ->[!WARNING] Disbanding a faction is **irreversible**. All claims are released, all members are removed, and the faction ceases to exist. Create a backup first. +>[!WARNING] Ang pag-disband ng faction ay **hindi na pwedeng i-undo**. Lahat ng claim ay mabibigyang-laya, lahat ng miyembro ay tatanggalin, at matitigil ang pag-iral ng faction. Gumawa muna ng backup. -## Consequences +## Mga Konsekwensya -When a faction is disbanded: +Kapag na-disband ang isang faction: -| Effect | Description | +| Epekto | Paglalarawan | |--------|-------------| -| **Claims** | All territory is released immediately | -| **Members** | All players are removed from the roster | -| **Relations** | All alliances and enemies are cleared | -| **Treasury** | Handled per economy config settings | -| **Home** | Faction home is deleted | -| **Chat** | Faction chat history is removed | +| **Claims** | Lahat ng teritoryo ay agad na ire-release | +| **Members** | Lahat ng manlalaro ay tatanggalin mula sa roster | +| **Relations** | Lahat ng alyansa at kaaway ay maki-clear | +| **Treasury** | Hahawakan ayon sa economy config settings | +| **Home** | Madi-delete ang faction home | +| **Chat** | Matatanggal ang faction chat history | -## Best Practices +## Mga Best Practice -1. Always run `/f admin backup create` before disbanding -2. Notify faction members when possible -3. Document the reason for server records -4. Check `/f admin info ` to review before acting +1. Palaging patakbuhin ang `/f admin backup create` bago mag-disband +2. I-notify ang mga faction member kung posible +3. I-document ang dahilan para sa server records +4. Suriin ang `/f admin info ` para mag-review bago kumilos ->[!TIP] If the issue is with a specific member, consider using the admin factions GUI to transfer leadership rather than disbanding the entire faction. +>[!TIP] Kung ang problema ay sa isang partikular na miyembro, pag-isipang gamitin ang admin factions GUI para ilipat ang leadership sa halip na i-disband ang buong faction. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md index b00218c9..49206d6d 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_factions/managing_factions.md @@ -1,38 +1,38 @@ --- id: admin_managing_factions --- -# Managing Factions +# Pamamahala ng mga Faction -Admins can inspect and modify any faction on the server through the dashboard or commands. +Ang mga admin ay pwedeng mag-inspect at mag-modify ng kahit anong faction sa server sa pamamagitan ng dashboard o mga command. -## Browsing Factions +## Pag-browse ng mga Faction `/f admin factions` -Opens the admin faction browser. View all factions with member counts, power levels, and territory. +Binubuksan ang admin faction browser. Tingnan ang lahat ng faction na may bilang ng miyembro, power level, at teritoryo. `/f admin info ` -Opens the admin info panel for a specific faction with full details and management options. +Binubuksan ang admin info panel para sa isang partikular na faction na may buong detalye at management options. -## Modifying Faction Settings +## Pag-modify ng Faction Settings -With `hyperfactions.admin.modify` permission, you can: +Gamit ang `hyperfactions.admin.modify` permission, pwede mong: -- **Rename** a faction to resolve conflicts -- **Set color** to fix display issues -- **Toggle open/close** to override join policy -- **Edit description** for moderation purposes +- **I-rename** ang isang faction para malutas ang mga conflict +- **I-set ang kulay** para ayusin ang mga display issue +- **I-toggle ang open/close** para i-override ang join policy +- **I-edit ang description** para sa mga moderation purpose ->[!TIP] Use `/f admin who ` to look up which faction a specific player belongs to and view their details. +>[!TIP] Gamitin ang `/f admin who ` para alamin kung saang faction kabilang ang isang partikular na manlalaro at tingnan ang mga detalye nila. -## Viewing Members and Relations +## Pagtingin ng mga Miyembro at Relasyon -The admin info panel shows: +Ipinapakita ng admin info panel ang: -| Section | Details | -|---------|---------| -| **Members** | Full roster with roles and last seen | -| **Relations** | All ally, enemy, and neutral standings | -| **Territory** | Claimed chunks and power balance | -| **Economy** | Treasury balance and transaction log | +| Seksyon | Mga Detalye | +|---------|-------------| +| **Members** | Buong roster na may mga role at huling nakita | +| **Relations** | Lahat ng ally, enemy, at neutral standing | +| **Territory** | Mga na-claim na chunk at power balance | +| **Economy** | Treasury balance at transaction log | ->[!NOTE] Admin inspection commands do not notify the faction being viewed. Only modifications trigger alerts. +>[!NOTE] Ang mga admin inspection command ay hindi nag-notify sa faction na tinitingnan. Ang mga modification lang ang nagti-trigger ng mga alerto. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md index 84a331f7..ef9fcf7c 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/backups.md @@ -1,48 +1,48 @@ --- id: admin_backups --- -# Backup System +# Sistema ng Backup -HyperFactions includes automatic and manual backups with GFS (Grandfather-Father-Son) rotation. +Ang HyperFactions ay may kasamang automatic at manual backup na may GFS (Grandfather-Father-Son) rotation. -## Backup Commands +## Mga Backup Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin backup create` | Create a manual backup now | -| `/f admin backup list` | List all available backups | -| `/f admin backup restore ` | Restore from a backup | -| `/f admin backup delete ` | Delete a specific backup | +| `/f admin backup create` | Gumawa ng manual backup ngayon | +| `/f admin backup list` | Ilista ang lahat ng available na backup | +| `/f admin backup restore ` | Mag-restore mula sa backup | +| `/f admin backup delete ` | Mag-delete ng partikular na backup | **Permission**: `hyperfactions.admin.backup` -## GFS Rotation Defaults +## Mga Default ng GFS Rotation -| Type | Retention | Description | -|------|-----------|-------------| -| Hourly | 24 | Last 24 hourly snapshots | -| Daily | 7 | Last 7 daily snapshots | -| Weekly | 4 | Last 4 weekly snapshots | -| Manual | 10 | Manually created backups | -| Shutdown | 5 | Created on server stop | +| Uri | Retention | Paglalarawan | +|-----|-----------|-------------| +| Hourly | 24 | Huling 24 hourly snapshot | +| Daily | 7 | Huling 7 daily snapshot | +| Weekly | 4 | Huling 4 weekly snapshot | +| Manual | 10 | Mga mano-manong ginawang backup | +| Shutdown | 5 | Ginawa sa pag-stop ng server | ->[!INFO] Shutdown backups are enabled by default (`onShutdown=true`). They capture the latest state before the server stops. +>[!INFO] Ang shutdown backup ay naka-enable bilang default (`onShutdown=true`). Kinukuha nito ang pinakabagong estado bago mag-stop ang server. -## Backup Contents +## Nilalaman ng Backup -Each backup ZIP archive contains: -- All faction data files +Bawat backup ZIP archive ay naglalaman ng: +- Lahat ng faction data file - Player power data -- Zone definitions -- Chat history and economy data -- Invite and join request data -- Configuration files +- Mga zone definition +- Chat history at economy data +- Mga invite at join request data +- Mga configuration file ->[!WARNING] **Restoring a backup is destructive.** It replaces all current data with the backup's contents. Any changes made after the backup was created will be lost. Always create a fresh backup before restoring. +>[!WARNING] **Ang pag-restore ng backup ay destructive.** Pinapalitan nito ang lahat ng kasalukuyang data ng nilalaman ng backup. Mawawala ang anumang pagbabago na ginawa pagkatapos gumawa ng backup. Palaging gumawa muna ng sariwang backup bago mag-restore. -## Best Practices +## Mga Best Practice -1. Create a manual backup before major admin actions -2. Review backup retention in `backup.json` -3. Test restore on a staging server first -4. Keep shutdown backups enabled for crash recovery +1. Gumawa ng manual backup bago ang mga malalaking admin action +2. I-review ang backup retention sa `backup.json` +3. Subukan ang restore sa staging server muna +4. Panatilihing naka-enable ang shutdown backup para sa crash recovery diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md index e3bf7548..45c355b3 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/imports.md @@ -1,9 +1,9 @@ --- id: admin_imports --- -# Data Import +# Pag-import ng Data -Import faction data from other plugins to migrate your server to HyperFactions. +Mag-import ng faction data mula sa ibang plugin para i-migrate ang server mo sa HyperFactions. ## Import Command @@ -11,38 +11,38 @@ Import faction data from other plugins to migrate your server to HyperFactions. **Permission**: `hyperfactions.admin.use` -## Supported Sources +## Mga Supported na Source -| Source | Description | +| Source | Paglalarawan | |--------|-------------| -| `elbaphfactions` | Import from ElbaphFactions data | -| `hyfactions` | Import from HyFactions v1 data | +| `elbaphfactions` | Mag-import mula sa ElbaphFactions data | +| `hyfactions` | Mag-import mula sa HyFactions v1 data | -## Import Flags +## Mga Import Flag -| Flag | Description | +| Flag | Paglalarawan | |------|-------------| -| `--dry-run` | Validate data without importing anything | -| `--overwrite` | Overwrite existing factions with same name | -| `--no-zones` | Skip zone data during import | -| `--no-power` | Skip power data during import | +| `--dry-run` | I-validate ang data nang hindi nag-i-import ng kahit ano | +| `--overwrite` | I-overwrite ang mga existing faction na may parehong pangalan | +| `--no-zones` | Laktawan ang zone data sa pag-import | +| `--no-power` | Laktawan ang power data sa pag-import | ->[!TIP] Always run with `--dry-run` first to preview what will be imported and catch any data issues before committing changes. +>[!TIP] Palaging patakbuhin muna gamit ang `--dry-run` para ma-preview kung ano ang ii-import at mahuli ang mga data issue bago mag-commit ng mga pagbabago. -## Import Process +## Proseso ng Import -1. A pre-import backup is created automatically -2. Player name mappings are loaded -3. Factions, claims, and zones are converted -4. Data is validated and saved +1. Awtomatikong gumagawa ng pre-import backup +2. Lino-load ang mga player name mapping +3. Kino-convert ang mga faction, claim, at zone +4. Vine-validate at sine-save ang data -## Examples +## Mga Halimbawa - `/f admin import elbaphfactions --dry-run` - `/f admin import elbaphfactions --overwrite` - `/f admin import hyfactions --no-zones --no-power` - `/f admin import elbaphfactions /custom/path` ->[!WARNING] Using `--overwrite` will **replace** any existing faction that shares a name with an imported faction. Member data and claims will be overwritten. Run with `--dry-run` first to identify conflicts. +>[!WARNING] Ang paggamit ng `--overwrite` ay **magpapalit** ng kahit anong existing faction na may parehong pangalan ng na-import na faction. Mao-overwrite ang member data at mga claim. Patakbuhin muna gamit ang `--dry-run` para matukoy ang mga conflict. ->[!NOTE] Some source-specific data (e.g., worker plots, farm plots) has no equivalent in HyperFactions and will be logged as warnings during import. +>[!NOTE] Ang ilang source-specific na data (hal., worker plots, farm plots) ay walang katumbas sa HyperFactions at ilo-log bilang mga babala sa pag-import. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md index f6dc2880..4a054379 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_maintenance/updates.md @@ -1,45 +1,45 @@ --- id: admin_updates --- -# Update Checking +# Pagsuri ng Update -HyperFactions can check for new versions and manage the HyperProtect-Mixin dependency. +Ang HyperFactions ay pwedeng magsuri ng mga bagong bersyon at pamahalaan ang HyperProtect-Mixin dependency. -## Update Commands +## Mga Update Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin update` | Check for HyperFactions updates | -| `/f admin update mixin` | Check/download HyperProtect-Mixin | -| `/f admin update toggle-mixin-download` | Toggle auto-download | -| `/f admin version` | Show current version and build info | +| `/f admin update` | Magsuri ng mga HyperFactions update | +| `/f admin update mixin` | Magsuri/mag-download ng HyperProtect-Mixin | +| `/f admin update toggle-mixin-download` | I-toggle ang auto-download | +| `/f admin version` | Ipakita ang kasalukuyang bersyon at build info | -## Release Channels +## Mga Release Channel -| Channel | Description | +| Channel | Paglalarawan | |---------|-------------| -| **Stable** | Recommended for production servers | -| **Pre-release** | Early access to upcoming features | +| **Stable** | Inirerekomenda para sa mga production server | +| **Pre-release** | Maagang access sa mga paparating na feature | ->[!INFO] The update checker only notifies about new versions. It does **not** automatically install updates to HyperFactions itself. +>[!INFO] Ang update checker ay nag-notify lang tungkol sa mga bagong bersyon. **Hindi** ito awtomatikong nag-i-install ng mga update sa HyperFactions mismo. ## HyperProtect-Mixin -HyperProtect-Mixin is the recommended protection mixin that enables advanced zone flags (explosions, fire spread, keep inventory, etc.). +Ang HyperProtect-Mixin ang inirerekomendang protection mixin na nag-e-enable ng mga advanced zone flag (explosions, fire spread, keep inventory, atbp.). -- `/f admin update mixin` checks for the latest version -and downloads it if a newer version is available -- Auto-download can be toggled on or off per server +- Sinusuri ng `/f admin update mixin` ang pinakabagong bersyon +at dini-download ito kung may mas bagong bersyon na available +- Ang auto-download ay pwedeng i-toggle on o off bawat server ->[!TIP] After downloading a new mixin version, a server restart is required for the changes to take effect. +>[!TIP] Pagkatapos mag-download ng bagong mixin version, kailangang mag-restart ng server para magkabisa ang mga pagbabago. -## Rollback Procedure +## Proseso ng Rollback -If an update causes issues: +Kung may problema ang isang update: -1. Stop the server -2. Replace the plugin JAR with the previous version -3. Start the server -4. Verify functionality with `/f admin version` +1. I-stop ang server +2. Palitan ang plugin JAR ng nakaraang bersyon +3. I-start ang server +4. I-verify ang functionality gamit ang `/f admin version` ->[!WARNING] Downgrading may require a config migration reset. Always keep backups before updating. +>[!WARNING] Ang pag-downgrade ay maaaring mangailangan ng config migration reset. Palaging panatilihin ang mga backup bago mag-update. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md index bf30a5b4..2c8a4207 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/getting_started.md @@ -1,41 +1,40 @@ --- id: admin_getting_started --- -# Getting Started as Admin +# Pagsisimula bilang Admin -Welcome to HyperFactions administration. This guide covers your first steps after installing the plugin. +Maligayang pagdating sa administrasyon ng HyperFactions. Sinasaklaw ng gabay na ito ang mga unang hakbang mo pagkatapos i-install ang plugin. -## Opening the Admin Dashboard +## Pagbukas ng Admin Dashboard `/f admin` -Opens the admin dashboard GUI with access to all management tools, zone editors, and server settings. +Binubuksan ang admin dashboard GUI na may access sa lahat ng management tool, zone editor, at server settings. ->[!INFO] You need **hyperfactions.admin.use** permission or OP status to access admin commands. +>[!INFO] Kailangan mo ng **hyperfactions.admin.use** permission o OP status para ma-access ang mga admin command. -## Requirements +## Mga Kinakailangan -- **With a permission plugin**: Grant `hyperfactions.admin.use` -- **Without a permission plugin**: The player must be a -server operator (`adminRequiresOp=true` by default) +- **May permission plugin**: Ibigay ang `hyperfactions.admin.use` +- **Walang permission plugin**: Kailangang server operator ang manlalaro (`adminRequiresOp=true` bilang default) -## First Steps After Install +## Mga Unang Hakbang Pagkatapos Mag-install -1. Run `/f admin` to verify your access -2. Open **Config** to review default faction settings -3. Create a **SafeZone** at spawn with `/f admin safezone Spawn` -4. Optionally create **WarZones** for PvP arenas -5. Review **Backup** settings to ensure data safety +1. Patakbuhin ang `/f admin` para i-verify ang access mo +2. Buksan ang **Config** para i-review ang default na faction settings +3. Gumawa ng **SafeZone** sa spawn gamit ang `/f admin safezone Spawn` +4. Opsyonal na gumawa ng mga **WarZone** para sa mga PvP arena +5. I-review ang mga **Backup** setting para masiguro ang kaligtasan ng data -## Admin Capabilities +## Mga Kakayahan ng Admin -| Area | What You Can Do | -|------|----------------| -| Factions | Inspect, modify, or force-disband any faction | -| Zones | Create SafeZones and WarZones with custom flags | -| Power | Override player/faction power values | -| Economy | Manage faction treasuries and upkeep | -| Config | Edit settings live via GUI or reload from disk | -| Backups | Create, restore, and manage data backups | -| Imports | Migrate data from other faction plugins | +| Lugar | Ano ang Pwede Mong Gawin | +|-------|-------------------------| +| Factions | Mag-inspect, mag-modify, o mag-force-disband ng kahit anong faction | +| Zones | Gumawa ng mga SafeZone at WarZone na may custom flags | +| Power | I-override ang player/faction power values | +| Economy | Pamahalaan ang mga faction treasury at upkeep | +| Config | Mag-edit ng settings nang live sa GUI o mag-reload mula sa disk | +| Backups | Gumawa, mag-restore, at mamahala ng mga data backup | +| Imports | Mag-migrate ng data mula sa ibang faction plugin | ->[!TIP] Use `/f admin --text` to get chat-based output instead of the GUI, useful for console or automation. +>[!TIP] Gamitin ang `/f admin --text` para makakuha ng chat-based output sa halip na GUI, kapaki-pakinabang para sa console o automation. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md index 979e5543..aeb09753 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_overview/permissions.md @@ -1,37 +1,37 @@ --- id: admin_permissions --- -# Admin Permissions +# Mga Admin Permission -All admin features are gated behind permission nodes in the `hyperfactions.admin` namespace. +Lahat ng admin feature ay naka-gate sa likod ng mga permission node sa `hyperfactions.admin` namespace. -## Permission Nodes +## Mga Permission Node -| Permission | Description | +| Permission | Paglalarawan | |-----------|-------------| -| `hyperfactions.admin.*` | Grants **all** admin permissions | -| `hyperfactions.admin.use` | Access `/f admin` dashboard | -| `hyperfactions.admin.reload` | Reload configuration files | -| `hyperfactions.admin.debug` | Toggle debug logging categories | -| `hyperfactions.admin.zones` | Create, edit, and delete zones | -| `hyperfactions.admin.disband` | Force-disband any faction | -| `hyperfactions.admin.modify` | Modify any faction's settings | -| `hyperfactions.admin.bypass.limits` | Bypass claim and power limits | -| `hyperfactions.admin.backup` | Create and restore backups | -| `hyperfactions.admin.power` | Override player power values | -| `hyperfactions.admin.economy` | Manage faction treasuries | +| `hyperfactions.admin.*` | Nagbibigay ng **lahat** ng admin permission | +| `hyperfactions.admin.use` | Access sa `/f admin` dashboard | +| `hyperfactions.admin.reload` | Mag-reload ng mga configuration file | +| `hyperfactions.admin.debug` | I-toggle ang mga debug logging category | +| `hyperfactions.admin.zones` | Gumawa, mag-edit, at mag-delete ng mga zone | +| `hyperfactions.admin.disband` | Mag-force-disband ng kahit anong faction | +| `hyperfactions.admin.modify` | Mag-modify ng settings ng kahit anong faction | +| `hyperfactions.admin.bypass.limits` | Mag-bypass ng claim at power limits | +| `hyperfactions.admin.backup` | Gumawa at mag-restore ng mga backup | +| `hyperfactions.admin.power` | Mag-override ng player power values | +| `hyperfactions.admin.economy` | Pamahalaan ang mga faction treasury | ## Fallback Behavior -When **no permission plugin** is installed, admin permissions fall back to server operator (OP) status. This is controlled by `adminRequiresOp` in the server config (default: `true`). +Kapag **walang naka-install na permission plugin**, ang mga admin permission ay bumabalik sa server operator (OP) status. Kontrolado ito ng `adminRequiresOp` sa server config (default: `true`). ->[!NOTE] The `hyperfactions.admin.*` wildcard grants every admin permission. Use individual nodes for granular control over your staff team. +>[!NOTE] Ang `hyperfactions.admin.*` wildcard ay nagbibigay ng bawat admin permission. Gumamit ng individual node para sa granular na kontrol sa staff team mo. -## Permission Resolution Order +## Pagkakasunud-sunod ng Permission Resolution -1. **VaultUnlocked** provider (if available) -2. **HyperPerms** provider (if available) -3. **LuckPerms** provider (if available) -4. **OP check** for admin nodes (fallback) +1. **VaultUnlocked** provider (kung available) +2. **HyperPerms** provider (kung available) +3. **LuckPerms** provider (kung available) +4. **OP check** para sa mga admin node (fallback) ->[!WARNING] Without a permission plugin and with `adminRequiresOp` disabled, admin commands are **open to all players**. Always use a permission plugin in production. +>[!WARNING] Kapag walang permission plugin at naka-disable ang `adminRequiresOp`, ang mga admin command ay **bukas sa lahat ng manlalaro**. Palaging gumamit ng permission plugin sa production. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md index b2c9f463..8939c2bd 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_commands.md @@ -1,38 +1,38 @@ --- id: admin_power_commands --- -# Power Admin Commands +# Mga Power Admin Command -Override player and faction power values. All commands require `hyperfactions.admin.power` permission. +I-override ang player at faction power values. Lahat ng command ay nangangailangan ng `hyperfactions.admin.power` permission. -## Player Power Commands +## Mga Player Power Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin power set ` | Set exact power value | -| `/f admin power add ` | Add power to player | -| `/f admin power remove ` | Remove power from player | -| `/f admin power reset ` | Reset to default starting power | -| `/f admin power info ` | View detailed power breakdown | +| `/f admin power set ` | I-set ang eksaktong power value | +| `/f admin power add ` | Magdagdag ng power sa manlalaro | +| `/f admin power remove ` | Magtanggal ng power mula sa manlalaro | +| `/f admin power reset ` | I-reset sa default na starting power | +| `/f admin power info ` | Tingnan ang detalyadong power breakdown | -## How Power Affects Factions +## Paano Naaapektuhan ng Power ang mga Faction -A faction's total power is the sum of all its members' individual power. Territory claims require sufficient total power to maintain. +Ang kabuuang power ng faction ay ang suma ng individual power ng lahat ng miyembro nito. Ang mga territory claim ay nangangailangan ng sapat na kabuuang power para ma-maintain. -| Scenario | Effect | -|----------|--------| -| Power set higher | Faction can claim more territory | -| Power set lower | Faction may become vulnerable to overclaim | -| Power reset | Returns player to default starting value | +| Senaryo | Epekto | +|---------|--------| +| Power na-set na mas mataas | Ang faction ay pwedeng mag-claim ng mas maraming teritoryo | +| Power na-set na mas mababa | Ang faction ay pwedeng maging vulnerable sa overclaim | +| Power na-reset | Binalik ang manlalaro sa default na starting value | ->[!WARNING] Lowering a player's power may cause their faction to lose territory if total power drops below the number of claimed chunks. +>[!WARNING] Ang pagbaba ng power ng isang manlalaro ay pwedeng maging sanhi ng pagkawala ng teritoryo ng kanilang faction kung bumaba ang kabuuang power sa ibaba ng bilang ng mga na-claim na chunk. -## Examples +## Mga Halimbawa -- `/f admin power set Steve 50` -- set to exactly 50 -- `/f admin power add Steve 10` -- increase by 10 -- `/f admin power remove Steve 5` -- decrease by 5 -- `/f admin power reset Steve` -- back to default -- `/f admin power info Steve` -- show full breakdown +- `/f admin power set Steve 50` -- i-set sa eksaktong 50 +- `/f admin power add Steve 10` -- dagdagan ng 10 +- `/f admin power remove Steve 5` -- bawasan ng 5 +- `/f admin power reset Steve` -- ibalik sa default +- `/f admin power info Steve` -- ipakita ang buong breakdown ->[!TIP] Use `/f admin power info ` to see current power, max power, and any active overrides before making changes. +>[!TIP] Gamitin ang `/f admin power info ` para makita ang kasalukuyang power, max power, at anumang aktibong override bago gumawa ng mga pagbabago. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md index 5469f903..48b297ac 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_power/power_overrides.md @@ -1,54 +1,54 @@ --- id: admin_power_overrides --- -# Power Overrides +# Mga Power Override -Special power commands that change how power behaves for specific players or factions. +Mga espesyal na power command na nagbabago kung paano gumagana ang power para sa mga partikular na manlalaro o faction. -## Override Commands +## Mga Override Command -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin power setmax ` | Set custom max power cap | -| `/f admin power noloss ` | Toggle death power penalty immunity | -| `/f admin power nodecay ` | Toggle offline power decay immunity | -| `/f admin power info ` | View all overrides and power details | +| `/f admin power setmax ` | I-set ang custom max power cap | +| `/f admin power noloss ` | I-toggle ang death power penalty immunity | +| `/f admin power nodecay ` | I-toggle ang offline power decay immunity | +| `/f admin power info ` | Tingnan ang lahat ng override at power details | ## Custom Max Power `/f admin power setmax ` -Sets a personal maximum power cap for the player, overriding the server default. +Nagse-set ng personal na maximum power cap para sa manlalaro, na nag-o-override ng server default. ->[!INFO] Setting a custom max does **not** change current power. It only changes the ceiling. The player must still earn power up to the new limit. +>[!INFO] Ang pagse-set ng custom max ay **hindi** nagbabago ng kasalukuyang power. Binabago lang nito ang ceiling. Kailangan pa ring kumita ng power ang manlalaro hanggang sa bagong limit. ## No-Loss Mode `/f admin power noloss ` -Toggles death power loss immunity. When enabled, the player will **not** lose power on death. +Tino-toggle ang death power loss immunity. Kapag naka-enable, ang manlalaro ay **hindi** mawawalan ng power sa pagkamatay. -Useful for: -- New player protection periods -- Event participants -- Staff members +Kapaki-pakinabang para sa: +- Mga panahon ng proteksyon ng bagong manlalaro +- Mga kalahok sa event +- Mga staff member ## No-Decay Mode `/f admin power nodecay ` -Toggles offline power decay immunity. When enabled, the player's power will **not** decrease while offline. +Tino-toggle ang offline power decay immunity. Kapag naka-enable, ang power ng manlalaro ay **hindi** bababa habang offline. -Useful for: -- Players on extended leave -- VIP members +Kapaki-pakinabang para sa: +- Mga manlalarong matagal na hindi makakapaglaro +- Mga VIP member - Seasonal protection ## Power Info `/f admin power info ` -Shows a complete breakdown: +Nagpapakita ng kumpletong breakdown: -- Current power and max power -- Active overrides (noloss, nodecay, custom max) -- Last death time and power lost -- Faction contribution percentage +- Kasalukuyang power at max power +- Mga aktibong override (noloss, nodecay, custom max) +- Huling oras ng pagkamatay at power na nawala +- Porsyento ng faction contribution ->[!TIP] All power overrides persist across server restarts and are stored in the player's data file. +>[!TIP] Lahat ng power override ay nananatili kahit mag-restart ang server at naka-store sa data file ng manlalaro. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md index bd0b0fa6..80a9c7bb 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/all_commands.md @@ -1,11 +1,11 @@ --- id: admin_quickref_commands --- -# Admin Command Reference +# Reference ng Admin Command -Complete list of all `/f admin` subcommands with syntax and required permissions. +Kumpletong listahan ng lahat ng `/f admin` subcommand na may syntax at kinakailangang permission. -## Dashboard and General +## Dashboard at Pangkalahatan | Command | Permission | |---------|-----------| @@ -15,7 +15,7 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin sync` | admin.use | | `/f admin sentry` | admin.use | -## Faction Management +## Pamamahala ng Faction | Command | Permission | |---------|-----------| @@ -25,7 +25,7 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin disband ` | admin.disband | | `/f admin log` | admin.use | -## Zone Management +## Pamamahala ng Zone | Command | Permission | |---------|-----------| @@ -40,7 +40,7 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin zone properties ` | admin.zones | | `/f admin zoneflag ` | admin.zones | -## Power and Economy +## Power at Ekonomiya | Command | Permission | |---------|-----------| @@ -62,4 +62,4 @@ Complete list of all `/f admin` subcommands with syntax and required permissions | `/f admin debug toggle ` | admin.debug | | `/f admin integration` | admin.use | ->[!NOTE] All permission nodes are prefixed with `hyperfactions.` (e.g., `hyperfactions.admin.use`). +>[!NOTE] Lahat ng permission node ay may prefix na `hyperfactions.` (hal., `hyperfactions.admin.use`). diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md index c39bfb3b..6f95a6b2 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_reference/integrations.md @@ -1,43 +1,43 @@ --- id: admin_integrations --- -# Plugin Integrations +# Mga Plugin Integration -HyperFactions integrates with several external plugins through soft dependencies. All integrations are optional and fail gracefully if unavailable. +Ang HyperFactions ay nag-i-integrate sa ilang external plugin sa pamamagitan ng mga soft dependency. Lahat ng integration ay opsyonal at gracefully na nagfa-fail kung hindi available. -## Checking Integration Status +## Pagsuri ng Integration Status `/f admin version` -Shows current version and detected integrations. +Ipinapakita ang kasalukuyang bersyon at mga na-detect na integration. `/f admin integration` -Opens the integration management panel with detailed status for each detected plugin. - -## Integration Table - -| Plugin | Type | Description | -|--------|------|-------------| -| **HyperPerms** | Permissions | Full permission system with groups, inheritance, and context | -| **LuckPerms** | Permissions | Alternative permission provider | -| **VaultUnlocked** | Permissions/Economy | Permission and economy bridge | -| **HyperProtect-Mixin** | Protection | Enables advanced zone flags (explosions, fire, keep inventory) | -| **OrbisGuard-Mixins** | Protection | Alternative mixin for zone flag enforcement | -| **PlaceholderAPI** | Placeholders | 49 faction placeholders for other plugins | -| **WiFlow PlaceholderAPI** | Placeholders | Alternative placeholder provider | -| **GravestonePlugin** | Death | Gravestone access control in zones | -| **HyperEssentials** | Features | Zone flags for homes, warps, and kits | +Binubuksan ang integration management panel na may detalyadong status para sa bawat na-detect na plugin. + +## Talahanayan ng Integration + +| Plugin | Uri | Paglalarawan | +|--------|-----|-------------| +| **HyperPerms** | Permissions | Buong permission system na may mga grupo, inheritance, at context | +| **LuckPerms** | Permissions | Alternatibong permission provider | +| **VaultUnlocked** | Permissions/Economy | Permission at economy bridge | +| **HyperProtect-Mixin** | Protection | Nag-e-enable ng mga advanced zone flag (explosions, fire, keep inventory) | +| **OrbisGuard-Mixins** | Protection | Alternatibong mixin para sa zone flag enforcement | +| **PlaceholderAPI** | Placeholders | 49 faction placeholder para sa ibang plugin | +| **WiFlow PlaceholderAPI** | Placeholders | Alternatibong placeholder provider | +| **GravestonePlugin** | Death | Gravestone access control sa mga zone | +| **HyperEssentials** | Features | Zone flags para sa homes, warps, at kits | | **KyuubiSoft Core** | Framework | Core library integration | -| **Sentry** | Monitoring | Error tracking and diagnostics | +| **Sentry** | Monitoring | Error tracking at diagnostics | -## Permission Provider Priority +## Priority ng Permission Provider -1. **VaultUnlocked** (highest priority) +1. **VaultUnlocked** (pinakamataas na priority) 2. **HyperPerms** 3. **LuckPerms** -4. **OP fallback** (if no provider found) +4. **OP fallback** (kung walang nakitang provider) ->[!INFO] Integrations are detected once at startup using reflection. Results are cached for the session. A server restart is required after adding or removing an integrated plugin. +>[!INFO] Ang mga integration ay nide-detect nang isang beses sa startup gamit ang reflection. Ang mga resulta ay naka-cache para sa session. Kailangan ng server restart pagkatapos magdagdag o magtanggal ng integrated plugin. ->[!TIP] Use `/f admin debug toggle integration` to enable detailed integration logging for troubleshooting. +>[!TIP] Gamitin ang `/f admin debug toggle integration` para mag-enable ng detalyadong integration logging para sa troubleshooting. ->[!NOTE] HyperProtect-Mixin is the **recommended** protection mixin. Without it, 15 zone flags will have no effect. +>[!NOTE] Ang HyperProtect-Mixin ang **inirerekomendang** protection mixin. Kung wala ito, 15 zone flag ang walang epekto. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md index 933a9b2d..11df95e5 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_basics.md @@ -1,43 +1,43 @@ --- id: admin_zone_basics --- -# Zone Basics +# Mga Pangunahing Kaalaman sa Zone -Zones are admin-controlled territories with custom rules that override normal faction protection. +Ang mga zone ay admin-controlled na teritoryo na may custom rules na nag-o-override ng normal na faction protection. -## Zone Types +## Mga Uri ng Zone -- **SafeZone** -- No PvP, no building, no damage. -Ideal for spawn areas and trading hubs. -- **WarZone** -- PvP always enabled, no building. -Ideal for arenas and contested battle areas. +- **SafeZone** -- Walang PvP, walang building, walang damage. +Ideal para sa mga spawn area at trading hub. +- **WarZone** -- Palaging naka-enable ang PvP, walang building. +Ideal para sa mga arena at contested battle area. -## Creating Zones +## Paggawa ng mga Zone `/f admin safezone ` -Creates a SafeZone and claims your current chunk. +Gumagawa ng SafeZone at kini-claim ang kasalukuyan mong chunk. `/f admin warzone ` -Creates a WarZone and claims your current chunk. +Gumagawa ng WarZone at kini-claim ang kasalukuyan mong chunk. -After creation, stand in additional chunks and use `/f admin zone claim ` to expand the zone. +Pagkatapos gumawa, tumayo sa mga karagdagang chunk at gamitin ang `/f admin zone claim ` para palawakin ang zone. -## Managing Zone Chunks +## Pamamahala ng mga Zone Chunk `/f admin zone claim ` -Add the current chunk to the named zone. +Idagdag ang kasalukuyang chunk sa pinangalanang zone. `/f admin zone unclaim ` -Remove the current chunk from the named zone. +Tanggalin ang kasalukuyang chunk mula sa pinangalanang zone. `/f admin zone radius ` -Claim a square of chunks around your position. +Mag-claim ng parisukat na mga chunk sa paligid ng posisyon mo. -## Deleting Zones +## Pag-delete ng mga Zone `/f admin removezone ` -Permanently deletes the zone and releases all its claimed chunks. +Permanenteng dine-delete ang zone at binibitawan ang lahat ng na-claim na chunk nito. ->[!WARNING] Deleting a zone releases all its chunks instantly. This cannot be undone without a backup restore. +>[!WARNING] Ang pag-delete ng zone ay agad na nagbibigyang-laya sa lahat ng chunk nito. Hindi ito pwedeng i-undo nang walang backup restore. ->[!INFO] Zone rules **always override** faction territory rules. A SafeZone inside enemy land is still safe. +>[!INFO] Ang mga zone rule ay **palaging nag-o-override** ng faction territory rules. Ang SafeZone sa loob ng enemy land ay ligtas pa rin. diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md index 403b6b63..12aceec6 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_commands.md @@ -1,43 +1,43 @@ --- id: admin_zone_commands --- -# Zone Command Reference +# Reference ng Zone Command -Complete reference for all zone management commands. All require `hyperfactions.admin.zones` permission. +Kumpletong reference para sa lahat ng zone management command. Lahat ay nangangailangan ng `hyperfactions.admin.zones` permission. -## Quick Creation +## Mabilis na Paggawa -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin safezone ` | Create a SafeZone at current chunk | -| `/f admin warzone ` | Create a WarZone at current chunk | -| `/f admin removezone ` | Delete a zone and release chunks | +| `/f admin safezone ` | Gumawa ng SafeZone sa kasalukuyang chunk | +| `/f admin warzone ` | Gumawa ng WarZone sa kasalukuyang chunk | +| `/f admin removezone ` | I-delete ang zone at bitawan ang mga chunk | -## Zone Management +## Pamamahala ng Zone -| Command | Description | +| Command | Paglalarawan | |---------|-------------| -| `/f admin zone create ` | Create a zone (safezone/warzone) | -| `/f admin zone delete ` | Delete a zone | -| `/f admin zone claim ` | Add current chunk to zone | -| `/f admin zone unclaim ` | Remove current chunk from zone | -| `/f admin zone radius ` | Claim square radius of chunks | -| `/f admin zone list` | List all zones with chunk counts | -| `/f admin zone notify ` | Toggle entry/leave messages | -| `/f admin zone title upper/lower ` | Set zone title text | -| `/f admin zone properties ` | Open zone properties GUI | - -## Flag Management - -| Command | Description | +| `/f admin zone create ` | Gumawa ng zone (safezone/warzone) | +| `/f admin zone delete ` | I-delete ang zone | +| `/f admin zone claim ` | Idagdag ang kasalukuyang chunk sa zone | +| `/f admin zone unclaim ` | Tanggalin ang kasalukuyang chunk mula sa zone | +| `/f admin zone radius ` | Mag-claim ng parisukat na radius ng mga chunk | +| `/f admin zone list` | Ilista ang lahat ng zone na may bilang ng chunk | +| `/f admin zone notify ` | I-toggle ang entry/leave messages | +| `/f admin zone title upper/lower ` | I-set ang zone title text | +| `/f admin zone properties ` | Buksan ang zone properties GUI | + +## Pamamahala ng Flag + +| Command | Paglalarawan | |---------|-------------| -| `/f admin zoneflag ` | Set a specific flag | +| `/f admin zoneflag ` | I-set ang isang partikular na flag | ->[!TIP] Use the zone **properties GUI** for a visual editor with toggles for every flag, organized by category. +>[!TIP] Gamitin ang zone **properties GUI** para sa visual editor na may mga toggle para sa bawat flag, naka-organisa ayon sa kategorya. -## Examples +## Mga Halimbawa -- `/f admin safezone Spawn` -- create spawn protection -- `/f admin zone radius Spawn 3` -- expand to 7x7 chunks -- `/f admin zoneflag Spawn door_use true` -- allow doors -- `/f admin zone notify Spawn true` -- show entry messages +- `/f admin safezone Spawn` -- gumawa ng spawn protection +- `/f admin zone radius Spawn 3` -- palawakin sa 7x7 chunk +- `/f admin zoneflag Spawn door_use true` -- payagan ang mga pinto +- `/f admin zone notify Spawn true` -- ipakita ang entry messages diff --git a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md index 368a4ec9..579447fc 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md +++ b/src/main/resources/Server/Languages/tl-PH/help/admin/admin_zones/zone_flags.md @@ -1,14 +1,14 @@ --- id: admin_zone_flags --- -# Zone Flags +# Mga Zone Flag -Zones support **47 boolean flags** across 10 categories. Each flag controls a specific behavior within the zone. +Ang mga zone ay sumusuporta sa **47 boolean flag** sa 10 kategorya. Bawat flag ay nagkokontrol ng partikular na gawi sa loob ng zone. -## Flag Categories Overview +## Pangkalahatang-tanaw ng mga Flag Category -| Category | Count | Key Flags | -|----------|-------|-----------| +| Kategorya | Bilang | Mga Pangunahing Flag | +|-----------|--------|---------------------| | Combat | 7 | pvp_enabled, friendly_fire, mob_damage, pve_damage | | Damage | 4 | fall_damage, explosion_damage, fire_spread | | Death | 2 | keep_inventory, power_loss | @@ -20,7 +20,7 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | Mob Clearing | 4 | mob_clear, hostile/passive/neutral clear | | Integration | 5 | gravestone_access, show_on_map, essentials_homes | -## Default Values (SafeZone vs WarZone) +## Mga Default na Halaga (SafeZone vs WarZone) | Flag | SafeZone | WarZone | |------|----------|---------| @@ -34,10 +34,10 @@ Zones support **47 boolean flags** across 10 categories. Each flag controls a sp | door_use | **true** | **true** | | container_use | false | **true** | ->[!NOTE] Some flags require **HyperProtect-Mixin** to function (e.g., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Without the mixin, these flags have no effect even when enabled. +>[!NOTE] Ang ilang flag ay nangangailangan ng **HyperProtect-Mixin** para gumana (hal., keep_inventory, explosion_damage, fire_spread, block_place, npc_tame). Kung wala ang mixin, ang mga flag na ito ay walang epekto kahit naka-enable. -## Setting Flags +## Pagse-set ng mga Flag `/f admin zoneflag ` ->[!TIP] Use `/f admin zone properties ` for a visual toggle editor grouped by category. +>[!TIP] Gamitin ang `/f admin zone properties ` para sa visual toggle editor na naka-grupo ayon sa kategorya. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/death.md b/src/main/resources/Server/Languages/tl-PH/help/combat/death.md index 8690b43a..ad8935c7 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/combat/death.md +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/death.md @@ -2,38 +2,38 @@ id: combat_death commands: home, sethome, stuck --- -# Death and Recovery +# Pagkamatay at Pagre-recover -Death carries real consequences in factions. Every death costs you personal power, weakening your faction's ability to hold territory. +Ang pagkamatay ay may totoong mga konsekwensya sa factions. Bawat pagkamatay ay nagpapalugi sa iyo ng personal power, na nagpapahina sa kakayahan ng faction mong hawakan ang teritoryo. -## Power Loss +## Pagkawala ng Power -Each death costs -1.0 power from your personal total. This lowers the faction's combined power. +Bawat pagkamatay ay nagkakahalaga ng -1.0 power mula sa iyong personal na kabuuan. Binabawasan nito ang combined power ng faction. -| Event | Power Change | -|-------|-------------| -| Death (any cause) | -1.0 | -| Online regen | +0.1 per minute | -| Combat logout | -1.0 (killed) | +| Pangyayari | Pagbabago ng Power | +|-----------|-------------------| +| Pagkamatay (kahit anong dahilan) | -1.0 | +| Online regen | +0.1 bawat minuto | +| Combat logout | -1.0 (pinatay) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. -## Example Scenarios +## Mga Halimbawang Senaryo -*5 members at 10.0 power each = 50 total, 20 claims.* -*One member dies twice: 8.0 power, faction total 48.* -*Three members die once each: total drops to 47.* +*5 miyembro na may 10.0 power bawat isa = 50 kabuuan, 20 claim.* +*Isang miyembro ay namatay ng dalawang beses: 8.0 power, faction total 48.* +*Tatlong miyembro ay namatay nang tig-iisa: bumaba ang kabuuan sa 47.* ->[!WARNING] If your faction power drops below your claim count, enemies can overclaim your territory. +>[!WARNING] Kung bumaba ang faction power mo sa ibaba ng claim count mo, pwedeng mag-overclaim ng teritoryo mo ang mga kaaway. -## Recovery +## Pagre-recover -Power regenerates at 0.1 per minute while online. Recovering 1.0 lost power takes about 10 minutes. Multiple deaths stack, so avoid repeated fights. +Ang power ay nagre-regenerate sa 0.1 bawat minuto habang online. Ang pagre-recover ng 1.0 na nawala ay tumatagal ng mga 10 minuto. Nagsasama-sama ang mga sunud-sunod na pagkamatay, kaya iwasan ang paulit-ulit na away. --- -## All Death Types +## Lahat ng Uri ng Pagkamatay -Power loss applies to all deaths: PvP, mob kills, fall damage, drowning, and any other cause. There is no safe way to die. +Ang power loss ay umaaplay sa lahat ng pagkamatay: PvP, napatay ng mob, pagbagsak, pagkalunod, at kahit anong ibang dahilan. Walang ligtas na paraan para mamatay. ->[!TIP] Set a faction home with /f sethome so members can regroup quickly after dying. +>[!TIP] Mag-set ng faction home gamit ang /f sethome para mabilis na magsama-sama ulit ang mga miyembro pagkatapos mamatay. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md b/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md index e564ec2d..4bc1ac9b 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/protection.md @@ -1,28 +1,28 @@ --- id: combat_protection --- -# Territory Protection +# Proteksyon ng Teritoryo -Claimed territory provides several layers of defense for your faction's builds and resources. +Ang na-claim na teritoryo ay nagbibigay ng ilang layer ng depensa para sa mga build at resource ng faction mo. -## Block Protection +## Proteksyon ng Block -Only faction members can place or break blocks in your territory. Enemies and neutrals are blocked from modifying anything. +Tanging mga faction member lamang ang pwedeng mag-place o mag-break ng mga block sa iyong teritoryo. Ang mga kaaway at neutral ay naka-block mula sa pag-modify ng kahit ano. -## Container Protection +## Proteksyon ng Container -Chests, barrels, and other containers are secured. Only your faction members can open or interact with storage in claimed chunks. +Ang mga chest, barrel, at ibang container ay secured. Tanging mga faction member mo lamang ang pwedeng mag-bukas o mag-interact sa storage sa mga na-claim na chunk. -## Entry Alerts +## Mga Alerto sa Pagpasok -When a non-member enters your claimed territory, online faction members receive a notification with the intruder's name and location. +Kapag may non-member na pumasok sa iyong na-claim na teritoryo, ang mga online faction member ay makakatanggap ng notification na may pangalan at lokasyon ng intruder. --- ## Ally Access -Allies cannot build or break blocks in your territory by default. Ally damage is also disabled, so allied players cannot harm each other. +Ang mga ally ay hindi pwedeng mag-build o mag-break ng mga block sa iyong teritoryo bilang default. Ang ally damage ay naka-disable din, kaya hindi pwedeng magkasaktan ang mga allied manlalaro. ->[!INFO] Territory protects blocks, not players. PvP in your own territory depends on the attacker's relation to your faction. +>[!INFO] Ang teritoryo ay nagpoprotekta ng mga block, hindi ng mga manlalaro. Ang PvP sa sarili mong teritoryo ay depende sa relasyon ng attacker sa faction mo. ->[!TIP] Keep your claims connected and avoid isolated chunks that are harder to defend. +>[!TIP] Panatilihing konektado ang mga claim mo at iwasan ang mga isoladong chunk na mas mahirap depensahan. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md b/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md index f0b2ab76..43fa561e 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/spawn_protection.md @@ -3,25 +3,25 @@ id: combat_spawn_protection --- # Spawn Protection -After respawning from death, you receive temporary protection to prevent spawn camping. +Pagkatapos mag-respawn mula sa pagkamatay, makakatanggap ka ng pansamantalang proteksyon para mapigilan ang spawn camping. -## How It Works +## Paano Ito Gumagana -- Protection lasts 5 seconds after respawn -- You cannot take damage during this period -- A visual indicator shows your protected status +- Ang proteksyon ay tumatagal ng 5 segundo pagkatapos mag-respawn +- Hindi ka pwedeng masugatan sa panahong ito +- May visual indicator na nagpapakita ng protected status mo -## Protection Breaks +## Nawawala ang Proteksyon -Spawn protection ends early if you: +Magtatapos nang maaga ang spawn protection kung: -- Attack another player or entity -- Move from your spawn position +- Umatake ka sa ibang manlalaro o entity +- Umalis ka sa iyong spawn position -This prevents abuse. You cannot attack others while invulnerable. Once you take any action, protection drops and normal combat rules apply. +Pinipigilan nito ang pang-aabuso. Hindi ka pwedeng umatake ng iba habang invulnerable ka. Kapag gumawa ka ng kahit anong aksyon, mawawala ang proteksyon at ang normal na combat rules ang susundin. --- ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. ->[!TIP] Use your protection time to assess the situation before moving. +>[!TIP] Gamitin ang protection time mo para suriin ang sitwasyon bago gumalaw. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md b/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md index e45cbdb3..80fde0a7 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/tagging.md @@ -3,27 +3,27 @@ id: combat_tagging --- # Combat Tagging -When you attack or are attacked by another player, you become combat tagged for 15 seconds. +Kapag umatake ka o inaatake ka ng ibang manlalaro, nagiging combat tagged ka ng 15 segundo. -## While Tagged +## Habang Naka-tag -- No /f home or /f stuck teleports -- No server teleport commands -- Tag resets with each new combat action -- A timer displays your remaining tag duration +- Walang /f home o /f stuck teleport +- Walang server teleport command +- Nagre-reset ang tag sa bawat bagong combat action +- Ipinapakita ng timer ang natitirang tag duration mo --- -## Logout Penalty +## Parusa sa Logout ->[!WARNING] Logging out while combat tagged kills your character and you lose 1.0 power. +>[!WARNING] Ang pag-logout habang naka-combat tag ay papatay sa character mo at mawawalan ka ng 1.0 power. -Your items drop where you disconnected and enemies can loot them. Always wait for the tag to expire. +Mahuhulog ang mga item mo kung saan ka nagdisconnect at pwedeng looting ng mga kaaway. Palaging hintaying mag-expire ang tag. -## How the Timer Works +## Paano Gumagana ang Timer -The combat tag timer appears on screen when you enter combat. Every new hit resets it to 15 seconds. Once it reaches zero, all restrictions are lifted. +Lumilitaw ang combat tag timer sa screen kapag pumasok ka sa labanan. Bawat bagong hit ay nagre-reset nito sa 15 segundo. Kapag naabot ang zero, matatanggal ang lahat ng restriction. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. ->[!TIP] Disengage and wait out the timer if you need to teleport. +>[!TIP] Mag-disengage at hintayin ang timer kung kailangan mong mag-teleport. diff --git a/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md b/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md index d1d957d2..39995456 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md +++ b/src/main/resources/Server/Languages/tl-PH/help/combat/zones.md @@ -1,29 +1,29 @@ --- id: combat_zones --- -# Special Zones +# Mga Espesyal na Zone -Admins can designate areas with special rules that override normal faction territory protection. +Ang mga admin ay pwedeng mag-designate ng mga lugar na may espesyal na rules na nag-o-override ng normal na faction territory protection. ## SafeZone -No PvP damage, no block breaking by non-admins. Ideal for spawn areas, trading hubs, and event staging areas. Players cannot be harmed here. +Walang PvP damage, walang block breaking ng mga non-admin. Ideal para sa mga spawn area, trading hub, at event staging area. Hindi pwedeng masaktan ang mga manlalaro dito. ## WarZone -PvP is always enabled. No block protection applies. Open battle areas where anything goes. You receive no territory protection benefits in a WarZone. +Palaging naka-enable ang PvP. Walang block protection. Bukas na lugar ng labanan kung saan pwede ang lahat. Walang territory protection benefit na matatanggap mo sa isang WarZone. --- -## Zone Comparison +## Paghahambing ng mga Zone | Feature | SafeZone | WarZone | Faction Land | |---------|----------|---------|--------------| -| PvP | Disabled | Always On | Relation-based | -| Block Break | Disabled | Allowed | Members Only | -| Containers | Protected | Open | Members Only | -| Best For | Spawn/Trade | Arenas | Bases | +| PvP | Naka-disable | Palaging Naka-on | Batay sa relasyon | +| Block Break | Naka-disable | Pwede | Mga Miyembro Lamang | +| Mga Container | Protektado | Bukas | Mga Miyembro Lamang | +| Pinakamainam Para Sa | Spawn/Trade | Arena | Mga Base | ->[!NOTE] Zone rules always override faction territory rules. A claimed chunk inside a WarZone follows WarZone rules. +>[!NOTE] Palaging nag-o-override ang zone rules sa faction territory rules. Ang isang na-claim na chunk sa loob ng WarZone ay sumusunod sa WarZone rules. ->[!TIP] Check your territory map with /f map to see zone boundaries. +>[!TIP] Suriin ang territory map mo gamit ang /f map para makita ang mga hangganan ng zone. diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md index 45da7756..b231612b 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/alliances.md @@ -2,44 +2,44 @@ id: diplomacy_alliances commands: ally --- -# Forming Alliances +# Pagbuo ng mga Alyansa -Alliances are mutual agreements between two factions that provide protection and cooperation benefits. +Ang mga alyansa ay mutual agreement sa pagitan ng dalawang faction na nagbibigay ng proteksyon at mga benepisyo ng kooperasyon. --- -## How to Form an Alliance +## Paano Bumuo ng Alyansa `/f ally ` -Sends an alliance request to the target faction. The alliance only takes effect once both sides agree. An Officer or Leader from the other faction must also run the same command targeting your faction to confirm. +Nagpapadala ng alliance request sa target na faction. Ang alyansa ay magkakabisa lamang kapag sumang-ayon ang dalawang panig. Ang isang Officer o Leader mula sa kabilang faction ay kailangan ding mag-run ng parehong command na naka-target sa iyong faction para ma-confirm. -## How to Break an Alliance +## Paano Sirain ang Alyansa `/f neutral ` -Either side can unilaterally end an alliance by resetting the relation to neutral. +Kahit sinong panig ay pwedeng unilateral na tapusin ang alyansa sa pamamagitan ng pag-reset ng relasyon sa neutral. --- -## Alliance Benefits +## Mga Benepisyo ng Alyansa -| Benefit | Details | -|---------|---------| -| No friendly fire | Allied players cannot damage each other | -| Shared map visibility | Allied territory shows in blue on the territory map | -| Territory interaction | Allies can use doors, seats, and transport in your territory | -| Ally chat | Cycle to ally chat mode for cross-faction communication | -| Overclaim protection | Allies cannot overclaim each other's territory | +| Benepisyo | Mga Detalye | +|-----------|-------------| +| Walang friendly fire | Hindi pwedeng magkasaktan ang mga allied manlalaro | +| Shared map visibility | Ang allied territory ay lumalabas na asul sa territory map | +| Territory interaction | Ang mga ally ay pwedeng gumamit ng mga pinto, upuan, at transport sa iyong teritoryo | +| Ally chat | Mag-cycle sa ally chat mode para sa cross-faction na komunikasyon | +| Overclaim protection | Hindi pwedeng mag-overclaim ng teritoryo ng isa't isa ang mga ally | ->[!NOTE] Your faction can have up to 10 alliances at a time. Choose your allies wisely. +>[!NOTE] Ang faction mo ay pwedeng magkaroon ng hanggang 10 alyansa sa isang pagkakataon. Piliin nang mabuti ang mga ally mo. --- -## Alliance Etiquette +## Etiketa sa Alyansa ->[!TIP] Communication is key. Before sending an alliance request, consider reaching out to the other faction's leader to discuss terms. A strong alliance is built on mutual benefit, not just convenience. +>[!TIP] Mahalaga ang komunikasyon. Bago magpadala ng alliance request, pag-isipang makipag-ugnayan sa leader ng kabilang faction para mag-usap tungkol sa mga tuntunin. Ang matibay na alyansa ay natatayo sa mutual benefit, hindi lang sa convenience. -- Alliances work both ways -- if you benefit from protection, your allies expect the same -- Breaking an alliance during wartime may damage your faction's reputation -- Allied factions can coordinate territory claims to create defensible borders +- Ang mga alyansa ay gumagana sa dalawang daan -- kung nakikinabang ka sa proteksyon, inaasahan ng mga ally mo ang pareho +- Ang pagsira ng alyansa habang may giyera ay pwedeng makasira sa reputasyon ng faction mo +- Ang mga allied faction ay pwedeng mag-coordinate ng mga territory claim para gumawa ng depensible na mga hangganan diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md index 70688ad4..9167fa21 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/enemies.md @@ -2,46 +2,46 @@ id: diplomacy_enemies commands: enemy, neutral --- -# Enemy Factions +# Mga Enemy Faction -Declaring an enemy is a one-way action that immediately enables PvP and territorial aggression against the target faction. No agreement is required. +Ang pagdedeklara ng kaaway ay isang one-way na aksyon na agad na nag-e-enable ng PvP at territorial aggression laban sa target na faction. Hindi kailangan ng kasunduan. --- -## Declaring an Enemy +## Pagdedeklara ng Kaaway `/f enemy ` -Instantly marks the target faction as your enemy. This takes effect immediately -- no confirmation from the other side is needed. Requires Officer rank or higher. +Agad na mina-mark ang target na faction bilang iyong kaaway. Agad itong magkakabisa -- hindi kailangan ng confirmation mula sa kabilang panig. Kailangan ng Officer rank o mas mataas pa. -## Resetting to Neutral +## Pag-reset sa Neutral `/f neutral ` -Ends the enemy status and resets the relation to neutral. This also requires Officer+ and takes effect immediately. +Tinatapos ang enemy status at nire-reset ang relasyon sa neutral. Kailangan din ito ng Officer+ at agad na magkakabisa. --- -## What Enemy Status Enables +## Ano ang Na-enable ng Enemy Status -| Effect | Details | -|--------|---------| -| PvP in territory | Full PvP is enabled in both factions' territory | -| Overclaiming | You can overclaim their chunks if they are in a power deficit | -| Map marking | Enemy territory shows in red on the territory map | -| No protection | Standard territory protection does not prevent enemy PvP | +| Epekto | Mga Detalye | +|--------|-------------| +| PvP sa teritoryo | Buong PvP ang naka-enable sa teritoryo ng parehong faction | +| Overclaiming | Pwede mong i-overclaim ang mga chunk nila kung nasa power deficit sila | +| Map marking | Ang enemy territory ay lumalabas na pula sa territory map | +| Walang proteksyon | Hindi pinipigilan ng standard territory protection ang enemy PvP | ->[!WARNING] Declaring an enemy is a serious decision. Their members can also fight you in your own territory once you declare. +>[!WARNING] Ang pagdedeklara ng kaaway ay isang seryosong desisyon. Ang mga miyembro nila ay pwede ring lumaban sa iyo sa sarili mong teritoryo kapag nagdeklara ka. --- -## Strategic Considerations +## Mga Estratehikong Pagsasaalang-alang -- Enemy declarations are one-way -- you can declare without their consent, but they also see you as hostile -- Before declaring, check the target's power with /f info. If they are strong, you may lose territory instead -- Weaken enemies through repeated combat to drain their power, then overclaim their land -- There is no limit to how many enemies you can have, but fighting on multiple fronts is risky +- Ang mga deklarasyon ng kaaway ay one-way -- pwede kang magdeklara nang walang pahintulot nila, pero nakikita ka rin nilang hostile +- Bago magdeklara, suriin ang power ng target gamit ang /f info. Kung malakas sila, baka ikaw ang mawalan ng teritoryo +- Pahinain ang mga kaaway sa pamamagitan ng paulit-ulit na labanan para maubos ang power nila, pagkatapos ay i-overclaim ang lupa nila +- Walang limitasyon sa kung ilang kaaway ang pwede mong gawin, pero mapanganib ang paglaban sa maraming prente ->[!TIP] Use /f neutral to de-escalate conflicts. Sometimes a strategic peace is more valuable than continued war. +>[!TIP] Gamitin ang /f neutral para mag-de-escalate ng mga gulo. Minsan mas mahalaga ang estratehikong kapayapaan kaysa sa patuloy na giyera. ->[!NOTE] If you are allied with a faction and declare them as an enemy, the alliance is broken first. +>[!NOTE] Kung ikaw ay allied sa isang faction at idedeklara mo sila bilang kaaway, masisira muna ang alyansa. diff --git a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md index 89711eee..2533b9cf 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md +++ b/src/main/resources/Server/Languages/tl-PH/help/diplomacy/relations.md @@ -2,37 +2,37 @@ id: diplomacy_relations commands: relations --- -# Faction Relations +# Mga Relasyon ng Faction -Every pair of factions has a diplomatic relation that determines how they interact. There are three states: Ally, Enemy, and Neutral. +Bawat pares ng faction ay may diplomatic relation na nagdedetermina kung paano sila mag-interact. May tatlong estado: Ally, Enemy, at Neutral. --- -## Relation Comparison +## Paghahambing ng mga Relasyon -| Effect | Ally | Neutral | Enemy | +| Epekto | Ally | Neutral | Enemy | |--------|------|---------|-------| -| PvP in territory | Disabled | Standard rules | Enabled | -| Territory protection | Mutual protection | Standard protection | Can overclaim if weakened | -| Friendly fire | Disabled | N/A | Enabled everywhere | -| Map color | Blue | Gray | Red | -| How to set | Mutual agreement | Default state | One-way declaration | -| Chat access | Ally chat channel | None | None | +| PvP sa teritoryo | Naka-disable | Standard rules | Naka-enable | +| Territory protection | Mutual protection | Standard protection | Pwedeng mag-overclaim kung humina | +| Friendly fire | Naka-disable | N/A | Naka-enable kahit saan | +| Kulay sa map | Asul | Kulay-abo | Pula | +| Paano i-set | Mutual agreement | Default na estado | One-way na deklarasyon | +| Chat access | Ally chat channel | Wala | Wala | --- -## Viewing Relations +## Pagtingin ng mga Relasyon `/f relations` -Shows all your current alliances, enemies, and any pending alliance requests. +Ipinapakita ang lahat ng kasalukuyan mong mga alyansa, kaaway, at anumang pending alliance request. -## How Relations Work +## Paano Gumagana ang mga Relasyon -- Neutral is the default state between all factions. Standard server rules apply. -- Alliance requires both factions to agree. Either side can break it unilaterally. -- Enemy is declared one-way. No agreement needed -- the other faction is immediately marked as your enemy. +- Ang Neutral ang default na estado sa pagitan ng lahat ng faction. Standard server rules ang inaapply. +- Ang Alliance ay nangangailangan na sumang-ayon ang dalawang faction. Kahit sinong panig ay pwedeng sirain ito nang unilateral. +- Ang Enemy ay idedeklara nang one-way. Hindi kailangan ng kasunduan -- agad na mina-mark ang kabilang faction bilang iyong kaaway. ->[!INFO] Relations are managed by Officers and Leaders. Members can view relations but cannot change them. +>[!INFO] Ang mga relasyon ay pinapamahalaan ng mga Officer at Leader. Ang mga Member ay pwedeng tumingin ng mga relasyon pero hindi ito pwedeng baguhin. ->[!TIP] Use /f relations regularly to keep track of the diplomatic landscape. Knowing who your enemies are helps you prepare for territorial conflicts. +>[!TIP] Regular na gamitin ang /f relations para masubaybayan ang diplomatic landscape. Ang pag-alam kung sino ang mga kaaway mo ay tumutulong sa iyo na maghanda para sa mga territorial conflict. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md b/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md index 020190cd..ce221ab1 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/commands.md @@ -1,27 +1,27 @@ --- id: economy_commands --- -# Economy Commands +# Mga Command ng Ekonomiya -Quick reference for all faction economy commands. +Mabilis na reference para sa lahat ng faction economy command. -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f balance | View treasury balance | Any | -| /f deposit (amount) | Deposit into treasury | Any | -| /f withdraw (amount) | Withdraw from treasury | Officer+ | -| /f money transfer (faction) (amount) | Transfer to another faction | Officer+ | -| /f money log [page] | View transaction history | Officer+ | +| /f balance | Tingnan ang treasury balance | Kahit sino | +| /f deposit (amount) | Mag-deposit sa treasury | Kahit sino | +| /f withdraw (amount) | Mag-withdraw mula sa treasury | Officer+ | +| /f money transfer (faction) (amount) | Mag-transfer sa ibang faction | Officer+ | +| /f money log [page] | Tingnan ang transaction history | Officer+ | --- -## Command Aliases +## Mga Command Alias -- /f balance can also be used as /f bal -- /f deposit and /f withdraw accept decimal amounts +- /f balance ay pwede ring gamitin bilang /f bal +- /f deposit at /f withdraw ay tumatanggap ng decimal amount -## Role Requirements +## Mga Kinakailangan sa Role -Withdraw and transfer commands are restricted to Officers and Leaders. All other economy commands are available to any faction member. +Ang withdraw at transfer command ay limitado sa mga Officer at Leader. Lahat ng ibang economy command ay available sa kahit sinong faction member. ->[!TIP] Use /f money log to review recent deposits, withdrawals, and transfers with timestamps. +>[!TIP] Gamitin ang /f money log para i-review ang mga kamakailang deposit, withdrawal, at transfer na may mga timestamp. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md b/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md index 4fe4539c..0b94c3e6 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/funds.md @@ -2,41 +2,41 @@ id: economy_funds commands: deposit, withdraw --- -# Managing Funds +# Pamamahala ng Pondo -Faction members work together to keep the treasury funded through deposits, withdrawals, and transfers. +Ang mga faction member ay nagtutulungan para mapanatiling may pondo ang treasury sa pamamagitan ng mga deposit, withdrawal, at transfer. -## Depositing +## Pagde-deposit -Any member can deposit personal funds into the faction treasury. +Kahit sinong miyembro ay pwedeng mag-deposit ng personal na pondo sa faction treasury. `/f deposit ` -Deposit from your personal balance into the treasury. +Mag-deposit mula sa personal balance mo papunta sa treasury. -## Withdrawing +## Pag-withdraw -Officers and the Leader can withdraw funds back to their personal balance. +Ang mga Officer at ang Leader ay pwedeng mag-withdraw ng pondo pabalik sa kanilang personal na balance. `/f withdraw ` -Withdraw from the treasury to your balance. (Officer+) +Mag-withdraw mula sa treasury papunta sa balance mo. (Officer+) -## Transferring +## Pag-transfer -Officers can transfer funds directly between faction treasuries for trade deals or diplomacy. +Ang mga Officer ay pwedeng mag-transfer ng pondo nang direkta sa pagitan ng mga faction treasury para sa mga trade deal o diplomasya. `/f money transfer ` -Send funds to another faction's treasury. (Officer+) +Magpadala ng pondo sa treasury ng ibang faction. (Officer+) --- -## Fees +## Mga Bayarin -| Transaction | Fee | -|------------|-----| +| Transaksyon | Bayarin | +|------------|---------| | Deposit | 0% | | Withdraw | 0% | | Transfer | 0% | ->[!INFO] Fee rates are configurable by the server and may differ from defaults shown above. +>[!INFO] Ang mga rate ng bayarin ay configurable ng server at maaaring magkaiba sa mga default na ipinapakita sa itaas. ->[!TIP] All transactions are logged. Use /f money log to review recent activity. +>[!TIP] Lahat ng transaksyon ay naka-log. Gamitin ang /f money log para i-review ang kamakailang aktibidad. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md b/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md index e4e7307b..5d56335d 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/treasury.md @@ -4,23 +4,23 @@ commands: balance --- # Faction Treasury -Every faction has a shared treasury that serves as the faction's bank. Funds are used for upkeep costs, territory maintenance, and faction operations. +Bawat faction ay may shared treasury na nagsisilbing bangko ng faction. Ang mga pondo ay ginagamit para sa mga upkeep cost, territory maintenance, at faction operations. ## Starting Balance -New factions start with 0 in their treasury. Members must deposit funds to build up reserves. +Ang mga bagong faction ay nagsisimula sa 0 sa kanilang treasury. Kailangan ng mga miyembro na mag-deposit ng pondo para bumuo ng mga reserba. -## Who Can Manage +## Sino ang Pwedeng Mamahala -- Any member can deposit funds -- Officers and Leader can withdraw and transfer -- Leader has full treasury control +- Kahit sinong miyembro ay pwedeng mag-deposit ng pondo +- Ang mga Officer at Leader ay pwedeng mag-withdraw at mag-transfer +- Ang Leader ay may buong kontrol sa treasury --- `/f balance` -Check your faction's current treasury balance. Also available as /f bal. +Suriin ang kasalukuyang treasury balance ng faction mo. Available din bilang /f bal. ->[!TIP] Contribute regularly to keep your faction funded. Territory upkeep costs can drain an empty treasury quickly. +>[!TIP] Mag-ambag nang regular para mapanatiling may pondo ang faction mo. Ang mga territory upkeep cost ay pwedeng mabilis na maubos ang walang laman na treasury. ->[!INFO] All treasury transactions are logged and can be reviewed by officers. +>[!INFO] Lahat ng treasury transaction ay naka-log at pwedeng i-review ng mga officer. diff --git a/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md b/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md index 8a2d12e4..0077655a 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md +++ b/src/main/resources/Server/Languages/tl-PH/help/economy/upkeep.md @@ -3,35 +3,35 @@ id: economy_upkeep --- # Territory Upkeep -Factions must pay ongoing upkeep to maintain their claimed territory. This prevents land hoarding and keeps the map dynamic. +Kailangang magbayad ng patuloy na upkeep ang mga faction para ma-maintain ang kanilang na-claim na teritoryo. Pinipigilan nito ang land hoarding at pinapanatiling dynamic ang map. -## Upkeep Costs +## Mga Gastos sa Upkeep | Setting | Default | |---------|---------| -| Cost per chunk | 2.0 per cycle | -| Payment interval | Every 24 hours | -| Free chunks | 3 (no cost) | +| Gastos bawat chunk | 2.0 bawat cycle | +| Pagitan ng bayad | Bawat 24 oras | +| Libreng chunk | 3 (walang gastos) | | Scaling mode | Flat rate | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. -Your first 3 chunks are free. Beyond that, each additional claimed chunk costs 2.0 per payment cycle. +Ang unang 3 chunk mo ay libre. Lagpas doon, bawat karagdagang na-claim na chunk ay nagkakahalaga ng 2.0 bawat payment cycle. ## Auto-Pay -Auto-pay is enabled by default. The system automatically deducts upkeep from your treasury at each interval. No manual action needed. +Naka-enable ang auto-pay bilang default. Awtomatikong ibinabawas ng sistema ang upkeep mula sa treasury mo sa bawat interval. Walang manual na aksyon ang kailangan. --- ## Grace Period -If your treasury cannot cover upkeep, a 48-hour grace period begins. A warning is sent 6 hours before claims start being lost. +Kung hindi kayang bayaran ng treasury mo ang upkeep, magsisimula ang 48-oras na grace period. May ipapadala na babala 6 oras bago magsimulang mawala ang mga claim. ->[!WARNING] If upkeep remains unpaid after the grace period, your faction loses 1 claim per cycle until costs are covered or all extra claims are gone. +>[!WARNING] Kung hindi pa rin nababayaran ang upkeep pagkatapos ng grace period, mawawalan ang faction mo ng 1 claim bawat cycle hanggang sa mabayaran ang mga gastos o mawala ang lahat ng extra claim. -## Example +## Halimbawa -*A faction with 8 claims pays for 5 chunks (8 minus 3 free). At 2.0 per chunk, that is 10.0 per cycle.* +*Ang faction na may 8 claim ay nagbabayad para sa 5 chunk (8 minus 3 libre). Sa 2.0 bawat chunk, iyon ay 10.0 bawat cycle.* ->[!TIP] Keep your treasury funded above your upkeep cost. Use /f balance to check your reserves. +>[!TIP] Panatilihing may pondo ang treasury mo na mas mataas sa upkeep cost mo. Gamitin ang /f balance para suriin ang mga reserba mo. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md index f70427cb..055d3a1f 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/claiming.md @@ -2,49 +2,49 @@ id: power_claiming commands: claim, unclaim --- -# Claiming Territory +# Pag-claim ng Teritoryo -Claiming a chunk protects it under your faction's control. Only faction members can build, break, or access containers inside claimed territory. +Ang pag-claim ng chunk ay pinoprotektahan ito sa ilalim ng kontrol ng faction mo. Tanging mga faction member lamang ang pwedeng mag-build, mag-break, o mag-access ng mga container sa loob ng na-claim na teritoryo. --- -## How to Claim +## Paano Mag-claim `/f claim` -Stand in the chunk you want to claim and run this command. The chunk is immediately protected. Requires Officer rank or higher. +Tumayo sa chunk na gusto mong i-claim at patakbuhin ang command na ito. Agad na mapoprotektahan ang chunk. Kailangan ng Officer rank o mas mataas pa. -## How to Unclaim +## Paano Mag-unclaim `/f unclaim` -Releases the chunk you are standing in back to wilderness. Also requires Officer+. +Binibitawan ang chunk kung saan ka nakatayo pabalik sa wilderness. Kailangan din ng Officer+. --- -## Claim Rules +## Mga Patakaran sa Pag-claim -| Rule | Default | -|------|---------| -| Power cost per claim | 2.0 power | -| Maximum claims | 100 per faction | -| Adjacent only | No (you can claim anywhere) | +| Patakaran | Default | +|-----------|---------| +| Power cost bawat claim | 2.0 power | +| Maximum claims | 100 bawat faction | +| Katabing chunk lang | Hindi (pwede kang mag-claim kahit saan) | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. ->[!INFO] Each claim costs 2.0 power to maintain. A faction with 50 total power can hold up to 25 claims safely. +>[!INFO] Bawat claim ay nagkakahalaga ng 2.0 power para ma-maintain. Ang faction na may 50 kabuuang power ay pwedeng humawak ng hanggang 25 claim nang ligtas. --- -## What Protection Provides +## Ano ang Proteksyon na Ibinibigay -Inside claimed territory, the following is enforced by default: +Sa loob ng na-claim na teritoryo, ang sumusunod ay ipinapatupad bilang default: -- Outsiders cannot break, place, or interact with blocks -- Allies can use doors, seats, and transport but cannot break or place blocks -- Members and Officers have full access to build, break, and use everything -- Container access (chests, crates) is restricted to members only +- Hindi pwedeng mag-break, mag-place, o mag-interact sa mga block ang mga outsider +- Ang mga ally ay pwedeng gumamit ng mga pinto, upuan, at transport pero hindi pwedeng mag-break o mag-place ng mga block +- Ang mga Member at Officer ay may buong access para mag-build, mag-break, at gumamit ng lahat +- Ang container access (mga chest, crate) ay limitado sa mga miyembro lamang ->[!TIP] You can also claim directly from the territory map. Open /f map and click on unclaimed chunks to claim them. +>[!TIP] Pwede ka ring mag-claim nang direkta mula sa territory map. Buksan ang /f map at i-click ang mga unclaimed chunk para i-claim sila. ->[!WARNING] Do not over-expand. If your faction loses power through deaths, claims beyond your power budget become vulnerable to overclaiming. +>[!WARNING] Huwag mag-over-expand. Kung mawalan ng power ang faction mo dahil sa mga pagkamatay, ang mga claim na lagpas sa power budget mo ay magiging vulnerable sa overclaiming. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md index ea39186b..7fc1b5c8 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/losing_territory.md @@ -2,49 +2,49 @@ id: power_losing commands: overclaim --- -# Losing Territory +# Pagkawala ng Teritoryo -When a faction's total power drops below the cost of its claims, it becomes raidable. Enemies can overclaim chunks right out from under you. +Kapag ang kabuuang power ng faction ay bumaba sa ibaba ng halaga ng mga claim nito, nagiging raidable ito. Pwedeng mag-overclaim ng mga chunk ang mga kaaway nang direkta mula sa ilalim mo. --- -## How Overclaiming Works +## Paano Gumagana ang Overclaiming `/f overclaim` -An Officer or Leader from an enemy faction stands in your claimed chunk and runs this command. If your faction is in a power deficit, the chunk transfers to their faction. +Ang isang Officer o Leader mula sa isang enemy faction ay tumatayo sa iyong na-claim na chunk at pinapatakbo ang command na ito. Kung ang faction mo ay nasa power deficit, ililipat ang chunk sa kanilang faction. -## The Math +## Ang Pagkalkula -Each claim costs 2.0 power to maintain. If your total power falls below that threshold, the deficit chunks are vulnerable. +Bawat claim ay nagkakahalaga ng 2.0 power para ma-maintain. Kung ang kabuuang power mo ay bumaba sa ibaba ng threshold na iyon, ang mga deficit chunk ay vulnerable. ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. ->[!WARNING] Overclaiming is permanent. Once an enemy takes a chunk, you must reclaim it (or overclaim it back if they weaken). +>[!WARNING] Ang overclaiming ay permanente. Kapag nakuha na ng kaaway ang isang chunk, kailangan mong i-reclaim ito (o i-overclaim pabalik kung humina sila). --- -## Example Scenario +## Halimbawang Senaryo -| Factor | Value | -|--------|-------| -| Members | 5 players | -| Power per member | 10 each (starting) | -| Total power | 50 | -| Claims | 30 chunks | -| Power needed (30 x 2.0) | 60 | -| Deficit | 10 power short | +| Salik | Halaga | +|-------|--------| +| Mga Miyembro | 5 manlalaro | +| Power bawat miyembro | 10 bawat isa (simula) | +| Kabuuang power | 50 | +| Mga Claim | 30 chunk | +| Power na kailangan (30 x 2.0) | 60 | +| Deficit | Kulang ng 10 power | -In this example, the faction is already raidable from the start. Enemies could overclaim up to 5 chunks (10 deficit / 2.0 per claim) before the faction reaches equilibrium. +Sa halimbawang ito, raidable na ang faction sa simula pa lang. Pwedeng mag-overclaim ang mga kaaway ng hanggang 5 chunk (10 deficit / 2.0 bawat claim) bago maabot ng faction ang equilibrium. --- -## How to Prevent Overclaiming +## Paano Mapigilan ang Overclaiming -- Do not over-expand -- always keep total power above your claim cost with a buffer -- Stay active -- power only regenerates while online (+0.1/min) -- Avoid unnecessary deaths -- each death costs 1.0 power -- Recruit more members -- more players means more total power -- Unclaim unused chunks -- free up power with /f unclaim +- Huwag mag-over-expand -- palaging panatilihing mas mataas ang kabuuang power sa halaga ng claim mo na may buffer +- Manatiling aktibo -- ang power ay nagre-regenerate lang habang online (+0.1/min) +- Iwasan ang mga hindi kinakailangang pagkamatay -- bawat pagkamatay ay nagkakahalaga ng 1.0 power +- Mag-recruit ng mas maraming miyembro -- mas maraming manlalaro ay mas maraming kabuuang power +- I-unclaim ang mga hindi ginagamit na chunk -- i-free up ang power gamit ang /f unclaim ->[!TIP] Check your power status regularly with /f power. If your total power is close to your claim cost, consider unclaiming less important chunks before a war. +>[!TIP] Regular na suriin ang power status mo gamit ang /f power. Kung malapit na ang kabuuang power mo sa halaga ng claim, pag-isipang i-unclaim ang mga hindi gaanong mahalagang chunk bago mag-giyera. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md index 207c041d..82951280 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/territory_map.md @@ -2,43 +2,43 @@ id: power_map commands: map --- -# The Territory Map +# Ang Territory Map -The territory map gives you a bird's-eye view of claimed chunks in your area, showing which factions control the land around you. +Ang territory map ay nagbibigay sa iyo ng bird's-eye view ng mga na-claim na chunk sa iyong lugar, na nagpapakita kung aling mga faction ang nagkokontrol ng lupa sa paligid mo. --- -## Opening the Map +## Pagbukas ng Map `/f map` -Opens the territory map GUI centered on your current location. +Binubuksan ang territory map GUI na naka-sentro sa kasalukuyan mong lokasyon. --- -## Color Legend +## Gabay sa Kulay -| Color | Meaning | -|-------|---------| -| [#55FF55] Your faction's color | Territory claimed by your faction | -| [#5555FF] Blue | Allied faction territory | -| [#FF5555] Red | Enemy faction territory | -| [#AAAAAA] Gray | Neutral faction territory | -| [#333333] Dark | Wilderness (unclaimed land) | -| [#FFAA00] Gold | Special zones (safezone, warzone) | +| Kulay | Kahulugan | +|-------|-----------| +| [#55FF55] Kulay ng faction mo | Teritoryong na-claim ng faction mo | +| [#5555FF] Asul | Teritoryo ng allied faction | +| [#FF5555] Pula | Teritoryo ng enemy faction | +| [#AAAAAA] Kulay-abo | Teritoryo ng neutral faction | +| [#333333] Madilim | Wilderness (hindi na-claim na lupa) | +| [#FFAA00] Ginto | Mga espesyal na zone (safezone, warzone) | ->[!INFO] Your faction's color on the map matches the color you set with the faction color setting. Allies and enemies use fixed colors for easy identification. +>[!INFO] Ang kulay ng faction mo sa map ay tumutugma sa kulay na na-set mo sa faction color setting. Ang mga ally at enemy ay gumagamit ng mga fixed na kulay para madaling makilala. --- -## Click to Claim +## I-click para Mag-claim -The map is not just for viewing -- you can interact with it directly. +Ang map ay hindi lang para sa pagtingin -- pwede kang direktang mag-interact dito. -- Click an unclaimed chunk to claim it (requires Officer+ rank and sufficient power) -- Click a claimed chunk to see which faction owns it -- Scroll or pan to explore the area around you +- I-click ang isang unclaimed chunk para i-claim ito (kailangan ng Officer+ rank at sapat na power) +- I-click ang isang na-claim na chunk para makita kung aling faction ang nagmamay-ari nito +- Mag-scroll o mag-pan para i-explore ang lugar sa paligid mo ->[!TIP] The map is the easiest way to plan your territory expansion. Look for unclaimed areas near your base and claim strategically to create a contiguous border. +>[!TIP] Ang map ang pinakamadaling paraan para planuhin ang pagpapalawak ng teritoryo mo. Maghanap ng mga unclaimed na lugar malapit sa base mo at mag-claim nang estratehiko para gumawa ng magkakasunod na hangganan. ->[!NOTE] The map shows a fixed area around your position. Move to a different location and reopen it to see other parts of the world. +>[!NOTE] Ang map ay nagpapakita ng isang fixed na lugar sa paligid ng posisyon mo. Lumipat sa ibang lokasyon at buksan ulit ito para makita ang ibang parte ng mundo. diff --git a/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md b/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md index ae158ed5..0af2d066 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md +++ b/src/main/resources/Server/Languages/tl-PH/help/power_land/understanding_power.md @@ -2,44 +2,44 @@ id: power_understanding commands: power --- -# Understanding Power +# Pag-unawa sa Power -Power is the core resource that determines how much territory your faction can hold. Every player has personal power that contributes to the faction total. +Ang power ang pangunahing resource na nagdedetermina kung gaano karaming teritoryo ang kayang hawakan ng faction mo. Bawat manlalaro ay may personal power na nag-aambag sa kabuuang power ng faction. --- -## Default Power Values +## Mga Default na Halaga ng Power -| Setting | Value | -|---------|-------| -| Maximum power per player | 20 | +| Setting | Halaga | +|---------|--------| +| Maximum power bawat manlalaro | 20 | | Starting power | 10 | -| Death penalty | -1.0 per death | -| Kill reward | 0.0 | -| Regen rate | +0.1 per minute (while online) | -| Power cost per claim | 2.0 | -| Logout while tagged | -1.0 additional | +| Parusa sa pagkamatay | -1.0 bawat pagkamatay | +| Reward sa pag-patay | 0.0 | +| Regen rate | +0.1 bawat minuto (habang online) | +| Power cost bawat claim | 2.0 | +| Logout habang naka-tag | -1.0 karagdagan | ->[!NOTE] These are default values. Your server administrator may have configured different settings. +>[!NOTE] Ito ay mga default na halaga. Maaaring iba ang na-configure ng server administrator mo. -## How It Works +## Paano Ito Gumagana -Your faction's total power is the sum of every member's personal power. Your required power is the number of claims multiplied by 2.0. As long as total power stays above required power, your territory is safe. +Ang kabuuang power ng faction mo ay ang suma ng personal power ng bawat miyembro. Ang kinakailangang power ay ang bilang ng mga claim na pinarami ng 2.0. Hangga't nananatiling mas mataas ang kabuuang power kaysa sa kinakailangang power, ligtas ang teritoryo mo. ->[!INFO] Power regenerates passively at 0.1 per minute while you are online. At that rate, recovering 1.0 power takes about 10 minutes. +>[!INFO] Ang power ay pasibong nagre-regenerate sa 0.1 bawat minuto habang online ka. Sa rate na iyon, ang pagre-recover ng 1.0 power ay tumatagal ng mga 10 minuto. --- -## Checking Your Power +## Pagsuri ng Power Mo `/f power` -Shows your personal power, your faction's total power, and how much is needed to maintain current claims. +Ipinapakita ang personal power mo, ang kabuuang power ng faction mo, at kung magkano ang kailangan para ma-maintain ang kasalukuyang mga claim. -## The Danger Zone +## Ang Danger Zone -If total power falls below the required amount for your claims, your faction becomes vulnerable. Enemies can overclaim your chunks. +Kung bumaba ang kabuuang power sa ibaba ng kinakailangang halaga para sa mga claim mo, nagiging vulnerable ang faction mo. Pwedeng mag-overclaim ng mga chunk ang mga kaaway. ->[!WARNING] Multiple deaths in a short period can cascade quickly. If you have 5 members each at 10 power (50 total) and 20 claims (40 needed), just 5 deaths across your team drops you to 45 -- still safe. But 11 deaths puts you at 39, below the 40 threshold. +>[!WARNING] Ang sunud-sunod na pagkamatay sa maikling panahon ay pwedeng mabilis na bumigat. Kung mayroon kang 5 miyembro na may 10 power bawat isa (50 kabuuan) at 20 claim (40 kailangan), 5 pagkamatay lang sa team mo ay bumababa sa 45 -- ligtas pa. Pero 11 pagkamatay ay naglalagay sa iyo sa 39, mas mababa sa 40 threshold. ->[!TIP] Keep a power buffer. Do not claim every chunk you can afford -- leave room for a few deaths without becoming raidable. +>[!TIP] Panatilihin ang power buffer. Huwag i-claim ang lahat ng chunk na kaya mong bayaran -- mag-iwan ng puwang para sa ilang pagkamatay nang hindi nagiging raidable. diff --git a/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md b/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md index 0540d550..2838a71d 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md +++ b/src/main/resources/Server/Languages/tl-PH/help/quick_ref/all_commands.md @@ -1,94 +1,94 @@ --- id: quickref_commands --- -# All Commands +# Lahat ng Command ## Core -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f | Open faction menu | Any | -| /f help | Open help center | Any | -| /f create (name) | Create a faction | Any | -| /f disband | Delete your faction | Leader | -| /f leave | Leave your faction | Any | +| /f | Buksan ang faction menu | Kahit sino | +| /f help | Buksan ang help center | Kahit sino | +| /f create (name) | Gumawa ng faction | Kahit sino | +| /f disband | I-delete ang faction mo | Leader | +| /f leave | Umalis sa faction mo | Kahit sino | ## Membership -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f invite (player) | Invite a player | Officer+ | -| /f accept [faction] | Accept an invite | Any | -| /f request (faction) | Request to join | Any | -| /f kick (player) | Remove a member | Officer+ | -| /f promote (player) | Promote to Officer | Leader | -| /f demote (player) | Demote to Member | Leader | -| /f transfer (player) | Transfer leadership | Leader | +| /f invite (player) | Mag-invite ng manlalaro | Officer+ | +| /f accept [faction] | Tanggapin ang invite | Kahit sino | +| /f request (faction) | Mag-request na sumali | Kahit sino | +| /f kick (player) | Tanggalin ang miyembro | Officer+ | +| /f promote (player) | I-promote sa Officer | Leader | +| /f demote (player) | I-demote sa Member | Leader | +| /f transfer (player) | Ilipat ang leadership | Leader | -## Territory +## Teritoryo -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f claim | Claim current chunk | Officer+ | -| /f unclaim | Release current chunk | Officer+ | -| /f overclaim | Take weakened chunk | Officer+ | -| /f map | Open territory map | Any | +| /f claim | I-claim ang kasalukuyang chunk | Officer+ | +| /f unclaim | Bitawan ang kasalukuyang chunk | Officer+ | +| /f overclaim | Kunin ang mahinang chunk | Officer+ | +| /f map | Buksan ang territory map | Kahit sino | ## Teleport -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f home | Teleport to faction home | Any | -| /f sethome | Set faction home | Officer+ | -| /f delhome | Delete faction home | Officer+ | -| /f stuck | Escape enemy territory | Any | +| /f home | Mag-teleport sa faction home | Kahit sino | +| /f sethome | I-set ang faction home | Officer+ | +| /f delhome | I-delete ang faction home | Officer+ | +| /f stuck | Tumakas sa enemy territory | Kahit sino | -## Information +## Impormasyon -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f info [faction] | View faction details | Any | -| /f list | Browse all factions | Any | -| /f members | View roster | Any | -| /f who [player] | View player info | Any | -| /f power [player] | Check power levels | Any | -| /f invites | Manage invites/requests | Any | -| /f relations | View diplomatic relations | Any | +| /f info [faction] | Tingnan ang mga detalye ng faction | Kahit sino | +| /f list | I-browse ang lahat ng faction | Kahit sino | +| /f members | Tingnan ang roster | Kahit sino | +| /f who [player] | Tingnan ang info ng manlalaro | Kahit sino | +| /f power [player] | Suriin ang power level | Kahit sino | +| /f invites | Pamahalaan ang mga invite/request | Kahit sino | +| /f relations | Tingnan ang mga diplomatic relation | Kahit sino | -## Diplomacy +## Diplomasya -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f ally (faction) | Request alliance | Officer+ | -| /f enemy (faction) | Declare enemy | Officer+ | -| /f neutral (faction) | Reset to neutral | Officer+ | +| /f ally (faction) | Mag-request ng alyansa | Officer+ | +| /f enemy (faction) | Magdeklara ng kaaway | Officer+ | +| /f neutral (faction) | I-reset sa neutral | Officer+ | ## Settings -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f settings | Open settings GUI | Officer+ | -| /f rename (name) | Rename faction | Leader | -| /f desc [text] | Set description | Officer+ | -| /f color (code) | Set faction color | Officer+ | -| /f open | Allow anyone to join | Leader | -| /f close | Require invitation | Leader | +| /f settings | Buksan ang settings GUI | Officer+ | +| /f rename (name) | Palitan ang pangalan ng faction | Leader | +| /f desc [text] | I-set ang description | Officer+ | +| /f color (code) | I-set ang kulay ng faction | Officer+ | +| /f open | Payagang kahit sino sumali | Leader | +| /f close | Kailangang may imbitasyon | Leader | -## Economy +## Ekonomiya -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f balance | View treasury | Any | -| /f deposit (amount) | Deposit funds | Any | -| /f withdraw (amount) | Withdraw funds | Officer+ | -| /f money transfer (faction) (amt) | Transfer funds | Officer+ | +| /f balance | Tingnan ang treasury | Kahit sino | +| /f deposit (amount) | Mag-deposit ng pondo | Kahit sino | +| /f withdraw (amount) | Mag-withdraw ng pondo | Officer+ | +| /f money transfer (faction) (amt) | Mag-transfer ng pondo | Officer+ | | /f money log [page] | Transaction history | Officer+ | ## Chat -| Command | Description | Role | +| Command | Paglalarawan | Role | |---------|-------------|------| -| /f c | Cycle chat mode | Any | -| /f c f | Set faction chat | Any | -| /f c a | Set ally chat | Any | -| /f c off | Set public chat | Any | +| /f c | I-cycle ang chat mode | Kahit sino | +| /f c f | I-set sa faction chat | Kahit sino | +| /f c a | I-set sa ally chat | Kahit sino | +| /f c off | I-set sa public chat | Kahit sino | diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md index 2155ff0c..8e8ed8f3 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/getting_started.md @@ -2,37 +2,37 @@ id: welcome_started commands: gui, menu --- -# Getting Started +# Pagsisimula -Welcome to HyperFactions! Here is how to get up and running in just a few steps. +Maligayang pagdating sa HyperFactions! Narito kung paano makakapagsimula ka sa ilang hakbang lang. --- -## Step 1: Open the Faction Menu +## Hakbang 1: Buksan ang Faction Menu -Type /f to open the main faction GUI. This is your hub for everything -- browsing factions, creating your own, and managing invitations. +I-type ang /f para buksan ang pangunahing faction GUI. Ito ang sentro ng lahat -- pag-browse ng mga faction, paglikha ng sarili mo, at pamamahala ng mga imbitasyon. -## Step 2: Choose Your Path +## Hakbang 2: Pumili ng Landas -| Option | How | -|--------|-----| -| Browse open factions | Click Browse in the menu and hit Join on any open faction. | -| Accept an invitation | Check the Invites tab. If someone invited you, click Accept. | -| Create your own | Click Create Faction, pick a name, and you are the Leader. | +| Opsyon | Paano | +|--------|-------| +| Mag-browse ng bukas na faction | I-click ang Browse sa menu at pindutin ang Join sa kahit anong bukas na faction. | +| Tanggapin ang imbitasyon | Tingnan ang Invites tab. Kung may nag-invite sa iyo, i-click ang Accept. | +| Gumawa ng sarili | I-click ang Create Faction, pumili ng pangalan, at ikaw ang magiging Leader. | -## Step 3: Explore Your Faction +## Hakbang 3: I-explore ang Faction Mo -Once you are in a faction, you will see the Faction Dashboard with your roster, territory map, relations, and settings. +Kapag nasa loob ka na ng faction, makikita mo ang Faction Dashboard na may roster, territory map, relations, at settings. ->[!TIP] If you are brand new, try joining an existing faction first. You will learn the ropes faster with experienced members around you. +>[!TIP] Kung bago ka pa lang, subukan munang sumali sa isang existing faction. Mas mabilis kang matututo kung may kasamang experienced members. --- -## Essential First Commands +## Mga Pangunahing Unang Command -- /f -- Opens the faction GUI -- /f home -- Teleport to your faction's home base -- /f c -- Cycle chat mode between Normal, Faction, and Ally -- /f map -- View the territory map around you +- /f -- Binubuksan ang faction GUI +- /f home -- Mag-teleport sa home base ng faction mo +- /f c -- I-cycle ang chat mode sa pagitan ng Normal, Faction, at Ally +- /f map -- Tingnan ang territory map sa paligid mo ->[!TIP] You can also type /f help in chat for a quick command reference anytime. +>[!TIP] Pwede ka ring mag-type ng /f help sa chat para sa mabilis na command reference kahit kailan. diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md index dcd1df1a..17929ce9 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/quick_tips.md @@ -1,44 +1,44 @@ --- id: welcome_tips --- -# Quick Tips +# Mga Mabilisang Tip -Handy advice organized by category to help you thrive. +Mga kapaki-pakinabang na payo na naka-organisa ayon sa kategorya para makatulong sa iyo. --- -## Territory +## Teritoryo -- Claim land around your base early with `/f claim` -- unclaimed builds have **no protection** -- Each claim costs **2.0 power** to maintain, so do not over-expand beyond what your members can support -- Use `/f map` to scout nearby claims and find safe spots to build -- Unclaim chunks you no longer need with `/f unclaim` to free up power +- Mag-claim ng lupa sa paligid ng base mo nang maaga gamit ang `/f claim` -- walang **proteksyon** ang mga build na hindi naka-claim +- Bawat claim ay nangangailangan ng **2.0 power** para ma-maintain, kaya huwag mag-over-expand nang higit sa kaya ng mga miyembro mo +- Gamitin ang `/f map` para mag-scout ng mga kalapit na claim at humanap ng ligtas na lugar para mag-build +- I-unclaim ang mga chunk na hindi mo na kailangan gamit ang `/f unclaim` para ma-free up ang power -## Combat +## Labanan -- Dying costs **1.0 power** -- avoid unnecessary fights when your faction is near its claim limit -- You have **5 seconds of spawn protection** after respawning -- Combat tagging lasts **15 seconds** -- logging out while tagged costs extra power -- Friendly fire is **disabled** between faction members and allies by default +- Ang pagkamatay ay nagkakahalaga ng **1.0 power** -- iwasan ang mga hindi kinakailangang away kapag malapit na ang faction mo sa claim limit +- Mayroon kang **5 segundo ng spawn protection** pagkatapos mag-respawn +- Ang combat tagging ay tumatagal ng **15 segundo** -- ang pag-logout habang naka-tag ay nagdudulot ng dagdag na power loss +- Ang friendly fire ay **naka-disable** sa pagitan ng mga faction member at ally bilang default ->[!WARNING] Logging out while combat tagged causes additional power loss (1.0 per logout). Stay and fight or escape first. +>[!WARNING] Ang pag-logout habang naka-combat tag ay may karagdagang power loss (1.0 bawat logout). Manatili at lumaban o tumakas muna. -## Social +## Sosyal -- Use `/f c` to cycle through chat modes so faction talk stays private -- Invite trusted players with `/f invite ` -- invitations expire after **5 minutes** -- Form alliances with `/f ally ` for mutual protection and shared map visibility -- Check `/f relations` to see your full diplomatic status +- Gamitin ang `/f c` para mag-cycle sa mga chat mode para manatiling pribado ang usapan ng faction +- Mag-invite ng mga pinagkakatiwalaang manlalaro gamit ang `/f invite ` -- nag-e-expire ang mga imbitasyon pagkalipas ng **5 minuto** +- Bumuo ng mga alyansa gamit ang `/f ally ` para sa mutual protection at shared map visibility +- Tingnan ang `/f relations` para makita ang buong diplomatic status mo -## Economy +## Ekonomiya ->[!TIP] If the server has economy enabled, your faction can accumulate a treasury. Members can deposit, but only Officers and Leaders can withdraw or transfer funds. +>[!TIP] Kung naka-enable ang economy sa server, ang faction mo ay maaaring mag-ipon ng treasury. Ang mga miyembro ay pwedeng mag-deposit, pero ang mga Officer at Leader lang ang pwedeng mag-withdraw o mag-transfer ng pondo. -- Deposit funds with the treasury GUI to strengthen your faction -- A wealthier faction can afford more claims and recover from setbacks faster +- Mag-deposit ng pondo gamit ang treasury GUI para palakasin ang faction mo +- Ang mas mayamang faction ay kayang mag-afford ng mas maraming claim at mas mabilis na makaka-recover sa mga setback -## General +## Pangkalahatan -- Type `/f` anytime to open your faction dashboard -- everything is accessible from there -- Promote active members to Officer so they can help claim and manage territory -- Keep your faction active -- power only regenerates while players are **online** +- I-type ang `/f` kahit kailan para buksan ang faction dashboard mo -- lahat ay accessible mula doon +- I-promote ang mga aktibong miyembro sa Officer para makatulong sila sa pag-claim at pamamahala ng teritoryo +- Panatilihing aktibo ang faction mo -- ang power ay nagre-regenerate lang habang **online** ang mga manlalaro diff --git a/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md b/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md index 5fedf54c..2b8c18ff 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md +++ b/src/main/resources/Server/Languages/tl-PH/help/welcome/what_are_factions.md @@ -1,37 +1,37 @@ --- id: welcome_what --- -# What Are Factions? +# Ano ang Factions? -Factions are player-run teams that claim territory, build bases, and compete for dominance. When you join or create a faction, you gain access to protected land, a shared home, private chat, and diplomatic tools. +Ang mga faction ay mga team na pinapatakbo ng mga manlalaro na nag-claim ng teritoryo, nagtatayo ng mga base, at nagkukumpitensya para sa dominasyon. Kapag sumali ka o gumawa ng faction, magkakaroon ka ng access sa protected land, shared home, private chat, at mga diplomatic tool. ->[!TIP] Factions is all about teamwork. The more active members you have, the stronger your faction becomes. +>[!TIP] Ang Factions ay tungkol sa teamwork. Mas maraming aktibong miyembro, mas malakas ang faction mo. --- -## Core Mechanics +## Mga Pangunahing Mekanismo -| Mechanic | What It Does | -|----------|-------------| -| Power | Each player generates power over time (max 20). Your faction's total power determines how much land you can hold. | -| Claims | Claimed chunks are protected -- only members can build, break, or open containers inside them. Each claim costs 2.0 power to maintain. | -| Relations | Factions can form alliances for mutual protection or declare enemies to enable PvP and territorial aggression. | -| Roles | Three ranks -- Leader, Officer, Member -- each with different capabilities. | +| Mekanismo | Ano ang Ginagawa | +|-----------|-----------------| +| Power | Bawat manlalaro ay nagge-generate ng power sa paglipas ng panahon (max 20). Ang kabuuang power ng faction mo ang nagdedetermina kung gaano karaming lupa ang pwede mong hawakan. | +| Claims | Ang mga na-claim na chunk ay protektado -- tanging mga miyembro lang ang pwedeng mag-build, mag-break, o mag-bukas ng mga container sa loob nito. Bawat claim ay nagkakahalaga ng 2.0 power para ma-maintain. | +| Relations | Ang mga faction ay pwedeng bumuo ng mga alyansa para sa mutual protection o magdeklara ng mga kaaway para ma-enable ang PvP at territorial aggression. | +| Roles | Tatlong ranggo -- Leader, Officer, Member -- bawat isa ay may iba't ibang kakayahan. | --- -## How Strength Works +## Paano Gumagana ang Lakas -Your faction's strength comes from its members. Every player starts with 10 power and regenerates up to 20 while online. Dying costs power. If your total faction power drops below the cost of your claims, enemies can overclaim your territory. +Ang lakas ng faction mo ay nanggagaling sa mga miyembro nito. Bawat manlalaro ay nagsisimula sa 10 power at nagre-regenerate hanggang 20 habang online. Ang pagkamatay ay nagpapalugi ng power. Kung ang kabuuang power ng faction ay bumaba sa ibaba ng halaga ng mga claim mo, ang mga kaaway ay pwedeng mag-overclaim sa teritoryo mo. ->[!WARNING] A single death costs 1.0 power. Multiple deaths in a short time can leave your faction vulnerable to overclaiming. +>[!WARNING] Ang isang pagkamatay ay nagkakahalaga ng 1.0 power. Ang sunud-sunod na pagkamatay sa maikling panahon ay pwedeng magpahina sa faction mo laban sa overclaiming. --- -## Diplomacy at a Glance +## Diplomasya sa Isang Tingin -- **Allies** -- Mutual agreements that prevent friendly fire and protect each other's territory -- **Enemies** -- One-way declarations that enable PvP in each other's land and allow overclaiming -- **Neutral** -- The default state between all factions with standard rules +- **Allies** -- Mga mutual agreement na pumipigil sa friendly fire at nagpoprotekta sa teritoryo ng isa't isa +- **Enemies** -- Mga one-way na deklarasyon na nag-e-enable ng PvP sa lupa ng isa't isa at nagpapahintulot ng overclaiming +- **Neutral** -- Ang default na estado sa pagitan ng lahat ng faction na may standard rules ->[!INFO] You can manage all of this through the in-game GUI by typing `/f` or through chat commands. +>[!INFO] Maaari mong pamahalaan ang lahat ng ito sa pamamagitan ng in-game GUI sa pag-type ng `/f` o sa pamamagitan ng mga chat command. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md index e1eaa33b..86cdc752 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/creating.md @@ -2,37 +2,37 @@ id: faction_creating commands: create --- -# Creating a Faction +# Paglikha ng Faction -Starting your own faction makes you the Leader with full control over settings, members, and territory. +Ang paggawa ng sarili mong faction ay ginagawa kang Leader na may buong kontrol sa settings, mga miyembro, at teritoryo. --- -## How to Create +## Paano Gumawa `/f create ` -This creates your faction and immediately opens the Faction Dashboard where you can begin inviting members, claiming land, and configuring settings. +Gagawa ito ng faction mo at agad na magbubukas ng Faction Dashboard kung saan pwede kang magsimulang mag-invite ng mga miyembro, mag-claim ng lupa, at mag-configure ng settings. -## Name Rules +## Mga Patakaran sa Pangalan -| Rule | Requirement | -|------|------------| -| Length | Between 3 and 24 characters | -| Characters | Letters, numbers, and spaces only | -| Uniqueness | No two factions can share the same name | +| Patakaran | Kinakailangan | +|-----------|--------------| +| Haba | Sa pagitan ng 3 at 24 na character | +| Mga Character | Mga letra, numero, at espasyo lamang | +| Natatangi | Walang dalawang faction ang pwedeng magkapareho ng pangalan | ->[!WARNING] Choose your name carefully. Renaming later requires Leader permissions and may have a cooldown. +>[!WARNING] Piliin nang mabuti ang pangalan mo. Ang pag-rename sa ibang pagkakataon ay nangangailangan ng Leader permissions at maaaring may cooldown. --- -## What Happens on Creation +## Ano ang Mangyayari sa Paglikha -- You become the Leader (highest rank) -- Your faction starts with 0 claims and your personal power (10 by default) -- The faction dashboard opens automatically -- You can immediately invite players, claim territory, and set a faction home +- Magiging Leader ka (pinakamataas na ranggo) +- Ang faction mo ay magsisimula sa 0 claim at ang personal power mo (10 bilang default) +- Awtomatikong magbubukas ang faction dashboard +- Pwede kang agad mag-invite ng mga manlalaro, mag-claim ng teritoryo, at mag-set ng faction home ->[!INFO] If the server has economy integration enabled, creating a faction may cost money. The creation cost is set by the server administrator. +>[!INFO] Kung naka-enable ang economy integration sa server, ang paggawa ng faction ay maaaring may bayad. Ang creation cost ay itinatakda ng server administrator. ->[!TIP] After creating, your first priorities should be: invite friends, find a base location, and claim it. +>[!TIP] Pagkatapos gumawa, ang mga unang priority mo ay: mag-invite ng mga kaibigan, humanap ng lokasyon para sa base, at i-claim ito. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md index 7dbabdcd..71eca1ba 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/joining.md @@ -2,35 +2,35 @@ id: faction_joining commands: accept, join, request --- -# Joining a Faction +# Pagsali sa Faction -There are three ways to join an existing faction, depending on how the faction is configured. +May tatlong paraan para sumali sa isang existing faction, depende sa kung paano naka-configure ang faction. --- -## Methods Compared +## Paghahambing ng mga Paraan -| Method | How | Requires | -|--------|-----|----------| -| Browse and Join | Open /f, click Browse, click Join | Faction is set to open | -| Accept Invite | Check Invites tab in /f menu | Active invitation | -| Request to Join | Use /f request, wait for approval | Officer or Leader approves | +| Paraan | Paano | Kinakailangan | +|--------|-------|---------------| +| Browse at Join | Buksan ang /f, i-click ang Browse, i-click ang Join | Ang faction ay naka-set sa open | +| Tanggapin ang Invite | Tingnan ang Invites tab sa /f menu | Aktibong imbitasyon | +| Mag-request na Sumali | Gamitin ang /f request, maghintay ng approval | Kailangang mag-approve ang Officer o Leader | --- -## Invite Details +## Mga Detalye ng Invite -- Invitations are sent by Officers or Leaders -- Invitations expire after 5 minutes -- accept promptly -- View your pending invites in the Invites tab of the faction menu -- Accept with the GUI or /f accept +- Ang mga imbitasyon ay ipinapadala ng mga Officer o Leader +- Nag-e-expire ang mga imbitasyon pagkalipas ng 5 minuto -- tanggapin agad +- Tingnan ang mga pending invite mo sa Invites tab ng faction menu +- Tanggapin gamit ang GUI o /f accept -## Join Requests +## Mga Join Request -- Use /f request to request membership in a closed faction -- Requests expire after 24 hours if not acted on -- Officers and Leaders can approve or deny requests from the faction dashboard +- Gamitin ang /f request para mag-request ng membership sa isang closed faction +- Nag-e-expire ang mga request pagkalipas ng 24 oras kung walang aksyon +- Ang mga Officer at Leader ay pwedeng mag-approve o mag-deny ng mga request mula sa faction dashboard ->[!TIP] Not sure which faction to join? Use the Browse tab in /f to see faction descriptions, member counts, and whether they are open or invite-only. +>[!TIP] Hindi sigurado kung saan sasali? Gamitin ang Browse tab sa /f para makita ang mga faction description, bilang ng miyembro, at kung open sila o invite-only. ->[!NOTE] Each faction can hold up to 50 members by default. If a faction is full, you will need to wait for a spot to open up. +>[!NOTE] Bawat faction ay pwedeng magkaroon ng hanggang 50 miyembro bilang default. Kung puno na ang faction, kailangan mong maghintay ng bakanteng slot. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md index 870c6133..dbc9701b 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/managing.md @@ -2,43 +2,43 @@ id: faction_managing commands: invite, kick, promote, demote, transfer --- -# Managing Members +# Pamamahala ng mga Miyembro -Officers and Leaders share responsibility for managing the faction roster. Here are the key commands and who can use them. +Ang mga Officer at Leader ay magkasamang responsable sa pamamahala ng faction roster. Narito ang mga pangunahing command at kung sino ang pwedeng gumamit. --- -## Commands +## Mga Command -| Command | What It Does | Required Role | -|---------|-------------|---------------| -| `/f invite ` | Sends a join invitation (expires in 5 min) | Officer+ | -| `/f kick ` | Removes a member from the faction | Officer+ (see note) | -| `/f promote ` | Promotes a Member to Officer | Leader only | -| `/f demote ` | Demotes an Officer to Member | Leader only | -| `/f transfer ` | Transfers faction ownership | Leader only | +| Command | Ano ang Ginagawa | Kinakailangang Role | +|---------|-----------------|---------------------| +| `/f invite ` | Nagpapadala ng join invitation (nag-e-expire sa 5 min) | Officer+ | +| `/f kick ` | Tinatanggal ang isang miyembro mula sa faction | Officer+ (tingnan ang note) | +| `/f promote ` | Pino-promote ang isang Member sa Officer | Leader lamang | +| `/f demote ` | Dine-demote ang isang Officer sa Member | Leader lamang | +| `/f transfer ` | Inilipat ang faction ownership | Leader lamang | ->[!NOTE] Officers can only kick Members. To remove another Officer, the Leader must either demote them first or kick them directly. +>[!NOTE] Ang mga Officer ay pwede lang mag-kick ng mga Member. Para tanggalin ang ibang Officer, kailangang i-demote muna sila ng Leader o direktang i-kick. --- -## Invitations +## Mga Imbitasyon -- Invitations expire after 5 minutes if not accepted -- The invited player sees it in their Invites tab when they open /f -- There is no limit to how many invitations you can send at once -- Your faction can hold up to 50 members total +- Nag-e-expire ang mga imbitasyon pagkalipas ng 5 minuto kung hindi tanggapin +- Makikita ng inimbitahang manlalaro ito sa kanilang Invites tab kapag binuksan ang /f +- Walang limitasyon sa kung ilang imbitasyon ang pwede mong ipadala nang sabay-sabay +- Ang faction mo ay pwedeng magkaroon ng hanggang 50 miyembro sa kabuuan -## Promotions and Demotions +## Mga Promotion at Demotion -- Only the Leader can promote or demote -- /f promote raises a Member to Officer -- /f demote lowers an Officer back to Member +- Tanging ang Leader lang ang pwedeng mag-promote o mag-demote +- Ang /f promote ay itinaas ang isang Member sa Officer +- Ang /f demote ay ibinababa ang isang Officer pabalik sa Member -## Transferring Leadership +## Paglipat ng Leadership ->[!WARNING] Transferring leadership is irreversible. You will be demoted to Officer and the target player becomes the new Leader. Make sure you trust them completely. +>[!WARNING] Ang paglipat ng leadership ay hindi na pwedeng i-undo. Ide-demote ka sa Officer at ang target na manlalaro ang magiging bagong Leader. Siguraduhing lubos kang nagtitiwala sa kanya. `/f transfer ` -The target must be a current member of your faction. +Ang target ay kailangang kasalukuyang miyembro ng faction mo. diff --git a/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md b/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md index 67bb5962..7cf15ba3 100644 --- a/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md +++ b/src/main/resources/Server/Languages/tl-PH/help/your_faction/roles.md @@ -1,44 +1,44 @@ --- id: faction_roles --- -# Roles and Ranks +# Mga Role at Ranggo -Every faction has three roles in a strict hierarchy. Higher roles inherit all capabilities of the roles below them. +Bawat faction ay may tatlong role sa mahigpit na hierarchy. Ang mas mataas na role ay nag-inherit ng lahat ng kakayahan ng mga role sa ibaba nila. --- -## Permission Breakdown +## Breakdown ng mga Permiso -| Action | Leader | Officer | Member | +| Aksyon | Leader | Officer | Member | |--------|--------|---------|--------| -| Build in territory | Yes | Yes | Yes | -| Use faction home | Yes | Yes | Yes | -| Faction and ally chat | Yes | Yes | Yes | -| Invite players | Yes | Yes | No | -| Kick members | Yes | Yes (Members only) | No | -| Claim / unclaim land | Yes | Yes | No | -| Overclaim enemy territory | Yes | Yes | No | -| Set faction home | Yes | Yes | No | -| Delete faction home | Yes | Yes | No | -| Manage relations (ally/enemy) | Yes | Yes | No | -| View faction logs | Yes | Yes | No | -| Promote to Officer | Yes | No | No | -| Demote from Officer | Yes | No | No | -| Rename faction | Yes | No | No | -| Set description / tag / color | Yes | No | No | -| Open / close faction | Yes | No | No | -| Access faction settings | Yes | No | No | -| Transfer leadership | Yes | No | No | -| Disband faction | Yes | No | No | - ->[!NOTE] Officers can kick Members but cannot kick other Officers. Only the Leader can remove Officers. +| Mag-build sa teritoryo | Oo | Oo | Oo | +| Gamitin ang faction home | Oo | Oo | Oo | +| Faction at ally chat | Oo | Oo | Oo | +| Mag-invite ng mga manlalaro | Oo | Oo | Hindi | +| Mag-kick ng mga miyembro | Oo | Oo (Members lamang) | Hindi | +| Mag-claim / mag-unclaim ng lupa | Oo | Oo | Hindi | +| Mag-overclaim ng enemy territory | Oo | Oo | Hindi | +| Mag-set ng faction home | Oo | Oo | Hindi | +| Mag-delete ng faction home | Oo | Oo | Hindi | +| Mamahala ng relations (ally/enemy) | Oo | Oo | Hindi | +| Tingnan ang faction logs | Oo | Oo | Hindi | +| Mag-promote sa Officer | Oo | Hindi | Hindi | +| Mag-demote mula sa Officer | Oo | Hindi | Hindi | +| Palitan ang pangalan ng faction | Oo | Hindi | Hindi | +| Mag-set ng description / tag / color | Oo | Hindi | Hindi | +| Buksan / isara ang faction | Oo | Hindi | Hindi | +| I-access ang faction settings | Oo | Hindi | Hindi | +| Ilipat ang leadership | Oo | Hindi | Hindi | +| I-disband ang faction | Oo | Hindi | Hindi | + +>[!NOTE] Ang mga Officer ay pwedeng mag-kick ng mga Member pero hindi pwedeng mag-kick ng ibang Officer. Tanging ang Leader lamang ang pwedeng magtanggal ng mga Officer. --- -## Role Details +## Mga Detalye ng Role -- Leader -- One per faction. Has full control over all settings, members, and territory. Can transfer ownership to another member. -- Officer -- Trusted members who help manage the faction. Can invite, kick members, claim land, and handle diplomacy. -- Member -- The default role when joining. Can build in territory, use the faction home, and participate in faction chat. +- Leader -- Isa lang bawat faction. May buong kontrol sa lahat ng settings, miyembro, at teritoryo. Pwedeng ilipat ang ownership sa ibang miyembro. +- Officer -- Mga pinagkakatiwalaang miyembro na tumutulong sa pamamahala ng faction. Pwedeng mag-invite, mag-kick ng miyembro, mag-claim ng lupa, at humawak ng diplomasya. +- Member -- Ang default na role kapag sumali. Pwedeng mag-build sa teritoryo, gamitin ang faction home, at sumali sa faction chat. ->[!TIP] Promote your most active and trusted members to Officer so they can help manage territory and recruit new players. +>[!TIP] I-promote ang pinaka-aktibo at pinagkakatiwalaang miyembro mo sa Officer para makatulong sila sa pamamahala ng teritoryo at pag-recruit ng bagong mga manlalaro. From 1fed61cd4b00bf9d272622792ceb230bbc0ba290 Mon Sep 17 00:00:00 2001 From: derrickmehaffy Date: Thu, 12 Mar 2026 18:21:06 -0700 Subject: [PATCH 76/76] ci: add help file verification to check-translations workflow Add a second job that verifies all locales have matching help .md files relative to en-US. Detects missing files (error), untranslated files identical to en-US (warning), and extra files not in en-US (notice). Also narrows trigger to pull_request only. --- .github/workflows/check-translations.yml | 100 +++++++++++++++++++++-- 1 file changed, 93 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-translations.yml b/.github/workflows/check-translations.yml index e83358eb..a68d7b93 100644 --- a/.github/workflows/check-translations.yml +++ b/.github/workflows/check-translations.yml @@ -1,16 +1,13 @@ name: Check Translations on: - push: - paths: - - 'src/main/resources/Server/Languages/**/*.lang' pull_request: paths: - - 'src/main/resources/Server/Languages/**/*.lang' + - 'src/main/resources/Server/Languages/**' jobs: - check-translations: - name: Verify locale keys + check-lang-keys: + name: Verify .lang keys runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -79,7 +76,96 @@ jobs: if [ $TOTAL_MISSING -gt 0 ]; then echo "::error::Total missing keys across all locales: $TOTAL_MISSING" else - echo "All locales have complete key coverage." + echo "All locales have complete .lang key coverage." + fi + + exit $EXIT_CODE + + check-help-files: + name: Verify help files + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Check for missing help files + run: | + LANG_DIR="src/main/resources/Server/Languages" + EN_HELP="$LANG_DIR/en-US/help" + EXIT_CODE=0 + TOTAL_MISSING=0 + + if [ ! -d "$EN_HELP" ]; then + echo "::error::No en-US/help directory found at $EN_HELP" + exit 1 + fi + + # Collect all en-US help file relative paths + en_files=$(cd "$EN_HELP" && find . -name "*.md" -type f | sort) + en_count=$(echo "$en_files" | wc -l) + echo "Found $en_count help files in en-US" + + # Check each locale + for locale_dir in "$LANG_DIR"/*/; do + locale=$(basename "$locale_dir") + [ "$locale" = "en-US" ] && continue + + locale_help="$locale_dir/help" + + if [ ! -d "$locale_help" ]; then + echo "::error file=$locale_help::[$locale] MISSING help/ directory ($en_count files)" + TOTAL_MISSING=$((TOTAL_MISSING + en_count)) + EXIT_CODE=1 + continue + fi + + # Check each en-US help file exists in locale + missing_files="" + missing_count=0 + while IFS= read -r relpath; do + locale_file="$locale_help/$relpath" + if [ ! -f "$locale_file" ]; then + missing_files="$missing_files - $relpath"$'\n' + missing_count=$((missing_count + 1)) + fi + done <<< "$en_files" + + if [ $missing_count -gt 0 ]; then + echo "::error file=$locale_help::[$locale] $missing_count missing help file(s)" + echo "$missing_files" + TOTAL_MISSING=$((TOTAL_MISSING + missing_count)) + EXIT_CODE=1 + fi + + # Check for untranslated files (identical to en-US) + untranslated=0 + while IFS= read -r relpath; do + locale_file="$locale_help/$relpath" + en_file="$EN_HELP/$relpath" + if [ -f "$locale_file" ] && cmp -s "$en_file" "$locale_file"; then + untranslated=$((untranslated + 1)) + fi + done <<< "$en_files" + + if [ $untranslated -gt 0 ]; then + echo "::warning file=$locale_help::[$locale] $untranslated help file(s) identical to en-US (possibly untranslated)" + fi + + # Check for extra files not in en-US + if [ -d "$locale_help" ]; then + locale_files=$(cd "$locale_help" && find . -name "*.md" -type f | sort) + extra=$(comm -13 <(echo "$en_files") <(echo "$locale_files")) + if [ -n "$extra" ]; then + extra_count=$(echo "$extra" | wc -l) + echo "::notice file=$locale_help::[$locale] $extra_count extra help file(s) not in en-US" + fi + fi + done + + echo "" + if [ $TOTAL_MISSING -gt 0 ]; then + echo "::error::Total missing help files across all locales: $TOTAL_MISSING" + else + echo "All locales have complete help file coverage." fi exit $EXIT_CODE