├── .fvm
└── fvm_config.json
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── bug_report_zh.md
│ ├── config.yml
│ ├── feature_request.md
│ └── feature_request_zh.md
└── workflows
│ ├── build.yml
│ ├── build_linux.yml
│ ├── build_macos.yml
│ ├── build_windows.yml
│ ├── release.yml
│ ├── scripts
│ ├── linux_integration_setup.sh
│ ├── macos_integration_setup.sh
│ └── windows_integration_setup.bat
│ └── test.yml
├── .gitignore
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── _repo_assets
└── logo.png
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── minecraft_cube_desktop
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── build.yaml
├── build_dependencies
├── linux
│ ├── DEBIAN
│ │ └── control
│ └── usr
│ │ └── local
│ │ └── lib
│ │ └── minecraft_cube_desktop
│ │ └── .empty
└── windows
│ ├── msvcp140.dll
│ ├── vcruntime140.dll
│ └── vcruntime140_1.dll
├── concepts
├── concept
├── concept.svg
└── concept.xml
├── dart_test.yaml
├── fonts
├── NotoSans
│ └── NotoSans-Regular.ttf
├── NotoSansSC
│ └── NotoSansSC-Regular.otf
├── NotoSansTC
│ └── NotoSansTC-Regular.otf
└── Roboto
│ ├── LICENSE.txt
│ ├── Roboto-Black.ttf
│ ├── Roboto-Bold.ttf
│ ├── Roboto-Light.ttf
│ ├── Roboto-Medium.ttf
│ ├── Roboto-Regular.ttf
│ └── Roboto-Thin.ttf
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-App-1024x1024@1x.png
│ │ ├── Icon-App-20x20@1x.png
│ │ ├── Icon-App-20x20@2x.png
│ │ ├── Icon-App-20x20@3x.png
│ │ ├── Icon-App-29x29@1x.png
│ │ ├── Icon-App-29x29@2x.png
│ │ ├── Icon-App-29x29@3x.png
│ │ ├── Icon-App-40x40@1x.png
│ │ ├── Icon-App-40x40@2x.png
│ │ ├── Icon-App-40x40@3x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-76x76@1x.png
│ │ ├── Icon-App-76x76@2x.png
│ │ └── Icon-App-83.5x83.5@2x.png
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── LaunchImage.png
│ │ ├── LaunchImage@2x.png
│ │ ├── LaunchImage@3x.png
│ │ └── README.md
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
├── lib
├── _consts
│ ├── common.i18n.dart
│ ├── localization.dart
│ └── localization.i18n.dart
├── _gen
│ ├── assets.gen.dart
│ ├── fonts.gen.dart
│ └── version.gen.dart
├── _theme
│ └── color_palette.dart
├── _utilities
│ └── console_line_util.dart
├── _widgets
│ └── cube_text_field.dart
├── main.dart
└── pages
│ └── app_page
│ ├── app.dart
│ ├── app_selector_page.dart
│ ├── app_selector_page.i18n.dart
│ ├── bloc
│ └── locale_bloc.dart
│ ├── pages
│ ├── about_page
│ │ ├── about_page.dart
│ │ └── about_page.i18n.dart
│ ├── craft_page
│ │ ├── craft_page.dart
│ │ ├── craft_page.i18n.dart
│ │ └── pages
│ │ │ └── craft_navi_page
│ │ │ ├── _blocs
│ │ │ └── navi_page_bloc.dart
│ │ │ ├── craft_navi_page.dart
│ │ │ └── pages
│ │ │ ├── base_page.dart
│ │ │ ├── base_page.i18n.dart
│ │ │ ├── description_page.dart
│ │ │ ├── description_page.i18n.dart
│ │ │ ├── installer_name_page.dart
│ │ │ ├── installer_name_page.i18n.dart
│ │ │ ├── map_download_page.dart
│ │ │ ├── map_download_page.i18n.dart
│ │ │ ├── mod_pack_page.dart
│ │ │ ├── mod_pack_page.i18n.dart
│ │ │ ├── mod_setting_page.dart
│ │ │ ├── mod_setting_page.i18n.dart
│ │ │ ├── navi_page.i18n.dart
│ │ │ ├── preview_page.dart
│ │ │ ├── preview_page.i18n.dart
│ │ │ ├── server_download_page.dart
│ │ │ ├── server_download_page.i18n.dart
│ │ │ ├── server_type_page.dart
│ │ │ └── server_type_page.i18n.dart
│ ├── info_page
│ │ ├── info_page.dart
│ │ ├── info_page.i18n.dart
│ │ ├── sections
│ │ │ ├── info_section
│ │ │ │ ├── bloc
│ │ │ │ │ └── app_updater_bloc.dart
│ │ │ │ ├── info_section.dart
│ │ │ │ ├── language_dialog.dart
│ │ │ │ ├── language_dialog.i18n.dart
│ │ │ │ ├── release_note_dialog.dart
│ │ │ │ └── release_note_dialog.i18n.dart
│ │ │ ├── network_section
│ │ │ │ ├── bloc
│ │ │ │ │ ├── network_gateway_ip_bloc.dart
│ │ │ │ │ ├── network_internal_ip_bloc.dart
│ │ │ │ │ └── network_public_ip_bloc.dart
│ │ │ │ ├── network_section.dart
│ │ │ │ └── network_section.i18n.dart
│ │ │ └── system_section
│ │ │ │ ├── bloc
│ │ │ │ ├── cpu_info_bloc.dart
│ │ │ │ ├── gpu_info_bloc.dart
│ │ │ │ ├── memory_info_bloc.dart
│ │ │ │ ├── portable_java_info_bloc.dart
│ │ │ │ └── system_java_info_bloc.dart
│ │ │ │ ├── system_section.dart
│ │ │ │ └── system_section.i18n.dart
│ │ └── widgets
│ │ │ ├── info_icon_button.dart
│ │ │ ├── info_icon_link.dart
│ │ │ └── info_title.dart
│ └── server_page
│ │ ├── bloc
│ │ ├── cube_properties_bloc.dart
│ │ ├── installation_cubit.dart
│ │ ├── installation_cubit.i18n.dart
│ │ ├── installer_manager_cubit.dart
│ │ ├── server_bloc.dart
│ │ ├── server_management_launcher_cubit.dart
│ │ ├── server_properties_bloc.dart
│ │ └── servers_dropdown_bloc.dart
│ │ ├── consts
│ │ ├── app_cube_properties.dart
│ │ ├── app_cube_properties.i18n.dart
│ │ ├── app_server_properties.dart
│ │ ├── app_server_properties.i18n.dart
│ │ ├── minecraft_command.dart
│ │ └── minecraft_command.i18n.dart
│ │ ├── machine
│ │ ├── server_machine.dart
│ │ └── states
│ │ │ ├── configuration_loader_state.dart
│ │ │ ├── configuration_loader_state.i18n.dart
│ │ │ ├── eula_ask_state.dart
│ │ │ ├── eula_ask_state.i18n.dart
│ │ │ ├── eula_stage_state.dart
│ │ │ ├── eula_stage_state.i18n.dart
│ │ │ ├── forge_install_state.dart
│ │ │ ├── forge_install_state.i18n.dart
│ │ │ ├── idle_state.dart
│ │ │ ├── istate.dart
│ │ │ ├── jar_analyzer_state.dart
│ │ │ ├── jar_analyzer_state.i18n.dart
│ │ │ ├── jar_dangerous_ask_state.dart
│ │ │ ├── jar_dangerous_ask_state.i18n.dart
│ │ │ ├── java_duplicator_state.dart
│ │ │ ├── java_duplicator_state.i18n.dart
│ │ │ ├── java_printer_state.dart
│ │ │ ├── java_printer_state.i18n.dart
│ │ │ ├── post_duplicate_cleaner_state.dart
│ │ │ ├── post_process_cleaner_state.dart
│ │ │ ├── pre_duplicate_cleaner_state.dart
│ │ │ ├── pre_duplicate_cleaner_state.i18n.dart
│ │ │ ├── pre_process_cleaner_state.dart
│ │ │ ├── pre_process_cleaner_state.i18n.dart
│ │ │ ├── server_state.dart
│ │ │ └── server_state.i18n.dart
│ │ ├── server_page.dart
│ │ ├── server_page.i18n.dart
│ │ └── widgets
│ │ ├── dangerous_alert_dialog.dart
│ │ ├── dangerous_alert_dialog.i18n.dart
│ │ ├── eula_agreement_dialog.dart
│ │ ├── eula_agreement_dialog.i18n.dart
│ │ ├── minecraft_command_text_field.dart
│ │ ├── property_dialogs.dart
│ │ ├── property_dialogs.i18n.dart
│ │ ├── property_list_tile.dart
│ │ ├── server_creation_dialog.dart
│ │ ├── server_creation_dialog.i18n.dart
│ │ └── servers_dropdown.dart
│ └── widgets
│ ├── app_nav_button.dart
│ └── app_selector.dart
├── linux
├── .gitignore
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
├── main.cc
├── my_application.cc
└── my_application.h
├── linux_local_dev_setup.sh
├── linux_local_full_setup.sh
├── macos
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Podfile
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ ├── 1024.png
│ │ ├── 128.png
│ │ ├── 16.png
│ │ ├── 256.png
│ │ ├── 32.png
│ │ ├── 512.png
│ │ ├── 64.png
│ │ ├── Contents.json
│ │ ├── appstore.png
│ │ └── playstore.png
│ ├── Base.lproj
│ └── MainMenu.xib
│ ├── Configs
│ ├── AppInfo.xcconfig
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── Warnings.xcconfig
│ ├── DebugProfile.entitlements
│ ├── Info.plist
│ ├── MainFlutterWindow.swift
│ └── Release.entitlements
├── macos_local_dev_setup.sh
├── macos_local_full_setup.sh
├── melos.yaml
├── packages
├── app_updater_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── app_updater_repository.dart
│ │ └── src
│ │ │ └── app_updater_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── app_updater_repository_ig_test.dart
│ │ └── app_updater_repository_test.dart
├── console_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── console_repository.dart
│ │ └── src
│ │ │ └── console_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── console_repository_ig_test.dart
│ │ └── console_repository_test.dart
├── cube_api
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── cube_api.dart
│ │ └── src
│ │ │ ├── archive
│ │ │ └── archive.dart
│ │ │ ├── common
│ │ │ ├── common.dart
│ │ │ └── network_status
│ │ │ │ └── network_status.dart
│ │ │ ├── const
│ │ │ └── const.dart
│ │ │ ├── data
│ │ │ ├── common_property
│ │ │ │ └── common_property.dart
│ │ │ ├── cube
│ │ │ │ └── cube_properties.dart
│ │ │ ├── data.dart
│ │ │ ├── installer
│ │ │ │ ├── installer.dart
│ │ │ │ └── src
│ │ │ │ │ ├── installer.dart
│ │ │ │ │ ├── installer.g.dart
│ │ │ │ │ ├── model_pack.dart
│ │ │ │ │ ├── model_pack.g.dart
│ │ │ │ │ ├── model_setting.dart
│ │ │ │ │ └── model_setting.g.dart
│ │ │ ├── jar
│ │ │ │ ├── jar_archive_info.dart
│ │ │ │ └── jar_type.dart
│ │ │ └── server
│ │ │ │ ├── server_configuration.dart
│ │ │ │ └── server_configuration.g.dart
│ │ │ ├── property
│ │ │ ├── property.dart
│ │ │ └── src
│ │ │ │ ├── property.dart
│ │ │ │ └── property_manager.dart
│ │ │ ├── ticker
│ │ │ └── ticker.dart
│ │ │ └── utilities
│ │ │ ├── src
│ │ │ ├── file.dart
│ │ │ ├── process.dart
│ │ │ └── stream.dart
│ │ │ └── utilities.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── archive
│ │ └── archive_it_test.dart
│ │ ├── data
│ │ ├── cube
│ │ │ ├── cube_properties_ig_test.dart
│ │ │ └── cube_properties_test.dart
│ │ └── installer
│ │ │ └── installer_test.dart
│ │ ├── property
│ │ ├── property_manager_ig_test.dart
│ │ └── property_manager_test.dart
│ │ └── ticker
│ │ └── ticker_test.dart
├── cube_properties_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── cube_properties_repository.dart
│ │ └── src
│ │ │ └── cube_properties_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── cube_properties_repository_ig_test.dart
│ │ └── cube_properties_repository_test.dart
├── duplicate_cleaner_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── duplicate_cleaner_repository.dart
│ │ └── src
│ │ │ └── duplicate_cleaner_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── duplicate_cleaner_repository_ig_test.dart
│ │ └── duplicate_cleaner_repository_test.dart
├── eula_stage_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── eula_stage_repository.dart
│ │ └── src
│ │ │ └── eula_stage_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── eula_stage_repository_ig_test.dart
│ │ └── eula_stage_repository_test.dart
├── forge_installer_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── forge_installer_repository.dart
│ │ └── src
│ │ │ └── forge_installer_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── forge_installer_repository_ig_test.dart
│ │ └── forge_installer_repository_test.dart
├── installer_creator_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── installer_creator_repository.dart
│ │ └── src
│ │ │ └── installer_creator_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── installer_creator_repository_ig_test.dart
│ │ └── installer_creator_repository_test.dart
├── installer_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── installer_repository.dart
│ │ └── src
│ │ │ └── installer_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── installer_repository_ig_test.dart
│ │ └── installer_repository_test.dart
├── jar_analyzer_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── jar_analyzer_repository.dart
│ │ └── src
│ │ │ └── jar_analyzer_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── jar_analyzer_repository_ig_test.dart
│ │ └── jar_analyzer_repository_test.dart
├── java_duplicator_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── java_duplicator_repository.dart
│ │ └── src
│ │ │ └── java_duplicator_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── java_duplicator_repository_ig_test.dart
│ │ └── java_duplicator_repository_test.dart
├── java_info_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── java_info_repository.dart
│ │ └── src
│ │ │ ├── java_info.dart
│ │ │ └── java_info_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── java_info_repository_ig_test.dart
│ │ └── java_info_repository_test.dart
├── java_printer_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── java_printer_repository.dart
│ │ └── src
│ │ │ └── java_printer_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── java_printer_repository_ig_test.dart
│ │ └── java_printer_repository_test.dart
├── launcher_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── launcher_repository.dart
│ │ └── src
│ │ │ └── launcher_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── launcher_repository_ig_test.dart
│ │ └── launcher_repository_test.dart
├── locale_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── locale_repository.dart
│ │ └── src
│ │ │ └── locale_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── locale_repository_ig_test.dart
│ │ └── locale_repository_test.dart
├── network_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── network_repository.dart
│ │ └── src
│ │ │ ├── network_interface_wrapper.dart
│ │ │ └── network_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── network_repository_ig_test.dart
│ │ └── network_repository_test.dart
├── picker_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── picker_repository.dart
│ │ └── src
│ │ │ └── picker_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── picker_repository_ig_test.dart
│ │ └── picker_repository_test.dart
├── process_cleaner_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── process_cleaner_repository.dart
│ │ └── src
│ │ │ └── process_cleaner_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── process_cleaner_repository_ig_test.dart
│ │ └── process_cleaner_repository_test.dart
├── server_configuration_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── server_configuration_repository.dart
│ │ └── src
│ │ │ └── server_configuration_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── server_configuration_repository_ig_test.dart
│ │ └── server_configuration_repository_test.dart
├── server_management_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── server_management_repository.dart
│ │ └── src
│ │ │ ├── installer_file.dart
│ │ │ └── server_management_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── server_management_repository_ig_test.dart
│ │ └── server_management_repository_test.dart
├── server_properties_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── server_properties_repository.dart
│ │ └── src
│ │ │ └── server_properties_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── server_properties_repository_ig_test.dart
│ │ └── server_properties_repository_test.dart
├── server_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── env.bat
│ ├── lib
│ │ ├── server_repository.dart
│ │ └── src
│ │ │ └── server_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── consts.dart
│ │ ├── server_repository_ig_test.dart
│ │ └── server_repository_test.dart
├── system_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ │ ├── src
│ │ │ ├── cpu_info.dart
│ │ │ ├── memory_info.dart
│ │ │ └── system_repository.dart
│ │ └── system_repository.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── system_repository_ig_test.dart
│ │ └── system_repository_test.dart
├── test_utilities
│ ├── analysis_options.yaml
│ ├── lib
│ │ ├── src
│ │ │ ├── process_terminator.dart
│ │ │ ├── test_resource_server.dart
│ │ │ └── test_utilities.dart
│ │ └── test_utilities.dart
│ └── pubspec.yaml
└── vanilla_server_repository
│ ├── analysis_options.yaml
│ ├── dart_test.yaml
│ ├── lib
│ ├── src
│ │ ├── vanilla_manifest
│ │ │ ├── vanilla_manifest.dart
│ │ │ ├── vanilla_manifest_info.dart
│ │ │ ├── vanilla_manifest_info.g.dart
│ │ │ ├── vanilla_manifest_version_info.dart
│ │ │ └── vanilla_manifest_version_info.g.dart
│ │ ├── vanilla_server
│ │ │ ├── vanilla_server.dart
│ │ │ ├── vanilla_server_downloads_info.dart
│ │ │ ├── vanilla_server_downloads_info.g.dart
│ │ │ ├── vanilla_server_downloads_server_info.dart
│ │ │ ├── vanilla_server_downloads_server_info.g.dart
│ │ │ ├── vanilla_server_info.dart
│ │ │ └── vanilla_server_info.g.dart
│ │ └── vanilla_server_repository.dart
│ └── vanilla_server_repository.dart
│ ├── pubspec.yaml
│ └── test
│ ├── vanilla_manifest_info_test.dart
│ ├── vanilla_server_info_test.dart
│ ├── vanilla_server_repository_ig_test.dart
│ └── vanilla_server_repository_test.dart
├── pubspec.yaml
├── release_dependencies
├── changelog.md
├── history.md
├── info.yml
└── java.yml
├── resources
├── about.png
├── about_me.png
├── forum.png
└── logo.png
├── test
└── lib
│ └── pages
│ └── app_page
│ ├── bloc
│ └── locale_bloc_test.dart
│ └── pages
│ ├── info_page
│ └── sections
│ │ ├── info_section
│ │ └── bloc
│ │ │ └── app_updater_bloc_test.dart
│ │ ├── network_section
│ │ └── bloc
│ │ │ ├── network_gateway_ip_bloc_test.dart
│ │ │ ├── network_internal_ip_bloc_test.dart
│ │ │ └── network_public_ip_bloc_test.dart
│ │ └── system_section
│ │ └── bloc
│ │ ├── cpu_info_bloc_test.dart
│ │ ├── gpu_info_bloc_test.dart
│ │ ├── memory_info_bloc_test.dart
│ │ ├── portable_java_info_bloc_test.dart
│ │ └── system_java_info_bloc_test.dart
│ └── server_page
│ ├── bloc
│ ├── cube_properties_bloc_test.dart
│ ├── installation_cubit_test.dart
│ ├── installer_manager_cubit_test.dart
│ ├── server_bloc_test.dart
│ ├── server_managment_launcher_cubit_test.dart
│ ├── server_properties_bloc_test.dart
│ └── servers_dropdown_bloc_test.dart
│ └── machine
│ ├── server_machine_test.dart
│ └── states
│ ├── configuration_loader_state_test.dart
│ ├── eula_ask_state_test.dart
│ ├── eula_stage_state_test.dart
│ ├── forge_install_state_test.dart
│ ├── idle_state_test.dart
│ ├── jar_analyzer_state_test.dart
│ ├── jar_dangerous_ask_state_test.dart
│ ├── java_duplicator_state_test.dart
│ ├── java_printer_state_test.dart
│ ├── post_duplicate_cleaner_state_test.dart
│ ├── post_process_cleaner_state_test.dart
│ ├── pre_duplicate_cleaner_state_test.dart
│ ├── pre_process_cleaner_state_test.dart
│ └── server_state_test.dart
├── test_experience.md
├── web
├── favicon.png
├── icons
│ ├── Icon-192.png
│ └── Icon-512.png
├── index.html
└── manifest.json
├── windows
├── .gitignore
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
└── runner
│ ├── CMakeLists.txt
│ ├── Runner.rc
│ ├── flutter_window.cpp
│ ├── flutter_window.h
│ ├── main.cpp
│ ├── resource.h
│ ├── resources
│ └── app_icon.ico
│ ├── runner.exe.manifest
│ ├── utils.cpp
│ ├── utils.h
│ ├── win32_window.cpp
│ └── win32_window.h
├── windows_local_dev_setup.bat
└── windows_local_full_setup.bat
/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.7.0",
3 | "flavors": {}
4 | }
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🐞 Bug Report
3 | about: Create a report to help us improve.
4 | title: "fix: "
5 | labels: "bug, triage"
6 | ---
7 |
8 |
11 |
12 | ### Issue Summary
13 |
14 |
17 |
18 | ### Steps to Reproduce
19 |
20 | 1. (for example) Open app
21 | 2. Click something then goes wrong
22 | 3. ...
23 |
24 | Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?
25 |
26 | - I have confirmed that this issue can be reproduced as described on master branch: (yes / no / not sure)
27 |
28 | ### Technical details
29 |
30 | - app version: Please refer to the banner in about page
31 | - os version:
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report_zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🐞 錯誤回報
3 | about: 填寫回報單幫助軟體進步.
4 | title: "fix: "
5 | labels: "bug"
6 | ---
7 |
8 |
11 |
12 | ### 問題描述
13 |
14 |
17 |
18 | ### 發生問題的步驟
19 |
20 | 1. (譬如) 打開軟體
21 | 2. 點了開啟伺服器,整個軟體瞬間崩潰
22 | 3. ...
23 |
24 | 若有時間,可稍加說明,本來預期的軟體行為。
25 |
26 | - Master branch 有當前的問題嗎 : (是/否/不確定)
27 |
28 | ### Technical details
29 |
30 | - 軟體版本: (可於關於頁看到)
31 | - 作業系統版本:
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🚀 Feature request
3 | about: A new feature to be added to the project
4 | title: "feat: "
5 | labels: "feature request, triage"
6 | ---
7 |
8 | ### Is your proposal related to a problem?
9 |
10 |
14 |
15 | (Write your answer here.)
16 |
17 | ### Describe alternatives you've considered
18 |
19 |
22 |
23 | (Write your answer here.)
24 |
25 | ### Additional context
26 |
27 |
31 |
32 | (Write your answer here.)
33 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request_zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🚀 新功能
3 | about: 請詳細描述想要的新功能
4 | title: "feat: "
5 | labels: "feature"
6 | ---
7 |
8 | ### 這個功能是為了解決什麼問題
9 |
10 |
13 |
14 | (在這裡寫下你的回答)
15 |
16 | ### 想要的解決方法
17 |
18 |
21 |
22 | (在這裡描述你提出的解決方案)
23 |
24 | ### 補充
25 |
26 |
30 |
31 | (在這裡寫下你的回答)
32 |
--------------------------------------------------------------------------------
/.github/workflows/build_macos.yml:
--------------------------------------------------------------------------------
1 | name: Build executables (MacOS)
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | postfix:
7 | required: true
8 | type: string
9 |
10 | jobs:
11 | build_macos:
12 | runs-on: macos-latest
13 | # needs:
14 | # - test_heavy_macos
15 | env:
16 | MACHINE_OS: macos
17 | steps:
18 | - uses: actions/checkout@v3
19 | - uses: subosito/flutter-action@v2.8.0
20 | with:
21 | channel: 'stable'
22 | - name: Doctor
23 | run: flutter doctor -v
24 | - name: Install Dependencies
25 | run: |
26 | flutter config --enable-macos-desktop
27 | flutter packages get
28 | - name: Build release
29 | run: |
30 | flutter build -v ${{ env.MACHINE_OS }} --release
31 | - name: Copy essentials to Macos and package (Release)
32 | run: |
33 | mkdir ${{ github.workspace }}/build/macos/Build/Products/minecraft_cube_desktop
34 | mv ${{ github.workspace }}/build/macos/Build/Products/Release/minecraft_cube_desktop.app ${{ github.workspace }}/build/macos/Build/Products/minecraft_cube_desktop/minecraft_cube_desktop.app
35 | - name: Upload MacOS artifaces (Release)
36 | # if: startsWith(matrix.os, 'macOS')
37 | uses: actions/upload-artifact@v3
38 | with:
39 | name: macos-release-${{ inputs.postfix }}
40 | path: ${{ github.workspace }}/build/macos/Build/Products/minecraft_cube_desktop
--------------------------------------------------------------------------------
/.github/workflows/build_windows.yml:
--------------------------------------------------------------------------------
1 | name: Build executables (Windows)
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | postfix:
7 | required: true
8 | type: string
9 |
10 | jobs:
11 | build_windows:
12 | runs-on: windows-latest
13 | # needs:
14 | # - test_heavy_windows
15 | env:
16 | MACHINE_OS: windows
17 | steps:
18 | - uses: actions/checkout@v3
19 | - uses: subosito/flutter-action@v2.8.0
20 | with:
21 | channel: 'stable'
22 | - name: Doctor
23 | run: flutter doctor -v
24 | - name: Install Dependencies
25 | run: |
26 | flutter config --enable-windows-desktop
27 | flutter packages get
28 | - name: Build release
29 | run: |
30 | flutter build -v ${{ env.MACHINE_OS }} --release
31 | - name: Copy essentials to Windows artifacs (Release)
32 | run: |
33 | cp -Path ${{ github.workspace }}/build_dependencies/windows/* ${{ github.workspace }}/build/windows/runner/Release/
34 | mkdir ${{ github.workspace }}/build/windows/runner/minecraft_cube_desktop/minecraft_cube_desktop
35 | mv -Path ${{ github.workspace }}/build/windows/runner/Release/* ${{ github.workspace }}/build/windows/runner/minecraft_cube_desktop/minecraft_cube_desktop
36 | - name: Upload Windows artifaces (Release)
37 | uses: actions/upload-artifact@v3
38 | with:
39 | name: windows-release-${{ inputs.postfix }}
40 | path: ${{ github.workspace }}/build/windows/runner/minecraft_cube_desktop
--------------------------------------------------------------------------------
/.github/workflows/scripts/linux_integration_setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # wget https://dl.dropboxusercontent.com/s/i0s17qbooewf8le/minimal_resources.zip
4 |
5 | # unzip minimal_resources.zip
6 |
7 | chmod +x minimal_resources/process_cleaner_repository/cube_java_linux
8 |
9 | wget https://cdn.azul.com/zulu/bin/zulu8.60.0.21-ca-jdk8.0.322-linux_x64.zip
10 |
11 | unzip zulu8.60.0.21-ca-jdk8.0.322-linux_x64.zip
12 |
13 | wget https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.zip
14 |
15 | unzip zulu17.32.13-ca-jdk17.0.2-linux_x64.zip
16 |
--------------------------------------------------------------------------------
/.github/workflows/scripts/macos_integration_setup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # curl -o minimal_resources.zip https://dl.dropboxusercontent.com/s/i0s17qbooewf8le/minimal_resources.zip
4 |
5 | # unzip minimal_resources.zip
6 |
7 | chmod +x minimal_resources/process_cleaner_repository/cube_java_macos
8 |
9 | curl -o zulu8.60.0.21-ca-jdk8.0.322-macosx_x64.zip https://cdn.azul.com/zulu/bin/zulu8.60.0.21-ca-jdk8.0.322-macosx_x64.zip
10 |
11 | unzip zulu8.60.0.21-ca-jdk8.0.322-macosx_x64.zip
12 |
13 | curl -o zulu17.32.13-ca-jdk17.0.2-macosx_x64.zip https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.zip
14 |
15 | unzip zulu17.32.13-ca-jdk17.0.2-macosx_x64.zip
--------------------------------------------------------------------------------
/.github/workflows/scripts/windows_integration_setup.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | curl https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip -o java17.zip
4 | tar -xf java17.zip
5 | @REM set JAVA_17=%PROJECT_PATH%\zulu17.32.13-ca-jdk17.0.2-win_x64\bin\java.exe
6 |
7 |
8 | curl https://cdn.azul.com/zulu/bin/zulu8.60.0.21-ca-jdk8.0.322-win_x64.zip -o java8.zip
9 | tar -xf java8.zip
10 | @REM set JAVA_8=%PROJECT_PATH%\zulu8.60.0.21-ca-jdk8.0.322-win_x64\bin\java.exe
11 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/_repo_assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/_repo_assets/logo.png
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | library_prefixes: false
6 | omit_local_variable_types: false
7 | require_trailing_commas: true
8 | # prefer_relative_imports: false
9 | # lines_longer_than_80_chars: false
10 | # public_member_api_docs: false
11 | # avoid_types_on_closure_parameters: false
12 | analyzer:
13 | exclude: [lib/**.g.dart, test/**.mocks.dart]
14 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/minecraft_cube_desktop/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.minecraft_cube_desktop
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | builders:
4 | build_version:
5 | options:
6 | output: lib/_gen/version.gen.dart
7 |
--------------------------------------------------------------------------------
/build_dependencies/linux/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: minecraft-cube-desktop
2 | Version: 1.0
3 | Architecture: amd64
4 | Maintainer: Tokenyet(Dowen)
5 | Description: Server management tool for minecraft
6 | Depends: libgtk-3-0, libblkid1, liblzma5
7 |
--------------------------------------------------------------------------------
/build_dependencies/linux/usr/local/lib/minecraft_cube_desktop/.empty:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/build_dependencies/linux/usr/local/lib/minecraft_cube_desktop/.empty
--------------------------------------------------------------------------------
/build_dependencies/windows/msvcp140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/build_dependencies/windows/msvcp140.dll
--------------------------------------------------------------------------------
/build_dependencies/windows/vcruntime140.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/build_dependencies/windows/vcruntime140.dll
--------------------------------------------------------------------------------
/build_dependencies/windows/vcruntime140_1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/build_dependencies/windows/vcruntime140_1.dll
--------------------------------------------------------------------------------
/concepts/concept:
--------------------------------------------------------------------------------
1 | 主畫面功能:
2 | Java列表, 系統, 建議zulu, 開啟資料夾
3 |
4 | 主要流程:
5 | [給定 folder, installer?]
6 | 清除 CubeJava process {processCleanerCubit}
7 | 清除 CubeJava executable {cubeJavaCleanerCubit}
8 | 檢查 Eula {eulaCheckerCubit}
9 | 檢查 Jar [jarFile] {jarCheckerBloc}
10 | 決定 Java [javaExecutable, arguments, ] {javaDeciderCubit} - configuration_loader_repository
11 | 檢查 Java {javaCheckerCubit} - java_printer_repository
12 | 複製 Java [javaExecutable => cube_java] {javaDuplicatorCubit} - java_duplicator_repository
13 | 中繼 Jar (安裝 Forge) [restart flow?] {forgeThresholdCubit} - forge_installer_repository
14 | 伺服器管理 [javaExecutable + jarFile + arguments] {serverBloc} - server_repository
15 |
16 | **使用安裝包安裝 {installerCubit} - installer_repository
17 |
18 | 不管如何結束都要走以下流程
19 | 清除 CubeJava process
20 | 清除 CubeJava executable
21 |
22 | **
23 | 當測試依賴於 Java 版本就要靠環境設定
24 |
25 |
26 | ***
27 | java/xxx/sadas/bin/java
28 | servers/projectname/server.jar
29 |
30 | servers/projectname: ../../java/xxx/sadas/bin/java -jar server.jar
--------------------------------------------------------------------------------
/dart_test.yaml:
--------------------------------------------------------------------------------
1 | file_reporters:
2 | json: reports/test-results.json
3 | tags:
4 | utility:
5 | repository:
6 | page:
7 | component:
8 | slow:
9 | unittest:
10 | integration:
11 | widget:
12 | debug:
13 |
--------------------------------------------------------------------------------
/fonts/NotoSans/NotoSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/NotoSans/NotoSans-Regular.ttf
--------------------------------------------------------------------------------
/fonts/NotoSansSC/NotoSansSC-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/NotoSansSC/NotoSansSC-Regular.otf
--------------------------------------------------------------------------------
/fonts/NotoSansTC/NotoSansTC-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/NotoSansTC/NotoSansTC-Regular.otf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Black.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Light.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/fonts/Roboto/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/ephemeral/
22 | Flutter/app.flx
23 | Flutter/app.zip
24 | Flutter/flutter_assets/
25 | Flutter/flutter_export_environment.sh
26 | ServiceDefinitions.json
27 | Runner/GeneratedPluginRegistrant.*
28 |
29 | # Exceptions to above rules.
30 | !default.mode1v3
31 | !default.mode2v3
32 | !default.pbxuser
33 | !default.perspectivev3
34 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | # platform :ios, '9.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MinecraftCube/MinecraftCubeDesktop/326eeedf3de537896ff5053c590fef21625707ec/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/_consts/common.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const cancel = 'cancel';
5 | const confirm = 'confirm';
6 |
7 | extension Localization on String {
8 | static final _t = Translations.from(
9 | AppLocalization.enUS.name,
10 | {
11 | cancel: {
12 | AppLocalization.enUS.name: 'Cancel',
13 | AppLocalization.zhTW.name: '取消',
14 | },
15 | confirm: {
16 | AppLocalization.enUS.name: 'Confirm',
17 | AppLocalization.zhTW.name: '確認',
18 | },
19 | },
20 | );
21 |
22 | String get ci18n => localize(this, _t);
23 | }
24 |
--------------------------------------------------------------------------------
/lib/_consts/localization.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/widgets.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.i18n.dart';
3 |
4 | enum AppLanguage {
5 | zhTW,
6 | enUS,
7 | }
8 |
9 | extension AppLanguageExt on AppLanguage {
10 | String get name {
11 | switch (this) {
12 | case AppLanguage.zhTW:
13 | return localizationZhTw.i18n;
14 | case AppLanguage.enUS:
15 | return localizationEnUs.i18n;
16 | default:
17 | throw UnimplementedError();
18 | }
19 | }
20 | }
21 |
22 | extension LocaleExt on Locale {
23 | String get name {
24 | String result = languageCode.toLowerCase();
25 | final country = countryCode;
26 | if (country != null) {
27 | result += '_${country.toLowerCase()}';
28 | }
29 | return result;
30 | }
31 | }
32 |
33 | class AppLocalization {
34 | static Locale enUS = const Locale('en', 'US');
35 | static Locale zhTW = const Locale('zh', 'TW');
36 | }
37 |
--------------------------------------------------------------------------------
/lib/_consts/localization.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const localizationZhTw = 'localizationZhTw';
5 | const localizationEnUs = 'localizationEnUs';
6 |
7 | extension Localization on String {
8 | static final _t = Translations.from(
9 | AppLocalization.enUS.name,
10 | {
11 | localizationZhTw: {
12 | AppLocalization.enUS.name: 'Traditional Chinese',
13 | AppLocalization.zhTW.name: '繁體中文',
14 | },
15 | localizationEnUs: {
16 | AppLocalization.enUS.name: 'English',
17 | AppLocalization.zhTW.name: '英文',
18 | },
19 | },
20 | );
21 |
22 | String get i18n => localize(this, _t);
23 | }
24 |
--------------------------------------------------------------------------------
/lib/_gen/fonts.gen.dart:
--------------------------------------------------------------------------------
1 | /// GENERATED CODE - DO NOT MODIFY BY HAND
2 | /// *****************************************************
3 | /// FlutterGen
4 | /// *****************************************************
5 |
6 | // ignore_for_file: directives_ordering,unnecessary_import
7 |
8 | class FontFamily {
9 | FontFamily._();
10 |
11 | /// Font family: NotoSans
12 | static const String notoSans = 'NotoSans';
13 |
14 | /// Font family: NotoSansSC
15 | static const String notoSansSC = 'NotoSansSC';
16 |
17 | /// Font family: NotoSansTC
18 | static const String notoSansTC = 'NotoSansTC';
19 |
20 | /// Font family: Roboto
21 | static const String roboto = 'Roboto';
22 | }
23 |
--------------------------------------------------------------------------------
/lib/_gen/version.gen.dart:
--------------------------------------------------------------------------------
1 | // Generated code. Do not modify.
2 | const packageVersion = '1.3.0';
3 |
--------------------------------------------------------------------------------
/lib/_theme/color_palette.dart:
--------------------------------------------------------------------------------
1 | import 'dart:ui';
2 |
3 | class ColorPalette {
4 | static const Color primarySwatch = Color(0xff5F4339);
5 | static const Color primaryColor = Color(0xff5F4339);
6 | static const Color accentColor = Color(0xff1F120D);
7 | static const Color secondaryColor = Color(0xff9E8278);
8 | static const Color fontColor = Color(0xffeaeadf);
9 | static const Color fontSinyColor = Color(0xffffff00);
10 | static const Color bgColor = Color(0xfff4f4f4);
11 | }
12 |
--------------------------------------------------------------------------------
/lib/_utilities/console_line_util.dart:
--------------------------------------------------------------------------------
1 | import 'package:console_repository/console_repository.dart';
2 |
3 | Iterable generateOneLineConsoleLine(String text) {
4 | return [
5 | ConsoleLine(
6 | texts: [
7 | ConsoleText(
8 | text: text,
9 | )
10 | ],
11 | )
12 | ];
13 | }
14 |
--------------------------------------------------------------------------------
/lib/pages/app_page/app_selector_page.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const appSelectorPageTypeInfo = 'appSelectorPageTypeInfo';
5 | const appSelectorPageTypeServer = 'appSelectorPageTypeServer';
6 | const appSelectorPageTypeCraft = 'appSelectorPageTypeCraft';
7 | const appSelectorPageTypeAbout = 'appSelectorPageTypeAbout';
8 | const appTitle = 'appTitle';
9 |
10 | extension Localization on String {
11 | static final _t = Translations.from(
12 | AppLocalization.enUS.name,
13 | {
14 | appTitle: {
15 | AppLocalization.enUS.name: 'Minecraft Cube',
16 | AppLocalization.zhTW.name: '創世神魔方',
17 | },
18 | appSelectorPageTypeInfo: {
19 | AppLocalization.enUS.name: 'Info',
20 | AppLocalization.zhTW.name: '資訊欄',
21 | },
22 | appSelectorPageTypeServer: {
23 | AppLocalization.enUS.name: 'Server',
24 | AppLocalization.zhTW.name: '伺服器',
25 | },
26 | appSelectorPageTypeCraft: {
27 | AppLocalization.enUS.name: 'Craft',
28 | AppLocalization.zhTW.name: '製作',
29 | },
30 | appSelectorPageTypeAbout: {
31 | AppLocalization.enUS.name: 'About',
32 | AppLocalization.zhTW.name: '關於',
33 | },
34 | },
35 | );
36 |
37 | String get i18n => localize(this, _t);
38 | }
39 |
--------------------------------------------------------------------------------
/lib/pages/app_page/pages/craft_page/pages/craft_navi_page/pages/base_page.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const craftBasePageBack = 'craftBasePageBack';
5 | const craftBasePageInstruction = 'craftBasePageInstruction';
6 | const craftBasePageNext = 'craftInstallerNamePageNext';
7 |
8 | extension Localization on String {
9 | static final _t = Translations.from(
10 | AppLocalization.enUS.name,
11 | {
12 | craftBasePageBack: {
13 | AppLocalization.enUS.name: 'Back',
14 | AppLocalization.zhTW.name: '回選單',
15 | },
16 | craftBasePageInstruction: {
17 | AppLocalization.enUS.name: 'Instruction:',
18 | AppLocalization.zhTW.name: '說明:',
19 | },
20 | craftBasePageNext: {
21 | AppLocalization.enUS.name: 'Next',
22 | AppLocalization.zhTW.name: '下一步',
23 | },
24 | },
25 | );
26 |
27 | String get i18n => localize(this, _t);
28 | }
29 |
--------------------------------------------------------------------------------
/lib/pages/app_page/pages/info_page/sections/info_section/language_dialog.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const languageDialogSelectLanguage = 'languageDialogSelectLanguage';
5 | const languageDialogCancel = 'languageDialogCancel';
6 | const languageDialogConfirm = 'languageDialogConfirm';
7 |
8 | extension Localization on String {
9 | static final _t = Translations.from(
10 | AppLocalization.enUS.name,
11 | {
12 | languageDialogSelectLanguage: {
13 | AppLocalization.enUS.name: 'Select Lang',
14 | AppLocalization.zhTW.name: '選擇語言',
15 | },
16 | languageDialogCancel: {
17 | AppLocalization.enUS.name: 'Cancel',
18 | AppLocalization.zhTW.name: '取消',
19 | },
20 | languageDialogConfirm: {
21 | AppLocalization.enUS.name: 'Confirm',
22 | AppLocalization.zhTW.name: '確定',
23 | },
24 | },
25 | );
26 |
27 | String get i18n => localize(this, _t);
28 | }
29 |
--------------------------------------------------------------------------------
/lib/pages/app_page/pages/info_page/sections/info_section/release_note_dialog.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const releaseNoteDialogDownload = 'releaseNoteDialogDownload';
5 | const releaseNotDialogDownloadLink = 'releaseNotDialogDownloadLink';
6 |
7 | extension Localization on String {
8 | static final _t = Translations.from(
9 | AppLocalization.enUS.name,
10 | {
11 | releaseNoteDialogDownload: {
12 | AppLocalization.enUS.name: 'Download',
13 | AppLocalization.zhTW.name: '前往下載頁',
14 | },
15 | releaseNotDialogDownloadLink: {
16 | AppLocalization.enUS.name:
17 | 'https://minecraftscepter.github.io/changelogs?lang=en',
18 | AppLocalization.zhTW.name:
19 | 'https://minecraftscepter.github.io/changelogs?lang=zhTW',
20 | }
21 | },
22 | );
23 |
24 | String get i18n => localize(this, _t);
25 | }
26 |
--------------------------------------------------------------------------------
/lib/pages/app_page/pages/info_page/sections/network_section/network_section.i18n.dart:
--------------------------------------------------------------------------------
1 | import 'package:i18n_extension/i18n_extension.dart';
2 | import 'package:minecraft_cube_desktop/_consts/localization.dart';
3 |
4 | const networkSectionPublicIp = 'networkSectionPublicIp';
5 | const networkSectionInternalIp = 'networkSectionInternalIp';
6 | const networkSectionGatewayIp = 'networkSectionGatewayIp';
7 |
8 | extension Localization on String {
9 | static final _t = Translations.from(
10 | AppLocalization.enUS.name,
11 | {
12 | networkSectionPublicIp: {
13 | AppLocalization.enUS.name: 'Public Ip',
14 | AppLocalization.zhTW.name: '公開地址',
15 | },
16 | networkSectionInternalIp: {
17 | AppLocalization.enUS.name: 'Internal Ip',
18 | AppLocalization.zhTW.name: '內部地址',
19 | },
20 | networkSectionGatewayIp: {
21 | AppLocalization.enUS.name: 'Gateway Ip',
22 | AppLocalization.zhTW.name: '閘道地址',
23 | },
24 | },
25 | );
26 |
27 | String get i18n => localize(this, _t);
28 | }
29 |
--------------------------------------------------------------------------------
/lib/pages/app_page/pages/info_page/sections/system_section/bloc/gpu_info_bloc.dart:
--------------------------------------------------------------------------------
1 | import 'package:bloc/bloc.dart';
2 | import 'package:cube_api/cube_api.dart';
3 | import 'package:equatable/equatable.dart';
4 | import 'package:system_repository/system_repository.dart';
5 |
6 | abstract class GpuInfoEvent extends Equatable {
7 | const GpuInfoEvent();
8 | @override
9 | List