OracleLoadstar/SCE-Universe_Java_Edition
快速开始

安装与运行

SCE-Universe_Java_EditionSCE-Universe 项目的 Java 实现,专注于测试最新的版本特性和未完成/未计划的更新。本文档将指导您如何构建和运行此应用程序,包括普通模式和带 Modloader 模式。

概述

该应用程序是一个独立的 Java 桌面应用程序,通过命令行脚本进行构建和启动。它内置了一个页面路由系统和配置管理器,并支持通过 Modloader 扩展其功能。应用程序的入口点是 cn.oraclestar.sce.App.App 类,它负责初始化全局设置、处理命令行参数(特别是 Modloader 功能),注册页面,并启动用户界面。

架构

应用程序启动流程

以下 Mermaid 图展示了应用程序的启动和初始化过程:

加载图表中...

Source: src/cn/oraclestar/sce/App/App.java

应用程序启动时,首先解析命令行参数。如果检测到 -mod 参数,则会启用 Modloader 功能并加载 Mod。之后,应用程序会注册一系列默认设置和所有内置页面。它会尝试从 settings.xml 文件加载用户配置。如果配置加载成功,将设置初始页面并启动路由。如果配置加载失败,则会跳转到错误页面。

构建与运行流程

以下 Mermaid 图展示了构建和运行应用程序的两种主要模式:

加载图表中...

此图展示了从源代码到可执行 JAR 包的构建过程,以及如何通过不同的启动脚本以普通模式或 Modloader 模式运行应用程序。所有标准错误输出都会被重定向到 log.log 文件。

构建应用

该项目不依赖任何第三方构建系统(如 Maven 或 Gradle),而是使用一个简单的 Bash 脚本进行编译和打包。

基本构建

要构建应用程序,请在项目根目录下执行 build.sh 脚本:

bash
./build.sh

Source: build.sh

此脚本将执行以下步骤:

  1. 清理 bin 目录和旧的 JAR 包。
  2. src 目录下的所有 Java 文件编译到 bin 目录。
  3. src 目录中除 .java 文件外的所有资源复制到 bin 目录。
  4. 将编译后的类和资源打包成 app.jar

构建成功后,您将在项目根目录中找到 app.jar 文件。

运行应用

应用程序可以通过提供的 shell 脚本(Linux/macOS)或批处理脚本(Windows)启动。项目支持两种运行模式:普通模式和 Modloader 模式。

普通模式运行

在普通模式下,应用程序将不会启用 Modloader 功能。启动脚本还会尝试将 settings.xmlmod 选项的值设置为 false

Linux/macOS

bash
./start.sh

Source: start.sh

Windows

batch
start.bat

Source: start.bat

Modloader 模式运行

在 Modloader 模式下,应用程序将启用 Modloader 功能,并在启动时尝试加载 plugins 目录下的 Mod 文件。启动脚本还会尝试将 settings.xmlmod 选项的值设置为 true

Linux/macOS

bash
./start-modloader.sh

Source: start-modloader.sh

Windows

batch
start-modloader.bat

Source: start-modloader.bat

重要提示:

  • 所有标准错误(stderr)输出都将被重定向到 log.log 文件。如果您需要查看实时日志或进行调试,请检查此文件。
  • Mod 文件应放置在项目根目录的 plugins 文件夹下。如果 Mod 是前置 Mod,请将其放置在 plugins/preload 文件夹下。

配置选项

应用程序的某些行为可以通过 settings.xml 文件中的配置进行调整,或者在代码中通过 setManager_core 进行管理。虽然 start.shstart.bat 会自动修改 mod 配置,但您也可以手动编辑 settings.xml

App.java 中的 register() 方法初始化了许多默认设置:

java
1cn.oraclestar.sce.system.setManager.setManager_core.addSet("homeTitle","SCE-UNIVERSE"); 2cn.oraclestar.sce.system.setManager.setManager_core.addSet("isShowFriendshipRate",false); 3// ... 更多设置 ... 4cn.oraclestar.sce.system.setManager.setManager_core.addSet("port",8080);

Source: src/cn/oraclestar/sce/App/App.java

这些设置的详细说明请参考 settings.xml 或应用程序内部文档。

API 参考

对于 Mod 开发者,应用程序提供了一些核心 API 接口用于扩展功能。

cn.oraclestar.sce.system.modloader.modloader_main 接口

Mod 的主类需要实现此接口并使用 @target 注解。

java
1package cn.oraclestar.sce.upgrade.a26_01; 2 3import cn.oraclestar.sce.system.modloader.target; 4import cn.oraclestar.sce.system.UI.UI_core; 5import cn.oraclestar.sce.system.router.pages; 6 7@target(name = "SCE_JAVA_UPGRADE_26_01", author = "xingguangcuican", version = "26.01", Description = "SCE JAVA Offcial Upgrade on 26.01") 8public class App implements cn.oraclestar.sce.system.modloader.modloader_main { 9 @Override 10 public int innerHandle(String arg0, int arg1) { 11 return pages.CURRENT; 12 } 13 @Override 14 public void innerToPage(UI_core arg0, int arg1) { 15 // ... 16 } 17 @Override 18 public void onDisable() { 19 return; 20 } 21 @Override 22 public void onEnable() { 23 // ... 24 return; 25 } 26}

Source: README.md

方法说明:

  • innerHandle(String pageId, int userInput): 在指定页面插入额外选项判断,pageId 是当前页面 ID,userInput 是用户输入。
  • innerToPage(UI_core ui, int pageId): 在指定 TUI 界面渲染额外内容,ui 是 UI 类的实例化对象,pageId 是当前页面 ID。
  • onDisable(): 在软件关闭时执行。
  • onEnable(): 在软件启动时执行,常用于添加设置或注册页面。

cn.oraclestar.sce.system.setManager.setManager_core

用于管理应用程序设置的核心类。

  • changeVaule(String key, Object value): 修改设置值。
  • getVaule(String key): 获取设置值。
  • toggleSetting(String key): 切换布尔类型设置的值。
  • addSet(String key, Object value): 添加新的设置键值对。

cn.oraclestar.sce.system.router.router_core

用于管理页面路由的核心类。

  • addPage(int pageId, pageheader pageInstance): 添加页面,pageId 为页面 ID(建议使用页面名称的 hash 值),pageInstance 为继承 pageheader 类的页面实例。

相关链接

On this page