Merge branch 'Grasscutters:development' into development

This commit is contained in:
dragon 2022-07-08 12:53:52 +08:00 committed by GitHub
commit a8926e5bb3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 40 additions and 39 deletions

View File

@ -75,8 +75,8 @@ Grasscutter uses Gradle to handle dependencies & building.
**Requirements:** **Requirements:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -79,8 +79,8 @@ certutil -addstore root %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
**דרישות:** **דרישות:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -1,11 +1,11 @@
![Grasscutter](https://socialify.git.ci/Grasscutters/Grasscutter/image?description=1&forks=1&issues=1&language=1&logo=https%3A%2F%2Fs2.loli.net%2F2022%2F04%2F25%2FxOiJn7lCdcT5Mw1.png&name=1&owner=1&pulls=1&stargazers=1&theme=Light) ![Grasscutter](https://socialify.git.ci/Grasscutters/Grasscutter/image?description=1&forks=1&issues=1&language=1&logo=https%3A%2F%2Fs2.loli.net%2F2022%2F04%2F25%2FxOiJn7lCdcT5Mw1.png&name=1&owner=1&pulls=1&stargazers=1&theme=Light)
<div align="center"><img alt="Documention" src="https://img.shields.io/badge/Wiki-Grasscutter-blue?style=for-the-badge&link=https://github.com/Grasscutters/Grasscutter/wiki&link=https://github.com/Grasscutters/Grasscutter/wiki"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/Grasscutters/Grasscutter?logo=java&style=for-the-badge"> <img alt="GitHub" src="https://img.shields.io/github/license/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/Grasscutters/Grasscutter/Build?logo=github&style=for-the-badge"></div> <div align="center"><img alt="Documentation" src="https://img.shields.io/badge/Wiki-Grasscutter-blue?style=for-the-badge&link=https://github.com/Grasscutters/Grasscutter/wiki&link=https://github.com/Grasscutters/Grasscutter/wiki"> <img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/Grasscutters/Grasscutter?logo=java&style=for-the-badge"> <img alt="GitHub" src="https://img.shields.io/github/license/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/Grasscutters/Grasscutter?style=for-the-badge"> <img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/Grasscutters/Grasscutter/Build?logo=github&style=for-the-badge"></div>
<div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div> <div align="center"><a href="https://discord.gg/T5vZU6UyeG"><img alt="Discord - Grasscutter" src="https://img.shields.io/discord/965284035985305680?label=Discord&logo=discord&style=for-the-badge"></a></div>
[EN](README.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [FR](README_fr-FR.md) | [HE](README_HE.md) | ES | [RU](README_ru-RU.md) [EN](README.md) | [简中](README_zh-CN.md) | [繁中](README_zh-TW.md) | [FR](README_fr-FR.md) | [HE](README_HE.md) | ES | [RU](README_ru-RU.md)
**Atención:** Siempre damos la bienvenidas a contribuidores del proyecto. Antes de añadir tu contribución, por favor lee cuidadosamente nuestro [Código de conducta](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md). **Atención:** Siempre damos la bienvenida a contribuidores del proyecto. Antes de añadir tu contribución, por favor lee cuidadosamente nuestro [Código de conducta](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md).
## Funcionalidades actuales ## Funcionalidades actuales
@ -44,7 +44,7 @@
### Conexión con el cliente ### Conexión con el cliente
½. Crea una cuenta usando [un comando de la consola del servidor](https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting). ½. Crea una cuenta usando [el comando correspondiente en la consola del servidor](https://github.com/Grasscutters/Grasscutter/wiki/Commands#targeting).
1. Redirecciona el tráfico: (elegir uno) 1. Redirecciona el tráfico: (elegir uno)
- mitmdump: `mitmdump -s proxy.py -k` - mitmdump: `mitmdump -s proxy.py -k`
@ -53,7 +53,7 @@
**Nota:**El certificado CA normalmente se encuentra en `%USERPROFILE%\ .mitmproxy`, o puedes descargarlo de `http://mitm.it` **Nota:**El certificado CA normalmente se encuentra en `%USERPROFILE%\ .mitmproxy`, o puedes descargarlo de `http://mitm.it`
Doble click para [instalar](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate) o ... Doble clic para [instalar](https://docs.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate#installing-a-trusted-root-certificate) o ...
- Con línea de comandos - Con línea de comandos
@ -75,8 +75,8 @@ Grasscutter usa Gradle para manejar dependencias y construcción.
**Requerimientos:** **Requerimientos:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows
@ -102,8 +102,8 @@ Podrás encontrar el jar generado en la carpeta raíz del proyecto.
# Soluciones a errores comunes # Soluciones a errores comunes
* Si la compilación falló, por favor comprueba tu instalación de JDK (JDK 17 y valida la variable bin PATH del JDK) * Si la compilación falla, por favor comprueba tu instalación de JDK (JDK 17 y valida la variable bin PATH del JDK)
* Mi cliente no conecta, no inicia sesión, 4206, etc... - Probablemente tu configuración del proxy es *el problema*, si usas * Mi cliente no conecta, no inicia sesión, 4206, etc... - Probablemente, tu configuración del proxy es *el problema*, si usas
Fiddler asegúrate de que está usando un puerto distinto al 8888 Fiddler asegúrate de que está usando un puerto distinto al 8888
* Secuencia de inicio: MongoDB > Grasscutter > Servicio de proxy (mitmdump, fiddler, etc.) > Juego * Secuencia de inicio: MongoDB > Grasscutter > Servicio de proxy (mitmdump, fiddler, etc.) > Juego

View File

@ -75,8 +75,8 @@ Grasscutter utilise Gradle pour gérer les dépendances et la construction.
**Logiciels requis:** **Logiciels requis:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -76,8 +76,8 @@
**Требуется:** **Требуется:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -75,8 +75,8 @@ Grasscutter 使用 Gradle 来处理依赖及编译。
**依赖:** **依赖:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -75,8 +75,8 @@ Grasscutter 使用 Gradle 來處理依賴及編譯。
**依賴:** **依賴:**
- Java SE Development Kits - 17 - [Java SE Development Kits - 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
- Git - [Git](https://git-scm.com/downloads)
##### Windows ##### Windows

View File

@ -26,10 +26,11 @@ public final class EnterDungeonCommand implements CommandHandler {
} }
boolean result = targetPlayer.getServer().getDungeonManager().enterDungeon(targetPlayer.getSession().getPlayer(), 0, dungeonId); boolean result = targetPlayer.getServer().getDungeonManager().enterDungeon(targetPlayer.getSession().getPlayer(), 0, dungeonId);
CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.changed", dungeonId));
if (!result) { if (!result) {
CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.not_found_error")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.not_found_error"));
} else {
CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.changed", dungeonId));
} }
} catch (Exception e) { } catch (Exception e) {
CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.usage")); CommandHandler.sendMessage(sender, translate(sender, "commands.enter_dungeon.usage"));

View File

@ -8,13 +8,13 @@
"command_error": "Comando de error:" "command_error": "Comando de error:"
}, },
"dispatch": { "dispatch": {
"port_bind": "[Dispatch] El servidor de envío se inicio en el puerto %s", "port_bind": "[Dispatch] El servidor de envío se inició en el puerto %s",
"request": "[Dispatch] Petición %s %s del cliente: %s", "request": "[Dispatch] Petición %s %s del cliente: %s",
"keystore": { "keystore": {
"general_error": "[Dispatch] ¡Error mientras se cargaba el keystore!", "general_error": "[Dispatch] ¡Error mientras se cargaba el keystore!",
"password_error": "[Dispatch] No se puede cargar el keystore. Probando contraseña por defecto del keystore...", "password_error": "[Dispatch] No se puede cargar el keystore. Probando contraseña por defecto del keystore...",
"no_keystore_error": "[Dispatch] ¡No se ha encontrado el certificado SSL! Volviendo al servidor HTTP.", "no_keystore_error": "[Dispatch] ¡No se ha encontrado el certificado SSL! Volviendo al servidor HTTP.",
"default_password": "[Dispatch] La contraseña por defecto del keystore se cargó correctamente. Por favor considera establecer la contraseña a 123456 en config.json." "default_password": "[Dispatch] La contraseña por defecto del keystore se cargó correctamente. Por favor, considera establecer la contraseña a 123456 en config.json."
}, },
"authentication": { "authentication": {
"default_unable_to_verify": "[Authentication] Algo invocó el método verifyUser que no está disponible en el manejador de autentificación por defecto." "default_unable_to_verify": "[Authentication] Algo invocó el método verifyUser que no está disponible en el manejador de autentificación por defecto."
@ -22,7 +22,7 @@
"no_commands_error": "No se soporta el uso de comandos en modo de solo envío.", "no_commands_error": "No se soporta el uso de comandos en modo de solo envío.",
"unhandled_request_error": "[Dispatch] Petición potencialmente no manejada %s : %s.", "unhandled_request_error": "[Dispatch] Petición potencialmente no manejada %s : %s.",
"account": { "account": {
"login_attempt": "[Dispatch] El cliente %s esta intentando iniciar sesión.", "login_attempt": "[Dispatch] El cliente %s está intentando iniciar sesión.",
"login_success": "[Dispatch] El cliente %s inició sesión como %s.", "login_success": "[Dispatch] El cliente %s inició sesión como %s.",
"login_max_player_limit": "[Dispatch] El cliente %s falló al iniciar sesión: Se ha alcanzado el límite de jugadores activos", "login_max_player_limit": "[Dispatch] El cliente %s falló al iniciar sesión: Se ha alcanzado el límite de jugadores activos",
"login_token_attempt": "[Dispatch] El cliente %s está intentando iniciar sesión a través de un token.", "login_token_attempt": "[Dispatch] El cliente %s está intentando iniciar sesión a través de un token.",
@ -33,7 +33,7 @@
"account_login_create_success": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta %s creada.", "account_login_create_success": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta %s creada.",
"account_login_create_error": "[Dispatch] El cliente %s falló al iniciar sesión: Fallo al crear la cuenta.", "account_login_create_error": "[Dispatch] El cliente %s falló al iniciar sesión: Fallo al crear la cuenta.",
"account_login_exist_error": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta no encontrada.", "account_login_exist_error": "[Dispatch] El cliente %s falló al iniciar sesión: Cuenta no encontrada.",
"account_cache_error": "Error de información de cache de la cuenta del juego.", "account_cache_error": "Error de información de caché de la cuenta del juego.",
"session_key_error": "Clave de sesión incorrecta.", "session_key_error": "Clave de sesión incorrecta.",
"username_error": "Nombre de usuario no encontrado.", "username_error": "Nombre de usuario no encontrado.",
"username_create_error": "Nombre de usuario no encontrado, la creación falló.", "username_create_error": "Nombre de usuario no encontrado, la creación falló.",
@ -62,7 +62,7 @@
}, },
"commands": { "commands": {
"generic": { "generic": {
"not_specified": "Np se ha especificado un comando.", "not_specified": "No se ha especificado un comando.",
"unknown_command": "Comando desconocido: %s", "unknown_command": "Comando desconocido: %s",
"permission_error": "No tienes permiso para ejecutar este comando.", "permission_error": "No tienes permiso para ejecutar este comando.",
"console_execute_error": "Este comando solo puede ser ejecutado desde la consola.", "console_execute_error": "Este comando solo puede ser ejecutado desde la consola.",
@ -131,7 +131,7 @@
"coop": { "coop": {
"usage": "Uso: coop [UID del host]", "usage": "Uso: coop [UID del host]",
"success": "Invocado %s al mundo de %s.", "success": "Invocado %s al mundo de %s.",
"description": "Fuerza a alquien a ser invocado al mundo de otro. Si no se establece un objetivo, te envía a tí al modo cooperativo." "description": "Fuerza a alguien a ser invocado al mundo de otro. Si no se establece un objetivo, te envía a ti al modo cooperativo."
}, },
"enter_dungeon": { "enter_dungeon": {
"usage": "Uso: enterdungeon <dungeonID>", "usage": "Uso: enterdungeon <dungeonID>",
@ -149,7 +149,7 @@
"given_level": "Dado %s con nivel %s %s veces a %s.", "given_level": "Dado %s con nivel %s %s veces a %s.",
"given_avatar": "Dado %s con nivel %s a %s.", "given_avatar": "Dado %s con nivel %s a %s.",
"giveall_success": "Se han dado todos los objetos correctamente.", "giveall_success": "Se han dado todos los objetos correctamente.",
"description": "Da un objeto a tí o al jugador especificado. También puede dar armas, avatares y/o materiales, y puede construir artefactos personalizados." "description": "Da un objeto a ti o al jugador especificado. También puede dar armas, avatares y/o materiales, y puede construir artefactos personalizados."
}, },
"heal": { "heal": {
"success": "Todos los personajes han sido curados.", "success": "Todos los personajes han sido curados.",
@ -197,8 +197,8 @@
"description": "Da o quita un permiso a un jugador" "description": "Da o quita un permiso a un jugador"
}, },
"position": { "position": {
"success": "Coordenadas: %s, %s, %s\nID de la escena: %s", "success": "Coordenadas: %s, %s, %s\nID del escenario: %s",
"description": "Da las coordenadas" "description": "Da las coordenadas en el escenario actual"
}, },
"quest": { "quest": {
"usage": "quest <add|finish> [questID]", "usage": "quest <add|finish> [questID]",
@ -269,7 +269,7 @@
"spawn": { "spawn": {
"usage": "Uso: spawn <entityID> [cantidad] [nivel(solo monstruos)] [<x> <y> <z>(solo monstruos, opcional)]", "usage": "Uso: spawn <entityID> [cantidad] [nivel(solo monstruos)] [<x> <y> <z>(solo monstruos, opcional)]",
"success": "Generados %s de %s.", "success": "Generados %s de %s.",
"limit_reached": "Se ha alcanzado el límite de generaciones en la escena. Generando %s entidades en su lugar.", "limit_reached": "Se ha alcanzado el límite de generaciones en el escenario. Generando %s entidades en su lugar.",
"description": "Genera una entidad cerca de tí" "description": "Genera una entidad cerca de tí"
}, },
"stop": { "stop": {
@ -319,7 +319,7 @@
"teleport": { "teleport": {
"usage_server": "Uso: tp @<playerID> <x> <y> <z> [sceneID]", "usage_server": "Uso: tp @<playerID> <x> <y> <z> [sceneID]",
"usage": "Uso: tp [@<playerID>] <x> <y> <z> [sceneID]", "usage": "Uso: tp [@<playerID>] <x> <y> <z> [sceneID]",
"specify_player_id": "Dees especificar un ID de jugador.", "specify_player_id": "Debes especificar un ID de jugador.",
"invalid_position": "Posición inválida.", "invalid_position": "Posición inválida.",
"exists_error": "El escenario especificado no existe.", "exists_error": "El escenario especificado no existe.",
"success": "Teletransportado %s a %s, %s, %s en el escenario %s.", "success": "Teletransportado %s a %s, %s, %s en el escenario %s.",
@ -342,7 +342,7 @@
"command_usage": "Uso: unban <@playerId>", "command_usage": "Uso: unban <@playerId>",
"success": "Exitoso.", "success": "Exitoso.",
"failure": "Error, jugador no encontrado.", "failure": "Error, jugador no encontrado.",
"description": "Elimina el beto a un jugador" "description": "Elimina el veto a un jugador"
} }
}, },
"gacha": { "gacha": {

View File

@ -12,9 +12,9 @@
"request": "[Dispatch] Clientul %s %s cere: %s", "request": "[Dispatch] Clientul %s %s cere: %s",
"keystore": { "keystore": {
"general_error": "[Dispatch] Eroare la încărcarea keystore!", "general_error": "[Dispatch] Eroare la încărcarea keystore!",
"password_error": "[Dispatch] Nu sa putut încărca keystore. Se încearcă parola implicită pentru keystore...", "password_error": "[Dispatch] Nu s-a putut încărca keystore. Se încearcă parola implicită pentru keystore...",
"no_keystore_error": "[Dispatch] Nu s-a găsit niciun certificat SSL! Revenirea la serverul HTTP.", "no_keystore_error": "[Dispatch] Nu s-a găsit niciun certificat SSL! Se revine la serverul HTTP.",
"default_password": "[Dispatch] Parola implicită keystore sa încărcat cu succes. Vă rugăm să luați în considerare stabilirea parolei la 123456 în config.json." "default_password": "[Dispatch] Parola implicită keystore s-a încărcat cu succes. Vă rugăm să luați în considerare stabilirea parolei la 123456 în config.json."
}, },
"authentication": { "authentication": {
"default_unable_to_verify": "[Authentication] Ceva numit metoda verifyUser care nu este valabilă în gestionarul de autentificare implicit." "default_unable_to_verify": "[Authentication] Ceva numit metoda verifyUser care nu este valabilă în gestionarul de autentificare implicit."
@ -131,7 +131,7 @@
"coop": { "coop": {
"usage": "Utilizare: coop [host UID]", "usage": "Utilizare: coop [host UID]",
"success": "Invocat %s în lumea lui %s.", "success": "Invocat %s în lumea lui %s.",
"description": "Forțează pe cineva să se alăture lumii celorlalți. dacă nu este nimeni vizat, te trimite oricum în modul cooperativ." "description": "Forțează pe cineva să se alăture lumii celorlalți. Dacă nu este nimeni vizat, te trimite oricum în modul cooperativ."
}, },
"enter_dungeon": { "enter_dungeon": {
"usage": "Utilizare: enterdungeon <dungeonID>", "usage": "Utilizare: enterdungeon <dungeonID>",
@ -143,7 +143,7 @@
"give": { "give": {
"usage": "Utilizare: give <itemID|avatarID|\"all\"|\"weapons\"|\"mats\"|\"avatars\"> [x<sumă>] [lv<nivel>] [r<rafinament>]", "usage": "Utilizare: give <itemID|avatarID|\"all\"|\"weapons\"|\"mats\"|\"avatars\"> [x<sumă>] [lv<nivel>] [r<rafinament>]",
"usage_relic": "Utilizare: give <artifactID> [mainPropID] [<appendPropID>[,<t>]]... [lv<nivel 0-20>]", "usage_relic": "Utilizare: give <artifactID> [mainPropID] [<appendPropID>[,<t>]]... [lv<nivel 0-20>]",
"illegal_relic": "Acest ID de artefact aparține unui interval de pe lista neagră, este posibil să nu fiue cel pe care l-ați dorit.", "illegal_relic": "Acest ID de artefact aparține unui interval de pe lista neagră, este posibil să nu fie cel pe care l-ați dorit.",
"given": "Am dat %s din %s lui %s.", "given": "Am dat %s din %s lui %s.",
"given_with_level_and_refinement": "Am dat %s cu nivelul %s, rafinamentul %s %s de %s ori.", "given_with_level_and_refinement": "Am dat %s cu nivelul %s, rafinamentul %s %s de %s ori.",
"given_level": "Am dat %s cu nivelul %s %s %s ori la %.", "given_level": "Am dat %s cu nivelul %s %s %s ori la %.",