mirror of
https://github.com/BentoBoxWorld/Challenges.git
synced 2024-11-28 05:25:21 +01:00
commit
a92df39a30
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -14,11 +14,11 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
- name: Set up JDK 17
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 17
|
||||
java-version: 21
|
||||
- name: Cache SonarCloud packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
|
32
pom.xml
32
pom.xml
@ -28,23 +28,30 @@
|
||||
<system>GitHub</system>
|
||||
<url>https://github.com/BentoBoxWorld/Challenges/issues</url>
|
||||
</issueManagement>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>bentoboxworld</id>
|
||||
<url>https://repo.codemc.org/repository/bentoboxworld/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
<powermock.version>2.0.9</powermock.version>
|
||||
<!-- More visible way how to change dependency versions -->
|
||||
<spigot.version>1.20.4-R0.1-SNAPSHOT</spigot.version>
|
||||
<spigot.version>1.21.3-R0.1-SNAPSHOT</spigot.version>
|
||||
<spigot-annotations.version>1.2.3-SNAPSHOT</spigot-annotations.version>
|
||||
<bentobox.version>2.1.0</bentobox.version>
|
||||
<bentobox.version>2.7.1-SNAPSHOT</bentobox.version>
|
||||
<level.version>2.6.3</level.version>
|
||||
<vault.version>1.7</vault.version>
|
||||
<panelutils.version>1.2.0</panelutils.version>
|
||||
<!-- Revision variable removes warning about dynamic version -->
|
||||
<revision>${build.version}-SNAPSHOT</revision>
|
||||
<!-- This allows to change between versions and snapshots. -->
|
||||
<build.version>1.3.1</build.version>
|
||||
<build.version>1.4.0</build.version>
|
||||
<build.number>-LOCAL</build.number>
|
||||
<!-- Sonar Cloud -->
|
||||
<sonar.projectKey>BentoBoxWorld_Challenges</sonar.projectKey>
|
||||
@ -83,17 +90,6 @@
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>codemc-snapshots</id>
|
||||
<url>https://repo.codemc.org/repository/maven-snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>codemc-releases</id>
|
||||
<url>https://repo.codemc.org/repository/maven-releases</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>apache.snapshots</id>
|
||||
@ -108,6 +104,10 @@
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
|
||||
</repository>
|
||||
<!-- CodeMC Repo for BentoBox -->
|
||||
<repository>
|
||||
<id>bentoboxworld</id>
|
||||
<url>https://repo.codemc.io/repository/bentoboxworld/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>codemc-repo</id>
|
||||
<url>https://repo.codemc.io/repository/maven-public</url>
|
||||
@ -231,7 +231,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.3.1-SNAPSHOT</version>
|
||||
<version>3.6.0</version>
|
||||
<configuration>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<artifactSet>
|
||||
|
@ -63,6 +63,7 @@ public class ChallengesAdminCommand extends CompositeCommand
|
||||
|
||||
return true;
|
||||
}
|
||||
this.showHelp(this, user);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -153,6 +153,9 @@ public class ChallengeLevel implements DataObject, Comparable<ChallengeLevel>
|
||||
*/
|
||||
public ItemStack getIcon()
|
||||
{
|
||||
if (icon == null) {
|
||||
icon = new ItemStack(Material.PAPER);
|
||||
}
|
||||
return icon.clone();
|
||||
}
|
||||
|
||||
|
@ -113,32 +113,36 @@ public class ChallengesManager
|
||||
* This comparator orders challenges by their level, order and name.
|
||||
*/
|
||||
private final Comparator<Challenge> challengeComparator = (o1, o2) -> {
|
||||
// Get the levels
|
||||
ChallengeLevel o1Level = this.getLevel(o1.getLevel());
|
||||
ChallengeLevel o2Level = this.getLevel(o2.getLevel());
|
||||
|
||||
if (o1Level == null && o2Level == null)
|
||||
{
|
||||
// Handle null levels consistently
|
||||
if (o1Level == null && o2Level == null) {
|
||||
// Both levels are null, compare by order
|
||||
return Integer.compare(o1.getOrder(), o2.getOrder());
|
||||
}
|
||||
else if (o1Level == null)
|
||||
{
|
||||
} else if (o1Level == null) {
|
||||
// If o1 level is null, it should be ordered lower
|
||||
return -1;
|
||||
}
|
||||
else if (o2Level == null)
|
||||
{
|
||||
} else if (o2Level == null) {
|
||||
// If o2 level is null, it should be ordered lower
|
||||
return 1;
|
||||
}
|
||||
else if (o1Level.equals(o2Level))
|
||||
{
|
||||
|
||||
// If both levels are non-null, compare their orders
|
||||
int levelComparison = Integer.compare(o1Level.getOrder(), o2Level.getOrder());
|
||||
|
||||
// If levels are the same, compare by challenge order
|
||||
if (levelComparison == 0) {
|
||||
return Integer.compare(o1.getOrder(), o2.getOrder());
|
||||
}
|
||||
else
|
||||
{
|
||||
return Integer.compare(o1Level.getOrder(), o2Level.getOrder());
|
||||
}
|
||||
|
||||
// Return the level comparison result
|
||||
return levelComparison;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Constructor
|
||||
// ---------------------------------------------------------------------
|
||||
|
@ -119,6 +119,9 @@ public class ConversationUtils
|
||||
withFirstPrompt(confirmationPrompt).
|
||||
withLocalEcho(false).
|
||||
withTimeout(90).
|
||||
// Use null value in consumer to detect if user has abandoned conversation.
|
||||
addConversationAbandonedListener(ConversationUtils.getAbandonListener(consumer, user))
|
||||
.
|
||||
buildConversation(user.getPlayer()).
|
||||
begin();
|
||||
}
|
||||
|
@ -151,6 +151,11 @@ public class WebManager
|
||||
if (this.plugin.getSettings().isLogGithubDownloadData())
|
||||
{
|
||||
this.plugin.log("Could not connect to GitHub.");
|
||||
this.plugin.log(
|
||||
"JSON files can be found at https://github.com/BentoBoxWorld/weblink/tree/master/challenges/library");
|
||||
user.sendRawMessage("Could not connect to GitHub.");
|
||||
user.sendRawMessage(
|
||||
"JSON files can be found at https://github.com/BentoBoxWorld/weblink/tree/master/challenges/library");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: Challenges
|
||||
main: world.bentobox.challenges.ChallengesAddon
|
||||
version: ${version}${build.number}
|
||||
api-version: 1.17
|
||||
api-version: 2.7.1
|
||||
repository: 'BentoBoxWorld/Challenges'
|
||||
metrics: true
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -649,6 +649,12 @@ challenges:
|
||||
visible: Zeigen Sie sichtbare Herausforderungen
|
||||
hidden: Alle Herausforderungen anzeigen
|
||||
toggleable: Umschalten zulassen
|
||||
include_undeployed:
|
||||
name: "&f&l Nicht bereitgestellte Herausforderungen einschließen"
|
||||
description: "&7 Gibt an, ob nicht bereitgestellte \n&7 Herausforderungen
|
||||
\n&7 für den Abschluss von Level \n&7 angerechnet werden sollen."
|
||||
enabled: "&2 Aktiviert"
|
||||
disabled: "&c Deaktiviert"
|
||||
download:
|
||||
name: "&f&l Bibliotheken herunterladen"
|
||||
description: |-
|
||||
@ -851,7 +857,7 @@ challenges:
|
||||
environment-single: "&7 Limitiert auf [environment]"
|
||||
environment-title: "&7 Limitiert auf:"
|
||||
environment-list: " &7 - &e [environment]"
|
||||
permission-single: "&c Requires [permissions] permission"
|
||||
permission-single: "&c Erfordert die Berechtigung [permission]"
|
||||
permissions-title: "&c Erfordert Berechtigungen:"
|
||||
permissions-list: " &c - [permission]"
|
||||
island:
|
||||
@ -998,9 +1004,9 @@ challenges:
|
||||
write-reward-commands: "&e Bitte geben Sie pro Zeile im Chat einen neuen Belohnungsbefehl
|
||||
ein und beenden Sie den Chat in einer eigenen Zeile."
|
||||
reward-commands-changed: "&a Erfolg, die Belohnungsbefehle wurden aktualisiert."
|
||||
write-repeat-reward-commands: "&e Bitte geben Sie pro Zeile im Chat einen neuen
|
||||
Belohnungswiederholungsbefehl ein und beenden Sie den Chat in einer eigenen
|
||||
Zeile."
|
||||
write-repeat-reward-commands: "&e Geben Sie bitte pro Zeile im Chat einen neuen
|
||||
Befehl zur Wiederholung der Belohnung ein und klicken Sie zum Beenden auf „Beenden“
|
||||
in einer eigenen Zeile."
|
||||
repeat-reward-commands-changed: "&a Erfolg, die Wiederholungsbelohnungsbefehle
|
||||
wurden aktualisiert."
|
||||
challenge-removed: "&a Herausforderungen [challende] für [gamemode] wird aus der
|
||||
@ -1098,6 +1104,12 @@ challenges:
|
||||
not-hooked: "&c Challenges Addon konnte keinen GameMode finden."
|
||||
timeout: "&c Diese Abfrage erfordert eine Wartezeit von [timeout] zwischen den
|
||||
Vervollständigungen. Sie müssen [wait-time] warten, bis Sie es erneut abschließen."
|
||||
requirement-not-met: "&c Für diese Herausforderung muss [statistic] [number] haben.
|
||||
Sie haben nur [value]."
|
||||
requirement-not-met-entity: "&c Für diese Herausforderung muss [statistic] [entity]
|
||||
über [number] verfügen. Sie haben nur [value]."
|
||||
requirement-not-met-material: "&c Diese Herausforderung erfordert, dass [statistic]
|
||||
[material] [number] hat. Sie haben nur [value]."
|
||||
protection:
|
||||
flags:
|
||||
CHALLENGES_ISLAND_PROTECTION:
|
||||
|
@ -1,49 +1,43 @@
|
||||
---
|
||||
meta:
|
||||
authors:
|
||||
- BONne
|
||||
- BONNE
|
||||
challenges:
|
||||
commands:
|
||||
admin:
|
||||
main:
|
||||
description: Comando de administrador principal. Abrir GUI.
|
||||
reload:
|
||||
description: |-
|
||||
description: >-
|
||||
Recargar desafíos desde la base de datos
|
||||
|
||||
El parámetro hard significa que el addon restablecerá la conexión a la base de datos.
|
||||
show:
|
||||
description: Imprime todos los desafíos en el chat que existen en este mundo.
|
||||
complete:
|
||||
description: Completar un desafío para un jugador.
|
||||
parameters: "<player> <challange_id>"
|
||||
parameters: <player> <challange_id>
|
||||
reset:
|
||||
description: Restablecer un desafío para un jugador. Si "challenge_id" se
|
||||
establece en "all", restableceran todos los desafíos.
|
||||
parameters: "<player> <challange_id>"
|
||||
parameters: <player> <challange_id>
|
||||
migrate:
|
||||
description: Migrar los datos actuales de los desafíos del mundo del juego
|
||||
al formato de almacenamiento 0.8.0.
|
||||
create:
|
||||
parameters: "<unique challenge name>"
|
||||
description: Abre el GUI que permite crear desafío..
|
||||
surrounding:
|
||||
parameters: "<challenge name>"
|
||||
description: Crea un desafío envolvente.
|
||||
description: Migrar los datos actuales de los desafíos del mundo del juego al
|
||||
formato de almacenamiento 0.8.0.
|
||||
user:
|
||||
main:
|
||||
description: Abrir GUI de Desafíos.
|
||||
complete:
|
||||
description: Completa el desafío.
|
||||
parameters: "<challenge_id> [count]"
|
||||
description: Este método abre el GUI de los desafíos.
|
||||
parameters: <challenge_id> [count]
|
||||
gui:
|
||||
titles:
|
||||
player-gui: "&0&l Menú de desafíos"
|
||||
gamemode-gui: "&0&l Seleccionar modo de juego"
|
||||
multiple-gui: "&0&l ¿Cuántas veces?"
|
||||
admin-gui: "&0&l Menú de administración de desafíos"
|
||||
edit-challenge: "&0&l Editar [desafío]"
|
||||
edit-level: "&0&l Editar [nivel]"
|
||||
edit-challenge: "&0&l Editar [challenge]"
|
||||
edit-level: "&0&l Editar [level]"
|
||||
settings: "&0&l Configuración"
|
||||
choose-challenge: "&0&l Elegir desafío"
|
||||
choose-level: "&0&l Elegir nivel"
|
||||
@ -71,20 +65,20 @@ challenges:
|
||||
&7 o salir de GUI
|
||||
previous:
|
||||
name: "&f&l Página anterior"
|
||||
description: "&7 Cambiar a &e [número] &7 página"
|
||||
description: "&7 Cambiar a &e [number] &7 página"
|
||||
next:
|
||||
name: "&f&l Página siguiente"
|
||||
description: "&7 Cambiar a &e [número] &7 página"
|
||||
description: "&7 Cambiar a &e [number] &7 página"
|
||||
reduce:
|
||||
name: "&f&l Reducir"
|
||||
description: "&7 Reducir en &e [número]"
|
||||
description: "&7 Reducir en &e [number]"
|
||||
increase:
|
||||
name: "&f&l Aumento"
|
||||
description: "&7 Aumentar en &e [número]"
|
||||
description: "&7 Aumentar en &e [number]"
|
||||
accept:
|
||||
name: "&f&l completo"
|
||||
description: |-
|
||||
&7 Completa el desafío &e [número]
|
||||
&7 Completa el desafío &e [number]
|
||||
&7 veces)
|
||||
quit:
|
||||
name: "&f&l Salir"
|
||||
@ -193,7 +187,7 @@ challenges:
|
||||
description: |-
|
||||
&7 Permite cambiar
|
||||
&7 el nombre para mostrar.
|
||||
value: "&7 Actualmente: &r [nombre]"
|
||||
value: "&7 Actualmente: &r [name]"
|
||||
remove_on_complete:
|
||||
name: "&f&l Ocultar después de finalizar"
|
||||
description: |-
|
||||
@ -225,7 +219,7 @@ challenges:
|
||||
&7 Objetos con números iguales
|
||||
&7 serán ordenados por su
|
||||
&7 nombres de identificación únicos.
|
||||
value: "&7 Orden actual: &e [número]"
|
||||
value: "&7 Orden actual: &e [number]"
|
||||
icon:
|
||||
name: Icono &f&l
|
||||
description: |-
|
||||
@ -243,7 +237,7 @@ challenges:
|
||||
&7 permisos para esto
|
||||
&7 desafío para ser completable.
|
||||
title: "&7 permisos:"
|
||||
permission: " &8 - [permiso]"
|
||||
permission: " &8 - [permission]"
|
||||
none: "&7 Los permisos no están establecidos."
|
||||
remove_entities:
|
||||
name: "&f&l Eliminar entidades"
|
||||
@ -262,7 +256,7 @@ challenges:
|
||||
&7 entidades para esto
|
||||
&7 desafío para ser completable.
|
||||
title: "&7 entidades:"
|
||||
list: " &8 - [número] x [entidad]"
|
||||
list: " &8 - [number] x [entity]"
|
||||
none: "&7 Entidades no se agregan."
|
||||
remove_blocks:
|
||||
name: "&f&l Quitar bloques"
|
||||
@ -281,7 +275,7 @@ challenges:
|
||||
&7 bloques para esto
|
||||
&7 desafío para ser completable.
|
||||
title: "&7 bloques:"
|
||||
list: " &8 - [número] x [bloque]"
|
||||
list: " &8 - [number] x [block]"
|
||||
none: "&7 bloques no se agregan."
|
||||
search_radius:
|
||||
name: "&f&l Radio de búsqueda"
|
||||
@ -290,7 +284,7 @@ challenges:
|
||||
&7 alrededor del jugador del cual
|
||||
&7 bloques y/o entidades son
|
||||
&7 detectado.
|
||||
value: "&7 Distancia actual: &e [número]"
|
||||
value: "&7 Distancia actual: &e [number]"
|
||||
remove_items:
|
||||
name: "&f&l Eliminar elementos"
|
||||
description: |-
|
||||
@ -308,7 +302,7 @@ challenges:
|
||||
&7 artículos para esto
|
||||
&7 desafío para ser completable.
|
||||
title: "&7 artículos:"
|
||||
list: " &8 - [número] x [elemento]"
|
||||
list: " &8 - [number] x [item]"
|
||||
none: "&7 Los artículos no se agregan."
|
||||
add_ignored_meta:
|
||||
name: "&f&l Agregar Ignorar metadatos"
|
||||
@ -318,7 +312,7 @@ challenges:
|
||||
&7 cualquier metadato que
|
||||
Se les asigna &7.
|
||||
title: "&7 artículos:"
|
||||
list: " &8 - [número] x [elemento]"
|
||||
list: " &8 - [number] x [item]"
|
||||
none: "&7 Los artículos no se agregan."
|
||||
remove_ignored_meta:
|
||||
name: "&f&l Eliminar Ignorar metadatos"
|
||||
@ -343,14 +337,14 @@ challenges:
|
||||
&7 Permite cambiar el
|
||||
&7 experiencia requerida para
|
||||
&7 el jugador.
|
||||
value: "&7 Experiencia actual: &e [número]"
|
||||
value: "&7 Experiencia actual: &e [number]"
|
||||
required_level:
|
||||
name: "&f&l Nivel de isla requerido"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 nivel de isla requerido
|
||||
&7 para el desafío.
|
||||
value: "&7 Nivel actual: &e [número]"
|
||||
value: "&7 Nivel actual: &e [number]"
|
||||
remove_money:
|
||||
name: "&f&l Quitar dinero"
|
||||
description: |-
|
||||
@ -367,21 +361,21 @@ challenges:
|
||||
&7 Permite cambiar el
|
||||
&7 dinero requerido en el jugador
|
||||
&7 explica el desafío.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
statistic:
|
||||
name: "&f&l estadística"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 tipo de estadística que es
|
||||
&7 marcó este desafío.
|
||||
value: "&7 Valor actual: &e [estadística]"
|
||||
value: "&7 Valor actual: &e [statistic]"
|
||||
statistic_amount:
|
||||
name: "&f&l Valor objetivo"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 valor objetivo estadístico
|
||||
&7 que se debe cumplir.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
remove_statistic:
|
||||
name: "&f&l Reducir estadística"
|
||||
description: |-
|
||||
@ -396,19 +390,19 @@ challenges:
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 bloque objetivo estadístico.
|
||||
value: "&7 Bloque actual: &e [bloque]"
|
||||
value: "&7 Bloque actual: &e [block]"
|
||||
statistic_items:
|
||||
name: "&f&l Artículo de destino"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 elemento objetivo estadístico.
|
||||
value: "&7 Artículo actual: &e [artículo]"
|
||||
value: "&7 Artículo actual: &e [item]"
|
||||
statistic_entities:
|
||||
name: "&f&l entidad objetivo"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 entidad objetivo estadística.
|
||||
value: "&7 Entidad actual: &e [entidad]"
|
||||
value: "&7 Entidad actual: &e [entity]"
|
||||
reward_text:
|
||||
name: "&f&l Texto de recompensa"
|
||||
description: |-
|
||||
@ -429,7 +423,7 @@ challenges:
|
||||
&7 Permite cambiar recompensa
|
||||
&7 artículos.
|
||||
title: "&7 artículos:"
|
||||
list: " &8 - [número] x [elemento]"
|
||||
list: " &8 - [number] x [item]"
|
||||
none: "&7 Los artículos no se agregan."
|
||||
repeat_reward_items:
|
||||
name: "&f&l Repetir artículos de recompensa"
|
||||
@ -438,7 +432,7 @@ challenges:
|
||||
&7 artículos de recompensa por esto
|
||||
&7 desafío.
|
||||
title: "&7 artículos:"
|
||||
list: " &8 - [número] x [elemento]"
|
||||
list: " &8 - [number] x [item]"
|
||||
none: "&7 Los artículos no se agregan."
|
||||
reward_experience:
|
||||
name: Experiencia de recompensa &f&l
|
||||
@ -446,27 +440,27 @@ challenges:
|
||||
&7 Permite cambiar el
|
||||
&7 experiencia de recompensa para
|
||||
&7 el jugador.
|
||||
value: "&7 Experiencia de recompensa: &e [número]"
|
||||
value: "&7 Experiencia de recompensa: &e [number]"
|
||||
repeat_reward_experience:
|
||||
name: "&f&l Repetir experiencia de recompensa"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 repetir experiencia de recompensa
|
||||
&7 para el jugador.
|
||||
value: "&7 Experiencia de recompensa: &e [número]"
|
||||
value: "&7 Experiencia de recompensa: &e [number]"
|
||||
reward_money:
|
||||
name: "&f&l Recompensa en dinero"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 dinero de recompensa.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
repeat_reward_money:
|
||||
name: "&f&l repetir dinero de recompensa"
|
||||
description: |-
|
||||
&7 Permite cambiar el
|
||||
&7 repetir dinero de recompensa
|
||||
&7 para el desafío.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
reward_commands:
|
||||
name: "&f&l Comandos de recompensa"
|
||||
description: |-
|
||||
@ -481,7 +475,7 @@ challenges:
|
||||
&8 permitirá que el comando sea
|
||||
&8 ejecutado por el jugador. También
|
||||
&8 admite un marcador de posición
|
||||
&8 `[jugador]` que será
|
||||
&8 `[player]` que será
|
||||
&8 reemplazado con el nombre de un jugador
|
||||
&8 que completó el desafío.
|
||||
value: "&7 Comandos actuales:"
|
||||
@ -500,7 +494,7 @@ challenges:
|
||||
&8 permitirá que el comando sea
|
||||
&8 ejecutado por el jugador. También
|
||||
&8 admite un marcador de posición
|
||||
&8 `[jugador]` que será
|
||||
&8 `[player]` que será
|
||||
&8 reemplazado con el nombre de un jugador
|
||||
&8 que completó el desafío.
|
||||
value: "&7 Comandos actuales:"
|
||||
@ -518,7 +512,7 @@ challenges:
|
||||
&7 Permite cambiar el
|
||||
&7 número de repeticiones
|
||||
&7 para el desafío.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
cool_down:
|
||||
name: "&f&l enfriamiento"
|
||||
description: |-
|
||||
@ -527,7 +521,7 @@ challenges:
|
||||
&7 debe esperarse entre
|
||||
&7 desafío repetible
|
||||
&7 finalizaciones.
|
||||
value: "&7 Valor actual: &e [hora]"
|
||||
value: "&7 Valor actual: &e [time]"
|
||||
challenges:
|
||||
name: Desafíos &f&l
|
||||
description: |-
|
||||
@ -540,7 +534,7 @@ challenges:
|
||||
&7 de desafíos que pueden
|
||||
&7 quedará sin completar durante
|
||||
&7 desbloqueando el siguiente nivel.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
add_challenges:
|
||||
name: "&f&l Agregar desafío(s)"
|
||||
description: |-
|
||||
@ -635,13 +629,13 @@ challenges:
|
||||
&7 en datos de usuario.
|
||||
&7 0 significa que los datos
|
||||
&7 no se eliminará.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
title_showtime:
|
||||
name: "&f&l Título Showtime"
|
||||
description: |-
|
||||
&7 Número de ticks de ese título
|
||||
&7 se mostrará al jugador.
|
||||
value: "&7 Valor actual: &e [número]"
|
||||
value: "&7 Valor actual: &e [number]"
|
||||
active_world_list:
|
||||
name: "&f&l Mostrar sólo mundo activo"
|
||||
description: |-
|
||||
@ -680,10 +674,10 @@ challenges:
|
||||
enabled: "&2 Con borrado de caché"
|
||||
disabled: "&c Sin borrar caché"
|
||||
player:
|
||||
name: "&f&l [nombre]"
|
||||
description: "&7 Propietario de la isla: [propietario]"
|
||||
name: "&f&l [name]"
|
||||
description: "&7 Propietario de la isla: [owner]"
|
||||
members: "&7 miembros de la isla:"
|
||||
member: "&8 - [nombre]"
|
||||
member: "&8 - [name]"
|
||||
no-island: |-
|
||||
&c El jugador no tiene
|
||||
&c una isla.
|
||||
@ -731,9 +725,9 @@ challenges:
|
||||
&7 entidades seleccionadas
|
||||
&7 de listas.
|
||||
title: "&7 entidades seleccionadas:"
|
||||
entity: "&8 - [entidad]"
|
||||
entity: "&8 - [entity]"
|
||||
entity:
|
||||
name: "&f&l [entidad]"
|
||||
name: "&f&l [entity]"
|
||||
description: "&7 ID de entidad: [id]"
|
||||
selected: "&2 seleccionado"
|
||||
inventory_type:
|
||||
@ -774,29 +768,25 @@ challenges:
|
||||
&7 Devuelve elementos seleccionados
|
||||
&7 y abre la GUI anterior.
|
||||
title: "&7 seleccionado:"
|
||||
element: "&8 - [elemento]"
|
||||
element: "&8 - [element]"
|
||||
statistic_element:
|
||||
name: "&f&l [estadística]"
|
||||
description: "[descripción]"
|
||||
name: "&f&l [statistic]"
|
||||
description: "[description]"
|
||||
environment_element:
|
||||
name: "&f&l [medio ambiente]"
|
||||
description: "[descripción]"
|
||||
name: "&f&l [environment]"
|
||||
description: "[description]"
|
||||
search:
|
||||
name: "&f&l Buscar"
|
||||
description: |-
|
||||
&7 Permite buscar un
|
||||
&7 elemento con entrada
|
||||
&7 valor de texto.
|
||||
search: "&b Valor: [valor]"
|
||||
admin:
|
||||
backward: Importar desafios 0.3.0
|
||||
backward-player: Arreglar 0.3.0 PlayerData
|
||||
search: "&b Valor: [value]"
|
||||
tips:
|
||||
click-to-select: "&e Haga clic en &7 para seleccionar."
|
||||
click-to-choose: "&e Haga clic en &7 para elegir."
|
||||
click-to-complete: "&e Haga clic en &7 para completar."
|
||||
right-click-multiple-open: "&e Haga clic derecho en &7 para elegir el recuento
|
||||
de finalización."
|
||||
right-click-multiple-open: "&e Haga clic derecho en &7 para elegir el recuento de finalización."
|
||||
shift-left-click-to-complete-all: "&e Shift Haga clic en &7 para completar todo."
|
||||
left-click-to-accept: "&e Haga clic izquierdo en &7 para completar."
|
||||
right-click-to-write: "&e Haga clic derecho en &7 para escribir."
|
||||
@ -840,140 +830,134 @@ challenges:
|
||||
descriptions:
|
||||
challenge:
|
||||
lore: |-
|
||||
[descripción]
|
||||
[estado]
|
||||
[enfriarse]
|
||||
[requisitos]
|
||||
[recompensas]
|
||||
[description]
|
||||
[status]
|
||||
[cooldown]
|
||||
[requirements]
|
||||
[rewards]
|
||||
status:
|
||||
completed: "&2&l completado"
|
||||
completed-times: "&2 completado &7&l [número] &r&2 vez(-s)"
|
||||
completed-times-of: "&2 completado &7&l [número] &r&2 de &7&l [máx.] &r&2
|
||||
veces"
|
||||
completed-times: "&2 completado &7&l [number] &r&2 vez(-s)"
|
||||
completed-times-of: "&2 completado &7&l [number] &r&2 de &7&l [max] &r&2 veces"
|
||||
completed-times-reached: "&2&l Completado todo &7 [max] &2 veces"
|
||||
cooldown:
|
||||
lore: |-
|
||||
[se acabó el tiempo]
|
||||
[tiempo de espera]
|
||||
timeout: "&7&l Enfriamiento: &r&7 [tiempo]"
|
||||
wait-time: "&c&l Disponible después de: &r&c [hora]"
|
||||
in-days: "[número] d"
|
||||
in-hours: "[número] h"
|
||||
in-minutes: "[número] min"
|
||||
in-seconds: "[número] s"
|
||||
[timeout]
|
||||
[wait-time]
|
||||
timeout: "&7&l Enfriamiento: &r&7 [time]"
|
||||
wait-time: "&c&l Disponible después de: &r&c [time]"
|
||||
in-days: "[number] d"
|
||||
in-hours: "[number] h"
|
||||
in-minutes: "[number] min"
|
||||
in-seconds: "[number] s"
|
||||
requirements:
|
||||
lore: |-
|
||||
[ambiente]
|
||||
[tipo-requisito]
|
||||
[permisos]
|
||||
environment-single: "&7 Limitado a [entorno]"
|
||||
[environment]
|
||||
[type-requirement]
|
||||
[permissions]
|
||||
environment-single: "&7 Limitado a [environment]"
|
||||
environment-title: "&7 Limitado a:"
|
||||
environment-list: " &7 - &e [entorno]"
|
||||
permission-single: "&c Requiere permiso [permiso]"
|
||||
environment-list: " &7 - &e [environment]"
|
||||
permission-single: "&c Requiere permiso [permission]"
|
||||
permissions-title: "&c Requiere permisos:"
|
||||
permissions-list: " &c - [permiso]"
|
||||
permissions-list: " &c - [permission]"
|
||||
island:
|
||||
lore: |-
|
||||
[bloques]
|
||||
[entidades]
|
||||
[radio de búsqueda]
|
||||
[bloque de advertencia]
|
||||
[entidad de advertencia]
|
||||
[blocks]
|
||||
[entities]
|
||||
[search-radius]
|
||||
[warning-block]
|
||||
[warning-entity]
|
||||
blocks-title: "&7&l Bloques requeridos:"
|
||||
block-value: " &7 - &e [material]"
|
||||
blocks-value: " &7 - &e [número] x [material]"
|
||||
blocks-value: " &7 - &e [number] x [material]"
|
||||
entities-title: "&7&l Entidades requeridas:"
|
||||
entity-value: " &7 - &e [entidad]"
|
||||
entities-value: " &7 - &e [número] x [entidad]"
|
||||
search-radius: "&7 No más allá de &e [número] &7 metros"
|
||||
entity-value: " &7 - &e [entity]"
|
||||
entities-value: " &7 - &e [number] x [entity]"
|
||||
search-radius: "&7 No más allá de &e [number] &7 metros"
|
||||
warning-block: "&e Los bloques serán &c eliminados"
|
||||
warning-entity: "&e Entidades serán &c eliminadas"
|
||||
inventory:
|
||||
lore: |-
|
||||
[elementos]
|
||||
[advertencia]
|
||||
[items]
|
||||
[warning]
|
||||
item-title: "&7&l Elementos necesarios:"
|
||||
item-value: " &7 - &e [artículo]"
|
||||
items-value: " &7 - &e [número] x [elemento]"
|
||||
item-value: " &7 - &e [item]"
|
||||
items-value: " &7 - &e [number] x [item]"
|
||||
warning: "& los artículos serán &c eliminados"
|
||||
other:
|
||||
lore: |-
|
||||
[experiencia]
|
||||
[experiencia-advertencia]
|
||||
[dinero]
|
||||
[advertencia de dinero]
|
||||
[nivel]
|
||||
experience: "&7&l Experiencia requerida: &r&e [número]"
|
||||
[experience]
|
||||
[experience-warning]
|
||||
[money]
|
||||
[money-warning]
|
||||
[level]
|
||||
experience: "&7&l Experiencia requerida: &r&e [number]"
|
||||
experience-warning: "&e experiencia será &c eliminada"
|
||||
money: "&7&l Dinero requerido: &r&e [número]"
|
||||
money: "&7&l Dinero requerido: &r&e [number]"
|
||||
money-warning: "&e dinero será &c eliminado"
|
||||
level: "&7&l Nivel de isla requerido: &r&e [número]"
|
||||
level: "&7&l Nivel de isla requerido: &r&e [number]"
|
||||
statistic:
|
||||
lore: |-
|
||||
[estadística]
|
||||
[advertencia]
|
||||
multiple-target: "&7&l [estadística]: &r&e [número] x [objetivo]"
|
||||
single-target: "&7&l [estadística]: &r&e [objetivo]"
|
||||
statistic: "&7&l [estadística] &r&e [número]"
|
||||
[statistic]
|
||||
[warning]
|
||||
multiple-target: "&7&l [statistic]: &r&e [number] x [target]"
|
||||
single-target: "&7&l [statistic]: &r&e [target]"
|
||||
statistic: "&7&l [statistic] &r&e [number]"
|
||||
warning: "&e Los datos estadísticos serán &c reducidos."
|
||||
rewards:
|
||||
lore: |-
|
||||
&7&l Recompensas:
|
||||
[texto]
|
||||
[elementos]
|
||||
[experiencia]
|
||||
[dinero]
|
||||
[comandos]
|
||||
[text]
|
||||
[items]
|
||||
[experience]
|
||||
[money]
|
||||
[commands]
|
||||
item-title: "&7 artículos:"
|
||||
item-value: " &7 - &e [artículo]"
|
||||
items-value: " &7 - &e [número] x [elemento]"
|
||||
experience: "&7 Experiencia: &r&e [número]"
|
||||
money: "&7 Dinero: &r&e [número]"
|
||||
item-value: " &7 - &e [item]"
|
||||
items-value: " &7 - &e [number] x [item]"
|
||||
experience: "&7 Experiencia: &r&e [number]"
|
||||
money: "&7 Dinero: &r&e [number]"
|
||||
commands-title: "&7 comandos:"
|
||||
command: " &7 - &e [comando]"
|
||||
command: " &7 - &e [command]"
|
||||
level:
|
||||
lore: |-
|
||||
[texto]
|
||||
[estado]
|
||||
[exención]
|
||||
[recompensas]
|
||||
[text]
|
||||
[status]
|
||||
[waiver]
|
||||
[rewards]
|
||||
status:
|
||||
completed: "&2&l completado"
|
||||
completed-challenges-of: |-
|
||||
&2 completado &7&l [número] &r&2 de
|
||||
&7&l [máx.] &r&2 desafíos.
|
||||
&2 completado &7&l [number] &r&2 de
|
||||
&7&l [max] &r&2 desafíos.
|
||||
locked: "&c&l bloqueado"
|
||||
missing-challenges: |-
|
||||
&7 [número] más desafíos deben ser
|
||||
&7 [number] más desafíos deben ser
|
||||
&7 completado para desbloquear este nivel.
|
||||
waiver: |-
|
||||
&7&l [número] desafío(s) &r&7 puede ser
|
||||
&7&l [number] desafío(s) &r&7 puede ser
|
||||
&7 se saltó para desbloquear el siguiente nivel.
|
||||
rewards:
|
||||
lore: |-
|
||||
&7&l Recompensas:
|
||||
[texto]
|
||||
[elementos]
|
||||
[experiencia]
|
||||
[dinero]
|
||||
[comandos]
|
||||
[text]
|
||||
[items]
|
||||
[experience]
|
||||
[money]
|
||||
[commands]
|
||||
item-title: "&7 artículos:"
|
||||
item-value: " &7 - &e [artículo]"
|
||||
items-value: " &7 - &e [número] x [elemento]"
|
||||
experience: "&7 Experiencia: &r&e [número]"
|
||||
money: "&7 Dinero: &r&e [número]"
|
||||
item-value: " &7 - &e [item]"
|
||||
items-value: " &7 - &e [number] x [item]"
|
||||
experience: "&7 Experiencia: &r&e [number]"
|
||||
money: "&7 Dinero: &r&e [number]"
|
||||
commands-title: "&7 comandos:"
|
||||
command: " &7 - &e [comando]"
|
||||
command: " &7 - &e [command]"
|
||||
library:
|
||||
author: "&7 por &e [autor]"
|
||||
version: "&7 Hecho con desafíos &e [versión]"
|
||||
lang: "&7 Idioma: &e [idioma]"
|
||||
gamemode: "&7 Principal para &e [modo de juego]"
|
||||
admin:
|
||||
backward: Permite importar desafíos desde 0.3.0 y por debajo de la versión
|
||||
adicional.
|
||||
backward-player: Permite corregir PlayerData dañado desde la versión 0.3.0|&2ÚSELO
|
||||
SOLO SI ES NECESARIO|&2PUEDE NO TRABAJAR EN TODAS LAS SITUACIONES
|
||||
author: "&7 por &e [author]"
|
||||
version: "&7 Hecho con desafíos &e [version]"
|
||||
lang: "&7 Idioma: &e [lang]"
|
||||
gamemode: "&7 Principal para &e [gamemode]"
|
||||
conversations:
|
||||
prefix: "&l&6 [BentoBox]: &r"
|
||||
confirm-string: verdadero, activado, sí, confirmar, y, válido, correcto
|
||||
@ -983,32 +967,30 @@ challenges:
|
||||
cancelled: "&c ¡Conversación cancelada!"
|
||||
input-number: "&e Por favor ingresa un número en el chat."
|
||||
input-seconds: "&e Por favor ingrese unos segundos en el chat."
|
||||
numeric-only: "&c ¡El [valor] dado no es un número!"
|
||||
not-valid-value: "&c El número dado [valor] no es válido. ¡Debe ser mayor que
|
||||
numeric-only: "&c ¡El [value] dado no es un número!"
|
||||
not-valid-value: "&c El número dado [value] no es válido. ¡Debe ser mayor que
|
||||
[min] y menor que [max]!"
|
||||
user-data-removed: "&a Todos los datos del usuario para [modo de juego] se borran
|
||||
de la base de datos."
|
||||
user-data-removed: "&a Todos los datos del usuario para [gamemode] se borran de
|
||||
la base de datos."
|
||||
confirm-user-data-deletion: "&e Confirme que desea borrar la base de datos de
|
||||
usuarios para [modo de juego]."
|
||||
challenge-data-removed: "&a Todos los datos de los desafíos para [modo de juego]
|
||||
se borran de la base de datos."
|
||||
usuarios para [gamemode]."
|
||||
challenge-data-removed: "&a Todos los datos de los desafíos para [gamemode] se
|
||||
borran de la base de datos."
|
||||
confirm-challenge-data-deletion: "&e Confirme que desea borrar la base de datos
|
||||
de desafíos para [modo de juego]."
|
||||
all-data-removed: "&a Todos los datos adicionales para [modo de juego] se borran
|
||||
de la base de datos."
|
||||
confirm-all-data-deletion: "&e Confirme que desea borrar los datos adicionales
|
||||
para [modo de juego]."
|
||||
de desafíos para [gamemode]."
|
||||
all-data-removed: "&a Todos los datos adicionales para [gamemode] se borran de
|
||||
la base de datos."
|
||||
confirm-all-data-deletion: "&e Confirme que desea borrar los datos adicionales para [gamemode]."
|
||||
write-name: "&e Por favor escribe un nombre en el chat."
|
||||
new-object-created: "&Se crea un nuevo objeto para [modo de juego]."
|
||||
new-object-created: "&Se crea un nuevo objeto para [gamemode]."
|
||||
object-already-exists: "&c El objeto &7 [id] &c ya existe. Elija un nombre diferente."
|
||||
invalid-challenge: "&c Desafío [desafío] contiene datos no válidos. ¡No se puede
|
||||
desplegar!"
|
||||
invalid-challenge: "&c Desafío [challenge] contiene datos no válidos. ¡No se puede desplegar!"
|
||||
name-changed: "&a Éxito, se actualizó el nombre."
|
||||
write-description: '&e Ingrese una nueva descripción en el chat y "salir" en una
|
||||
línea sola para finalizar.'
|
||||
description-changed: "&a Éxito, se actualizó la descripción."
|
||||
write-permissions: '&e Ingrese los permisos requeridos, uno por línea en el chat,
|
||||
y "salga" en una línea sola para finalizar.'
|
||||
write-permissions: '&e Ingrese los permisos requeridos, uno por línea en el
|
||||
chat, y "salga" en una línea sola para finalizar.'
|
||||
permissions-changed: "&a Éxito, se actualizaron los permisos de desafío."
|
||||
write-reward-text: '&e Ingrese un nuevo texto de recompensa en el chat y "salir"
|
||||
en una línea aparte para finalizar.'
|
||||
@ -1019,28 +1001,24 @@ challenges:
|
||||
write-reward-commands: '&e Ingrese un nuevo comando de recompensa por línea en
|
||||
el chat y "salga" en una línea sola para finalizar.'
|
||||
reward-commands-changed: "&a Éxito, se actualizaron los comandos de recompensa."
|
||||
write-repeat-reward-commands: '&e Ingrese un nuevo comando de recompensa repetida
|
||||
por línea en el chat y "salga" en una línea sola para finalizar.'
|
||||
repeat-reward-commands-changed: "&a Éxito, se actualizaron los comandos de recompensa
|
||||
repetida."
|
||||
challenge-removed: "&a Los desafíos [desafío] para [modo de juego] se eliminan
|
||||
write-repeat-reward-commands: '&e Ingrese un nuevo comando de recompensa
|
||||
repetida por línea en el chat y "salga" en una línea sola para finalizar.'
|
||||
repeat-reward-commands-changed: "&a Éxito, se actualizaron los comandos de recompensa repetida."
|
||||
challenge-removed: "&a Los desafíos [challenge] para [gamemode] se eliminan de
|
||||
la base de datos."
|
||||
confirm-challenge-deletion: "&e Confirme que desea eliminar [challenge] para
|
||||
[gamemode] de la base de datos."
|
||||
level-removed: "&a Nivel [level] para [gamemode] se elimina de la base de datos."
|
||||
confirm-level-deletion: "&e Confirme que desea eliminar [level] para [gamemode]
|
||||
de la base de datos."
|
||||
confirm-challenge-deletion: "&e Confirme que desea eliminar [desafío] para [modo
|
||||
de juego] de la base de datos."
|
||||
level-removed: "&a Nivel [nivel] para [modo de juego] se elimina de la base de
|
||||
datos."
|
||||
confirm-level-deletion: "&e Confirme que desea eliminar [nivel] para [modo de
|
||||
juego] de la base de datos."
|
||||
start-downloading: "&a Comenzando a descargar e importar la biblioteca de desafíos."
|
||||
written-text: "&un texto de entrada:"
|
||||
confirm-data-replacement: "&e Confirme que desea reemplazar sus desafíos actuales
|
||||
por uno nuevo."
|
||||
new-challenges-imported: "&a Éxito, se importaron nuevos desafíos para [modo de
|
||||
juego]."
|
||||
confirm-data-replacement: "&e Confirme que desea reemplazar sus desafíos actuales por uno nuevo."
|
||||
new-challenges-imported: "&a Éxito, se importaron nuevos desafíos para [gamemode]."
|
||||
exported-file-name: "&e Introduzca un nombre de archivo para el archivo de base
|
||||
de datos exportado. (escriba 'cancelar' para salir)"
|
||||
database-export-completed: "&a Éxito, se completó la exportación de la base de
|
||||
datos para [mundo]. Archivo [archivo] generado."
|
||||
datos para [world]. Archivo [file] generado."
|
||||
file-name-exist: "&c Existe un archivo con el nombre '[id]'. No se puede sobrescribir."
|
||||
write-search: "&e Por favor escriba un valor de búsqueda. (escriba 'cancelar'
|
||||
para salir)"
|
||||
@ -1051,10 +1029,10 @@ challenges:
|
||||
level-title: Completado con éxito
|
||||
level-subtitle: "[friendlyName]"
|
||||
messages:
|
||||
completed: "&2 ¡Has completado el desafío [nombre] para [jugador]!"
|
||||
completed: "&2 ¡Has completado el desafío [name] para [player]!"
|
||||
already-completed: "&2 ¡Este desafío ya se completó!"
|
||||
reset: "&2 ¡Reiniciaste el desafío [nombre] para [jugador]!"
|
||||
reset-all: "&2 ¡Todos los desafíos [de jugador] fueron reiniciados!"
|
||||
reset: "&2 ¡Reiniciaste el desafío [name] para [player]!"
|
||||
reset-all: "&2 ¡Todos los desafíos [player] fueron reiniciados!"
|
||||
not-completed: "&2 ¡Este desafío aún no se ha completado!"
|
||||
migrate-start: "&2 Comenzar a migrar datos del complemento de desafíos."
|
||||
migrate-end: Datos del complemento &2 Challenges actualizados al nuevo formato.
|
||||
@ -1062,24 +1040,22 @@ challenges:
|
||||
start-downloading: "&5 Comenzando a descargar e importar la biblioteca de desafíos."
|
||||
you-completed-challenge: "&2¡Has completado el desafío [value]!"
|
||||
you-repeated-challenge: "&2¡Has repetido el desafío [value]!"
|
||||
you-repeated-challenge-multiple: "&2¡Has repetido el &r&2desafío [value] [count]
|
||||
veces!"
|
||||
you-repeated-challenge-multiple: "&2¡Has repetido el &r&2desafío [value] [count] veces!"
|
||||
you-completed-level: "&2¡Has completado el nivel [value]!"
|
||||
name-has-completed-challenge: "&5¡[name] ha completado el desafío [value]!"
|
||||
name-has-completed-level: "&5¡[name] ha completado el nivel [value]!"
|
||||
load-skipping: '"[value]" ya existe - saltando'
|
||||
load-overwriting: Sobrescribiendo "[value]"
|
||||
load-add: 'Añadiendo nuevo objeto: [value]'
|
||||
load-add: "Añadiendo nuevo objeto: [value]"
|
||||
errors:
|
||||
no-name: "&cFalta el nombre del desafío"
|
||||
unknown-challenge: "&cDesafío desconocido"
|
||||
not-valid-integer: |-
|
||||
&c ¡El entero "[valor]" dado no es válido!
|
||||
&c ¡El entero "[value]" dado no es válido!
|
||||
El valor debe estar entre [min] y [max].
|
||||
not-deployed: "&c¡El desafío no está desplegado!"
|
||||
not-on-island: "&c¡Debes estar en tu isla para hacer eso!"
|
||||
challenge-level-not-available: "&cNo has desbloqueado el nivel requerido para
|
||||
completar este desafío."
|
||||
challenge-level-not-available: "&cNo has desbloqueado el nivel requerido para completar este desafío."
|
||||
not-repeatable: "&c¡Este reto no es repetible!"
|
||||
wrong-environment: "&c¡Estás en el entorno equivocado!"
|
||||
not-enough-items: "&c¡No tienes [items] suficientes para completar este desafío!"
|
||||
@ -1088,8 +1064,7 @@ challenges:
|
||||
you-still-need: "&cTodavía necesitas [amount] x [item]"
|
||||
missing-addon: "&cNo se puede completar el desafío: falta un addon o plugin requerido."
|
||||
incorrect: "&cNo se puede completar el desafío: los requisitos son incorrectos."
|
||||
not-enough-money: "&cEs necesario tener [value] en tu cuenta para completar el
|
||||
desafío."
|
||||
not-enough-money: "&cEs necesario tener [value] en tu cuenta para completar el desafío."
|
||||
not-enough-experience: "&cEs necesario tener [value] EXP para completar este desafío."
|
||||
island-level: "&c¡Tu isla debe ser de nivel [number] o mayor para completar este
|
||||
desafío!"
|
||||
@ -1097,29 +1072,26 @@ challenges:
|
||||
load-error: "&cError: No se pudo cargar [value]."
|
||||
no-rank: "&cNo tienes un rango lo suficientemente alto como para hacer eso."
|
||||
cannot-remove-items: "&c¡Algunos items no se pueden eliminar de tu inventario!"
|
||||
exist-challenges-or-levels: "&cLos desafíos ya existen en tu mundo. ¡No se puede
|
||||
proceder!"
|
||||
exist-challenges-or-levels: "&cLos desafíos ya existen en tu mundo. ¡No se puede proceder!"
|
||||
no-challenges: "&c¡Los desafíos aún no se han implementado en este mundo!"
|
||||
no-challenges-admin: "&c¡Los desafíos aún no se han implementado en este mundo!
|
||||
¡Usa &5/[command] &cpara agregarlos!"
|
||||
missing-arguments: "&cFaltan argumentos de comando."
|
||||
no-multiple-permission: "&cNo tienes permiso para completar este desafío varias
|
||||
veces a la vez."
|
||||
invalid-level: "&c El nivel [nivel] contiene datos no válidos. ¡No se cargará
|
||||
no-multiple-permission: "&cNo tienes permiso para completar este desafío varias veces a la vez."
|
||||
invalid-level: "&c El nivel [level] contiene datos no válidos. ¡No se cargará
|
||||
desde la base de datos!"
|
||||
invalid-challenge: "&c Desafío [desafío] contiene datos no válidos. ¡No se cargará
|
||||
desde la base de datos!"
|
||||
no-library-entries: "&c No se pueden encontrar entradas de la biblioteca. Nada
|
||||
que mostrar."
|
||||
invalid-challenge: "&c Desafío [challenge] contiene datos no válidos. ¡No se
|
||||
cargará desde la base de datos!"
|
||||
no-library-entries: "&c No se pueden encontrar entradas de la biblioteca. Nada que mostrar."
|
||||
not-hooked: "&c Challenges Addon no pudo encontrar ningún modo de juego."
|
||||
timeout: "&c Este desafío requiere esperar [tiempo de espera] entre finalizaciones.
|
||||
Debes esperar [tiempo de espera] hasta completarlo nuevamente."
|
||||
requirement-not-met: "&c Este desafío requiere que [estadística] tenga [número].
|
||||
Solo tienes [valor]."
|
||||
requirement-not-met-entity: "&c Este desafío requiere que [estadística] [entidad]
|
||||
tenga [número]. Solo tienes [valor]."
|
||||
requirement-not-met-material: "&c Este desafío requiere que [estadística] [material]
|
||||
tenga [número]. Solo tienes [valor]."
|
||||
timeout: "&c Este desafío requiere esperar [timeout] entre finalizaciones. Debes
|
||||
esperar [wait-time] hasta completarlo nuevamente."
|
||||
requirement-not-met: "&c Este desafío requiere que [statistic] tenga [number].
|
||||
Solo tienes [value]."
|
||||
requirement-not-met-entity: "&c Este desafío requiere que [statistic] [entity]
|
||||
tenga [number]. Solo tienes [value]."
|
||||
requirement-not-met-material: "&c Este desafío requiere que [statistic]
|
||||
[material] tenga [number]. Solo tienes [value]."
|
||||
protection:
|
||||
flags:
|
||||
CHALLENGES_ISLAND_PROTECTION:
|
||||
@ -1128,8 +1100,8 @@ protection:
|
||||
&5&ocompletar desafíos
|
||||
name: Proteccion de desafios
|
||||
CHALLENGES_WORLD_PROTECTION:
|
||||
description: "&5&oHabilitar/deshabilitar &5&orequerimiento para que los jugadores
|
||||
&5&o esten en su isla para &5&ocompletar un desafío."
|
||||
description: "&5&oHabilitar/deshabilitar &5&orequerimiento para que los
|
||||
jugadores &5&o esten en su isla para &5&ocompletar un desafío."
|
||||
name: Limitaciones de la isla
|
||||
hint: No hay desafíos fuera de la isla
|
||||
version: 11
|
||||
version: 12
|
||||
|
@ -33,7 +33,7 @@ challenges:
|
||||
gamemode-gui: "&0&l Sélectionner le mode de jeu"
|
||||
multiple-gui: "&0&l Combien de fois ?"
|
||||
admin-gui: "&0&l Menu d'administration des Challenges"
|
||||
edit-challenge: "&0&l Editer [Challenge]"
|
||||
edit-challenge: "&0&l Editer [challenge]"
|
||||
edit-level: "&0&l Editer [level]"
|
||||
settings: "&0&l Paramètres"
|
||||
choose-challenge: "&0&l Choisir le Challenge"
|
||||
@ -337,7 +337,7 @@ challenges:
|
||||
&7 Permet de modifier le
|
||||
&7 niveau d'îlot requis
|
||||
&7 pour le défi.
|
||||
value: "&7 Niveau actuel : &e [numéro]"
|
||||
value: "&7 Niveau actuel : &e [number]"
|
||||
remove_money:
|
||||
name: "&f&l Supprimer de l'argent"
|
||||
description: |-
|
||||
@ -354,21 +354,21 @@ challenges:
|
||||
&7 Permet de modifier le
|
||||
&7 argent requis sur le joueur
|
||||
&7 représente le défi.
|
||||
value: "&7 Valeur actuelle : &e [numéro]"
|
||||
value: "&7 Valeur actuelle : &e [number]"
|
||||
statistic:
|
||||
name: "&f&l Statistique"
|
||||
description: |-
|
||||
&7 Permet de modifier le
|
||||
&7 type de statistique qui est
|
||||
&7 a vérifié ce défi.
|
||||
value: "&7 Valeur actuelle : &e [statistique]"
|
||||
value: "&7 Valeur actuelle : &e [statistic]"
|
||||
statistic_amount:
|
||||
name: "&f&l Valeur cible"
|
||||
description: |-
|
||||
&7 Permet de modifier le
|
||||
&7 valeur cible statistique
|
||||
&7 qui doit être respecté.
|
||||
value: "&7 Valeur actuelle : &e [numéro]"
|
||||
value: "&7 Valeur actuelle : &e [number]"
|
||||
remove_statistic:
|
||||
name: "&f&l Réduire la statistique"
|
||||
description: |-
|
||||
@ -389,13 +389,13 @@ challenges:
|
||||
description: |-
|
||||
&7 Permet de modifier le
|
||||
&7 poste cible statistique.
|
||||
value: "&7 Poste actuel : &e [poste]"
|
||||
value: "&7 Poste actuel : &e [item]"
|
||||
statistic_entities:
|
||||
name: "&f&l Entité cible"
|
||||
description: |-
|
||||
&7 Permet de modifier le
|
||||
&7 entité cible statistique.
|
||||
value: "&7 Entité actuelle : &e [entité]"
|
||||
value: "&7 Entité actuelle : &e [entity]"
|
||||
reward_text:
|
||||
name: "&f&l Texte de récompense"
|
||||
description: |-
|
||||
@ -446,7 +446,7 @@ challenges:
|
||||
description: |-
|
||||
&7 Permet de modifier le
|
||||
&7 récompense en argent.
|
||||
value: "&7 Valeur actuelle : &e [numéro]"
|
||||
value: "&7 Valeur actuelle : &e [number]"
|
||||
repeat_reward_money:
|
||||
name: "&f&l Répéter l'argent de la récompense"
|
||||
description: |-
|
||||
@ -825,14 +825,14 @@ challenges:
|
||||
challenge:
|
||||
lore: |-
|
||||
[description]
|
||||
[statut]
|
||||
[refroidir]
|
||||
[exigences]
|
||||
[récompenses]
|
||||
[status]
|
||||
[cooldown]
|
||||
[requirements]
|
||||
[rewards]
|
||||
status:
|
||||
completed: "&2&l Terminé"
|
||||
completed-times: "&2 Terminé &7&l [numéro] &r&2 fois(-s)"
|
||||
completed-times-of: "&2 Terminé &7&l [nombre] &r&2 sur &7&l [max] &r&2 fois"
|
||||
completed-times: "&2 Terminé &7&l [number] &r&2 fois(-s)"
|
||||
completed-times-of: "&2 Terminé &7&l [number] &r&2 sur &7&l [max] &r&2 fois"
|
||||
completed-times-reached: "&2&l Terminé tout &7 [max] &2 fois"
|
||||
cooldown:
|
||||
lore: |-
|
||||
@ -881,16 +881,16 @@ challenges:
|
||||
warning: "&e Le ou les éléments seront &c supprimés"
|
||||
other:
|
||||
lore: |-
|
||||
[expérience]
|
||||
[expérience-avertissement]
|
||||
[argent]
|
||||
[avertissement d'argent]
|
||||
[niveau]
|
||||
[experience]
|
||||
[experience-warning]
|
||||
[money]
|
||||
[money-warning]
|
||||
[level]
|
||||
experience: "&7&l Expérience requise : &r&e [number]"
|
||||
experience-warning: "&e L'expérience sera &c supprimée"
|
||||
money: "&7&l Argent requis : &r&e [number]"
|
||||
money-warning: "&e L'argent sera &c supprimé"
|
||||
level: "&7&l Niveau d'îlot requis : &r&e [nombre]"
|
||||
level: "&7&l Niveau d'îlot requis : &r&e [number]"
|
||||
statistic:
|
||||
lore: |-
|
||||
[statistic]
|
||||
@ -923,14 +923,14 @@ challenges:
|
||||
status:
|
||||
completed: "&2&l Terminé"
|
||||
completed-challenges-of: |-
|
||||
&2 Terminé &7&l [numéro] &r&2 sur
|
||||
&2 Terminé &7&l [number] &r&2 sur
|
||||
&7&l [max] &r&2 défis.
|
||||
locked: "&c&l Verrouillé"
|
||||
missing-challenges: |-
|
||||
&7 [nombre] d'autres défis doivent être relevés
|
||||
&7 [number] d'autres défis doivent être relevés
|
||||
&7 terminé pour débloquer ce niveau.
|
||||
waiver: |-
|
||||
&7&l [numéro] défi(s) &r&7 peut être
|
||||
&7&l [number] défi(s) &r&7 peut être
|
||||
&7 ignoré pour débloquer le niveau suivant.
|
||||
rewards:
|
||||
lore: |-
|
||||
@ -961,23 +961,23 @@ challenges:
|
||||
cancelled: "&c Conversation annulée !"
|
||||
input-number: "&e Veuillez saisir un numéro dans le chat."
|
||||
input-seconds: "&e Veuillez entrer une seconde dans le chat."
|
||||
numeric-only: "&c La [valeur] donnée n'est pas un nombre !"
|
||||
numeric-only: "&c La [value] donnée n'est pas un nombre !"
|
||||
not-valid-value: "&c Le nombre donné [value] n'est pas valide. Elle doit être
|
||||
supérieure à [min] et inférieure à [max] !"
|
||||
user-data-removed: "&a Toutes les données utilisateur pour [mode de jeu] sont
|
||||
effacées de la base de données."
|
||||
user-data-removed: "&a Toutes les données utilisateur pour [gamemode] sont effacées
|
||||
de la base de données."
|
||||
confirm-user-data-deletion: "&e Veuillez confirmer que vous souhaitez effacer
|
||||
la base de données utilisateur pour [mode de jeu]."
|
||||
challenge-data-removed: "&a Toutes les données des défis pour [mode de jeu] sont
|
||||
la base de données utilisateur pour [gamemode]."
|
||||
challenge-data-removed: "&a Toutes les données des défis pour [gamemode] sont
|
||||
effacées de la base de données."
|
||||
confirm-challenge-data-deletion: "&e Veuillez confirmer que vous souhaitez effacer
|
||||
la base de données des défis pour [mode de jeu]."
|
||||
all-data-removed: "&a Toutes les données du module complémentaire pour [mode de
|
||||
jeu] sont effacées de la base de données."
|
||||
la base de données des défis pour [gamemode]."
|
||||
all-data-removed: "&a Toutes les données du module complémentaire pour [gamemode]
|
||||
sont effacées de la base de données."
|
||||
confirm-all-data-deletion: "&e Veuillez confirmer que vous souhaitez effacer les
|
||||
données du module complémentaire pour [gamemode]."
|
||||
write-name: "&e Veuillez écrire un nom dans le chat."
|
||||
new-object-created: "&a Un nouvel objet pour [mode de jeu] est créé."
|
||||
new-object-created: "&a Un nouvel objet pour [gamemode] est créé."
|
||||
object-already-exists: "&c L'objet &7 [id] &c existe déjà. Choisissez un nom différent."
|
||||
invalid-challenge: "&c Challenge [challenge] contient des données non valides.
|
||||
Il ne peut pas être déployé !"
|
||||
@ -1006,22 +1006,22 @@ challenges:
|
||||
challenge-removed: "&a Les défis [challenge] pour [gamemode] sont supprimés de
|
||||
la base de données."
|
||||
confirm-challenge-deletion: "&e Veuillez confirmer que vous souhaitez supprimer
|
||||
[défi] pour [mode de jeu] de la base de données."
|
||||
level-removed: "&a Le niveau [niveau] pour [mode de jeu] est supprimé de la base
|
||||
de données."
|
||||
confirm-level-deletion: "&e Veuillez confirmer que vous souhaitez supprimer [niveau]
|
||||
pour [mode de jeu] de la base de données."
|
||||
[challenge] pour [gamemode] de la base de données."
|
||||
level-removed: "&a Le niveau [level] pour [gamemode] est supprimé de la base de
|
||||
données."
|
||||
confirm-level-deletion: "&e Veuillez confirmer que vous souhaitez supprimer [level]
|
||||
pour [gamemode] de la base de données."
|
||||
start-downloading: "&a Début du téléchargement et de l'importation de la bibliothèque
|
||||
de défis."
|
||||
written-text: "&a Saisir du texte :"
|
||||
confirm-data-replacement: "&e Veuillez confirmer que vous souhaitez remplacer
|
||||
vos défis actuels par de nouveaux."
|
||||
new-challenges-imported: "&a Succès, de nouveaux défis pour [mode de jeu] ont
|
||||
été importés."
|
||||
new-challenges-imported: "&a Succès, de nouveaux défis pour [gamemode] ont été
|
||||
importés."
|
||||
exported-file-name: "&e Veuillez entrer un nom de fichier pour le fichier de base
|
||||
de données exporté. (écrivez « annuler » pour quitter)"
|
||||
database-export-completed: "&a Succès, l'exportation de la base de données pour
|
||||
[monde] est terminée. Fichier [fichier] généré."
|
||||
[world] est terminée. Fichier [file] généré."
|
||||
file-name-exist: "&c Le fichier portant le nom '[id]' existe. Ne peut pas écraser."
|
||||
write-search: "&e Veuillez saisir une valeur de recherche. (écrire 'cancel' pour
|
||||
quitter)"
|
||||
@ -1056,7 +1056,7 @@ challenges:
|
||||
no-name: "&cNom du Challenge manquant"
|
||||
unknown-challenge: "&cChallenge inconnu"
|
||||
not-valid-integer: |-
|
||||
&c L'entier donné "[valeur]" n'est pas valide !
|
||||
&c L'entier donné "[value]" n'est pas valide !
|
||||
La valeur doit être comprise entre [min] et [max].
|
||||
not-deployed: "&cLe Challenge ne peut pas être réalisé !"
|
||||
not-on-island: "&cVous devez être sur votre île pour faire le Challenge !"
|
||||
@ -1090,8 +1090,8 @@ challenges:
|
||||
missing-arguments: "&c La commande n'a pas d'arguments."
|
||||
no-multiple-permission: "&cVous n'avez pas la permission d'accomplir ce challenge
|
||||
plusieurs fois à la fois."
|
||||
invalid-level: "&c Le niveau [niveau] contient des données non valides. Il ne
|
||||
sera pas chargé à partir de la base de données !"
|
||||
invalid-level: "&c Le niveau [level] contient des données non valides. Il ne sera
|
||||
pas chargé à partir de la base de données !"
|
||||
invalid-challenge: "&c Challenge [challenge] contient des données non valides.
|
||||
Il ne sera pas chargé à partir de la base de données !"
|
||||
no-library-entries: "&c Impossible de trouver des entrées de bibliothèque. Rien
|
||||
@ -1099,12 +1099,12 @@ challenges:
|
||||
not-hooked: "&c Challenges Addon n'a trouvé aucun GameMode."
|
||||
timeout: "&c Ce défi nécessite d'attendre [timeout] entre les achèvements. Vous
|
||||
devez attendre [wait-time] pour le terminer à nouveau."
|
||||
requirement-not-met: "&c Ce défi nécessite que [statistique] ait [nombre]. Vous
|
||||
n'avez que [valeur]."
|
||||
requirement-not-met-entity: "&c Ce défi nécessite que [statistique] [entité] ait
|
||||
[nombre]. Vous n'avez que [valeur]."
|
||||
requirement-not-met-material: "&c Ce défi nécessite que [statistique] [matériel]
|
||||
ait [nombre]. Vous n'avez que [valeur]."
|
||||
requirement-not-met: "&c Ce défi nécessite que [statistic] ait [number]. Vous
|
||||
n'avez que [value]."
|
||||
requirement-not-met-entity: "&c Ce défi nécessite que [statistic] [entity] ait
|
||||
[number]. Vous n'avez que [value]."
|
||||
requirement-not-met-material: "&c Ce défi nécessite que [statistic] [material]
|
||||
ait [number]. Vous n'avez que [value]."
|
||||
protection:
|
||||
flags:
|
||||
CHALLENGES_ISLAND_PROTECTION:
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: BentoBox-Challenges
|
||||
main: world.bentobox.challenges.ChallengesPladdon
|
||||
version: ${project.version}${build.number}
|
||||
api-version: "1.17"
|
||||
api-version: "1.21"
|
||||
|
||||
authors: [tastybento, BONNe]
|
||||
contributors: ["The BentoBoxWorld Community"]
|
||||
|
@ -1,10 +1,12 @@
|
||||
package world.bentobox.challenges.tasks;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.atLeast;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@ -30,6 +32,7 @@ import org.bukkit.World.Environment;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Player.Spigot;
|
||||
import org.bukkit.inventory.ItemFactory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
@ -41,6 +44,7 @@ import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.stubbing.Answer;
|
||||
@ -49,6 +53,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||
import org.powermock.modules.junit4.PowerMockRunner;
|
||||
import org.powermock.reflect.Whitebox;
|
||||
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.addons.AddonDescription;
|
||||
import world.bentobox.bentobox.api.addons.GameModeAddon;
|
||||
@ -119,6 +124,8 @@ public class TryToCompleteTest {
|
||||
@Mock
|
||||
private BoundingBox bb;
|
||||
private Set<Player> onlinePlayers;
|
||||
@Mock
|
||||
private Spigot spigot;
|
||||
|
||||
/**
|
||||
*/
|
||||
@ -207,6 +214,7 @@ public class TryToCompleteTest {
|
||||
when(user.getPlayer()).thenReturn(player);
|
||||
UUID uniqueId = UUID.randomUUID();
|
||||
when(player.getUniqueId()).thenReturn(uniqueId);
|
||||
when(player.spigot()).thenReturn(spigot);
|
||||
when(user.getUniqueId()).thenReturn(uniqueId);
|
||||
when(user.getTranslation(anyString()))
|
||||
.thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
|
||||
@ -702,4 +710,32 @@ public class TryToCompleteTest {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that spigot sent the message
|
||||
* @param message - message to check
|
||||
*/
|
||||
public void checkSpigotMessage(String expectedMessage) {
|
||||
checkSpigotMessage(expectedMessage, 1);
|
||||
}
|
||||
|
||||
public void checkSpigotMessage(String expectedMessage, int expectedOccurrences) {
|
||||
// Capture the argument passed to spigot().sendMessage(...) if messages are sent
|
||||
ArgumentCaptor<TextComponent> captor = ArgumentCaptor.forClass(TextComponent.class);
|
||||
|
||||
// Verify that sendMessage() was called at least 0 times (capture any sent messages)
|
||||
verify(spigot, atLeast(0)).sendMessage(captor.capture());
|
||||
|
||||
// Get all captured TextComponents
|
||||
List<TextComponent> capturedMessages = captor.getAllValues();
|
||||
|
||||
// Count the number of occurrences of the expectedMessage in the captured messages
|
||||
long actualOccurrences = capturedMessages.stream().map(component -> component.toLegacyText()) // Convert each TextComponent to plain text
|
||||
.filter(messageText -> messageText.contains(expectedMessage)) // Check if the message contains the expected text
|
||||
.count(); // Count how many times the expected message appears
|
||||
|
||||
// Assert that the number of occurrences matches the expectedOccurrences
|
||||
assertEquals("Expected message occurrence mismatch: " + expectedMessage, expectedOccurrences,
|
||||
actualOccurrences);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user