From 5d5566ce10de251b7dec9185acd0aa27562cec58 Mon Sep 17 00:00:00 2001 From: Crypto Morin Date: Wed, 17 Jan 2024 06:28:55 -0800 Subject: [PATCH] v1.16.20.3 --- README.md | 3 +- .../kingdoms/services/ServiceProjectKorra.kt | 2 +- .../java/org/kingdoms/services/Service.java | 6 +- core/src/main/resources/map.yml | 5 +- core/src/main/resources/misc-upgrades.yml | 2 +- core/src/main/resources/schemas/claims.yml | 1 + .../peacetreaties/data/PeaceTreaties.kt | 6 +- .../kingdoms/peacetreaties/data/WarPoints.kt | 2 +- .../terms/StandardTermProvider.kt | 2 +- platform/build.gradle.kts | 5 +- platform/bukkit/build.gradle.kts | 2 - .../platform/bukkit/core/BukkitServer.java | 18 +++ .../bukkit/events/BukkitEventHandler.java | 12 ++ platform/folia/build.gradle.kts | 1 - platform/geyser/build.gradle.kts | 25 +++ .../geyser/core/FloodgateHandler.java | 11 ++ platform/paper/build.gradle.kts | 33 ++++ .../org/kingdoms/utils/paper/PaperLib.java | 17 +++ .../utils/paper/asyncchunks/AsyncChunks.java | 32 ++++ .../asyncchunks/AsyncChunksPaper_13.java | 13 ++ .../asyncchunks/AsyncChunksPaper_15.java | 13 ++ .../asyncchunks/AsyncChunksPaper_9_12.java | 38 +++++ .../paper/asyncchunks/AsyncChunksSync.java | 13 ++ .../pl/guis/structures/nexus/logs.yml | 82 +++++----- .../nexus/settings/color-picker.yml | 2 +- .../nexus/settings/relation-editor.yml | 2 +- .../guis/structures/regulator/attributes.yml | 4 +- resources/languages/pl/pl.yml | 142 +++++++++--------- .../pt/guis/structures/nexus/nexus.yml | 8 +- resources/languages/uk/guis/languages.yml | 2 +- .../languages/uk/guis/mails/recipients.yml | 4 +- .../languages/uk/guis/outposts/editor.yml | 2 +- .../uk/guis/outposts/rewards/commands.yml | 4 +- .../uk/guis/outposts/rewards/items.yml | 8 +- .../uk/guis/outposts/rewards/main.yml | 2 +- .../uk/guis/protection-signs/kingdoms.yml | 4 +- .../uk/guis/protection-signs/players.yml | 4 +- .../uk/guis/structures/nexus/nation/nexus.yml | 4 +- .../nexus/nation/ranks/permissions.yml | 4 +- .../nexus/nation/ranks/rank-editor.yml | 2 +- .../nation/resource-points-converter.yml | 2 +- .../uk/guis/structures/nexus/nexus.yml | 4 +- .../nexus/resource-points-converter.yml | 2 +- .../nexus/settings/color-picker.yml | 2 +- .../nexus/settings/relation-editor.yml | 2 +- .../uk/guis/structures/nexus/structures.yml | 12 +- .../uk/guis/structures/nexus/turrets.yml | 6 +- .../uk/guis/structures/outpost/1.yml | 4 +- .../uk/guis/structures/outpost/2.yml | 4 +- .../guis/structures/outpost/amount-picker.yml | 2 +- .../guis/structures/regulator/attributes.yml | 4 +- resources/languages/zh/guis/invites.yml | 6 +- .../item-editor/attributes/operations.yml | 4 +- .../zh/guis/item-editor/enchantments.yml | 4 +- .../languages/zh/guis/item-editor/flags.yml | 4 +- .../languages/zh/guis/item-editor/main.yml | 2 +- .../languages/zh/guis/item-editor/nbt.yml | 4 +- resources/languages/zh/guis/languages.yml | 4 +- resources/languages/zh/guis/mails/mailbox.yml | 6 +- .../zh/guis/outposts/rewards/commands.yml | 4 +- .../zh/guis/outposts/rewards/main.yml | 2 +- .../zh/guis/protection-signs/kingdoms.yml | 4 +- .../zh/guis/protection-signs/players.yml | 4 +- .../guis/protection-signs/protection-type.yml | 6 +- .../structures/nexus/champion-upgrades.yml | 16 +- .../zh/guis/structures/nexus/logs.yml | 8 +- .../guis/structures/nexus/misc-upgrades.yml | 30 ++-- .../nexus/nation/ranks/permissions.yml | 14 +- .../nexus/nation/ranks/rank-selector.yml | 6 +- .../structures/nexus/nation/ranks/ranks.yml | 6 +- .../nation/resource-points-converter.yml | 4 +- .../nexus/nation/settings/relation-editor.yml | 18 +-- .../nexus/nation/settings/settings.yml | 6 +- .../zh/guis/structures/nexus/nexus.yml | 10 +- .../structures/nexus/ranks/permissions.yml | 14 +- .../structures/nexus/ranks/rank-selector.yml | 6 +- .../zh/guis/structures/nexus/ranks/ranks.yml | 6 +- .../nexus/resource-points-converter.yml | 4 +- .../nexus/settings/relation-editor.yml | 18 +-- .../structures/nexus/settings/settings.yml | 6 +- .../zh/guis/structures/nexus/structures.yml | 18 +-- .../zh/guis/structures/nexus/turrets.yml | 12 +- .../regulator/interaction-editor.yml | 42 +++--- .../zh/guis/structures/regulator/rules.yml | 2 +- .../zh/guis/structures/siege-cannon.yml | 2 +- .../languages/zh/guis/structures/warppad.yml | 14 +- resources/languages/zh/guis/surrender.yml | 18 +-- shared/build.gradle.kts | 15 +- .../java/org/kingdoms/server/core/Server.java | 7 + .../kingdoms/server/events/EventHandler.java | 5 + .../org/kingdoms/server/location/World.kt | 2 +- .../platform/CrossPlatformNotifier.java | 70 +++++++++ .../kingdoms/server/platform/JavaVersion.java | 44 ++++++ .../server/platform/LatestMCVersion.kt | 60 ++++++++ .../server/platform/MinecraftVersion.kt | 37 +++++ .../kingdoms/server/platform/Platform.java | 22 +++ .../main/java/org/kingdoms/utils/Reflect.java | 17 +++ 97 files changed, 844 insertions(+), 355 deletions(-) create mode 100644 platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/core/BukkitServer.java create mode 100644 platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/events/BukkitEventHandler.java create mode 100644 platform/geyser/build.gradle.kts create mode 100644 platform/geyser/src/main/java/org/kingdoms/platform/geyser/core/FloodgateHandler.java create mode 100644 platform/paper/build.gradle.kts create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/PaperLib.java create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunks.java create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_13.java create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_15.java create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_9_12.java create mode 100644 platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksSync.java create mode 100644 shared/src/main/java/org/kingdoms/server/core/Server.java create mode 100644 shared/src/main/java/org/kingdoms/server/events/EventHandler.java create mode 100644 shared/src/main/java/org/kingdoms/server/platform/CrossPlatformNotifier.java create mode 100644 shared/src/main/java/org/kingdoms/server/platform/JavaVersion.java create mode 100644 shared/src/main/java/org/kingdoms/server/platform/LatestMCVersion.kt create mode 100644 shared/src/main/java/org/kingdoms/server/platform/MinecraftVersion.kt create mode 100644 shared/src/main/java/org/kingdoms/server/platform/Platform.java create mode 100644 shared/src/main/java/org/kingdoms/utils/Reflect.java diff --git a/README.md b/README.md index ea5a08f99..a67a816ab 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@ Kingdomsx is heavily optimized and easy to use. ### Links: - [SpigotMC](https://www.spigotmc.org/resources/77670/): The first original page of KingdomsX plugin. -- [Modrinth](https://modrinth.com/plugin/kingdomsx/): The official modrinth page of KingdomsX plugin. It's easier to keep track of plugin versions for people who still wish to use outdated server patches here. +- [Modrinth](https://modrinth.com/plugin/kingdomsx/): The official modrinth page of KingdomsX plugin. It's easier to + keep track of plugin versions for people who still wish to use outdated server patches here. - [Discord](https://discord.gg/cKsSwtt): Official Kingdoms Discord server. Ask questions, suggest features and report bugs. - [Wiki](https://github.com/CryptoMorin/KingdomsX/wiki): Learn how Kingdoms works. diff --git a/core/service/project-korra/src/main/java/org/kingdoms/services/ServiceProjectKorra.kt b/core/service/project-korra/src/main/java/org/kingdoms/services/ServiceProjectKorra.kt index 6d79e1d37..1775b9476 100644 --- a/core/service/project-korra/src/main/java/org/kingdoms/services/ServiceProjectKorra.kt +++ b/core/service/project-korra/src/main/java/org/kingdoms/services/ServiceProjectKorra.kt @@ -40,7 +40,7 @@ class ServiceProjectKorra(val handler: (player: Player, location: Location) -> B location: Location, ability: CoreAbility?, isIgnite: Boolean, - isExplosive: Boolean + isExplosive: Boolean, ): Boolean { // https://github.com/ProjectKorra/ProjectKorra/blob/3ee5c834f96d860be1792b38b2ded2d140dd62bf/src/com/projectkorra/projectkorra/region/Kingdoms.java return handler(player, location) diff --git a/core/service/src/main/java/org/kingdoms/services/Service.java b/core/service/src/main/java/org/kingdoms/services/Service.java index 36633bd72..8df2ee50b 100644 --- a/core/service/src/main/java/org/kingdoms/services/Service.java +++ b/core/service/src/main/java/org/kingdoms/services/Service.java @@ -5,9 +5,7 @@ default boolean isAvailable() { return true; } - default void enable() { - } + default void enable() {} - default void disable() { - } + default void disable() {} } diff --git a/core/src/main/resources/map.yml b/core/src/main/resources/map.yml index 3fe433b2c..381e1d836 100644 --- a/core/src/main/resources/map.yml +++ b/core/src/main/resources/map.yml @@ -64,11 +64,12 @@ elements: action: "/k claim clipboard remove %X% %Z%" hover: - "&6Location&8: &2%X%&7, &2%Z%" + - "" - "&7Failed to claim this land." - "It's not necessary to remove it" - "from the clipboard." - - "&cReason&8: &e" - - "%reason%" + - "" + - "&c%reason%" item: material: RED_WOOL wilderness: diff --git a/core/src/main/resources/misc-upgrades.yml b/core/src/main/resources/misc-upgrades.yml index 0d3378193..87ee25ee8 100644 --- a/core/src/main/resources/misc-upgrades.yml +++ b/core/src/main/resources/misc-upgrades.yml @@ -21,7 +21,7 @@ invasion-teleportation: # Makes "invasions" upgrade to be a requirement to be maxxed to upgrade this upgrade. # The "miscupgrades.required.invasions" refers to a custom language entry inside your language files. (e.g. en.yml) # %kingdoms_kingdom_upgrade% is a functional placeholder: https://github.com/CryptoMorin/KingdomsX/wiki/Placeholders#placeholder-functions - #"{kingdoms_kingdom_upgrade:level type=misc, of=INVASIONS} < 5": "miscupgrades.required.invasions" + #"{kingdoms_kingdom_upgrade:level type=misc, of=INVASIONS} < 5": "miscupgrades.required.invasions" # If anti-explosion upgrade is upgraded, you won't be able to upgrade this and any other upgrade that depends on this. # You could block anti-explosion from being upgraded if this option is upgraded by doing the same thing. diff --git a/core/src/main/resources/schemas/claims.yml b/core/src/main/resources/schemas/claims.yml index a1aaf51e4..5cf86c845 100644 --- a/core/src/main/resources/schemas/claims.yml +++ b/core/src/main/resources/schemas/claims.yml @@ -16,6 +16,7 @@ biomes: claim-on-create: (type): int + (min): -1 (max): 100 starter-free: int confirmation: str diff --git a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/PeaceTreaties.kt b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/PeaceTreaties.kt index 4833f0f08..87e901811 100644 --- a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/PeaceTreaties.kt +++ b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/PeaceTreaties.kt @@ -116,7 +116,7 @@ class PeaceTreaties { fun initializeMeta( kingdom: Kingdom, metadataHandler: KingdomMetadataHandler, - default: Supplier + default: Supplier, ): T { var metadata: KingdomMetadata? = kingdom.metadata[metadataHandler] if (metadata == null) { @@ -166,7 +166,7 @@ class PeaceTreatyReceiverMetaHandler private constructor() : @Suppress("LABEL_NAME_CLASH") override fun deserialize( container: KingdomsObject<*>, - context: DeserializationContext + context: DeserializationContext, ): KingdomMetadata { return PeaceTreatyReceiverMeta(context.dataProvider.asMap(hashMapOf()) { map, key, value -> val proposerID = key.asUUID() @@ -206,7 +206,7 @@ class PeaceTreatyProposerMetaHandler private constructor() : KingdomMetadataHandler(Namespace("PeaceTreaties", "PROPOSED")) { override fun deserialize( container: KingdomsObject<*>, - context: DeserializationContext + context: DeserializationContext, ): PeaceTreatyProposedMeta { return PeaceTreatyProposedMeta(context.dataProvider.asCollection(hashSetOf()) { c, x -> c.add(x.asUUID()!!) }) } diff --git a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/WarPoints.kt b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/WarPoints.kt index 5221a3b45..e53baa762 100644 --- a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/WarPoints.kt +++ b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/data/WarPoints.kt @@ -85,7 +85,7 @@ class WarPoint { class WarPointsMetaHandler private constructor() : KingdomMetadataHandler(Namespace("PeaceTreaties", "WAR_POINTS")) { override fun deserialize( container: KingdomsObject<*>, - context: DeserializationContext + context: DeserializationContext, ): KingdomMetadata { return WarPointsMeta(context.dataProvider.asMap(hashMapOf()) { map, key, value -> map[key.asUUID()!!] = value.asDouble() diff --git a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/terms/StandardTermProvider.kt b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/terms/StandardTermProvider.kt index be61de8b1..d279ee5b7 100644 --- a/peace-treaties/src/main/java/org/kingdoms/peacetreaties/terms/StandardTermProvider.kt +++ b/peace-treaties/src/main/java/org/kingdoms/peacetreaties/terms/StandardTermProvider.kt @@ -38,7 +38,7 @@ open class StandardTermProvider( @JvmStatic fun standardAmountPrompt( provider: TermProvider, options: TermGroupingOptions, editor: StandardPeaceTreatyEditor, - handler: (Number) -> Term? + handler: (Number) -> Term?, ): CompletionStage { val config = options.getConfigOf(provider) val ctx = editor.peaceTreaty.placeholderContextProvider diff --git a/platform/build.gradle.kts b/platform/build.gradle.kts index a221642b0..b1af9c625 100644 --- a/platform/build.gradle.kts +++ b/platform/build.gradle.kts @@ -3,12 +3,11 @@ import org.kingdoms.main.KingdomsGradleCommons.relocateLibs plugins { commons - kotlin shadowed } -group "org.kingdoms.platform" -version "unspecified" +group = "org.kingdoms.platform" +version = "unspecified" tasks.shadowJar { excludeKotlin() diff --git a/platform/bukkit/build.gradle.kts b/platform/bukkit/build.gradle.kts index 9ef7885d5..b1d47c598 100644 --- a/platform/bukkit/build.gradle.kts +++ b/platform/bukkit/build.gradle.kts @@ -1,6 +1,4 @@ plugins { - java - kotlin commons spigot } diff --git a/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/core/BukkitServer.java b/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/core/BukkitServer.java new file mode 100644 index 000000000..6f4ccf3de --- /dev/null +++ b/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/core/BukkitServer.java @@ -0,0 +1,18 @@ +package org.kingdoms.platform.bukkit.core; + +import org.kingdoms.platform.bukkit.events.BukkitEventHandler; +import org.kingdoms.server.core.Server; +import org.kingdoms.server.events.EventHandler; + +public class BukkitServer implements Server { + private final EventHandler eventHandler; + + public BukkitServer() { + this.eventHandler = new BukkitEventHandler(); + } + + @Override + public EventHandler getEventHandler() { + return eventHandler; + } +} diff --git a/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/events/BukkitEventHandler.java b/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/events/BukkitEventHandler.java new file mode 100644 index 000000000..4f81d0787 --- /dev/null +++ b/platform/bukkit/src/main/java/org/kingdoms/platform/bukkit/events/BukkitEventHandler.java @@ -0,0 +1,12 @@ +package org.kingdoms.platform.bukkit.events; + +import org.bukkit.Bukkit; +import org.bukkit.event.Event; +import org.kingdoms.server.events.EventHandler; + +public final class BukkitEventHandler implements EventHandler { + @Override + public void callEvent(Object event) { + Bukkit.getPluginManager().callEvent((Event) event); + } +} diff --git a/platform/folia/build.gradle.kts b/platform/folia/build.gradle.kts index aa8cbb4a8..fc8460adc 100644 --- a/platform/folia/build.gradle.kts +++ b/platform/folia/build.gradle.kts @@ -3,7 +3,6 @@ import org.kingdoms.main.KingdomsGradleCommons.relocateLibs plugins { commons - kotlin shadowed } diff --git a/platform/geyser/build.gradle.kts b/platform/geyser/build.gradle.kts new file mode 100644 index 000000000..35bc2d703 --- /dev/null +++ b/platform/geyser/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + commons + sublibs +} + +group = "org.kingdoms.platform.geyser" +version = "unspecified" + +repositories { + // https://github.com/GeyserMC/Cumulus + // https://wiki.geysermc.org/geyser/using-geyser-or-floodgate-as-a-dependency/ + maven { + name = "opencollab-snapshot" + url = uri("https://repo.opencollab.dev/maven-snapshots/") + } +} + +dependencies { + compileOnly(project(":shared")) + + // Idk this gives an error + // compileOnly("org.geysermc.geyser:api:2.1.0-SNAPSHOT") + // https://wiki.geysermc.org/floodgate/api/ + compileOnly("org.geysermc.floodgate:api:2.2.0-SNAPSHOT") +} \ No newline at end of file diff --git a/platform/geyser/src/main/java/org/kingdoms/platform/geyser/core/FloodgateHandler.java b/platform/geyser/src/main/java/org/kingdoms/platform/geyser/core/FloodgateHandler.java new file mode 100644 index 000000000..7c31b682d --- /dev/null +++ b/platform/geyser/src/main/java/org/kingdoms/platform/geyser/core/FloodgateHandler.java @@ -0,0 +1,11 @@ +package org.kingdoms.platform.geyser.core; + +import org.geysermc.floodgate.api.FloodgateApi; + +import java.util.UUID; + +public final class FloodgateHandler { + public static boolean isFloodgatePlayer(UUID player) { + return FloodgateApi.getInstance().isFloodgatePlayer(player); + } +} diff --git a/platform/paper/build.gradle.kts b/platform/paper/build.gradle.kts new file mode 100644 index 000000000..6ae801f4a --- /dev/null +++ b/platform/paper/build.gradle.kts @@ -0,0 +1,33 @@ +plugins { + java + kotlin + sublibs +} + +group = "org.kingdoms.utils.paper" +description = "Used for defining unique optimization techniques from Paper." +version = "1.0.0" + +repositories { + maven { + url = uri("https://repo.papermc.io/repository/maven-public/") + } +} + +dependencies { + // https://papermc.io/using-the-api#gradle + compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT") +} + +// Paper is compiled with the latest LTS, so we "trick" gradle into using the latest Java version, +// but we compile with Java 8 +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(17)) + } + disableAutoTargetJvm() +} +tasks.compileJava { + options.encoding = Charsets.UTF_8.name() + options.release.set(8) +} \ No newline at end of file diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/PaperLib.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/PaperLib.java new file mode 100644 index 000000000..fb4d8074a --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/PaperLib.java @@ -0,0 +1,17 @@ +package org.kingdoms.utils.paper; + +import org.kingdoms.utils.paper.asyncchunks.AsyncChunks; + +import java.util.function.Function; + +public final class PaperLib { + private static AsyncChunks asyncChunks; + + public static void init(Function versionChecker) { + asyncChunks = AsyncChunks.generateInstance(versionChecker); + } + + public static AsyncChunks getAsyncChunks() { + return asyncChunks; + } +} diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunks.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunks.java new file mode 100644 index 000000000..39fd5ab2c --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunks.java @@ -0,0 +1,32 @@ +package org.kingdoms.utils.paper.asyncchunks; + +import org.bukkit.Chunk; +import org.bukkit.World; + +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; + +public abstract class AsyncChunks { + public static AsyncChunks generateInstance(Function versionChecker) { + if (versionChecker.apply(15)) { + return new AsyncChunksPaper_15(); + } else if (versionChecker.apply(13)) { + return new AsyncChunksPaper_13(); + } else if (versionChecker.apply(9) && !versionChecker.apply(13)) { + return new AsyncChunksPaper_9_12(); + } else { + //noinspection StaticInitializerReferencesSubClass + return new AsyncChunksSync(); + } + } + + public final CompletableFuture getChunkAtAsync(World world, int x, int z) { + return getChunkAtAsync(world, x, z, true, false); + } + + public final CompletableFuture getChunkAtAsync(World world, int x, int z, boolean generate) { + return getChunkAtAsync(world, x, z, generate, false); + } + + public abstract CompletableFuture getChunkAtAsync(World world, int x, int z, boolean generate, boolean isUrgent); +} \ No newline at end of file diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_13.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_13.java new file mode 100644 index 000000000..6cbe2d2a0 --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_13.java @@ -0,0 +1,13 @@ +package org.kingdoms.utils.paper.asyncchunks; + +import org.bukkit.Chunk; +import org.bukkit.World; + +import java.util.concurrent.CompletableFuture; + +final class AsyncChunksPaper_13 extends AsyncChunks { + @Override + public CompletableFuture getChunkAtAsync(World world, int x, int z, boolean gen, boolean isUrgent) { + return world.getChunkAtAsync(x, z, gen); + } +} \ No newline at end of file diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_15.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_15.java new file mode 100644 index 000000000..3a88762ae --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_15.java @@ -0,0 +1,13 @@ +package org.kingdoms.utils.paper.asyncchunks; + +import org.bukkit.Chunk; +import org.bukkit.World; + +import java.util.concurrent.CompletableFuture; + +final class AsyncChunksPaper_15 extends AsyncChunks { + @Override + public CompletableFuture getChunkAtAsync(World world, int x, int z, boolean gen, boolean isUrgent) { + return world.getChunkAtAsync(x, z, gen, isUrgent); + } +} \ No newline at end of file diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_9_12.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_9_12.java new file mode 100644 index 000000000..ea0d8e1b6 --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksPaper_9_12.java @@ -0,0 +1,38 @@ +package org.kingdoms.utils.paper.asyncchunks; + +import org.bukkit.Chunk; +import org.bukkit.World; + +import java.util.concurrent.CompletableFuture; + +/** + * Async Chunk Loading for Paper version 1.9 to 1.12 + */ +final class AsyncChunksPaper_9_12 extends AsyncChunks { + private static final boolean SUPPORTS_IS_CHUNK_GENERATED; + + static { + boolean isChunkGenerated = false; + + try { + World.class.getMethod("isChunkGenerated", int.class, int.class); + isChunkGenerated = true; + } catch (NoSuchMethodException ignored) { + } + + SUPPORTS_IS_CHUNK_GENERATED = isChunkGenerated; + } + + @SuppressWarnings("deprecation") + @Override + public CompletableFuture getChunkAtAsync(World world, int x, int z, boolean gen, boolean isUrgent) { + CompletableFuture future = new CompletableFuture<>(); + if (!gen && SUPPORTS_IS_CHUNK_GENERATED && !world.isChunkGenerated(x, z)) { + future.complete(null); + } else { + World.ChunkLoadCallback chunkLoadCallback = future::complete; + world.getChunkAtAsync(x, z, chunkLoadCallback); + } + return future; + } +} \ No newline at end of file diff --git a/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksSync.java b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksSync.java new file mode 100644 index 000000000..658ca28fa --- /dev/null +++ b/platform/paper/src/main/java/org/kingdoms/utils/paper/asyncchunks/AsyncChunksSync.java @@ -0,0 +1,13 @@ +package org.kingdoms.utils.paper.asyncchunks; + +import org.bukkit.Chunk; +import org.bukkit.World; + +import java.util.concurrent.CompletableFuture; + +final class AsyncChunksSync extends AsyncChunks { + @Override + public CompletableFuture getChunkAtAsync(World world, int x, int z, boolean gen, boolean isUrgent) { + return CompletableFuture.completedFuture(world.getChunkAt(x, z)); + } +} \ No newline at end of file diff --git a/resources/languages/pl/guis/structures/nexus/logs.yml b/resources/languages/pl/guis/structures/nexus/logs.yml index 8174acefb..42273d9f2 100644 --- a/resources/languages/pl/guis/structures/nexus/logs.yml +++ b/resources/languages/pl/guis/structures/nexus/logs.yml @@ -10,21 +10,21 @@ rows: 6 lore: | {$p}O godzinie{$sep}: {$s}%time% &2Zaproszony przez{$sep}: &6%inviter% - + kingdom-kick: material: RED_WOOL name: '&2Wyrzucony gracz{$sep}: &6%player%' lore: | {$p}O godzinie{$sep}: {$s}%time% &2Wyrzucający{$sep}: &6%kicker% - + kingdom-leave: material: RED_WOOL name: '&2Gracz odszedł{$sep}: &6%player%' lore: | &2O godzinie{$sep}: &6%time% &2Powód{$sep}: &6%reason% - + kingdom-challenge-challenger: material: GREEN_WOOL name: '&2Wyzwanie' @@ -34,7 +34,7 @@ rows: 6 &7Masz czas do &c%start_time% &7na przygotowanie się do ataku. - + kingdom-challenge-challenged: material: RED_WOOL name: '&cWyzwane' @@ -44,7 +44,7 @@ rows: 6 &7Masz czas do &c%start_time% &7na przygotowanie się przed atakiem. - + kingdom-claim: material: GRASS_BLOCK name: '&2Zajęte' @@ -62,7 +62,7 @@ rows: 6 następujące obszary{$sep}: %lands% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-invasion-invader: material: IRON_SWORD name: '&2Najechano' @@ -75,7 +75,7 @@ rows: 6 {$p}O godzinie{$sep}: {$s}%time% {$p}Dotknięte Obszary{$sep}: %affected-lands% - + kingdom-invasion-invaded: material: GOLD_SWORD name: '&cZaatakowane' @@ -88,7 +88,7 @@ rows: 6 {$p}O godzinie{$sep}: {$s}%time% {$p}Dotknięte Obszary{$sep}: %affected-lands% - + kingdom-upgrade-misc: material: DIAMOND_HOE name: '&9Różne Ulepszenie' @@ -98,7 +98,7 @@ rows: 6 {$p}Poziom{$sep}: {$s}%old_level% {$sep}➜ {$s}%new_level% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-upgrade-champion: material: ZOMBIE_HEAD name: '&9Ulepszenie Mistrza' @@ -108,7 +108,7 @@ rows: 6 {$p}Poziom{$sep}: {$s}%old_level% {$sep}➜ {$s}%new_level% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-upgrade-powerup: material: DIAMOND_SWORD name: '&9Ulepszenie Powerupu' @@ -118,7 +118,7 @@ rows: 6 {$p}Poziom{$sep}: {$s}%old_level% {$sep}➜ {$s}%new_level% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-structure-upgrade: material: EMERALD_BLOCK name: '&aUlepszenie Struktury' @@ -129,7 +129,7 @@ rows: 6 {$p}Poziom{$sep}: {$s}%old_level% {$sep}➜ {$s}%new_level% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-structure-purchase: material: EMERALD_BLOCK name: '&aZakup Struktury' @@ -138,7 +138,7 @@ rows: 6 {$s}%item_style_display_name% {$p}struktur. {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-turret-purchase: material: EMERALD_BLOCK name: '&aZakup Wieży' @@ -157,7 +157,7 @@ rows: 6 {$s}%fancy_old_amount% {$sep}➜ {$s}%fancy_new_amount% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-turret-upgrade: material: ARROW name: '&aUlepszenie Wieży' @@ -168,7 +168,7 @@ rows: 6 {$p}Poziom{$sep}: {$s}%old_level% {$sep}➜ {$s}%new_level% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-resource-points-convert: material: HAY_BLOCK name: '&aZamiana Punktów Zasobów' @@ -177,7 +177,7 @@ rows: 6 punkty zasobów{$sep}: {$s}%fancy_amount-before% {$sep}➜ {$s}%fancy_amount-after% {$p}O godzinie{$sep}: {$s}%time% - + extractor-collect: material: EMERALD_BLOCK name: '&aZbieranie Ekstraktora' @@ -187,7 +187,7 @@ rows: 6 {$s}%location% {$p}Zebrano Punkty Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + warppad-teleport: material: END_PORTAL_FRAME name: '&3Teleportacja na Płycie Teleportacyjnej' @@ -198,7 +198,7 @@ rows: 6 {$s}%precise_location% {$p}Koszt Paliwa{$sep}: {$s}%fancy_fuel_cost% {$p}O godzinie{$sep}: {$s}%time% - + outpost-item-purchase: material: HAY_BLOCK name: '&eZakup Przedmiotów z Posterunku' @@ -210,7 +210,7 @@ rows: 6 {$p}Całkowity Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% %purchases% - + kingdom-pacifism-change: material: NETHER_STAR name: '&5Zmiana Pokojowej Rezygnacji' @@ -219,7 +219,7 @@ rows: 6 pokojowej rezygnacji królestwa. {$p}Pokojowy{$sep}: {$s}%bool_pacifist% {$p}O godzinie{$sep}: {$s}%time% - + shield-purchase: material: SHIELD name: '&5Zakup Tarczy' @@ -230,7 +230,7 @@ rows: 6 {$p}Czas Trwania Tarczy{$sep}: {$s}%old-shield-time% {$sep}➜ {$s}%new-shield-time% {$p}Koszt Punktów Zasobów{$sep}: {$s}%fancy_resource_points% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-relation-change: material: NETHER_STAR name: '&9Zmiana Stosunków' @@ -239,7 +239,7 @@ rows: 6 z {$s}%kingdoms_kingdom_name% {$p}królestwem{$sep}: %old-relation% {$sep}➜ %new-relation% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-invite: material: BOOK name: '&9Zaproszenie' @@ -248,7 +248,7 @@ rows: 6 {$p}do królestwa. Mają {$s}%accept-time% {$p}na akceptację zaproszenia. {$p}O godzinie{$sep}: {$s}%time% - + kingdom-king-change: material: BOOK name: '&4Zmiana Króla' @@ -257,7 +257,7 @@ rows: 6 {$s}%old-king% {$sep}➜ {$s}%new-king% {$p}Powód{$sep}: {$s}%reason% {$p}O godzinie{$sep}: {$s}%time% - + player-rank-change: lore: | {$s}%old-rank% {$sep}➜ {$s}%new-rank% @@ -269,7 +269,7 @@ rows: 6 else: # zdegradowany material: RED_WOOL name: '&cDegradacja Gracza{$sep}: {$s}%player%' - + rank-create: material: BOOK name: '&2Utworzenie Rangi' @@ -293,7 +293,7 @@ rows: 6 {$p}Maksymalne Obszary{$sep}: {$s}%rank_max_claims% {$p}Materiał{$sep}: {$s}%rank_material% {$p}O godzinie{$sep}: {$s}%time% - + rank-change-name: material: BOOK name: '&9Zmiana Nazwy Rangi' @@ -302,7 +302,7 @@ rows: 6 {$p}została zmieniona przez {$s}%player%{$sep}: {$s}%old-name% {$sep}➜ {$s}%new-name% {$p}O godzinie{$sep}: {$s}%time% - + rank-change-symbol: material: BOOK name: '&9Zmiana Symbolu Rangi' @@ -311,7 +311,7 @@ rows: 6 {$p}został zmieniony przez {$s}%player%{$sep}: {$s}%old-symbol% {$sep}➜ {$s}%new-symbol% {$p}O godzinie{$sep}: {$s}%time% - + rank-change-color: material: BOOK name: '&9Zmiana Koloru Rangi' @@ -320,7 +320,7 @@ rows: 6 {$p}został zmieniony przez {$s}%player%{$sep}: {$s}%old-color%color {$sep}➜ {$s}%new-color%color {$p}O godzinie{$sep}: {$s}%time% - + rank-change-priority: material: BOOK name: '&9Zmiana Priorytetu Rangi' @@ -329,7 +329,7 @@ rows: 6 {$p}został zmieniony przez {$s}%player%{$sep}: {$s}%old-priority% {$sep}➜ {$s}%new-priority% {$p}O godzinie{$sep}: {$s}%time% - + rank-change-max-claims: material: BOOK name: '&9Zmiana Maksymalnej Ilości Obszarów Rangi' @@ -338,7 +338,7 @@ rows: 6 {$p}została zmieniona przez {$s}%player%{$sep}: {$s}%old-max-claims% {$sep}➜ {$s}%new-max-claims% {$p}O godzinie{$sep}: {$s}%time% - + rank-change-material: material: BOOK name: '&9Zmiana Materiału Rangi' @@ -347,7 +347,7 @@ rows: 6 {$p}został zmieniony przez {$s}%player%{$sep}: {$s}%old-material% {$sep}➜ {$s}%new-material% {$p}O godzinie{$sep}: {$s}%time% - + structures-nexus-move: material: BEACON name: '&9Postawienie Nexusa' @@ -372,7 +372,7 @@ rows: 6 {$p}Zapłacono podatki serwerowe. {$p}Kwota{$sep}: {$s}%fancy_amount% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-champion-change: material: ZOMBIE_HEAD name: "&9Zmiana Mistrza" @@ -381,7 +381,7 @@ rows: 6 przez {$s}%player%{$sep}: {$s}%old% {$sep}➜ {$s}%new% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-change-lore: material: PAPER name: "&9Zmiana Opisu Królestwa" @@ -390,7 +390,7 @@ rows: 6 przez {$s}%player%{$sep}: {$s}%old% {$sep}➜ {$s}%new% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-rename: material: PAPER name: "&9Zmiana Nazwy Królestwa" @@ -399,7 +399,7 @@ rows: 6 przez {$s}%player%{$sep}: {$s}%old% {$sep}➜ {$s}%new% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-change-tag: material: PAPER name: "&9Zmiana Tagu Królestwa" @@ -408,7 +408,7 @@ rows: 6 przez {$s}%player%{$sep}: {$s}%old% {$sep}➜ {$s}%new% {$p}O godzinie{$sep}: {$s}%time% - + kingdom-nation-join: material: BEACON name: "&9Dołączenie do Narodu" @@ -416,7 +416,7 @@ rows: 6 {$p}Twoje królestwo dołączyło do narodu {$s}%kingdoms_nation_name%. {$p}O godzinie{$sep}: {$s}%time% - + kingdom-nation-leave: material: BEACON name: "&cOpuście Naród" @@ -424,7 +424,7 @@ rows: 6 {$p}Twoje królestwo opuściło naród {$s}%kingdoms_nation_name%. {$p}O godzinie{$sep}: {$s}%time% - + 'PeaceTreaties:received': material: BOOK name: "&9Otrzymane Traktaty Pokojowe" @@ -436,7 +436,7 @@ rows: 6 {$p}Aby uzyskać więcej informacji użyj{$sep}: {$s}/k pt review %kingdoms_other_kingdom_name% - + 'PeaceTreaties:sent': material: BOOK name: "&9Wysłane Traktaty Pokojowe" @@ -448,7 +448,7 @@ rows: 6 {$p}Aby uzyskać więcej informacji użyj{$sep}: {$s}/k pt review %kingdoms_other_kingdom_name% - + '[else]': material: BARRIER name: '{$e}Nieznany rodzaj logu{$sep}:' diff --git a/resources/languages/pl/guis/structures/nexus/settings/color-picker.yml b/resources/languages/pl/guis/structures/nexus/settings/color-picker.yml index b43390403..eb93500e1 100644 --- a/resources/languages/pl/guis/structures/nexus/settings/color-picker.yml +++ b/resources/languages/pl/guis/structures/nexus/settings/color-picker.yml @@ -7,7 +7,7 @@ options: # Tylko opcje rozpoczynające się od "color" zostaną zinterpretowane jako predefiniowane kolory. # Możesz dodać własne kolory, ale nie zapomnij o opcji "color" ORAZ o nazwie opcji w GUI, która musi rozpoczynać się od słowa "color". separator: - slots: [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + slots: [ 0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ] material: GRAY_STAINED_GLASS_PANE back: posx: 4 diff --git a/resources/languages/pl/guis/structures/nexus/settings/relation-editor.yml b/resources/languages/pl/guis/structures/nexus/settings/relation-editor.yml index f1829058f..1441956b4 100644 --- a/resources/languages/pl/guis/structures/nexus/settings/relation-editor.yml +++ b/resources/languages/pl/guis/structures/nexus/settings/relation-editor.yml @@ -4,7 +4,7 @@ sound: ITEM_BOOK_PAGE_TURN options: green-stained-glass-pane: - slots: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44] + slots: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] material: GREEN_STAINED_GLASS_PANE name: '' back: diff --git a/resources/languages/pl/guis/structures/regulator/attributes.yml b/resources/languages/pl/guis/structures/regulator/attributes.yml index 767b869d1..f86658c69 100644 --- a/resources/languages/pl/guis/structures/regulator/attributes.yml +++ b/resources/languages/pl/guis/structures/regulator/attributes.yml @@ -12,11 +12,11 @@ options: - "&2Darowizny&8: &6%kingdoms_total_donations%" - "&2Ostatnia Darowizna&8: &6%kingdoms_last_donation_time%" - "&2Ranga&8: &6%kingdoms_rank_name%" - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] red-glass: name: '' material: RED_STAINED_GLASS_PANE - slots: [1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] add: name: "&2Dodaj Gracza" material: GREEN_WOOL diff --git a/resources/languages/pl/pl.yml b/resources/languages/pl/pl.yml index 487484cc3..25e653960 100644 --- a/resources/languages/pl/pl.yml +++ b/resources/languages/pl/pl.yml @@ -54,7 +54,7 @@ value: min: '{$e}Minimalna wymagana wartość to{$sep}: {$es}%min%' max: '{$e}Maksymalna wartość to{$sep}: {$es}%max%' channels: - + default: permission-fail: '{$e}Nie masz uprawnień do korzystania z kanału %channel_color%%channel_name% {$e}.' global: @@ -133,7 +133,7 @@ plugin-permission-scope: not-op: '&6Nie OP' tags: tagged: - + message: hover:{{$s}&l@%tag%;{$p}You have been tagged} sound: ENTITY_EXPERIENCE_ORB_PICKUP others: hover:{&l@%tag%;&9Tag} @@ -242,7 +242,7 @@ siege-cannon: damaged-shield: '{$p}Działo trafiło w królestwo {$s}%kingdoms_kingdom_name% {$p}. Pozostały czas tarczy{$sep}: {$s}%kingdoms_time_shield_time_left%' damaged-shield-notify: '{$es}%attacker-kingdom% {$e}królestwo trafiło twoją ziemię na {$es}%attacked-chunk%{$e}. Pozostały czas tarczy{$sep}: {$s}%kingdoms_time_shield_time_left%' friendly: - fire: '{$e}Działo trafiło w przyjazną (bez atrybutu INVADE) ziemię, która należy do królestwa {$es}%kingdom%' + fire: '{$e}Działo trafiło w przyjazną (bez atrybutu INVADE) ziemię, która należy do królestwa {$es}%kingdom%' lands: build-own-only: '{$e}Możesz budować tylko na ziemiach, które zaanektowałeś.' portal-protection: '{$e}Twoje teleportacje przez portal zostały anulowane, ponieważ ten portal prowadzi do wrogiego królestwa.' @@ -1823,7 +1823,7 @@ command: Twój nowy stan konta{$sep}: {$s}%fancy_balance% {$p}Bank królestwa{$sep}: {$s}%kingdoms_fancy_bank% aliases: money $ - + rename: description: '{$s}Zmień nazwę swojego królestwa.' king-only: '{$e}Tylko król może zmienić nazwę królestwa.' @@ -1856,7 +1856,7 @@ command: already-set: '{$e}Twój język jest już ustawiony na {$es}%chosen%' set: '{$p}Zaktualizowano język{$sep}: &9%old-lang% &7➡ &9%kingdoms_lang%' not-english-warn: '{$sep}[&4&l!{$sep}] {$e}Możesz zobaczyć nieprzetłumaczone wiadomości podczas korzystania z tłumaczeń innych niż angielski. To jest normalne, ale zauważ, że możliwe, że nie będziesz mógł uzyskać dostępu do niektórych funkcji w interfejsach graficznych, jeśli są one przestarzałe.' - + tpa: description: '{$s}Teleportuj się natychmiastowo do swoich członków lub wyślij prośbę sojusznikom o teleportację do nich.' usage: '{$usage}tpa {$p}' @@ -2125,7 +2125,7 @@ command: usage: '{$usage}unclaim auto &9[gracz]' on: '{$s}Automatyczne odłączanie jest teraz &aWŁĄCZONE{$s}. Będziesz teraz odłączać tereny podczas poruszania się.' off: '{$s}Automatyczne odłączanie jest teraz {$e}WYŁĄCZONE{$s}.' - + line: description: '{$p}Odłącza prostą linię w danym kierunku. Jeśli nie określono kierunku, będzie to kierunek, w którym patrzy gracz.' usage: '{$usage}unclaim line {$s}[odległość]' @@ -2144,7 +2144,7 @@ command: turrets: '{$e}Ten teren zawiera wiele wież. Jeśli jesteś pewien, że chcesz go odłączyć, użyj {$es}/k unclaim confirm' structures: '{$e}Ten teren zawiera pewne struktury. Jeśli jesteś pewien, że chcesz go odłączyć, użyj {$es}/k unclaim confirm' home: '{$e}Ten teren to dom królestwa. Jeśli jesteś pewien, że chcesz go odłączyć, użyj {$es}/k unclaim confirm' - + all: description: '{$s}Odłącza wszystkie tereny twojej nacji.' success: '{$p}Odłączono łącznie {$s}%lands% {$p}terenów!' @@ -2154,7 +2154,7 @@ command: Wszystkie twoje wieże i struktury zostaną odłączone, a twoje skrzynie pozostaną niechronione. Jeśli chcesz kontynuować, ponów komendę. announce: '{$s}%player% {$p}odłączył łącznie {$s}%lands% {$p}terenów!' - + shield: description: '{$s}Dezaktywuj swoją tarczę.' no-shield: '{$e}Twoja nacja nie ma aktywnej tarczy.' @@ -2163,7 +2163,7 @@ command: Pozostały czas tarczy nacji{$sep}: {$es}%kingdoms_time_shield_time_left% {$e}Aby kontynuować, użyj komendy hover:{{$es}/k shield confirm;/k shield confirm;/k shield confirm} {$e}aby potwierdzić. deactivated: '{$es}%executor% {$e}wyłączył obecną tarczę nacji, która miała {$es}%kingdoms_time_shield_time_left% {$e}czasu.' - + sethome: description: '{$s}Ustawia dom królestwa na obecnej lokalizacji.' not-claimed: '{$e}Możesz ustawić dom królestwa tylko na odłączonych terenach.' @@ -2171,33 +2171,33 @@ command: nexus-land: '{$e}Możesz ustawić dom królestwa tylko na swoim terenie z nexusem!' set: '&aUstaw dom królestwa na{$sep}: {$s}%x%{$sep}, {$s}%y%{$sep}, {$s}%z%' aliases: homeset - + unsethome: description: '{$s}Usuwa dom królestwa.' not-set: '{$e}Dom królestwa nie jest ustawiony.' success: '&aDom królestwa został usunięty{$sep}: {$s}%x%&7, {$s}%y%&7, {$s}%z%' aliases: homeunset - + mail: description: '{$s}Polecenia związane z pocztą.' - + reply: description: '{$s}Odpowiedz na wiadomość. To polecenie nie jest przeznaczone do bezpośredniego użytku przez graczy.' usage: '{$usage}mail reply {$p}' - + open: description: '{$s}Zdalne otwarcie wiadomości. To polecenie nie jest przeznaczone do bezpośredniego użytku przez graczy.' usage: '{$usage}mail open {$p}' - + invalid: id: '{$e}Wprowadzony identyfikator poczty jest nieprawidłowy.' - + not: found: '{$e}Nie istnieje żadna wiadomość o tym identyfikatorze. Prawdopodobnie została usunięta.' yours: '{$e}Ta wiadomość nie należy do twojej nacji.' - + not-intended-for-direct-use: '{$e}To polecenie nie jest przeznaczone do bezpośredniego użytku przez graczy, więc chyba że widzisz to bez użycia komendy, to jest to błąd.' - + home: description: '{$s}Teleportuj się do domu twojej nacji.' usage: '{$usage}home {$s}[kingdom]' @@ -2211,29 +2211,29 @@ command: being-invaded: '{$e}Nie możesz teleportować się do domu {$es}%kingdom% {$e}nacji, ponieważ jest on najechany.' success: '{$p}Teleportowano!' aliases: spawn - + nexus: description: '{$s}Ustaw swoją punkt nexus.' - + open: description: '{$s}Zdalne otwieranie nexusa twojej nacji.' - + remove: description: '{$s}Usunięcie swojego nexusa zdalnie.' permission: '{$e}Nie masz uprawnień do usuwania swojego nexusa.' invasion: '{$e}Nie możesz usuwać swojego nexusa, gdy ziemia jest najechana.' not-placed: '{$e}Twój nexus nacji nie jest ustawiony.' removed: '{$e}Pomyślnie usunięto swój nexus nacji.' - + help: | {$p}Kliknij prawym przyciskiem myszy na bloku, aby zamienić go na twój nowy nexus. Aby wyłączyć tryb nexusa, wykonaj hover:{{$s}/k nexus;{$e}Wyłącz;/k nexus} {$p}ponownie. activated: actionbar: '{$s}Tryb Nexusa{$sep}: {$p}Aktywowany' - + deactivated: actionbar: '{$s}Tryb Nexusa{$sep}: {$e}Dezaktywowany' - + disabled: '{$e}Tryb nexusa został wyłączony.' disabled-world: '{$e}Nie można ustawić nexusa w wyłączonym świecie.' setting-nation: '{$e}Już ustalasz lokalizację nexusa swojej nacji.' @@ -2260,43 +2260,43 @@ command: Wykonaj {$es}/k disband &4ponownie, aby potwierdzić. announce: '{$es}%player% {$s}rozwiązał swoją nację {$es}%kingdoms_kingdom_name%' aliases: delete dissolve - + about: description: '{$s}O wtyczce Kingdoms.' aliases: version ver -v --version - + book: description: '{$s}Polecenia związane z księgą twojej nacji.' - + chapter-not-found: '{$e}Nie można znaleźć rozdziału{$sep}: {$es}%chapter%' permission: '{$e}Nie masz uprawnień do modyfikowania książek.' - + rename: description: '{$s}Zmień nazwę rozdziału w księdze swojej nacji.' usage: '{$usage}book rename {$p} ' same: '{$e}Ten rozdział miał już taką samą nazwę.' duplicate: '{$e}Istnieje już inny rozdział o nazwie {$es}%chapter%' renamed: '{$p}Pomyślnie zmieniono nazwę {$s}%old_chapter% {$p}na {$s}%new_chapter%' - + open: description: '{$s}Przeczytaj książkę swojej nacji.' usage: '{$usage}book open &9[chapter]' - + preview: description: '{$s}Podgląd sformatowanej wersji edytowanego rozdziału.' nothing-to-preview: '{$e}Nie edytujesz żadnych rozdziałów do podglądu.' previewing: '{$p}Obecnie podglądasz sformatowaną wersję rozdziału{$sep}: {$s}%chapter%' - + discard: description: '{$s}Odrzuć wszystkie zmiany wprowadzone w rozdziale.' nothing-to-discard: '{$e}Nie edytujesz żadnych rozdziałów, aby odrzucić zmiany.' discarded: '{$p}Wszystkie wprowadzone zmiany w rozdziale {$s}%chapter% {$p}zostały odrzucone.' - + remove: description: '{$s}Usuń rozdział z książki swojej nacji.' usage: '{$usage}book remove {$p}' deleted: '{$p}Pomyślnie usunięto rozdział{$sep}: {$s}%chapter%' - + edit: description: '{$s}Edytuj książkę swojej nacji.' usage: '{$usage}book edit {$p}' @@ -2309,14 +2309,14 @@ command: {$p}Obecnie modyfikujesz rozdział{$sep}: {$s}%chapter% {$p}Wykonaj hover:{{$s}/k book discard;/k book discard;/k book discard} {$p}aby odrzucić wszelkie zmiany. aliases: rules rule handbook notes note - + sneak: description: '{$s}Twoja nacja nie wyłączy lotu innego gracza.' others-permission: '{$e}Nie masz uprawnień do ustawiania trybu sneak innym graczom.' enabled: '{$s}Tryb sneak{$sep}: {$p}Aktywowany' disabled: '{$s}Tryb sneak{$sep}: {$e}Dezaktywowany' aliases: silent stealth - + inventory: description: '{$s}Zobacz inwentarz innego członka twojej nacji.' usage: '{$usage}invsee &9[player]' @@ -2328,7 +2328,7 @@ command: others-permission: '{$e}Nie masz dostępu do skrzyń innych królestw.' description: '{$s}Otwórz swoją skrzynię królestwa zdalnie.' aliases: storage - + invite: invited: | {$s}%inviter% {$p}zaprosił cię do dołączenia do {$s}%kingdom%{$p}. @@ -2347,7 +2347,7 @@ command: expired: '{$e}Twoje zaproszenie od {$es}%inviter% {$e}wygasło!' expired-notify: '{$e}Twoje zaproszenie dla {$es}%invited% {$e}wygasło!' name: invite - + invitecodes: description: '{$s}Kody zaproszeń to alternatywny sposób zapraszania graczy do twojej nacji. Jest to podobne do kodów zaproszeń na Discordzie i pozwala na generowanie kodów, które dowolny gracz może użyć, aby dołączyć do twojej nacji. Tylko gracze z uprawnieniem {$p}INVITE {$s}są w stanie tworzyć, odbierać i usuwać kody zaproszeń.' @@ -2388,7 +2388,7 @@ command: enter: '{$p}Podaj nowy czas ważności kodu zaproszeniowego, aby go zrealizować {$sep}({$s}np. 1dzień lub po prostu 0, aby nigdy nie wygasło{$sep}) {$cancel}' deleted-all: '{$p}Usunięto wszystkie kody zaproszeniowe.' aliases: kanał chan c - + accept: description: '{$s}Akceptuj zaproszenia do dołączenia do nacji.' already-in-kingdom: '{$p}Jesteś już w nacji.' @@ -2403,7 +2403,7 @@ command: multiple-invites: '{$e}Masz wiele zaproszeń, proszę podać nazwę nacji, do której chcesz dołączyć. Możesz również zobaczyć wszystkie swoje zaproszenia za pomocą {$es}hover:{/k invites;{$s}Kliknij, aby uruchomić;/k invites} {$e}komendy.' name: accept aliases: acceptinvite acceptinv acceptinvitation - + join: description: '{$s}Dołącz do nacji, która nie wymaga zaproszenia.' usage: '{$usage}join {$p}' @@ -2412,7 +2412,7 @@ command: elections: '{$e}Nie można dołączyć do nacji w trakcie wyborów.' requires-invite: '{$e}Musisz otrzymać zaproszenie, aby dołączyć do {$es}%kingdom%' name: join - + requestjoin: description: '{$s}Złóż prośbę do nacji o dołączenie.' usage: '{$usage}requestJoin {$p}' @@ -2459,7 +2459,7 @@ command: name: gui ransack: description: '{$s}Stań na ziemi wroga i ją najedź. Nie odbierze to ziemi, ale twoja nacja zyska bonusy.' - + invade: description: '{$s}Stań na ziemi wroga i ją najedź.' higher-strength: '{$e}Twoja nacja jest znacznie silniejsza niż ta nacja. Nie możesz jej najechać.' @@ -2532,7 +2532,7 @@ command: name: invade aliases: invasion countdown-defneder: '{$es}%invader% {$e}is going to invade in {$es}%sec% {$e}seconds' - + challenge: description: '{$s}Planuje inwazję na przyszłość.' usage: '{$usage}challenge {$p}' @@ -2542,7 +2542,7 @@ command: challenged: '{$es}%player% {$e}z nacji {$es}%kingdoms_kingdom_name% {$e}wyzwał twoją nację. Przeczytaj dzienniki audytu nacji, aby uzyskać więcej informacji.' notify-self-members: '{$es}%player% {$e}wyzwał {$es}%kingdoms_kingdom_name%{$e}.' name: challenge - + top: description: '{$s}Pokazuje ranking największych nacji.' loading: '{$s}Ładowanie danych...' @@ -2556,7 +2556,7 @@ command: &7♦ {$p}Punkty zasobów{$sep}: {$s}%kingdoms_fancy_resource_points% &7♦ {$p}Bank{$sep}: {$s}$%kingdoms_fancy_bank%;/k show %kingdoms_kingdom_name%} &7- {$s}%kingdoms_fancy_might% name: top - + map: settings: description: '{$s}Zmień ustawienia mapy {$es}/k map {$s}.' @@ -2579,7 +2579,7 @@ command: not-supported: '{$e}Ta wersja serwera nie obsługuje map opartych na tablicy wyników.' name: map aliases: lands chunks plots - + merge: description: | {$s}Wysyła prośbę do nacji o połączenie twojej nacji z ich nacją. Połączenie nacji skutkuje przeniesieniem wszystkich jej punktów zasobów, pieniędzy w banku, członków i ziem do innej nacji. Przenoszone są również wszelkie ulepszenia o wyższym poziomie. Przeniesieni członkowie zostaną zdegradowani do rangi członka. Wszystkie wieże strażnicze i struktury pozostaną na przeniesionych ziemiach. @@ -2603,7 +2603,7 @@ command: request-received: '{$s}%kingdoms_kingdom_name% {$p}wysłała prośbę o połączenie z twoją nacją. Możesz ją zaakceptować, wykonując {$s}hover:{/k merge %kingdoms_kingdom_name%;&7Kliknij, aby uruchomić;/k merge %kingdoms_kingdom_name%}' merged-sender: '{$p}Twoja nacja została pomyślnie połączona z {$s}%kingdoms_kingdom_name%' merged-receiver: '{$s}%kingdom% {$p}została pomyślnie połączona z twoją nacją.' - + fly: description: '{$s}Włącz latanie na własnej ziemi.' usage: '{$usage}fly &9[player]' @@ -2617,7 +2617,7 @@ command: cant-afford-kingdom: '{$e}Twoja nacja potrzebuje {$es}%amount% {$e}punktów zasobów, aby aktywować latanie.' name: fly aliases: flight - + kick: person: '{$e}Zostałeś wyrzucony z {$es}%kingdom% {$e}przez {$es}%kicker%' description: '{$s}Wyrzuca gracza z twojej nacji.' @@ -2629,7 +2629,7 @@ command: elections: '{$e}Nie można wyrzucać graczy podczas wyborów.' cant-kick: '{$e}Nie można wyrzucić {$es}%kicked%' name: kick - + surrender: defender-permission: '{$e}Nie masz uprawnień do poddania się.' already-ended: '{$e}Inwazja już się zakończyła.' @@ -2638,7 +2638,7 @@ command: Jeśli jesteś obrońcą i się poddasz, atakujący wygrają i zdobędą ziemię. name: surrender aliases: forfeit ff - + leave: success: '{$p}Opuściłeś {$s}%kingdom%' description: '{$s}Opuść swoją nację.' @@ -2649,7 +2649,7 @@ command: announce: '{$es}%left% {$e}opuścił nację!' name: leave aliases: left - + undo: description: '{$s}Cofnij roszczenie/odrzuć.' already-unclaimed: '{$s}Ostatnia ziemia, która została oznaczona, jest już oznaczona. {$s}%x%&7, {$s}%z%' @@ -2659,14 +2659,14 @@ command: unclaimed: '{$p}Odzyskałeś swoją oznaczoną ziemię na {$s}%x%&7, {$s}%z%' no-history: '{$e}Nie masz już historii ziemi do cofania.' name: undo - + redo: no-history: '{$e}Nie masz już historii ziemi do ponownego wykonania.' description: '{$s}Powtórz roszczenie/odrzuć.' already-claimed: '{$s}Ostatnia ziemia, która została oznaczona, jest już oznaczona. {$s}%x%&7, {$s}%z%' already-unclaimed: '{$s}Ostatnia ziemia, która została oznaczona, jest już oznaczona. {$s}%x%&7, {$s}%z%' name: redo - + lore: description: '{$s}Ustaw opis swojego królestwa.' usage: '{$usage}lore {$p}' @@ -2676,14 +2676,14 @@ command: name-has-symbols: '{$e}Opis królestwa nie może zawierać symboli. Tylko cyfry i litery.' removed: '{$p}Usunięto opis królestwa.' aliases: desc description motd - + extractor: description: '{$s}Oznacz wszystkie punkty zasobów we wszystkich wydobywaczach w twojej nacji.' collected: '{$p}Zebrano {$s}%rp% punktów zasobów {$p}z {$s}%extractors% wydobywców {$p}w twojej nacji.' collected-others: '{$p}Zebrano {$s}%rp% punktów zasobów {$p}z {$s}%extractors% wydobywców {$p}dla {$s}%kingdom% {$p}nacji.' collect-others-permission: '{$e}Nie możesz zbierać wydobywców innych nacji.' aliases: extractors extract - + election: description: '{$s}System wyborczy z kandydatami z nacji, aby wybrać nowego króla.' no-ongoing-election: '{$e}Obecnie nie ma trwających wyborów. Następne wybory za{$sep}: {$es}%next-election%' @@ -2697,13 +2697,13 @@ command: usage: '{$usage}election statement {$p}' set: '{$p}Twoje nowe oświadczenie zostało ustawione na{$sep}: &r%statement%' name: election - + relations: description: '{$s}Pokazuje wszystkie aktualne żądania relacji.' no-requests: '{$e}Twoja nacja nie ma żadnych żądań.' name: relations aliases: relation relationship relationships - + ally: description: '{$s}Wysyła prośbę o sojusz do nacji.' usage: '{$usage}ally {$p}' @@ -2749,7 +2749,7 @@ command: rejected: '{$e}Odrzucono prośbę o relacje %relation% {$e}wysłaną przez {$es}%kingdoms_kingdom_name%' notification: '{$e}%kingdoms_kingdom_name% {$es}odrzuciło twoją prośbę o relacje %relation% {$e}.' name: odrzucrelacje - + revoke: description: '{$s}Unieważnij relacje z królestwem.' usage: '{$usage}uniewaznij {$p}' @@ -2794,21 +2794,21 @@ command: message-self: '{$e}Nie możesz wysłać bezpośredniej wiadomości do swojego własnego królestwa.' message-sender-format: '{$sep}[{$s}%kingdoms_rank_color%%kingdoms_rank_symbol%{$sep}]&7|{$sep}[&9%kingdoms_kingdom_name%{$sep}] &7-> {$sep}[&9%receiver-kingdom%{$sep}] %displayname% &7≫ {$s}%message%' message-receiver-format: '{$sep}[{$s}%kingdoms_rank_color%%kingdoms_rank_symbol%{$sep}]&7|{$sep}[&9%kingdoms_kingdom_name%{$sep}] %displayname% &7≫ {$s}%message%' - + mute: description: '{$s}Wycisz określony kanał.' usage: '{$usage}wycisz {$p}' already-muted: '{$s}%channel% {$p}kanał jest już wyciszony.' muted: '{$p}Wyciszono {$s}%channel%' name: wycisz - + unmute: description: '{$s}Odcisz określony kanał.' usage: '{$usage}odcisz {$p}' not-muted: '{$s}%channel% {$p}kanał nie jest wyciszony.' unmuted: '{$p}Odciszono {$s}%channel%' name: odcisz - + broadcast: description: '{$s}Wysyła wiadomość do wszystkich członków królestwa.' usage: '{$usage}ogłoszenie {$p}' @@ -2816,11 +2816,11 @@ command: format: message: | - {$sep}[{$s}%kingdoms_kingdom_name% &lOgłoszenie{$sep}]&7|{$sep}[%kingdoms_rank_color%%kingdoms_rank_symbol% %kingdoms_rank_name% {$e}%player%{$sep}] {$s}%message% + {$sep}[{$s}%kingdoms_kingdom_name% &lOgłoszenie{$sep}]&7|{$sep}[%kingdoms_rank_color%%kingdoms_rank_symbol% %kingdoms_rank_name% {$e}%player%{$sep}] {$s}%message% sound: ENTITY_EXPERIENCE_ORB_PICKUP name: ogłoszenie aliases: bc ogłosz - + king: description: '{$s}Ustaw nowego króla dla twojego królestwa.' only-king: '{$s}Tylko król może ustawić nowego króla królestwa.' @@ -2829,7 +2829,7 @@ command: self: '{$e}Jesteś już królem królestwa.' usage: '{$usage}król {$p}' aliases: setking lider właściciel własność królowa ustawkrólową - + promote: description: '{$s}Awansuje członka w twoim królestwie.' promoted: '{$s}%promoted% {$p}został awansowany na &9%rank% {$p}przez {$s}%player%' @@ -2838,7 +2838,7 @@ command: king: '{$es}%promoted% {$e}ma już najwyższy rangę w królestwie. Aby awansować gracza na króla, użyj {$es}/k król' usage: '{$usage}awansuj {$p}' name: awansuj - + demote: description: '{$s}Dezawansuje członka w twoim królestwie.' demoted: '{$es}%demoted% {$e}został zdegradowany na &9%rank% {$e}przez {$es}%player%' @@ -2848,7 +2848,7 @@ command: member: '{$e}Ten gracz ma rangę członka.' usage: '{$usage}degraduj {$p}' name: degraduj - + visualize: description: '{$s}Ustaw trwałe wskaźniki lub wyłącz je.' usage: '{$usage}wskaźniki [trwałe|przełącz]' @@ -2893,14 +2893,14 @@ command: item: '{$p}%material%&7: &9%worth%' name: handelny aliases: wartość handlowy - + sell: description: '{$s}Sprzedaj przedmioty królestwowe za punkty zasobów.' invalid: '{$e}Przedmiot, który trzymasz, nie jest przedmiotem królestwowym (wieża lub struktura).' item: '{$p}Sprzedałeś {$s}x%amount% %item% {$p}za {$s}%price% {$p}punktów zasobów.' name: sprzedaj aliases: s - + donate: description: '{$s}Przekazuj punkty zasobów królestwu.' usage: '{$usage}przekaz ' @@ -2926,7 +2926,7 @@ command: tpreject: name: tpostrzeż aliases: tpakceptuj tpodrzuć tpoakceptuj tpoakceptacja - + outpost: description: '{$s}Pokazuje dostępne komendy placówki.' not: @@ -2996,7 +2996,7 @@ command: {$s}+%resource-points% {$p}punktów zasobów {$s}+%money% {$p}pieniędzy dla królestwa lost: '{$e}Twoje królestwo przegrało to wydarzenie!' - + start: description: '{$s}Uruchamia wydarzenie placówki z istniejących placówek.' usage: '{$usage}placówka start ' @@ -3006,11 +3006,11 @@ command: scheduled: | - {$s}%outpost% {$p}wydarzenie placówki rozpocznie się za {$s}%start% + {$s}%outpost% {$p}wydarzenie placówki rozpocznie się za {$s}%start% started: | - {$s}%outpost% {$p}wydarzenie placówki już się rozpoczęło! + {$s}%outpost% {$p}wydarzenie placówki już się rozpoczęło! stop: description: '{$s}Zatrzymuje trwające wydarzenie placówki.' usage: '{$usage}placówka stop ' @@ -3018,7 +3018,7 @@ command: stopped: | - {$es}%outpost% {$e}wydarzenie placówki zostało zatrzymane! + {$es}%outpost% {$e}wydarzenie placówki zostało zatrzymane! teleport: description: '{$s}Teleportuje do spawnu placówki.' usage: '{$usage}placówka teleport &2' diff --git a/resources/languages/pt/guis/structures/nexus/nexus.yml b/resources/languages/pt/guis/structures/nexus/nexus.yml index ab33e3d27..e3e4db36b 100644 --- a/resources/languages/pt/guis/structures/nexus/nexus.yml +++ b/resources/languages/pt/guis/structures/nexus/nexus.yml @@ -109,7 +109,7 @@ options: damage-reduction: name: "&3Redução de danos" material: DIAMOND_CHESTPLATE - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "&6Cada atualização reduz os danos" - "tirado por &e1% &6quando você está dentro" @@ -122,7 +122,7 @@ options: damage-boost: name: "&3Aumento de dano" material: DIAMOND_SWORD - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "&6Cada atualização aumenta o seu" - "dano em &e1% &6quando você estiver dentro" @@ -189,8 +189,8 @@ options: red-glass: name: "" material: RED_STAINED_GLASS_PANE - slots: [1, 4, 7, 9, 10, 16, 17, 36, 37, 43, 44, 46, 49, 52] + slots: [ 1, 4, 7, 9, 10, 16, 17, 36, 37, 43, 44, 46, 49, 52 ] black-glass: name: "" material: BLACK_STAINED_GLASS_PANE - slots: [0, 2, 3, 5, 6, 8, 18, 26, 27, 35, 45, 47, 48, 50, 51, 53] + slots: [ 0, 2, 3, 5, 6, 8, 18, 26, 27, 35, 45, 47, 48, 50, 51, 53 ] diff --git a/resources/languages/uk/guis/languages.yml b/resources/languages/uk/guis/languages.yml index 2202d9463..ecc16b609 100644 --- a/resources/languages/uk/guis/languages.yml +++ b/resources/languages/uk/guis/languages.yml @@ -14,7 +14,7 @@ skulls: it: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODVjZTg5MjIzZmE0MmZlMDZhZDY1ZDhkNDRjYTQxMmFlODk5YzgzMTMwOWQ2ODkyNGRmZTBkMTQyZmRiZWVhNCJ9fX0=' pt: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWE0NjQ3NWQ1ZGNjODE1ZjZjNWYyODU5ZWRiYjEwNjExZjNlODYxYzBlYjE0ZjA4ODE2MWIzYzBjY2IyYjBkOSJ9fX0=' uk: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjhiOWY1MmUzNmFhNWM3Y2FhYTFlN2YyNmVhOTdlMjhmNjM1ZThlYWM5YWVmNzRjZWM5N2Y0NjVmNWE2YjUxIn19fQ==' - + # This GUI is quite... controversial. # Please try to keep your cool if your country speaks the language but the flag of another country is listed. options: diff --git a/resources/languages/uk/guis/mails/recipients.yml b/resources/languages/uk/guis/mails/recipients.yml index 956fc8574..939d47da1 100644 --- a/resources/languages/uk/guis/mails/recipients.yml +++ b/resources/languages/uk/guis/mails/recipients.yml @@ -2,7 +2,7 @@ title: "&8-=( &9Одержувачі &8)=-" rows: 3 options: decoration: - slots: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 23, 24, 25, 26] + slots: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 23, 24, 25, 26 ] material: GREEN_STAINED_GLASS_PANE name: '' to: @@ -18,7 +18,7 @@ options: name: '&7Копія&8:' lore: "&2Клацніть, щоб додати" cc: - slots: [12, 13, 14, 15, 16] + slots: [ 12, 13, 14, 15, 16 ] material: BLUE_STAINED_GLASS_PANE name: '&9%singular-cc%' lore: '&cКлацніть, щоб видалити' diff --git a/resources/languages/uk/guis/outposts/editor.yml b/resources/languages/uk/guis/outposts/editor.yml index 362d089c1..1c90eb398 100644 --- a/resources/languages/uk/guis/outposts/editor.yml +++ b/resources/languages/uk/guis/outposts/editor.yml @@ -3,7 +3,7 @@ rows: 4 options: decoration: - slots: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35] + slots: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 ] material: BLACK_STAINED_GLASS_PANE name: '' name: diff --git a/resources/languages/uk/guis/outposts/rewards/commands.yml b/resources/languages/uk/guis/outposts/rewards/commands.yml index a2aa836d8..28562cab6 100644 --- a/resources/languages/uk/guis/outposts/rewards/commands.yml +++ b/resources/languages/uk/guis/outposts/rewards/commands.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcyI6eyJTS0lOIjp7ImV4cCI6MTU4ODMwMzQ0OSwicHJvZmlsZUlkIjoiYTUwOGY2NjY1ZDRkNzNhNmJiYzFiMDZkYTVkYjEwMWYifX19fQ==" name: '{$p}Назад' decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] material: PURPLE_STAINED_GLASS_PANE name: '' info: @@ -31,7 +31,7 @@ options: name: '{$p}Додати' skull: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcyI6eyJTS0lOIjp7ImV4cCI6MTU4ODMwMzQ0OSwicHJvZmlsZUlkIjoiNWZmMzE0MzFkNjQ1ODdmZjZlZjk4YzA2NzU4MTA2ODFmOGMxM2JmOTZmNTFkOWNiMDdlZDc4NTJiMmZmZDEifX19fQ==' commands: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] material: COMMAND_BLOCK name: '%command%' lore: | diff --git a/resources/languages/uk/guis/outposts/rewards/items.yml b/resources/languages/uk/guis/outposts/rewards/items.yml index 7c2532d4e..78d6789e8 100644 --- a/resources/languages/uk/guis/outposts/rewards/items.yml +++ b/resources/languages/uk/guis/outposts/rewards/items.yml @@ -2,7 +2,7 @@ title: '{$sep}-=( {$p}Нагороди за предмети {$sep})=-' rows: 6 # Предмети розміщені тут -interactable: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] +interactable: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] options: back: @@ -12,11 +12,11 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcyI6eyJTS0lOIjp7ImV4cCI6MTU4ODMwMzQ0OSwicHJvZmlsZUlkIjoiYTUwOGY2NjY1ZDRkNzNhNmJiYzFiMDZkYTVkYjEwMWYifX19fQ==" name: '{$p}Назад' decoration-1: - slots: [1, 3, 5, 7, 9, 17, 27, 35, 45, 47, 49, 51, 53] + slots: [ 1, 3, 5, 7, 9, 17, 27, 35, 45, 47, 49, 51, 53 ] material: GREEN_STAINED_GLASS_PANE name: '' decoration-2: - slots: [2, 6, 8, 18, 26, 36, 44, 46, 48, 50, 52] + slots: [ 2, 6, 8, 18, 26, 36, 44, 46, 48, 50, 52 ] material: LIME_STAINED_GLASS_PANE name: '' info: @@ -36,5 +36,5 @@ options: Для створення власних предметів ви можете використовувати команду {$p}/k admin item editor&7. items: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] material: STONE diff --git a/resources/languages/uk/guis/outposts/rewards/main.yml b/resources/languages/uk/guis/outposts/rewards/main.yml index 52d1b334d..1374ada78 100644 --- a/resources/languages/uk/guis/outposts/rewards/main.yml +++ b/resources/languages/uk/guis/outposts/rewards/main.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcyI6eyJTS0lOIjp7ImV4cCI6MTU4ODMwMzQ0OSwicHJvZmlsZUlkIjoiYTUwOGY2NjY1ZDRkNzNhNmJiYzFiMDZkYTVkYjEwMWYifX19fQ==" name: '{$p}Назад' decoration: - slots: [1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] material: GREEN_STAINED_GLASS_PANE name: '' resource-points: diff --git a/resources/languages/uk/guis/protection-signs/kingdoms.yml b/resources/languages/uk/guis/protection-signs/kingdoms.yml index d2fc961dc..34718a78d 100644 --- a/resources/languages/uk/guis/protection-signs/kingdoms.yml +++ b/resources/languages/uk/guis/protection-signs/kingdoms.yml @@ -47,8 +47,8 @@ options: else: name: "&6%name% &8- &cВиключено" material: PLAYER_HEAD - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] black-glass: name: '' material: CYAN_STAINED_GLASS_PANE - slots: [2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] diff --git a/resources/languages/uk/guis/protection-signs/players.yml b/resources/languages/uk/guis/protection-signs/players.yml index d2fc961dc..34718a78d 100644 --- a/resources/languages/uk/guis/protection-signs/players.yml +++ b/resources/languages/uk/guis/protection-signs/players.yml @@ -47,8 +47,8 @@ options: else: name: "&6%name% &8- &cВиключено" material: PLAYER_HEAD - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] black-glass: name: '' material: CYAN_STAINED_GLASS_PANE - slots: [2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] diff --git a/resources/languages/uk/guis/structures/nexus/nation/nexus.yml b/resources/languages/uk/guis/structures/nexus/nation/nexus.yml index 58d9c7fe3..05d2884ea 100644 --- a/resources/languages/uk/guis/structures/nexus/nation/nexus.yml +++ b/resources/languages/uk/guis/structures/nexus/nation/nexus.yml @@ -31,8 +31,8 @@ options: red-glass: name: "" material: RED_STAINED_GLASS_PANE - slots: [1, 7, 9, 17, 19, 25] + slots: [ 1, 7, 9, 17, 19, 25 ] black-glass: name: "" material: BLACK_STAINED_GLASS_PANE - slots: [0, 8, 18, 26] \ No newline at end of file + slots: [ 0, 8, 18, 26 ] \ No newline at end of file diff --git a/resources/languages/uk/guis/structures/nexus/nation/ranks/permissions.yml b/resources/languages/uk/guis/structures/nexus/nation/ranks/permissions.yml index a71fb6607..b839cb360 100644 --- a/resources/languages/uk/guis/structures/nexus/nation/ranks/permissions.yml +++ b/resources/languages/uk/guis/structures/nexus/nation/ranks/permissions.yml @@ -114,7 +114,7 @@ rows: 6 options: decoration: - slots: [1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: BLACK_STAINED_GLASS_PANE name: '' @@ -129,7 +129,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MhMmQ1ZjQ0MTlmYzY0NSJ9fX0=" slot: 0 permissions: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] # Це особлива функція '[switch]': permission diff --git a/resources/languages/uk/guis/structures/nexus/nation/ranks/rank-editor.yml b/resources/languages/uk/guis/structures/nexus/nation/ranks/rank-editor.yml index a03e2e489..11a80b79b 100644 --- a/resources/languages/uk/guis/structures/nexus/nation/ranks/rank-editor.yml +++ b/resources/languages/uk/guis/structures/nexus/nation/ranks/rank-editor.yml @@ -4,7 +4,7 @@ sound: ITEM_BOOK_PAGE_TURN options: decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] + slots: [ 1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] material: BLUE_STAINED_GLASS_PANE name: '' diff --git a/resources/languages/uk/guis/structures/nexus/nation/resource-points-converter.yml b/resources/languages/uk/guis/structures/nexus/nation/resource-points-converter.yml index 7d86a6b59..0679cc695 100644 --- a/resources/languages/uk/guis/structures/nexus/nation/resource-points-converter.yml +++ b/resources/languages/uk/guis/structures/nexus/nation/resource-points-converter.yml @@ -36,4 +36,4 @@ options: lime-glass: name: '' material: LIME_STAINED_GLASS_PANE - slots: [46, 47, 48, 50, 51, 52] \ No newline at end of file + slots: [ 46, 47, 48, 50, 51, 52 ] \ No newline at end of file diff --git a/resources/languages/uk/guis/structures/nexus/nexus.yml b/resources/languages/uk/guis/structures/nexus/nexus.yml index dc1397bbf..a1c4085b2 100644 --- a/resources/languages/uk/guis/structures/nexus/nexus.yml +++ b/resources/languages/uk/guis/structures/nexus/nexus.yml @@ -108,7 +108,7 @@ options: damage-reduction: name: "&3Зменшення пошкоджень" material: DIAMOND_CHESTPLATE - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "&6Кожне покращення зменшує отримані" - "пошкодження на &e1% &6, коли ви перебуваєте" @@ -121,7 +121,7 @@ options: damage-boost: name: "&3Підвищення пошкоджень" material: DIAMOND_SWORD - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "&6Кожне покращення збільшує ваші" - "пошкодження на &e1% &6, коли ви перебуваєте" diff --git a/resources/languages/uk/guis/structures/nexus/resource-points-converter.yml b/resources/languages/uk/guis/structures/nexus/resource-points-converter.yml index a8e5bb353..604fbd141 100644 --- a/resources/languages/uk/guis/structures/nexus/resource-points-converter.yml +++ b/resources/languages/uk/guis/structures/nexus/resource-points-converter.yml @@ -55,4 +55,4 @@ options: lime-glass: name: '' material: LIME_STAINED_GLASS_PANE - slots: [46, 47, 51, 52] + slots: [ 46, 47, 51, 52 ] diff --git a/resources/languages/uk/guis/structures/nexus/settings/color-picker.yml b/resources/languages/uk/guis/structures/nexus/settings/color-picker.yml index dfc0b0d6b..721b707c3 100644 --- a/resources/languages/uk/guis/structures/nexus/settings/color-picker.yml +++ b/resources/languages/uk/guis/structures/nexus/settings/color-picker.yml @@ -4,7 +4,7 @@ rows: 6 options: separator: - slots: [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + slots: [ 0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ] material: GRAY_STAINED_GLASS_PANE back: posx: 4 diff --git a/resources/languages/uk/guis/structures/nexus/settings/relation-editor.yml b/resources/languages/uk/guis/structures/nexus/settings/relation-editor.yml index c0ba99b1f..9d4c91ce5 100644 --- a/resources/languages/uk/guis/structures/nexus/settings/relation-editor.yml +++ b/resources/languages/uk/guis/structures/nexus/settings/relation-editor.yml @@ -4,7 +4,7 @@ sound: ITEM_BOOK_PAGE_TURN options: green-stained-glass-pane: - slots: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44] + slots: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 29, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] material: GREEN_STAINED_GLASS_PANE name: '' back: diff --git a/resources/languages/uk/guis/structures/nexus/structures.yml b/resources/languages/uk/guis/structures/nexus/structures.yml index 1e5f4aa6b..f6b27be28 100644 --- a/resources/languages/uk/guis/structures/nexus/structures.yml +++ b/resources/languages/uk/guis/structures/nexus/structures.yml @@ -9,7 +9,7 @@ options: name: "&4Енергоелемент" material: MUSIC_DISC_CHIRP sound: BLOCK_REDSTONE_TORCH_BURNOUT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Територія, оточена енергоелементом, не може" - "бути захоплена, поки не буде захоплена" @@ -23,7 +23,7 @@ options: name: "&aЕкстрактор" material: MUSIC_DISC_CAT sound: BLOCK_ANVIL_LAND - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Екстрактори виробляють ресурсні бали." - "&6Ви можете збирати ресурсні бали" @@ -36,7 +36,7 @@ options: name: "&eАванпост" material: MUSIC_DISC_13 sound: ENTITY_EXPERIENCE_ORB_PICKUP, 1.5 - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Ви можете отримувати флакони з досвідом" - "з аванпостів, використовуючи ресурсні бали." @@ -48,7 +48,7 @@ options: name: "&cТелепортатор" material: MUSIC_DISC_BLOCKS sound: ENTITY_ENDERMAN_TELEPORT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Телепортатори можуть бути використані для телепортації" - "з однієї структури до іншої." @@ -60,7 +60,7 @@ options: name: "&3Регулятор" material: MUSIC_DISC_WARD sound: ENTITY_VILLAGER_AMBIENT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Керуйте характеристиками гравця, такими як будівництво," - "перестрілка турелей та інше..." @@ -76,7 +76,7 @@ options: name: "&3Осадна гармата" material: MUSIC_DISC_STRAD sound: ENTITY_VILLAGER_AMBIENT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Гармата, яка використовується для руйнування щита королівства." - "&2Вартість&8: &6%cost%" diff --git a/resources/languages/uk/guis/structures/nexus/turrets.yml b/resources/languages/uk/guis/structures/nexus/turrets.yml index 76ffb24f3..4ad83920f 100644 --- a/resources/languages/uk/guis/structures/nexus/turrets.yml +++ b/resources/languages/uk/guis/structures/nexus/turrets.yml @@ -18,7 +18,7 @@ options: name: "&3Полум'я" material: SPECTRAL_ARROW sound: ITEM_FLINTANDSTEEL_USE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Турель зі швидкою стрільбою, яка підпалює" - "цілі." @@ -30,7 +30,7 @@ options: name: "&dЛікування" material: TIPPED_ARROW sound: ENTITY_ZOMBIE_VILLAGER_CURE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Лікує близьких членів та союзників." - "" @@ -41,7 +41,7 @@ options: name: "&aПсіоніка" material: TRIPWIRE_HOOK sound: ENTITY_PLAYER_HURT_ON_FIRE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6Впливає на ворогів навколо." - "На вищих рівнях додає більше ефектів." diff --git a/resources/languages/uk/guis/structures/outpost/1.yml b/resources/languages/uk/guis/structures/outpost/1.yml index c9bad3e7b..b179b4653 100644 --- a/resources/languages/uk/guis/structures/outpost/1.yml +++ b/resources/languages/uk/guis/structures/outpost/1.yml @@ -194,11 +194,11 @@ options: black-glass: name: '' material: BLACK_STAINED_GLASS_PANE - slots: [46, 47, 48, 50, 51, 52] + slots: [ 46, 47, 48, 50, 51, 52 ] brown-stained-glass-pane: name: '' material: BROWN_STAINED_GLASS_PANE - slots: [0, 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44] + slots: [ 0, 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] next-page: name: '&6Наступна Сторінка &7- &e%page%&8/&e%pages%' material: PLAYER_HEAD diff --git a/resources/languages/uk/guis/structures/outpost/2.yml b/resources/languages/uk/guis/structures/outpost/2.yml index a14da325e..b9f87d243 100644 --- a/resources/languages/uk/guis/structures/outpost/2.yml +++ b/resources/languages/uk/guis/structures/outpost/2.yml @@ -31,11 +31,11 @@ options: black-glass: name: '' material: BLACK_STAINED_GLASS_PANE - slots: [46, 47, 48, 50, 51, 52] + slots: [ 46, 47, 48, 50, 51, 52 ] brown-stained-glass-pane: name: '' material: BROWN_STAINED_GLASS_PANE - slots: [1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44] + slots: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 ] previous-page: name: '&6Previous Page &7- &e%page%&8/&e%pages%' material: PLAYER_HEAD diff --git a/resources/languages/uk/guis/structures/outpost/amount-picker.yml b/resources/languages/uk/guis/structures/outpost/amount-picker.yml index bdc396918..0c3fe9cb9 100644 --- a/resources/languages/uk/guis/structures/outpost/amount-picker.yml +++ b/resources/languages/uk/guis/structures/outpost/amount-picker.yml @@ -4,7 +4,7 @@ sound: ENTITY_EXPERIENCE_ORB_PICKUP options: black-stained-glass-pane: - slots: [1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] material: BLACK_STAINED_GLASS_PANE name: '' cancel: diff --git a/resources/languages/uk/guis/structures/regulator/attributes.yml b/resources/languages/uk/guis/structures/regulator/attributes.yml index 676156b09..990ac3652 100644 --- a/resources/languages/uk/guis/structures/regulator/attributes.yml +++ b/resources/languages/uk/guis/structures/regulator/attributes.yml @@ -12,11 +12,11 @@ options: - "&2Пожертви&8: &6%kingdoms_total_donations%" - "&2Остання пожертва&8: &6%kingdoms_date_last_donation_time%" - "&2Ранг&8: &6%kingdoms_rank_name%" - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] red-glass: name: '' material: RED_STAINED_GLASS_PANE - slots: [1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] add: name: "&2Додати Гравця" material: GREEN_WOOL diff --git a/resources/languages/zh/guis/invites.yml b/resources/languages/zh/guis/invites.yml index 3f879fef5..70fbff061 100644 --- a/resources/languages/zh/guis/invites.yml +++ b/resources/languages/zh/guis/invites.yml @@ -5,7 +5,7 @@ sound: ENTITY_EXPERIENCE_ORB_PICKUP options: invite: material: PLAYER_HEAD - + valid: condition: expired name: "已过期{$sep}[%kingdoms_rank_color%%kingdoms_rank_symbol%{$sep}]{$p}%player%" @@ -21,7 +21,7 @@ options: {$p}&l左键以同意 {$e}&l右键以拒绝 - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20 ] decline-all: name: "{$e}全部拒绝" material: RED_WOOL @@ -32,4 +32,4 @@ options: blue-glass: name: '' material: BLUE_STAINED_GLASS_PANE - slots: [0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] \ No newline at end of file + slots: [ 0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/item-editor/attributes/operations.yml b/resources/languages/zh/guis/item-editor/attributes/operations.yml index c3ff8d0bd..fa469cdbb 100644 --- a/resources/languages/zh/guis/item-editor/attributes/operations.yml +++ b/resources/languages/zh/guis/item-editor/attributes/operations.yml @@ -2,7 +2,7 @@ title: "{$sep}-=( {$p}属性操作{$sep} )=-" rows: 3 op: &fn-op - args: [""] + args: [ "" ] return: enabled: condition: enabled @@ -19,7 +19,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '{$p}返回' decoration: - slots: [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] material: BROWN_STAINED_GLASS_PANE name: '' info: diff --git a/resources/languages/zh/guis/item-editor/enchantments.yml b/resources/languages/zh/guis/item-editor/enchantments.yml index 94ddfab1a..a091f0d49 100644 --- a/resources/languages/zh/guis/item-editor/enchantments.yml +++ b/resources/languages/zh/guis/item-editor/enchantments.yml @@ -3,7 +3,7 @@ rows: 6 # What the hell is this: https://github.com/CryptoMorin/KingdomsX/wiki/Config#yaml '[fn-enchant]': &fn-enchant - args: [""] + args: [ "" ] return: not-supported: condition: "!supported" @@ -789,7 +789,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '{$p}返回' decoration: - slots: [46, 47, 48, 50, 51, 52] + slots: [ 46, 47, 48, 50, 51, 52 ] material: BLACK_STAINED_GLASS_PANE name: '' remove-all: diff --git a/resources/languages/zh/guis/item-editor/flags.yml b/resources/languages/zh/guis/item-editor/flags.yml index f720bff2b..ef875e28f 100644 --- a/resources/languages/zh/guis/item-editor/flags.yml +++ b/resources/languages/zh/guis/item-editor/flags.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '&c返回' decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 1, 2, 3, 5, 6, 7, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] material: GREEN_STAINED_GLASS_PANE name: '' info: @@ -139,7 +139,7 @@ options: posx: 7 posy: 2 material: POTION - effects: ["BLINDNESS, 1, 10"] + effects: [ "BLINDNESS, 1, 10" ] not-supported: condition: "!supported" name: "{$sep}[{$e}不支持{$sep}]{$es}隐藏药水效果" diff --git a/resources/languages/zh/guis/item-editor/main.yml b/resources/languages/zh/guis/item-editor/main.yml index e2be9937a..8d94c1eb6 100644 --- a/resources/languages/zh/guis/item-editor/main.yml +++ b/resources/languages/zh/guis/item-editor/main.yml @@ -47,7 +47,7 @@ options: posy: 2 material: ENCHANTED_BOOK name: '{$p}附魔' - lore: ["{$p}点击以编辑"] # The lore is modified by the plugin to add set enchants + lore: [ "{$p}点击以编辑" ] # The lore is modified by the plugin to add set enchants unbreakable: isUnbreakable: condition: item_unbreakable diff --git a/resources/languages/zh/guis/item-editor/nbt.yml b/resources/languages/zh/guis/item-editor/nbt.yml index fa599b3d7..732c2abe9 100644 --- a/resources/languages/zh/guis/item-editor/nbt.yml +++ b/resources/languages/zh/guis/item-editor/nbt.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '{$p}返回' decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: ORANGE_STAINED_GLASS_PANE name: '' info: @@ -48,7 +48,7 @@ options: posx: 5 posy: 6 tag: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] compound: condition: "tag == 'compound'" name: '{$sep}[{$s}Compound{$sep}]{$p}%key%' diff --git a/resources/languages/zh/guis/languages.yml b/resources/languages/zh/guis/languages.yml index 1d412e11b..e1e741b10 100644 --- a/resources/languages/zh/guis/languages.yml +++ b/resources/languages/zh/guis/languages.yml @@ -16,7 +16,7 @@ skulls: # Please try to keep your cool if your country speaks the language but the flag of another country is listed. options: decoration: - slots: [0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] material: LIGHT_BLUE_STAINED_GLASS_PANE name: '' current-language: @@ -25,6 +25,6 @@ options: material: PLAYER_HEAD name: '{$p}当前语言{$sep}: {$sp}%kingdoms_lang%' language: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] material: PLAYER_HEAD name: '{$p}%lang%' \ No newline at end of file diff --git a/resources/languages/zh/guis/mails/mailbox.yml b/resources/languages/zh/guis/mails/mailbox.yml index 3930f38cf..7fc6f8d34 100644 --- a/resources/languages/zh/guis/mails/mailbox.yml +++ b/resources/languages/zh/guis/mails/mailbox.yml @@ -17,7 +17,7 @@ options: skull: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzMzlmZjJlNTM0MmJhMThiZGM0OGE5OWNjYTY1ZDEyM2NlNzgxZDg3ODI3MmY5ZDk2NGVhZDNiOGFkMzcwIn19fQ==' name: '{$p}下一页' separators: - slots: [1, 3, 5, 7, 9, 13, 17, 18, 22, 26, 27, 31, 35, 36, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 3, 5, 7, 9, 13, 17, 18, 22, 26, 27, 31, 35, 36, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: GREEN_STAINED_GLASS_PANE name: '' sent-indicator: @@ -51,7 +51,7 @@ options: {$p}需要金币{$sep}: {$s}$%envelope-cost-money% {$p}需要资源点{$sep}: {$s}%envelope-cost-resource-points% sent: - slots: [10, 11, 12, 19, 20, 21, 28, 29, 30, 37, 38, 39] + slots: [ 10, 11, 12, 19, 20, 21, 28, 29, 30, 37, 38, 39 ] material: PLAYER_HEAD name: '{$p}主题{$sep}: {$s}%subject%' lore: | @@ -63,7 +63,7 @@ options: {$p}总结{$sep}: &f%summary% inbox: - slots: [14, 15, 16, 23, 24, 25, 32, 33, 34, 41, 42, 43] + slots: [ 14, 15, 16, 23, 24, 25, 32, 33, 34, 41, 42, 43 ] material: PLAYER_HEAD name: '{$p}主题{$sep}: {$s}%subject%' lore: | diff --git a/resources/languages/zh/guis/outposts/rewards/commands.yml b/resources/languages/zh/guis/outposts/rewards/commands.yml index 5c6efb990..024bd800d 100644 --- a/resources/languages/zh/guis/outposts/rewards/commands.yml +++ b/resources/languages/zh/guis/outposts/rewards/commands.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '' decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] material: PURPLE_STAINED_GLASS_PANE name: '' info: @@ -29,7 +29,7 @@ options: name: '{$p}添加' skull: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWZmMzE0MzFkNjQ1ODdmZjZlZjk4YzA2NzU4MTA2ODFmOGMxM2JmOTZmNTFkOWNiMDdlZDc4NTJiMmZmZDEifX19' commands: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] material: COMMAND_BLOCK name: '%command%' lore: | diff --git a/resources/languages/zh/guis/outposts/rewards/main.yml b/resources/languages/zh/guis/outposts/rewards/main.yml index 6e3573dff..9439e2e16 100644 --- a/resources/languages/zh/guis/outposts/rewards/main.yml +++ b/resources/languages/zh/guis/outposts/rewards/main.yml @@ -9,7 +9,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '{$p}返回' decoration: - slots: [1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ] material: GREEN_STAINED_GLASS_PANE name: '' resource-points: diff --git a/resources/languages/zh/guis/protection-signs/kingdoms.yml b/resources/languages/zh/guis/protection-signs/kingdoms.yml index 62d67274a..a81344435 100644 --- a/resources/languages/zh/guis/protection-signs/kingdoms.yml +++ b/resources/languages/zh/guis/protection-signs/kingdoms.yml @@ -47,8 +47,8 @@ options: else: name: "{$s}%name%{$sep}-{$e}黑名单" material: PLAYER_HEAD - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] black-glass: name: '' material: CYAN_STAINED_GLASS_PANE - slots: [2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] \ No newline at end of file + slots: [ 2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/protection-signs/players.yml b/resources/languages/zh/guis/protection-signs/players.yml index 4126a35da..3e3f91b89 100644 --- a/resources/languages/zh/guis/protection-signs/players.yml +++ b/resources/languages/zh/guis/protection-signs/players.yml @@ -47,8 +47,8 @@ options: else: name: "{$s}%name%{$sep}-{$e}黑名单{$sep}-%online%" material: PLAYER_HEAD - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] black-glass: name: '' material: CYAN_STAINED_GLASS_PANE - slots: [2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] \ No newline at end of file + slots: [ 2, 3, 4, 5, 6, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/protection-signs/protection-type.yml b/resources/languages/zh/guis/protection-signs/protection-type.yml index 0a8ad33dd..ea0920f77 100644 --- a/resources/languages/zh/guis/protection-signs/protection-type.yml +++ b/resources/languages/zh/guis/protection-signs/protection-type.yml @@ -11,7 +11,7 @@ options: {$p}这个方块会自动从其他玩家手中被保护, 除非玩家被手动添加到列表。 material: OAK_SIGN - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -29,7 +29,7 @@ options: {$p}这个方块会自动从其他非本王国的玩家手中被保护, 除非玩家被手动添加到列表。 material: SPRUCE_SIGN - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -46,7 +46,7 @@ options: lore: | {$p}任何玩家都可以编辑这个方块, 除非玩家被手动移出此列表。 material: DARK_OAK_SIGN - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: diff --git a/resources/languages/zh/guis/structures/nexus/champion-upgrades.yml b/resources/languages/zh/guis/structures/nexus/champion-upgrades.yml index 403390b57..653c1a718 100644 --- a/resources/languages/zh/guis/structures/nexus/champion-upgrades.yml +++ b/resources/languages/zh/guis/structures/nexus/champion-upgrades.yml @@ -6,7 +6,7 @@ options: settings: name: "&b设置" material: DIAMOND_SWORD - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$p}更改你斗士的设置, " - "如升级他的装备" @@ -95,7 +95,7 @@ options: death-duel: name: "&b决一死战" material: GOLDEN_SWORD - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$p}所有除入侵者(即输入/k invade的玩家)以外的玩家, " - "对斗士造成的伤害都会减少{$p}50%{$p}。" @@ -119,7 +119,7 @@ options: damage-cap: name: "&b伤害封顶" material: DIAMOND_CHESTPLATE - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$p}你的斗士单次只能受到最高" - "{$p}%scaling%{$p}点伤害, 无视伤害类型。" @@ -131,7 +131,7 @@ options: thor: name: "&b雷神之力" material: DIAMOND_AXE - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$p}每{$p}3{$p}秒, 闪电会" - "{$p}击中入侵者和附近所有非盟友玩家。" @@ -160,7 +160,7 @@ options: - "{$p}价格{$sep}: {$s}%cost%" posx: 7 posy: 4 - + back: name: "{$p}返回" material: BARRIER @@ -171,12 +171,12 @@ options: purple-glass: name: "" material: PURPLE_STAINED_GLASS_PANE - slots: [0, 2, 6, 8, 18, 26, 27, 35, 45, 47, 51, 53] + slots: [ 0, 2, 6, 8, 18, 26, 27, 35, 45, 47, 51, 53 ] black-glass: name: "" material: BLACK_STAINED_GLASS_PANE - slots: [1, 7, 9, 17, 36, 44, 46, 52] + slots: [ 1, 7, 9, 17, 36, 44, 46, 52 ] magenta-glass: name: "" material: MAGENTA_STAINED_GLASS_PANE - slots: [10, 16, 37, 43] \ No newline at end of file + slots: [ 10, 16, 37, 43 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/logs.yml b/resources/languages/zh/guis/structures/nexus/logs.yml index d7cee370f..476ddfeb2 100644 --- a/resources/languages/zh/guis/structures/nexus/logs.yml +++ b/resources/languages/zh/guis/structures/nexus/logs.yml @@ -386,7 +386,7 @@ rows: 6 options: decoration: - slots: [1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: RED_STAINED_GLASS_PANE name: '' next-page: @@ -399,11 +399,11 @@ options: material: PLAYER_HEAD skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=" slot: 0 - + entry: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] '[switch]': type - + back: posx: 5 posy: 6 diff --git a/resources/languages/zh/guis/structures/nexus/misc-upgrades.yml b/resources/languages/zh/guis/structures/nexus/misc-upgrades.yml index 657262727..86c40bab6 100644 --- a/resources/languages/zh/guis/structures/nexus/misc-upgrades.yml +++ b/resources/languages/zh/guis/structures/nexus/misc-upgrades.yml @@ -16,7 +16,7 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 3 posy: 1 anti-trample: @@ -35,7 +35,7 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 4 posy: 1 nexus-guards: @@ -58,7 +58,7 @@ options: max-level: BLOCK_NOTE_BLOCK_BASS not-enough-resource-points: BLOCK_NOTE_BLOCK_BASS upgraded: ENTITY_EXPERIENCE_ORB_PICKUP - + posx: 5 posy: 1 guards: @@ -81,7 +81,7 @@ options: max-level: BLOCK_NOTE_BLOCK_BASS not-enough-resource-points: BLOCK_NOTE_BLOCK_BASS upgraded: ENTITY_EXPERIENCE_ORB_PICKUP - + posx: 6 posy: 1 insanity: @@ -98,10 +98,10 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 7 posy: 1 - + invasion-teleportation: name: "&3入侵传送" material: ENDER_PEARL @@ -115,7 +115,7 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 3 posy: 2 invasions: @@ -132,7 +132,7 @@ options: - "" - "&2价格&8: &6%cost%" - "&2等级&8: &6%level%" - + posx: 2 posy: 2 anti-explosion: @@ -152,7 +152,7 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 4 posy: 2 max-claims: @@ -168,7 +168,7 @@ options: - "{$p}当前最大地块量{$sep}: {$s}%kingdoms_max_lands%" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 8 posy: 2 max-members: @@ -183,7 +183,7 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 6 posy: 2 chest-size: @@ -198,10 +198,10 @@ options: - "" - "{$p}价格{$sep}: {$s}%cost%" - "{$p}等级{$sep}: {$s}%level%" - + posx: 7 posy: 2 - + back: name: "{$p}返回" material: PLAYER_HEAD @@ -213,8 +213,8 @@ options: cyan-glass: name: '' material: CYAN_STAINED_GLASS_PANE - slots: [1, 7, 9, 17, 19, 25] + slots: [ 1, 7, 9, 17, 19, 25 ] light-blue-glass: name: '' material: LIGHT_BLUE_STAINED_GLASS_PANE - slots: [0, 8, 18, 26] \ No newline at end of file + slots: [ 0, 8, 18, 26 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/nation/ranks/permissions.yml b/resources/languages/zh/guis/structures/nexus/nation/ranks/permissions.yml index 5ede0bf76..9a5730ccb 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/ranks/permissions.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/ranks/permissions.yml @@ -4,7 +4,7 @@ rows: 6 # Don't remove "-nosync" from below. # -nosync '[fn-std-perm]': &fn-std-perm - args: [""] + args: [ "" ] return: enabled: condition: enabled @@ -16,7 +16,7 @@ rows: 6 # -nosync '[fn-perm]': &fn-perm - args: ["", ""] + args: [ "", "" ] return: material: enabled: @@ -454,10 +454,10 @@ rows: 6 options: decoration: - slots: [1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: BLACK_STAINED_GLASS_PANE name: '' - + next-page: name: '{$s}下一页{$p}-&e%page%{$sep}/&e%pages%' material: PLAYER_HEAD @@ -468,12 +468,12 @@ options: material: PLAYER_HEAD skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=" slot: 0 - + permissions: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] # This is a special feature '[switch]': permission - + back: posx: 5 posy: 6 diff --git a/resources/languages/zh/guis/structures/nexus/nation/ranks/rank-selector.yml b/resources/languages/zh/guis/structures/nexus/nation/ranks/rank-selector.yml index 1a8085cac..1a3221039 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/ranks/rank-selector.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/ranks/rank-selector.yml @@ -6,9 +6,9 @@ options: ranks: name: "%rank_color%%rank_symbol% %rank_name%" material: PLAYER_HEAD - slots: [ 11, 12, 13, 14, 15, - 20, 21, 22, 23, 24, - 29, 30, 31, 32, 33, + slots: [ 11, 12, 13, 14, 15, + 20, 21, 22, 23, 24, + 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 ] back: name: "{$p}返回" diff --git a/resources/languages/zh/guis/structures/nexus/nation/ranks/ranks.yml b/resources/languages/zh/guis/structures/nexus/nation/ranks/ranks.yml index ebf148d8f..3d7e90d6a 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/ranks/ranks.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/ranks/ranks.yml @@ -26,9 +26,9 @@ options: rank: name: "%rank_color%%rank_symbol%%rank_name%" material: PLAYER_HEAD - slots: [ 11, 12, 13, 14, 15, - 20, 21, 22, 23, 24, - 29, 30, 31, 32, 33, + slots: [ 11, 12, 13, 14, 15, + 20, 21, 22, 23, 24, + 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 ] back: name: "{$p}返回" diff --git a/resources/languages/zh/guis/structures/nexus/nation/resource-points-converter.yml b/resources/languages/zh/guis/structures/nexus/nation/resource-points-converter.yml index fd21b013c..8d66dbb52 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/resource-points-converter.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/resource-points-converter.yml @@ -1,7 +1,7 @@ title: "&a资源点转换器" rows: 6 sound: BLOCK_BELL_USE -interactable: [999] +interactable: [ 999 ] disallow-creative: true #disallow-creative: true @@ -34,4 +34,4 @@ options: lime-glass: name: '' material: LIME_STAINED_GLASS_PANE - slots: [46, 47, 48, 50, 51, 52] \ No newline at end of file + slots: [ 46, 47, 48, 50, 51, 52 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/nation/settings/relation-editor.yml b/resources/languages/zh/guis/structures/nexus/nation/settings/relation-editor.yml index c2e12b3bd..b56e40f02 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/settings/relation-editor.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/settings/relation-editor.yml @@ -8,7 +8,7 @@ options: condition: enabled name: "{$p}飞行{$sep}: {$p}已启用" material: ELYTRA - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -25,7 +25,7 @@ options: condition: enabled name: "{$p}建造{$sep}: {$p}已启用" material: DIAMOND_PICKAXE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -42,7 +42,7 @@ options: condition: enabled name: "{$p}停火{$sep}: {$p}已启用" material: DIAMOND_SWORD - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -59,7 +59,7 @@ options: condition: enabled name: "{$p}交互{$sep}: {$p}已启用" material: CAULDRON - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -76,7 +76,7 @@ options: condition: enabled name: "{$p}使用{$sep}: {$p}已启用" material: LEVER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -95,7 +95,7 @@ options: condition: enabled name: "{$p}炮塔停火{$sep}: {$p}已启用" material: SPECTRAL_ARROW - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -112,7 +112,7 @@ options: condition: enabled name: "{$p}管理炮塔{$sep}: {$p}已启用" material: ARROW - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -129,7 +129,7 @@ options: condition: enabled name: "{$p}管理设施{$sep}: {$p}已启用" material: REDSTONE_LAMP - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -141,7 +141,7 @@ options: - "{$p}允许破坏, 放置设施及与设施交互。" posx: 8 posy: 1 - + back: name: "{$p}返回" material: PLAYER_HEAD diff --git a/resources/languages/zh/guis/structures/nexus/nation/settings/settings.yml b/resources/languages/zh/guis/structures/nexus/nation/settings/settings.yml index 7eff3fdbd..497a4b633 100644 --- a/resources/languages/zh/guis/structures/nexus/nation/settings/settings.yml +++ b/resources/languages/zh/guis/structures/nexus/nation/settings/settings.yml @@ -47,10 +47,10 @@ options: posx: 6 posy: 1 blue-stained-glass-pane: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 25, 28, 34, 37, 43, 46, 47, 48, 49, 50, 51, 52] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 25, 28, 34, 37, 43, 46, 47, 48, 49, 50, 51, 52 ] material: BLUE_STAINED_GLASS_PANE name: '' - + back: name: "{$p}返回" material: PLAYER_HEAD @@ -60,7 +60,7 @@ options: posx: 1 posy: 1 light-blue-stained-glass-pane: - slots: [1, 2, 6, 7, 8, 9, 17, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 35, 36, 39, 41, 44, 45, 53] + slots: [ 1, 2, 6, 7, 8, 9, 17, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 35, 36, 39, 41, 44, 45, 53 ] material: LIGHT_BLUE_STAINED_GLASS_PANE name: '' public-home: diff --git a/resources/languages/zh/guis/structures/nexus/nexus.yml b/resources/languages/zh/guis/structures/nexus/nexus.yml index b5cbad2e9..c737b6b44 100644 --- a/resources/languages/zh/guis/structures/nexus/nexus.yml +++ b/resources/languages/zh/guis/structures/nexus/nexus.yml @@ -90,7 +90,7 @@ options: damage-reduction: name: "&3伤害降低" material: DIAMOND_CHESTPLATE - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$s}每升一级减少受到的&e1%{$s}伤害。" - "" @@ -101,7 +101,7 @@ options: damage-boost: name: "&3近战伤害增幅" material: DIAMOND_SWORD - flags: [HIDE_ATTRIBUTES] + flags: [ HIDE_ATTRIBUTES ] lore: - "{$s}每升一级增加造成的&e1%{$s}近战伤害。" - "" @@ -155,12 +155,12 @@ options: {$p}总共邮件数{$sep}: {$s}%kingdoms_mails_total% posx: 5 posy: 4 - + red-glass: name: "" material: RED_STAINED_GLASS_PANE - slots: [1, 4, 7, 9, 10, 16, 17, 36, 37, 43, 44, 46, 49, 52] + slots: [ 1, 4, 7, 9, 10, 16, 17, 36, 37, 43, 44, 46, 49, 52 ] black-glass: name: "" material: BLACK_STAINED_GLASS_PANE - slots: [0, 2, 3, 5, 6, 8, 18, 26, 27, 35, 45, 47, 48, 50, 51, 53] \ No newline at end of file + slots: [ 0, 2, 3, 5, 6, 8, 18, 26, 27, 35, 45, 47, 48, 50, 51, 53 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/ranks/permissions.yml b/resources/languages/zh/guis/structures/nexus/ranks/permissions.yml index 5ede0bf76..9a5730ccb 100644 --- a/resources/languages/zh/guis/structures/nexus/ranks/permissions.yml +++ b/resources/languages/zh/guis/structures/nexus/ranks/permissions.yml @@ -4,7 +4,7 @@ rows: 6 # Don't remove "-nosync" from below. # -nosync '[fn-std-perm]': &fn-std-perm - args: [""] + args: [ "" ] return: enabled: condition: enabled @@ -16,7 +16,7 @@ rows: 6 # -nosync '[fn-perm]': &fn-perm - args: ["", ""] + args: [ "", "" ] return: material: enabled: @@ -454,10 +454,10 @@ rows: 6 options: decoration: - slots: [1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53] + slots: [ 1, 2, 3, 4, 5, 6, 7, 9, 17, 18, 26, 27, 35, 36, 44, 45, 46, 47, 48, 50, 51, 52, 53 ] material: BLACK_STAINED_GLASS_PANE name: '' - + next-page: name: '{$s}下一页{$p}-&e%page%{$sep}/&e%pages%' material: PLAYER_HEAD @@ -468,12 +468,12 @@ options: material: PLAYER_HEAD skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=" slot: 0 - + permissions: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 ] # This is a special feature '[switch]': permission - + back: posx: 5 posy: 6 diff --git a/resources/languages/zh/guis/structures/nexus/ranks/rank-selector.yml b/resources/languages/zh/guis/structures/nexus/ranks/rank-selector.yml index 1a8085cac..1a3221039 100644 --- a/resources/languages/zh/guis/structures/nexus/ranks/rank-selector.yml +++ b/resources/languages/zh/guis/structures/nexus/ranks/rank-selector.yml @@ -6,9 +6,9 @@ options: ranks: name: "%rank_color%%rank_symbol% %rank_name%" material: PLAYER_HEAD - slots: [ 11, 12, 13, 14, 15, - 20, 21, 22, 23, 24, - 29, 30, 31, 32, 33, + slots: [ 11, 12, 13, 14, 15, + 20, 21, 22, 23, 24, + 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 ] back: name: "{$p}返回" diff --git a/resources/languages/zh/guis/structures/nexus/ranks/ranks.yml b/resources/languages/zh/guis/structures/nexus/ranks/ranks.yml index ebf148d8f..3d7e90d6a 100644 --- a/resources/languages/zh/guis/structures/nexus/ranks/ranks.yml +++ b/resources/languages/zh/guis/structures/nexus/ranks/ranks.yml @@ -26,9 +26,9 @@ options: rank: name: "%rank_color%%rank_symbol%%rank_name%" material: PLAYER_HEAD - slots: [ 11, 12, 13, 14, 15, - 20, 21, 22, 23, 24, - 29, 30, 31, 32, 33, + slots: [ 11, 12, 13, 14, 15, + 20, 21, 22, 23, 24, + 29, 30, 31, 32, 33, 38, 39, 40, 41, 42 ] back: name: "{$p}返回" diff --git a/resources/languages/zh/guis/structures/nexus/resource-points-converter.yml b/resources/languages/zh/guis/structures/nexus/resource-points-converter.yml index 7e477b9b3..7d3551a9e 100644 --- a/resources/languages/zh/guis/structures/nexus/resource-points-converter.yml +++ b/resources/languages/zh/guis/structures/nexus/resource-points-converter.yml @@ -1,7 +1,7 @@ title: "&a资源点转换器" rows: 6 sound: BLOCK_BELL_USE -interactable: [999] +interactable: [ 999 ] disallow-creative: true # 刷新选项是用来当玩家用物品转换完资源点在界面中刷新%total_worth%变量用的。 @@ -51,4 +51,4 @@ options: lime-glass: name: '' material: LIME_STAINED_GLASS_PANE - slots: [46, 47, 51, 52] \ No newline at end of file + slots: [ 46, 47, 51, 52 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/settings/relation-editor.yml b/resources/languages/zh/guis/structures/nexus/settings/relation-editor.yml index c2e12b3bd..b56e40f02 100644 --- a/resources/languages/zh/guis/structures/nexus/settings/relation-editor.yml +++ b/resources/languages/zh/guis/structures/nexus/settings/relation-editor.yml @@ -8,7 +8,7 @@ options: condition: enabled name: "{$p}飞行{$sep}: {$p}已启用" material: ELYTRA - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -25,7 +25,7 @@ options: condition: enabled name: "{$p}建造{$sep}: {$p}已启用" material: DIAMOND_PICKAXE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -42,7 +42,7 @@ options: condition: enabled name: "{$p}停火{$sep}: {$p}已启用" material: DIAMOND_SWORD - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -59,7 +59,7 @@ options: condition: enabled name: "{$p}交互{$sep}: {$p}已启用" material: CAULDRON - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -76,7 +76,7 @@ options: condition: enabled name: "{$p}使用{$sep}: {$p}已启用" material: LEVER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -95,7 +95,7 @@ options: condition: enabled name: "{$p}炮塔停火{$sep}: {$p}已启用" material: SPECTRAL_ARROW - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -112,7 +112,7 @@ options: condition: enabled name: "{$p}管理炮塔{$sep}: {$p}已启用" material: ARROW - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -129,7 +129,7 @@ options: condition: enabled name: "{$p}管理设施{$sep}: {$p}已启用" material: REDSTONE_LAMP - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 lore: @@ -141,7 +141,7 @@ options: - "{$p}允许破坏, 放置设施及与设施交互。" posx: 8 posy: 1 - + back: name: "{$p}返回" material: PLAYER_HEAD diff --git a/resources/languages/zh/guis/structures/nexus/settings/settings.yml b/resources/languages/zh/guis/structures/nexus/settings/settings.yml index cf3e71998..e87a7a55a 100644 --- a/resources/languages/zh/guis/structures/nexus/settings/settings.yml +++ b/resources/languages/zh/guis/structures/nexus/settings/settings.yml @@ -52,7 +52,7 @@ options: posx: 6 posy: 1 blue-stained-glass-pane: - slots: [10, 11, 12, 13, 14, 15, 16, 19, 25, 28, 34, 37, 43, 46, 47, 48, 49, 50, 51, 52] + slots: [ 10, 11, 12, 13, 14, 15, 16, 19, 25, 28, 34, 37, 43, 46, 47, 48, 49, 50, 51, 52 ] material: BLUE_STAINED_GLASS_PANE name: '' public-home: @@ -90,7 +90,7 @@ options: - "这不会使地图立即更新。" posx: 5 posy: 5 - + back: name: "{$p}返回" material: PLAYER_HEAD @@ -100,6 +100,6 @@ options: posx: 1 posy: 1 light-blue-stained-glass-pane: - slots: [1, 2, 6, 7, 8, 9, 17, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 35, 36, 39, 41, 44, 45, 53] + slots: [ 1, 2, 6, 7, 8, 9, 17, 18, 21, 23, 26, 27, 29, 30, 31, 32, 33, 35, 36, 39, 41, 44, 45, 53 ] material: LIGHT_BLUE_STAINED_GLASS_PANE name: '' \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/structures.yml b/resources/languages/zh/guis/structures/nexus/structures.yml index 78dae71a2..a4fa4d57d 100644 --- a/resources/languages/zh/guis/structures/nexus/structures.yml +++ b/resources/languages/zh/guis/structures/nexus/structures.yml @@ -8,7 +8,7 @@ options: name: "&4发电站" material: MUSIC_DISC_CHIRP sound: BLOCK_REDSTONE_TORCH_BURNOUT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "{$s}带有发电站的地块周围3*3的地块不会被入侵(二级则为5*5), " - "除非发电站所在的地块先被入侵。" @@ -21,7 +21,7 @@ options: name: "&a提取器" material: MUSIC_DISC_CAT sound: BLOCK_ANVIL_LAND - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6提取器可以生产资源点。" - "&6你可以随时收集这些资源点。" @@ -33,7 +33,7 @@ options: name: "&e前哨" material: MUSIC_DISC_13 sound: ENTITY_EXPERIENCE_ORB_PICKUP, 1.5 - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&7前哨允许你直接访问王国核心。" - "&7你可以使用前哨访问炮塔, 使用升级, 和解锁设施。" @@ -46,7 +46,7 @@ options: name: "{$e}传送板" material: MUSIC_DISC_BLOCKS sound: ENTITY_ENDERMAN_TELEPORT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6传送板可用于在设施间传送。" - "" @@ -57,7 +57,7 @@ options: name: "&3控制器" material: MUSIC_DISC_WARD sound: ENTITY_VILLAGER_AMBIENT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6通过控制器你可以……" - "&7⚫ 管理玩家属性, 如建造" @@ -74,14 +74,14 @@ options: name: "&3攻城炮" material: MUSIC_DISC_STRAD sound: ENTITY_VILLAGER_AMBIENT - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6可以打破王国护盾的大炮。" - "" - "{$p}价格{$sep}: {$s}%cost%" posx: 5 posy: 1 - + back: name: "{$p}返回" material: PLAYER_HEAD @@ -94,8 +94,8 @@ options: cyan-glass: name: "" material: CYAN_STAINED_GLASS_PANE - slots: [1, 7, 9, 17, 19, 25] + slots: [ 1, 7, 9, 17, 19, 25 ] light-blue-glass: name: "" material: LIGHT_BLUE_STAINED_GLASS_PANE - slots: [0, 8, 18, 26] \ No newline at end of file + slots: [ 0, 8, 18, 26 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/nexus/turrets.yml b/resources/languages/zh/guis/structures/nexus/turrets.yml index b8a65cdb4..7cf24ebb6 100644 --- a/resources/languages/zh/guis/structures/nexus/turrets.yml +++ b/resources/languages/zh/guis/structures/nexus/turrets.yml @@ -17,7 +17,7 @@ options: name: "&3焰镞" material: SPECTRAL_ARROW sound: ITEM_FLINTANDSTEEL_USE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6与箭塔相似, " - "但箭矢带有火焰且伤害更高。" @@ -30,7 +30,7 @@ options: name: "&d疗愈" material: TIPPED_ARROW sound: ENTITY_ZOMBIE_VILLAGER_CURE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6治疗附近的王国成员与盟友, " - "并根据炮塔等级给予正面效果。" @@ -42,7 +42,7 @@ options: name: "&a辐射" material: TRIPWIRE_HOOK sound: ENTITY_PLAYER_HURT_ON_FIRE - flags: [HIDE_POTION_EFFECTS] + flags: [ HIDE_POTION_EFFECTS ] lore: - "&6给予附近的敌人负面效果。" - "负面效果随等级升高而增强, " @@ -117,7 +117,7 @@ options: - "{$p}价格{$sep}: {$s}%cost%" posx: 4 posy: 3 - + back: name: "{$p}返回" material: PLAYER_HEAD @@ -129,8 +129,8 @@ options: Cyan-Glass: name: "" material: CYAN_STAINED_GLASS_PANE - slots: [1, 7, 9, 17, 18, 26, 28, 34] + slots: [ 1, 7, 9, 17, 18, 26, 28, 34 ] Light-Blue-Glass: name: "" material: LIGHT_BLUE_STAINED_GLASS_PANE - slots: [0, 8, 27, 35] \ No newline at end of file + slots: [ 0, 8, 27, 35 ] \ No newline at end of file diff --git a/resources/languages/zh/guis/structures/regulator/interaction-editor.yml b/resources/languages/zh/guis/structures/regulator/interaction-editor.yml index bfe01a62b..96f2fd5aa 100644 --- a/resources/languages/zh/guis/structures/regulator/interaction-editor.yml +++ b/resources/languages/zh/guis/structures/regulator/interaction-editor.yml @@ -8,7 +8,7 @@ options: condition: enabled name: "{$p}全部{$sep}: {$p}已启用" material: BOOK - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -20,7 +20,7 @@ options: condition: enabled name: "{$p}门{$sep}: {$p}已启用" material: OAK_DOOR - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -32,7 +32,7 @@ options: condition: enabled name: "{$p}拉杆和按钮{$sep}: {$p}已启用" material: LEVER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -44,7 +44,7 @@ options: condition: enabled name: "{$p}潜影箱{$sep}: {$p}已启用" material: SHULKER_BOX - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -56,7 +56,7 @@ options: condition: enabled name: "{$p}附魔台{$sep}: {$p}已启用" material: ENCHANTING_TABLE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -68,7 +68,7 @@ options: condition: enabled name: "{$p}工作台{$sep}: {$p}已启用" material: CRAFTING_TABLE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -80,7 +80,7 @@ options: condition: enabled name: "{$p}箱子{$sep}: {$p}已启用" material: CHEST - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -92,7 +92,7 @@ options: condition: enabled name: "{$p}床{$sep}: {$p}已启用" material: RED_BED - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -104,7 +104,7 @@ options: condition: enabled name: "{$p}织布机{$sep}: {$p}已启用" material: LOOM - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -116,7 +116,7 @@ options: condition: enabled name: "{$p}切石机{$sep}: {$p}已启用" material: JIGSAW - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -128,7 +128,7 @@ options: condition: enabled name: "{$p}漏斗{$sep}: {$p}已启用" material: HOPPER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -140,7 +140,7 @@ options: condition: enabled name: "{$p}发射器{$sep}: {$p}已启用" material: DISPENSER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -152,7 +152,7 @@ options: condition: enabled name: "{$p}烟熏炉{$sep}: {$p}已启用" material: SMOKER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -164,7 +164,7 @@ options: condition: enabled name: "{$p}熔炉{$sep}: {$p}已启用" material: FURNACE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -176,7 +176,7 @@ options: condition: enabled name: "{$p}投掷器{$sep}: {$p}已启用" material: DROPPER - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -188,7 +188,7 @@ options: condition: enabled name: "{$p}信标{$sep}: {$p}已启用" material: BEACON - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -200,7 +200,7 @@ options: condition: enabled name: "{$p}铁砧{$sep}: {$p}已启用" material: ANVIL - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -212,7 +212,7 @@ options: condition: enabled name: "{$p}酿造台{$sep}: {$p}已启用" material: BREWING_STAND - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -224,7 +224,7 @@ options: condition: enabled name: "{$p}制图台{$sep}: {$p}已启用" material: CARTOGRAPHY_TABLE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -236,7 +236,7 @@ options: condition: enabled name: "{$p}锻造台{$sep}: {$p}已启用" material: SMITHING_TABLE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: @@ -248,7 +248,7 @@ options: condition: enabled name: "{$p}压力板{$sep}: {$p}已启用" material: STONE_PRESSURE_PLATE - flags: [HIDE_ENCHANTS] + flags: [ HIDE_ENCHANTS ] enchants: DURABILITY: 1 else: diff --git a/resources/languages/zh/guis/structures/regulator/rules.yml b/resources/languages/zh/guis/structures/regulator/rules.yml index a36670777..9351614fe 100644 --- a/resources/languages/zh/guis/structures/regulator/rules.yml +++ b/resources/languages/zh/guis/structures/regulator/rules.yml @@ -10,7 +10,7 @@ options: skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzQxMzNmNmFjM2JlMmUyNDk5YTc4NGVmYWRjZmZmZWI5YWNlMDI1YzM2NDZhZGE2N2YzNDE0ZTVlZjMzOTQifX19" name: '{$p}返回' pink-stained-glass-pane: - slots: [1, 3, 4, 5, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26] + slots: [ 1, 3, 4, 5, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26 ] material: PINK_STAINED_GLASS_PANE name: '' disable-mob-spawning: diff --git a/resources/languages/zh/guis/structures/siege-cannon.yml b/resources/languages/zh/guis/structures/siege-cannon.yml index fdd5f6db9..003c31382 100644 --- a/resources/languages/zh/guis/structures/siege-cannon.yml +++ b/resources/languages/zh/guis/structures/siege-cannon.yml @@ -1,7 +1,7 @@ title: "&3攻城炮" type: HOPPER sound: BLOCK_ANVIL_USE -interactable: [2] #弹药格 +interactable: [ 2 ] #弹药格 options: sit: diff --git a/resources/languages/zh/guis/structures/warppad.yml b/resources/languages/zh/guis/structures/warppad.yml index 98139bc9b..81cb83244 100644 --- a/resources/languages/zh/guis/structures/warppad.yml +++ b/resources/languages/zh/guis/structures/warppad.yml @@ -25,7 +25,7 @@ options: name: "{$e}发电站{$sep}: {$s}%world%{$p}, {$s}%x%{$p}, {$s}%y%{$p}, {$s}%z%" material: REDSTONE_LAMP lore: "{$p}燃料花费{$sep}: {$s}%fuel-cost%" - slots: [10, 11, 12, 13, 14, 15, 16, 17] + slots: [ 10, 11, 12, 13, 14, 15, 16, 17 ] lime-stained-glass-pane: posx: 1 posy: 3 @@ -35,7 +35,7 @@ options: name: "{$p}提取器{$sep}: {$s}%world%{$p}, {$s}%x%{$p}, {$s}%y%{$p}, {$s}%z%" material: EMERALD_BLOCK lore: "{$p}燃料花费{$sep}: {$s}%fuel-cost%" - slots: [19, 20, 21, 22, 23, 24, 25, 26] + slots: [ 19, 20, 21, 22, 23, 24, 25, 26 ] green-stained-glass-pane: posx: 1 posy: 4 @@ -45,7 +45,7 @@ options: name: "{$e}%structure-name%{$sep}: {$s}%world%{$p}, {$s}%x%{$p}, {$s}%y%{$p}, {$s}%z%" material: END_PORTAL_FRAME lore: "{$p}燃料花费{$sep}: {$s}%fuel-cost%" - slots: [28, 29, 30, 31, 32, 33, 34, 35] + slots: [ 28, 29, 30, 31, 32, 33, 34, 35 ] yellow-stained-glass-pane: posx: 1 posy: 5 @@ -55,18 +55,18 @@ options: name: "&3控制器{$sep}: {$s}%world%{$p}, {$s}%x%{$p}, {$s}%y%{$p}, {$s}%z%" material: LECTERN lore: "{$p}燃料花费{$sep}: {$s}%fuel-cost%" - slots: [46, 47, 48, 49, 50, 51, 52, 53] + slots: [ 46, 47, 48, 49, 50, 51, 52, 53 ] outpost: name: "&e前哨{$sep}: {$s}%world%{$p}, {$s}%x%{$p}, {$s}%y%{$p}, {$s}%z%" material: HAY_BLOCK lore: "{$p}燃料花费{$sep}: {$s}%fuel-cost%" - slots: [37, 38, 39, 40, 41, 42, 43, 44] + slots: [ 37, 38, 39, 40, 41, 42, 43, 44 ] brown-stained-glass-pane: posx: 1 posy: 6 material: BROWN_STAINED_GLASS_PANE name: '&7控制器&8:' - + rename: name: "{$p}重命名" lore: @@ -97,7 +97,7 @@ options: material: PLAYER_HEAD skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19" name: '&2下一页' - + orange-stained-glass-pane: posx: 1 diff --git a/resources/languages/zh/guis/surrender.yml b/resources/languages/zh/guis/surrender.yml index 2a08d198e..d0f3ea4f4 100644 --- a/resources/languages/zh/guis/surrender.yml +++ b/resources/languages/zh/guis/surrender.yml @@ -3,14 +3,14 @@ rows: 6 options: purple-stained-glass-pane: - slots: [1, 2, 3, 5, 6, 7, 45, 46, 48, 49, 50, 52, 53] + slots: [ 1, 2, 3, 5, 6, 7, 45, 46, 48, 49, 50, 52, 53 ] material: PURPLE_STAINED_GLASS_PANE name: '' black-stained-glass-pane: - slots: [9, 13, 17, 18, 22, 26, 27, 31, 35, 36, 40, 44] + slots: [ 9, 13, 17, 18, 22, 26, 27, 31, 35, 36, 40, 44 ] material: BLACK_STAINED_GLASS_PANE name: '' - + next-page: name: '&6下一页&7-&e%page%&8/&e%pages%' material: PLAYER_HEAD @@ -23,7 +23,7 @@ options: sound: ITEM_BOOK_PAGE_TURN skull: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=" slot: 0 - + invasion: posx: 5 posy: 1 @@ -41,21 +41,21 @@ options: {$p}总地块数{$sep}: {$s}%total_lands% {$p}入侵方分数{$sep}: {$s}%attacker_score%{$sep}/{$s}%defender_death_limit% {$p}防守方分数{$sep}: {$s}%defender_score%{$sep}/{$s}%attacker_death_limit% -# These are for plunders only. -# {$p}Attacker Score{$sep}: {$s}%attacker_score%{$sep}/{$s}%defender_death_limit% -# {$p}Defender Score{$sep}: {$s}%defender_score%{$sep}/{$s}%attacker_death_limit% + # These are for plunders only. + # {$p}Attacker Score{$sep}: {$s}%attacker_score%{$sep}/{$s}%defender_death_limit% + # {$p}Defender Score{$sep}: {$s}%defender_score%{$sep}/{$s}%attacker_death_limit% # These are for plunders only. # {$p}Attacker Score{$sep}: {$s}%attacker_score%{$sep}/{$s}%defender_death_limit% # {$p}Defender Score{$sep}: {$s}%defender_score%{$sep}/{$s}%attacker_death_limit% else: material: PURPLE_STAINED_GLASS_PANE attacking: - slots: [10, 11, 12, 19, 20, 21, 28, 29, 30, 37, 38, 39] + slots: [ 10, 11, 12, 19, 20, 21, 28, 29, 30, 37, 38, 39 ] material: PLAYER_HEAD name: '{$p}防守方{$sep}: {$s}%kingdoms_other_name%' lore: *lore defending: - slots: [14, 15, 16, 23, 24, 25, 32, 33, 34, 41, 42, 43] + slots: [ 14, 15, 16, 23, 24, 25, 32, 33, 34, 41, 42, 43 ] material: PLAYER_HEAD name: '{$e}入侵方{$sep}: {$es}%kingdoms_kingdom_name%' lore: *lore diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index 27cb3df1a..57145e2f8 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,11 +1,16 @@ +import org.kingdoms.main.KingdomsGradleCommons + plugins { - java - kotlin + commons } group = "org.kingdoms.shared" version = "1.0.0" -repositories { - mavenCentral() -} +// [19:49:42] [Server thread/ERROR]: Error occurred while enabling Kingdoms v1.16.20.1 (Is it up to date?) +// java.lang.IncompatibleClassChangeError: Method 'void org.kingdoms.main.permissions.registry.PermissionRegistry.registerAllRegistries()' must be InterfaceMethodref constant +// at org.kingdoms.main.Kingdoms.onEnable(Kingdoms.java:335) ~[?:?] + +dependencies { + compileOnly(KingdomsGradleCommons.XSERIES) +} \ No newline at end of file diff --git a/shared/src/main/java/org/kingdoms/server/core/Server.java b/shared/src/main/java/org/kingdoms/server/core/Server.java new file mode 100644 index 000000000..d78d9b872 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/core/Server.java @@ -0,0 +1,7 @@ +package org.kingdoms.server.core; + +import org.kingdoms.server.events.EventHandler; + +public interface Server { + EventHandler getEventHandler(); +} diff --git a/shared/src/main/java/org/kingdoms/server/events/EventHandler.java b/shared/src/main/java/org/kingdoms/server/events/EventHandler.java new file mode 100644 index 000000000..e3627a11b --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/events/EventHandler.java @@ -0,0 +1,5 @@ +package org.kingdoms.server.events; + +public interface EventHandler { + void callEvent(Object event); +} diff --git a/shared/src/main/java/org/kingdoms/server/location/World.kt b/shared/src/main/java/org/kingdoms/server/location/World.kt index e683921c2..eab3bfab3 100644 --- a/shared/src/main/java/org/kingdoms/server/location/World.kt +++ b/shared/src/main/java/org/kingdoms/server/location/World.kt @@ -1,6 +1,6 @@ package org.kingdoms.server.location -import java.util.UUID +import java.util.* interface World { fun getName(): String diff --git a/shared/src/main/java/org/kingdoms/server/platform/CrossPlatformNotifier.java b/shared/src/main/java/org/kingdoms/server/platform/CrossPlatformNotifier.java new file mode 100644 index 000000000..90ea01b27 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/platform/CrossPlatformNotifier.java @@ -0,0 +1,70 @@ +package org.kingdoms.server.platform; + +import org.kingdoms.utils.Reflect; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Stream; + +public final class CrossPlatformNotifier { + /** + * Tested with Magma, Mohist, and Geyser + */ + protected static boolean isRunningForge() { + // https://github.com/MinecraftForge/MinecraftForge/blob/1.19.x/fmlloader/src/main/java/net/minecraftforge/fml/server/ServerMain.java + String fml = "net.minecraftforge.fml."; + return Stream.of("common.Mod", "common.Loader", "common.FMLContainer", "ModLoader", "client.FMLClientHandler", "server.ServerMain") + .anyMatch(x -> Reflect.classExists(fml + x)); + } + + protected static boolean isRunningGeyser() { + // https://github.com/GeyserMC/Geyser + String geyser = "org.geysermc"; + return Stream.of("geyser.GeyserMain", "geyser.Constants", "connector.GeyserConnector", + "connector.network.session.GeyserSession", "api.Geyser", "api.connection.Connection") + .anyMatch(x -> Reflect.classExists(geyser + x)); + } + + protected static boolean isRunningBukkit() { + return Reflect.classExists("org.bukkit.entity.Player") && Reflect.classExists("org.bukkit.Bukkit"); + } + + protected static boolean isRunningPaper() { + return Reflect.classExists("com.destroystokyo.paper.PaperConfig") || Reflect.classExists("io.papermc.paper.configuration.Configuration"); + } + + @SuppressWarnings("JavaReflectionMemberAccess") + public static boolean isRunningFolia() { + // https://github.com/PaperMC/Folia/blob/master/patches/api/0004-Add-RegionizedServerInitEvent.patch + if (Reflect.classExists("io.papermc.paper.threadedregions.RegionizedServerInitEvent")) { + try { + // https://github.com/PaperMC/Folia/blob/master/patches/api/0003-Require-plugins-to-be-explicitly-marked-as-Folia-sup.patch + Class.forName("org.bukkit.plugin.PluginDescriptionFile").getDeclaredMethod("isFoliaSupported"); + return true; + } catch (Throwable ex) { + return false; + } + } + + return false; + } + + public static boolean isRunningSpigot() { + return Reflect.classExists("org.spigotmc.SpigotConfig"); + } + + public static List warn() { + List warnings = new ArrayList<>(); + if (Platform.FORGE.isAvailable()) { + warnings.add("Your server is running on a platform that supports Forge. The plugin may not function properly."); + } + if (Platform.BEDROCK.isAvailable()) { + warnings.add("Your server is running on a platform that supports Bedrock Edition. The plugin may not function properly."); + } + if (Platform.FOLIA.isAvailable()) { + warnings.add("Your server is running on Folia. The plugin has not added support for this software, and the plugin will most likely not work."); + } + + return warnings; + } +} diff --git a/shared/src/main/java/org/kingdoms/server/platform/JavaVersion.java b/shared/src/main/java/org/kingdoms/server/platform/JavaVersion.java new file mode 100644 index 000000000..529ce8933 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/platform/JavaVersion.java @@ -0,0 +1,44 @@ +package org.kingdoms.server.platform; + +import java.util.Locale; + +public final class JavaVersion { + private static final int VERSION = getVersion0(); + + private static int getVersion0() { + // Runtime.version() + // Runtime.class.getPackage().getSpecificationVersion(); + + // There are also "java.specification.version", "java.vm.specification.version" and "java.runtime.version" + // but the one below hasn't caused any issues so far. + + // Java 8 uses "java -version" E.g. 1.8.0_301 + // Java 9+ uses "java --version" E.g. 17.0.3.1 + final String ver = System.getProperty("java.version"); + try { + String parse = ver.toLowerCase(Locale.ENGLISH); + if (parse.startsWith("1.8")) return 8; + if (parse.endsWith("-ea")) parse = parse.substring(0, parse.length() - "-ea".length()); // Early Access + if (!parse.contains(".")) return Integer.parseInt(ver); + + // Watch out for Early Access versions + // E.g. 18.0.2-ea + // E.g. 16-ea + return Integer.parseInt(parse.split("\\.")[0]); + } catch (Throwable ex) { + throw new IllegalStateException("Unknown Java version: '" + ver + '\''); + } + } + + public static String getVersionString() { + return System.getProperty("java.version"); + } + + public static boolean supports(int version) { + return VERSION >= version; + } + + public static int getVersion() { + return VERSION; + } +} diff --git a/shared/src/main/java/org/kingdoms/server/platform/LatestMCVersion.kt b/shared/src/main/java/org/kingdoms/server/platform/LatestMCVersion.kt new file mode 100644 index 000000000..553baa677 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/platform/LatestMCVersion.kt @@ -0,0 +1,60 @@ +package org.kingdoms.server.platform + +import com.cryptomorin.xseries.ReflectionUtils +import java.util.logging.Logger + +/** + * This enum should not be sorted. + * https://api.papermc.io/docs/swagger-ui/index.html?configUrl=/openapi/swagger-config doesn't really help. + */ +enum class LatestMCVersion(val latestBuild: Int) { + v1_8(445), + v1_9(775), + v1_10(918), + v1_11(1106), + v1_12(1620), + v1_13(657), + v1_14(245), + v1_15(393), + v1_16(794), + v1_17(411), + v1_18(388), + v1_19(550), + v1_20(340), + ; + + private val minorNumber: Int = ordinal + 8 + val latestPatchNumber: Int = ReflectionUtils.getLatestPatchNumberOf(minorNumber)!! + val version = MinecraftVersion(1, minorNumber, latestPatchNumber) + + fun getLatestPaperBuildURL(): String { + val fullVersion = version.asString(prefix = false) + return "https://api.papermc.io/v2/projects/paper/versions/${fullVersion}/builds/${latestBuild}/downloads/" + + "paper-${fullVersion}-${latestBuild}.jar"; + } + + fun ensureLatestPatch(logger: Logger): RuntimeException? { + if (ReflectionUtils.PATCH_NUMBER < latestPatchNumber && + !ALLOWED_OUTDATED_VERSIONS.contains(CURRENT_VERSION) + ) { + logger.severe( + "Your server is running an outdated patch of your current Minecraft version: " + + ReflectionUtils.getVersionInformation() + + " You need to download the latest patch (v1." + ReflectionUtils.MINOR_NUMBER + '.' + latestPatchNumber + + ") which you can download from ${getLatestPaperBuildURL()} directly. Because the plugin will not function properly with the older patches." + ) + return IllegalStateException("Unsupported server version") + } + + return null + } + + companion object { + @JvmField val CURRENT_VERSION: MinecraftVersion = + MinecraftVersion(1, ReflectionUtils.MINOR_NUMBER, ReflectionUtils.PATCH_NUMBER) + @JvmField val CURRENT_MINOR_VERSION: LatestMCVersion? = + LatestMCVersion.values().find { x -> ReflectionUtils.MINOR_NUMBER == x.minorNumber } + @JvmStatic val ALLOWED_OUTDATED_VERSIONS: Set = + hashSetOf(MinecraftVersion.of(1, 20, 1), MinecraftVersion.of(1, 20, 2)) + } +} \ No newline at end of file diff --git a/shared/src/main/java/org/kingdoms/server/platform/MinecraftVersion.kt b/shared/src/main/java/org/kingdoms/server/platform/MinecraftVersion.kt new file mode 100644 index 000000000..c37e0504a --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/platform/MinecraftVersion.kt @@ -0,0 +1,37 @@ +package org.kingdoms.server.platform + +open class MinecraftVersion(val majorVersion: Int, val minorVersion: Int, val patchVersion: Int) { + init { + require(majorVersion > 0) { "Major number must be greater than 0: $majorVersion" } + require(minorVersion >= 0) { "Minor number cannot be a negative number: $minorVersion" } + require(patchVersion >= 0) { "Patch number cannot be a negative number: $patchVersion" } + } + + fun asString(prefix: Boolean = true, separator: String = "."): String { + return (if (prefix) "v" else "") + + "$majorVersion$separator$minorVersion$separator$patchVersion" + } + + override fun equals(other: Any?): Boolean { + if (other !is MinecraftVersion) return false; + return this.majorVersion == other.majorVersion && + this.minorVersion == other.minorVersion && + this.patchVersion == other.patchVersion; + } + + override fun hashCode(): Int { + var result = (majorVersion xor (majorVersion ushr 32)) + result = 31 * result + (minorVersion xor (minorVersion ushr 32)) + result = 31 * result + (patchVersion xor (patchVersion ushr 32)) + return result + } + + override fun toString(): String { + return "MinecraftVersion(majorVersion=$majorVersion, minorVersion=$minorVersion, patchVersion=$patchVersion)" + } + + companion object { + @JvmStatic fun of(majorVersion: Int, minorVersion: Int, patchVersion: Int): MinecraftVersion = + MinecraftVersion(majorVersion, minorVersion, patchVersion) + } +} \ No newline at end of file diff --git a/shared/src/main/java/org/kingdoms/server/platform/Platform.java b/shared/src/main/java/org/kingdoms/server/platform/Platform.java new file mode 100644 index 000000000..0e058ff07 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/server/platform/Platform.java @@ -0,0 +1,22 @@ +package org.kingdoms.server.platform; + +public enum Platform { + BUKKIT(CrossPlatformNotifier.isRunningBukkit()), + SPIGOT(CrossPlatformNotifier.isRunningSpigot()), + FOLIA(CrossPlatformNotifier.isRunningFolia()), + PAPER(CrossPlatformNotifier.isRunningPaper()), + FORGE(CrossPlatformNotifier.isRunningForge()), + BEDROCK(CrossPlatformNotifier.isRunningGeyser()); + + private final boolean available; + + Platform(boolean available) { + this.available = available; + } + + public boolean isAvailable() { + return available; + } + + public static final Platform[] VALUES = values(); +} diff --git a/shared/src/main/java/org/kingdoms/utils/Reflect.java b/shared/src/main/java/org/kingdoms/utils/Reflect.java new file mode 100644 index 000000000..1a4cc0fe3 --- /dev/null +++ b/shared/src/main/java/org/kingdoms/utils/Reflect.java @@ -0,0 +1,17 @@ +package org.kingdoms.utils; + +public final class Reflect { + public static boolean classExists(String clazz) { + try { + // Prevent static initialization + Class.forName(clazz, false, Reflect.class.getClassLoader()); + return true; + } catch (ClassNotFoundException | NoClassDefFoundError e) { + return false; + } catch (Throwable e) { + // Not sure if this'd happen, but some server software like silencing errors for some reasons. + e.printStackTrace(); + return true; + } + } +}