isHarryh / Ark-Pets

Arknights Desktop Pets | 明日方舟桌宠
https://arkpets.harryh.cn
GNU General Public License v3.0
493 stars 31 forks source link

Implemented the integrated system tray #59

Closed half-nothing closed 7 months ago

half-nothing commented 7 months ago

Finish feature from #40

  1. 整合所有桌宠到一个系统托盘图标内
  2. 现在启动器不会退出(退出需要右键托盘->退出程序),而是会一直在后台运行,点击托盘图标即可呼出 image
  3. 可以在系统托盘内控制所有桌宠,也可以直接右键桌宠(这是本来就有的功能) image image
  4. 所有桌宠会随着启动器的退出而一并退出(可以选择开启或者关闭)

PS: 还有一个分支,改了一下资源文件的位置,不知道要不要交PR

isHarryh commented 7 months ago

That's a REALLY exciting feature. Thank you for your commitment. Let me have a detailed check.

isHarryh commented 7 months ago

There are still something to be accomplished. Sending a new PR is appreciated.

下面总结一下新托盘系统待完善的内容:

  1. 现状:当前托盘建立在一个与JavaFX绑定的SocketServer上,该服务器使用8080端口进行,端口号可以通过配置文件更改。建议:硬编码一个静态的备选端口列表(8080端口常用于代理服务器所以不建议使用,考虑下列端口,8686 8866 8989 8899 8800),每次启动服务器前,查询上述端口占用情况,并选择第一个空闲端口。

  2. 现状:启动器未实现单实例启动。建议:结合(1)的方案,每次启动启动器时,验证上述所有端口是否为ArkPets服务器。如果已存在一个服务器,那么这个启动器就是多余实例,此时这个启动器向已存在的服务器发送ACTIVATE_LAUNCHER激活消息,然后服务器弹出它的启动器界面,同时,多余实例结束运行。如果不存在服务器,那么它将在第一个空闲备选端口建立服务器,并继续程序逻辑运行。

half-nothing commented 7 months ago

There are still something to be accomplished. Sending a new PR is appreciated.

下面总结一下新托盘系统待完善的内容:

  1. 现状:当前托盘建立在一个与JavaFX绑定的SocketServer上,该服务器使用8080端口进行,端口号可以通过配置文件更改。建议:硬编码一个静态的备选端口列表(8080端口常用于代理服务器所以不建议使用,考虑下列端口,8686 8866 8989 8899 8800),每次启动服务器前,查询上述端口占用情况,并选择第一个空闲端口。
  2. 现状:启动器未实现单实例启动。建议:结合(1)的方案,每次启动启动器时,验证上述所有端口是否为ArkPets服务器。如果已存在一个服务器,那么这个启动器就是多余实例,此时这个启动器向已存在的服务器发送ACTIVATE_LAUNCHER激活消息,然后服务器弹出它的启动器界面,同时,多余实例结束运行。如果不存在服务器,那么它将在第一个空闲备选端口建立服务器,并继续程序逻辑运行。

Take your advice. I'll make it happen sometime.Maybe not until next year