Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: i18n load and add build #196

Merged
merged 11 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 32 additions & 7 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,55 @@ name: Java CI with Gradle

on:
push:
branches: [ "master" ]
branches: ["master"]
paths:
- .github/workflows/build.yml
- Allay-API/src/**
- Allay-Server/src/**
- Allay-Data/**
pull_request:
branches: [ "master" ]
paths:
- .github/workflows/build.yml
- Allay-API/src/**
- Allay-Server/src/**
- Allay-Data/**
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
# support for ipv6
- name: Set up WARP
uses: fscarmen/[email protected]
if: contains(github.ref_name, 'master')
with:
stack: dual
- uses: actions/checkout@v4
- run: chmod +x gradlew
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'graalvm'
cache: 'gradle'
- run: gradle build
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
with:
gradle-version: wrapper
cache-overwrite-existing: true
cache-read-only: false
build-scan-publish: true
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-service-agree: "yes"
arguments: buildForGithubAction -p Allay-Server --scan
- name: Upload Allay-API
uses: actions/upload-artifact@v4
if: success()
if: success() && contains(github.ref_name, 'master')
with:
name: Allay-API
path: Allay-API/build/libs/Allay-API.jar
- name: Upload Allay-Server
uses: actions/upload-artifact@v4
if: success()
if: success() && contains(github.ref_name, 'master')
with:
name: Allay-Server
path: Allay-Server/build/libs/Allay-Server-all.jar
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
import org.allaymc.api.block.type.BlockState;

/**
* Block Attributes Component, which are used to get the block {@link BlockAttributes}
* <p>
* Allay Project 2023/3/25
*
* @author daoge_cmd
* @author daoge_cmd | CoolLoong
*/
public interface BlockAttributeComponent extends BlockComponent {
BlockAttributes getBlockAttributes(BlockState blockState);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
import java.awt.*;

/**
* BlockAttributes store some of the metadata of the block
* <p>
* Allay Project 2023/5/1
*
* @author daoge_cmd
* @author daoge_cmd | CoolLoong
*/
@Getter
@Accessors(fluent = true)
Expand Down
6 changes: 6 additions & 0 deletions Allay-API/src/main/java/org/allaymc/api/utils/JSONUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,12 @@ public static <V> V fromLenient(InputStream inputStream, Class<V> type) {
return GSON.fromJson(reader, type);
}

public static <V> V fromLenient(InputStream inputStream, TypeToken<V> type) {
JsonReader reader = new JsonReader(new InputStreamReader(Objects.requireNonNull(inputStream)));
reader.setLenient(true);
return GSON.fromJson(reader, type);
}

/**
* 宽松JSON反序列化(List)
*/
Expand Down
22 changes: 11 additions & 11 deletions Allay-Data/resources/lang/cs_CZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,7 @@
"minecraft:commands.function.description": "Spustí příkazy nalezené v odpovídajícím souboru s funkcemi.",
"minecraft:commands.function.functionNameNotFound": "Funkce %1$s nebyla nalezena.",
"minecraft:commands.function.invalidCharacters": "Funkce s názvem „%s“ je neplatná, znak „%s“ není v názvech funkcí povolen.",
"minecraft:commands.function.noEngineVersionSpecified": "Funkci %s nebylo možné spustit. V souboru manifest.json z balíčku chování je nutné definovat min_engine_version.",
"minecraft:commands.function.noEngineVersionSpecified": "Funkci %s nebylo možné spustit. V souboru manifest.json z balíčku chování je nutné definovat min_engine_version.",
"minecraft:commands.function.success": "%1$d záznamů funkcí bylo úspěšně provedeno.",
"minecraft:commands.gamemode.description": "Nastaví herní režim hráče.",
"minecraft:commands.gamemode.fail.invalid": "Herní režim „%1$s“ je neplatný",
Expand Down Expand Up @@ -618,7 +618,7 @@
"minecraft:commands.generic.entity.invalidUuid": "Uvedená entita UUID má neplatný formát",
"minecraft:commands.generic.entity.notFound": "Danou entitu nelze najít",
"minecraft:commands.generic.exception": "Při pokusu o provedení tohoto příkazu došlo k neznámé chybě",
"minecraft:commands.generic.invalidAgentType": "Zadejte argument použitý u selektoru vyhrazeného pro agenta",
"minecraft:commands.generic.invalidAgentType": "Zadejte argument použitý u selektoru vyhrazeného pro agenta",
"minecraft:commands.generic.invalidDevice": "Zadaný příkaz %s není na tomto zařízení podporován",
"minecraft:commands.generic.invalidPlayerType": "Typ argumentu byl použit na hráče – pouze oblast výběru",
"minecraft:commands.generic.invalidType": "Neznámý typ argumentu",
Expand Down Expand Up @@ -981,17 +981,17 @@
"minecraft:commands.structure.description": "Uloží nebo načte stavbu ve světě.",
"minecraft:commands.structure.empty.load": "Nelze načíst stavbu bez entit a bez bloků.",
"minecraft:commands.structure.empty.save": "Nelze uložit stavbu bez entit a bez bloků.",
"minecraft:commands.structure.invalid.animationTime": "Délka animace musí mít hodnotu 0 nebo vyšší.",
"minecraft:commands.structure.invalid.animationTime": "Délka animace musí mít hodnotu 0 nebo vyšší.",
"minecraft:commands.structure.invalid.integrity": "Integrita musí být v rozsahu 0 až 100.",
"minecraft:commands.structure.invalid.name": "Název musí být ve formátu „name“ nebo „namespace:name“. Pokud není uvedena proměnná namespace, bude přiřazena výchozí.",
"minecraft:commands.structure.load.queued": "Žádost o umístění byla zařazena do fronty a bude provedena po úplném načtení zadané oblasti.",
"minecraft:commands.structure.load.queued": "Žádost o umístění byla zařazena do fronty a bude provedena po úplném načtení zadané oblasti.",
"minecraft:commands.structure.load.success": "Byla načtena stavba s názvem %s.",
"minecraft:commands.structure.notFound": "Stavbu %s nelze najít. Zkontrolujte, zda byl její název zadán správně, a zkuste to znovu.",
"minecraft:commands.structure.save.success": "Byla uložena struktura s názvem %s.",
"minecraft:commands.structure.size.tooBig": "Stavba nemůže být větší než (%1$d, %2$d, %3$d), byla (%4$d, %5$d, %6$d).",
"minecraft:commands.structure.size.tooSmall": "Stavba nemůže být menší než (%1$d, %2$d, %3$d), byla (%4$d, %5$d, %6$d).",
"minecraft:commands.structure.unknown.action": "Byla zadána neznámá akce stavby.",
"minecraft:commands.structure.unloadedChunks": "Funkce pro načtení struktury v nenačtené oblasti zatím nebyla implementována.",
"minecraft:commands.structure.unloadedChunks": "Funkce pro načtení struktury v nenačtené oblasti zatím nebyla implementována.",
"minecraft:commands.structure.y.tooHigh": "Bloky nelze umístit mimo svět. Zkuste hodnotu %d nebo menší pro komponentu Y <to: x y z>.",
"minecraft:commands.structure.y.tooLow": "Bloky nelze umístit mimo svět. Zkuste hodnotu větší než %d pro komponentu Y <to: x y z>.",
"minecraft:commands.summon.description": "Vyvolá entitu.",
Expand Down Expand Up @@ -1024,7 +1024,7 @@
"minecraft:commands.tellraw.error.scoreNameNotString": "pole název v poli skóre musí být řetězec. Například \"rawtext\":[{\"score\": {\"name\": \"my_name\", \"objective\": \"my_objective\"}}]",
"minecraft:commands.tellraw.error.scoreNotObject": "pole skóre v příkazu rawtext musí obsahovat objekt. Například \"rawtext\":[{\"score\": {\"name\": \"my_name\", \"objective\": \"my_objective\"}}]",
"minecraft:commands.tellraw.error.scoreObjectiveNotString": "pole cíl v poli skóre musí být řetězec. Například \"rawtext\":[{\"score\": {\"name\": \"my_name\", \"objective\": \"my_objective\"}}]",
"minecraft:commands.tellraw.error.selectorNotString": "Pole Selektor v nezpracovaném textu musí jako řetězec obsahovat selektor. Příklad: \"rawtext\":[{\"selector\": \"@e\"}]",
"minecraft:commands.tellraw.error.selectorNotString": "Pole Selektor v nezpracovaném textu musí jako řetězec obsahovat selektor. Příklad: \"rawtext\":[{\"selector\": \"@e\"}]",
"minecraft:commands.tellraw.error.textNotString": "Pole Text v nezpracovaném textu musí obsahovat řetězec. Příklad: „nezpracovaný text“:[{\"text\": \"text to display\"}]",
"minecraft:commands.tellraw.error.translateNotString": "Pole Překlad v nezpracovaném textu musí obsahovat jazykový klíč. Příklad: „nezpracovaný text“:[{\"translate\": \"gui.ok\"}]",
"minecraft:commands.tellraw.error.withNotArrayOrRawText": "s polem v nezpracovaném textu musí obsahovat pole nebo jiný objekt nezpracovaného textu. 1. příklad: „nezpracovaný text“:[{\"translate\": \"chat.type.announcement\", \"with\": [ \"value1\", \"value2\" ]}] 2. příklad: „nezpracovaný text“:[{\"translate\": \"chat.type.announcement\", \"with\":{\"rawtext\":[{\"text\": \"value1\"}, {\"text\": \"value2\"}]}}]",
Expand Down Expand Up @@ -1463,7 +1463,7 @@
"minecraft:disconnectionScreen.sessionNotFound": "Ke světu se nelze připojit. Svět již není dostupný a nelze se k němu přidat.",
"minecraft:disconnectionScreen.timeout": "Při připojování k světu došlo k problému. Zkuste to znovu. Pokud tato chyba přetrvává, zkontrolujte připojení k internetu nebo zkuste restartovat Minecraft.",
"minecraft:disconnectionScreen.unexpectedPacket": "Odpojeno z důvodu neočekávaného typu přijatého paketu, který nelze zpracovat. Příčinou může být neshoda verzí nebo poškození na úrovni sítě.",
"minecraft:disconnectionScreen.worldCorruption": "Odpojeno z důvodu poškození světa",
"minecraft:disconnectionScreen.worldCorruption": "Odpojeno z důvodu poškození světa",
"minecraft:disconnectionScreen.worldCorruption.message": "Zkuste svět znovu otevřít nebo ho obnovit z předchozí zálohy.",
"minecraft:dr.accent_channel": "Přízvuky",
"minecraft:dr.accessibility.header.animation": "Karta Emotikony (3/4)",
Expand Down Expand Up @@ -1829,7 +1829,7 @@
"minecraft:entity.item.name": "Předmět",
"minecraft:entity.leash_knot.name": "Vodicí uzel",
"minecraft:entity.lightning_bolt.name": "Blesk",
"minecraft:entity.lingering_potion.name": "Lektvar s místním účinkem",
"minecraft:entity.lingering_potion.name": "Lektvar s místním účinkem",
"minecraft:entity.llama.name": "Lama",
"minecraft:entity.llama_spit.name": "Lamí plivnutí",
"minecraft:entity.magma_cube.name": "Lávová kostka",
Expand Down Expand Up @@ -3191,7 +3191,7 @@
"minecraft:item.spawn_egg.entity.stray.name": "Vejce s bludným kostlivcem",
"minecraft:item.spawn_egg.entity.strider.name": "Vejce s chodcem",
"minecraft:item.spawn_egg.entity.tadpole.name": "Vejce s pulcem",
"minecraft:item.spawn_egg.entity.trader_llama.name": "Vejce s obchodnickou lamou",
"minecraft:item.spawn_egg.entity.trader_llama.name": "Vejce s obchodnickou lamou",
"minecraft:item.spawn_egg.entity.tropicalfish.name": "Vejce s tropickou rybou",
"minecraft:item.spawn_egg.entity.turtle.name": "Vejce s mořskou želvou",
"minecraft:item.spawn_egg.entity.unknown.name": "Vejce s nestvůrou",
Expand Down Expand Up @@ -3760,9 +3760,9 @@
"minecraft:potion.digSpeed": "Zrychlení",
"minecraft:potion.effects.whenDrank": "Při použití:",
"minecraft:potion.empty": "Žádné účinky",
"minecraft:potion.emptyPotion.linger.name": "Lahvička s vodou s místním účinkem",
"minecraft:potion.emptyPotion.linger.name": "Lahvička s vodou s místním účinkem",
"minecraft:potion.emptyPotion.name": "Lahvička s vodou",
"minecraft:potion.emptyPotion.splash.name": "Vrhací lahvička s vodou",
"minecraft:potion.emptyPotion.splash.name": "Vrhací lahvička s vodou",
"minecraft:potion.fireResistance": "Ohnivzdornost",
"minecraft:potion.fireResistance.linger.name": "Lektvar ohnivzdornosti s místním účinkem",
"minecraft:potion.fireResistance.name": "Lektvar ohnivzdornosti",
Expand Down
22 changes: 11 additions & 11 deletions Allay-Data/resources/lang/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
"minecraft:autosave.info.nx": "Wenn dieses Symbol angezeigt wird, speichern wir dein Spiel. Schalte die Nintendo Switch nicht aus, solange das Symbol zu sehen ist.",
"minecraft:autosave.info.xbox": "Wenn dieses Symbol angezeigt wird, speichern wir dein Spiel. Schalte die Xbox nicht aus, solange das Symbol zu sehen ist.",
"minecraft:autosave.title": "Auto-Speichern",
"minecraft:beginnerTips.1": "Die meisten Monster kommen nur nachts heraus. Tagsüber bist du sicher … wahrscheinlich.",
"minecraft:beginnerTips.1": "Die meisten Monster kommen nur nachts heraus. Tagsüber bist du sicher … wahrscheinlich.",
"minecraft:beginnerTips.10": "Sei vorsichtig beim Schwimmen. Wenn du zu lange unter Wasser bleibst, wird dir die Luft ausgehen.",
"minecraft:beginnerTips.11": "Der Überlebensmodus hat 4 verschiedene Schwierigkeitsstufen – Friedlich, Leicht, Normal und Schwer. Oder spiele im Kreativmodus und erhalte unendlich viele Ressourcen!",
"minecraft:beginnerTips.12": "Die Welt von Minecraft ist unendlich überraschend. Hier findest du viele verschiedene Tiere, Pflanzen und sogar §f§k§a§b§r §f§k§a§b§r.",
Expand Down Expand Up @@ -212,7 +212,7 @@
"minecraft:book.signButton": "Signieren",
"minecraft:book.titleHere": "[Hier Titel eingeben]",
"minecraft:build.tooHigh": "Die maximale Bauhöhe beträgt %s Blöcke",
"minecraft:build.tooLow": "Die Mindesthöhe zum Bauen beträgt %s Blöcke.",
"minecraft:build.tooLow": "Die Mindesthöhe zum Bauen beträgt %s Blöcke.",
"minecraft:cauldronScreen.header": "Kessel",
"minecraft:chalkboardScreen.header": "Text bearbeiten",
"minecraft:chalkboardScreen.locked": "Gesperrt",
Expand Down Expand Up @@ -1171,9 +1171,9 @@
"minecraft:comment.like": "%d Like",
"minecraft:comment.likes": "%d Likes",
"minecraft:comment.likes_and_comments": "%1 und %2",
"minecraft:compliance.playtime.greaterThan24Hours": "Du spielst seit mehr als 24 Stunden",
"minecraft:compliance.playtime.greaterThan24Hours": "Du spielst seit mehr als 24 Stunden",
"minecraft:compliance.playtime.message": "Exzessives Spielen kann das tägliche Leben negativ beeinflussen",
"minecraft:compliance.playtime.multipleHours": "Du spielst seit %d Stunden",
"minecraft:compliance.playtime.multipleHours": "Du spielst seit %d Stunden",
"minecraft:compliance.playtime.oneHour": "Du spielst seit 1 Stunde",
"minecraft:connect.authorizing": "Wird angemeldet ...",
"minecraft:connect.connecting": "Verbindung zum Server wird aufgebaut ...",
Expand Down Expand Up @@ -1672,7 +1672,7 @@
"minecraft:dr.left_arm": "Linker Arm",
"minecraft:dr.left_leg": "Linkes Bein",
"minecraft:dr.limb_switcher_default_title": "Gliedmaßenauswahl",
"minecraft:dr.loading": "Wird geladen ...",
"minecraft:dr.loading": "Wird geladen ...",
"minecraft:dr.marketplace.get_more_skins": "Mehr Skins holen",
"minecraft:dr.modal.difference_information_title": "Unterschiede zwischen Charakter und klassischem Skin",
"minecraft:dr.modal.persona_delete_confirm": "Der aktuelle Charakter wird gelöscht. Wirklich fortfahren?",
Expand Down Expand Up @@ -1986,16 +1986,16 @@
"minecraft:gameTest.error.failed": "%s fehlgeschlagen!",
"minecraft:gameTest.error.flakyFailed": "Flaky-Test %s fehlgeschlagen, Versuch: %s/%s",
"minecraft:gameTest.error.flakyFailedShowSuccesses": ", Erfolge: %s (%s erforderlich) ",
"minecraft:gameTest.error.flakyTestError": "Nicht genug Erfolge: %s von %s Versuchen. Erforderliche Erfolge: %s. Max. Versuche: %s.",
"minecraft:gameTest.error.flakyTestError": "Nicht genug Erfolge: %s von %s Versuchen. Erforderliche Erfolge: %s. Max. Versuche: %s.",
"minecraft:gameTest.error.missingStructure": "Es konnte innerhalb des Radius (%s) kein Konstruktionsblock gefunden werden.",
"minecraft:gameTest.error.noFinishedSequences": "Keine Sequenzen abgeschlossen",
"minecraft:gameTest.error.noTestsFound": "Keine Tests für das Tag \"%s\" gefunden",
"minecraft:gameTest.error.repeatCountTooSmall": "Wiederholzahl muss größer als 0 sein",
"minecraft:gameTest.error.structureNotSpawned": "Testkonstruktion mit dem Pfad '%s' konnte nicht gespawnt werden ",
"minecraft:gameTest.error.structureTooBig": "Die Konstruktion muss pro Achse unter %s Blöcken bleiben.",
"minecraft:gameTest.error.structureTooBig": "Die Konstruktion muss pro Achse unter %s Blöcken bleiben.",
"minecraft:gameTest.error.succeededInInvalidTick": "In ungültigem Tick erfolgreich: %s erwartet, aber der aktuelle Tick ist %s",
"minecraft:gameTest.error.testMissing": "Test mit Name \"%s\" konnte nicht gefunden werden.",
"minecraft:gameTest.error.timeout": "Kein Erfolg oder Fehlschlag innerhalb von %s Ticks",
"minecraft:gameTest.error.timeout": "Kein Erfolg oder Fehlschlag innerhalb von %s Ticks",
"minecraft:gameTest.error.unknownCommandMode": "Unbekannter Befehlsmodus bereitgestellt",
"minecraft:gameTest.error.unkownEvent": "Unbekannter Event-Name '%s'",
"minecraft:gameTest.optionalPrefix": "(optional)",
Expand All @@ -2010,8 +2010,8 @@
"minecraft:gameTest.success.flakyPassedEnough": "%s hat %s von %s Versuchen bestanden. ",
"minecraft:gameTest.success.passed": "%s bestanden!",
"minecraft:gameTest.success.relativePosition": "Position in Relation zu %s: %s",
"minecraft:gameTest.success.runningTests": "%s Tests werden durchgeführt …",
"minecraft:gameTest.success.testsStarted": "%s Tests mit Tag \"%s\" werden durchgeführt …",
"minecraft:gameTest.success.runningTests": "%s Tests werden durchgeführt …",
"minecraft:gameTest.success.testsStarted": "%s Tests mit Tag \"%s\" werden durchgeführt …",
"minecraft:immersive_reader.book_page_header": "Seite %1 von %2",
"minecraft:immersive_reader.error.identity_failure": "Bei der Verbindung zum Plastischen Reader ist ein Fehler aufgetreten. Bitte starte Minecraft Education neu und versuche es erneut.",
"minecraft:immersive_reader.error.webview_failure": "Bei der Verbindung zum Plastischen Reader ist ein Fehler aufgetreten.",
Expand Down Expand Up @@ -3854,7 +3854,7 @@
"minecraft:raid.name": "Raubzug",
"minecraft:raid.progress": "Verbleibende Kreaturen:",
"minecraft:raid.victory": "Sieg",
"minecraft:raycasting.purchase.error": "Der Download ist nicht möglich, da dein Gerät nicht die nötigen Systemvoraussetzungen für dieses Paket erfüllt. Mindestanforderungen: %s+ Grafikkarte: Hardware-Raytracing-fähige Grafikkarte, z. B. Nvidia GeForce RTX 2060 oder besser. Weitere Infos im FAQ auf minecraft.net. %s+ RAM: 8 GB oder besser %s+ Prozessor: Intel Core i5 oder gleichwertig ",
"minecraft:raycasting.purchase.error": "Der Download ist nicht möglich, da dein Gerät nicht die nötigen Systemvoraussetzungen für dieses Paket erfüllt. Mindestanforderungen: %s+ Grafikkarte: Hardware-Raytracing-fähige Grafikkarte, z. B. Nvidia GeForce RTX 2060 oder besser. Weitere Infos im FAQ auf minecraft.net. %s+ RAM: 8 GB oder besser %s+ Prozessor: Intel Core i5 oder gleichwertig ",
"minecraft:raycasting.purchase.error.title": "Hinweis zu Systemanforderungen",
"minecraft:realmJoining.progressTitle": "Realm wird beigetreten ...",
"minecraft:record.nowPlaying": "Jetzt spielt: %s",
Expand Down
2 changes: 1 addition & 1 deletion Allay-Data/resources/lang/en_GB.json
Original file line number Diff line number Diff line change
Expand Up @@ -1698,7 +1698,7 @@
"minecraft:dr.prompt.do_not_show_again": "Don't show this again",
"minecraft:dr.prompt.switching_to_persona_detail": "You are switching over to the character creator in this slot. Character creator allows you to build a character in Minecraft item by item. Your classic skin will be saved as a backup in this slot if you want to switch back later.",
"minecraft:dr.prompt.switching_to_persona_title": "Switch to Character Creator",
"minecraft:dr.prompt.switching_to_skin_detail": "You are switching over to a classic skin in this slot. Classic skins are applied to the full character and cannot be customised. Your character creator look will be saved as a backup in this slot if you want to switch back later.",
"minecraft:dr.prompt.switching_to_skin_detail": "You are switching over to a classic skin in this slot. Classic skins are applied to the full character and cannot be customised. Your character creator look will be saved as a backup in this slot if you want to switch back later.",
"minecraft:dr.prompt.switching_to_skin_title": "Switch to Classic Skins",
"minecraft:dr.rarity": "Rarity",
"minecraft:dr.rarity.common": "Common",
Expand Down
Loading