Skip to content

Add !time command to shift server time for banner switching#37

Closed
epicmsl wants to merge 1 commit into
Melledy:mainfrom
epicmsl:main
Closed

Add !time command to shift server time for banner switching#37
epicmsl wants to merge 1 commit into
Melledy:mainfrom
epicmsl:main

Conversation

@epicmsl

@epicmsl epicmsl commented May 26, 2026

Copy link
Copy Markdown
Contributor

Add !time command to switch gacha banners by shifting server time.

Since banner data is client-side and cannot be modified, this command shifts the server's internal clock so isActiveAt() returns different active banners. No PC time is changed.
Subcommands: set , offset , reset, list.
First make sure the client is close, why? to refresh fast ... if client is opened you have to wait long.
in terminal/cmd/console use !time list to check which banner you want target, here example:
ID Banner Epoch


10144 Chitose 1760990400 (2025-10-20 21:00:00)
10155 Shia 1761710400 (2025-10-29 05:00:00)
10119 Nanoha 1762920000 (2025-11-12 05:00:00)
10134 Fuyuka 1763524800 (2025-11-19 05:00:00)
10149 Gerie 1764734400 (2025-12-03 05:00:00)
10133 Nazuka 1765339200 (2025-12-10 05:00:00)
10158 Snowish Laru 1766548800 (2025-12-24 05:00:00)
10125 Freesia 1767153600 (2025-12-31 05:00:00)
10110 Firenze 1768363200 (2026-01-14 05:00:00)
10135 Mistique 1769572800 (2026-01-28 05:00:00)
10159 Springseek Cor 1770177600 (2026-02-04 05:00:00)
10141 Chixia 1771387200 (2026-02-18 04:00:00)
10143 Wraith 1771992000 (2026-02-25 04:00:00)
10132 Minova 1773201600 (2026-03-11 04:00:00)
10130 Donna 1773806400 (2026-03-18 04:00:00)
10156 Nazuna 1775016000 (2026-04-01 05:00:00)
10145 Otoha 1776398400 (2026-04-17 05:00:00)
11144 Chitose 1777608000 (2026-05-01 05:00:00)
10115 Firefly 1778817600 (2026-05-15 05:00:00)
11155 Shia 1779854400 (2026-05-27 05:00:00)

!time set ... copy epoch you want and use (example):
!time set 1765339200 after that open the client and check banner if Nazuka is on.
!time to check Current server time.
!time reset to back the original time.

- Add timeOffset field and getter/setter to Nebula.java
- Modify getCurrentServerTime() to include offset
- Create TimeCommand.java with set/offset/reset/list subcommands
@Melledy

Melledy commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Not a big fan of the method used here for multiple reasons:

  1. Nebula::getCurrentServerTime() also affects stuff such as server daily reset
  2. Names of trekkers should not be included in the source code for various copyright related reasons.

I think a better way to do this would be offset the server timestamp here instead:

.setServerTs(Nebula.getCurrentServerTime())

Also for banner names, it would be better to pull the names from resources/language/{{language_key}}/Gacha.json as that would not require us to put trekker names or whatnot in the source code, with the added benefit of using the proper language for the server.

@epicmsl

epicmsl commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

You absolutely right, i didn't think that way ... i only wanted way to bring all banner to pull instead getting char trought commands, its gacha game after all.
well ... you can close PR, i dont wanna DMCA Takedown for this hidden gem.

@epicmsl epicmsl closed this Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants