Skip to content

Commit

Permalink
fix: i18n load and add build (#196)
Browse files Browse the repository at this point in the history
* fix: i18n load

* docs: add some doc

* build: change build

* build: change build 2

* build: change build 3

* build: upgrade gradle to 8.6

* build: disable buildForGithubAction for some submodule

* build: only trigger build for push event

* build: only trigger push for master branch

* build: only for master  Set up WARP

* build: only build server for action
  • Loading branch information
CoolLoong authored Mar 15, 2024
1 parent d7eaeb7 commit ee01296
Show file tree
Hide file tree
Showing 31 changed files with 887 additions and 831 deletions.
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/warp-on-actions@v1.1
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

0 comments on commit ee01296

Please sign in to comment.