1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-23 23:57:46 +00:00
Commit graph

299 commits

Author SHA1 Message Date
b3f5500d2f Check user-agent in Patch server 2025-03-23 07:25:23 -04:00
d92f0033a9 Fix typo in USAGE 2025-03-23 06:53:58 -04:00
560ee04159 Update patch server for axum changes 2025-03-23 06:34:59 -04:00
d8971b09cc Remove erroneous Position import 2025-03-23 06:34:47 -04:00
69399dc64e Enable oodle feature in run.sh 2025-03-23 06:20:11 -04:00
1acf73c484 Move Position struct to common module 2025-03-22 22:01:32 -04:00
d10552f653 Rename player_spawn.dat to player_spawn.bin 2025-03-22 21:59:06 -04:00
613fa551fb Add more metadata keys to Cargo.toml 2025-03-22 21:49:05 -04:00
a6b485108f Enable Oodle feature on the CI 2025-03-22 21:48:51 -04:00
2029caa645 Add note to explicitly enable oodle feature 2025-03-22 21:48:42 -04:00
82709a65ff Update Cargo dependencies, remove Oodle as a default feature 2025-03-22 21:44:28 -04:00
d6137b62d6 Build with Oodle on the CI
This makes it possible to use Kawari easily without compilation. You
still need to acquire Oodle yourself since we build with the shared
library version of Oodle.

The USAGE instructions is modified accordingly.
2025-03-22 21:19:18 -04:00
5214d757e8 You can use Kawari on Windows 2025-03-22 21:19:18 -04:00
ae40e4c066 Upload artifacts from CI 2025-03-22 19:59:00 -04:00
c88e3ca6d7 Add Windows CI 2025-03-22 19:26:46 -04:00
0069196e3c Move some constants to common module 2025-03-22 19:17:01 -04:00
fb05caaa31 Store zone id and position in the World database
This isn't updated by the server yet, but will be soon in the future.
2025-03-22 19:05:29 -04:00
4b740068d4 Remove hardcoded initial zone, derive it from selected City-State
This currently might spawn you in the ground in Ul'dah and probably Limsa too,
until I determine the correct spawn location.
2025-03-22 18:53:53 -04:00
15ed586fd0 Fix CharaMake structure, derive City-State from class picked in creation 2025-03-22 18:34:27 -04:00
c4b65f5ecd Set max characters per world to 8 2025-03-22 18:08:40 -04:00
e4203c0ead Entitle the user to Dawntrail
This gives you the Dawntrail intro screen instead of the Endwalker one.
2025-03-22 18:08:14 -04:00
ff7d096d5d Fix the name rejection error message not showing correctly 2025-03-22 17:50:31 -04:00
55d0b81ae4 Use LobbyCharacterActionKind in CharacterCreated Lobby IPC
Instead of the magic unknown number, replace at least one byte of it with
something that's known!
2025-03-22 17:39:28 -04:00
107a00aa92 Move lobby character actions to LobbyConnection, support deleting characters 2025-03-22 17:32:00 -04:00
5c8998ddb2 Change default world id back to Gilgamesh
I quickly realized that the "Dev" server is under the "Unknown" data center, and
that's kinda hard to select in the client. I'll think about a solution later.
2025-03-22 17:08:33 -04:00
6190001caa Remove more hardcoded values for character
Since we are now backed by a database, the remaining usages are erroneous and
should be removed.
2025-03-22 17:06:16 -04:00
a91c59aaaa Remove hardcoded world id & name, make it configurable
Now the world isn't hardcoded to Gilgamesh, and is configurable. It's also now
the "Dev" server listed in the excel sheet which makes a more sensible default.
2025-03-22 17:00:21 -04:00
3f27d2b3df Change configuration format to YAML, allow configuring the address and ports
This removes all of the hardcoded localhost stuff, and allows changing the ports
of various services.
2025-03-22 16:47:21 -04:00
f523aa189f Move login & world database code/logic to their own modules and structs
This should remove some of the pollution I added while working on these
features.
2025-03-22 16:15:29 -04:00
4b67b22c9f Show the actual character list on the lobby screen
This doesn't do any actual account checking yet, but it works pretty well.
2025-03-21 21:26:32 -04:00
7b77c19008 Add TODO to fix the lobby error for name rejection 2025-03-21 19:59:58 -04:00
b3a22ebdce Fix size of WeatherChange packet 2025-03-21 19:58:48 -04:00
0900d0b94e Implement basic character persistence, World <-> Lobby server communication
This is unfortunately lumped into one big commit, and is very hacky and WIP but
does indeed work! Since the Lobby and World server are two separate servers, it
uses it's own custom IPC packets (reusing the same packet structures as regular
game ones.)

The characters you create in the Lobby server are now saved in the World server,
but this is not yet reflected in the Lobby screen.
2025-03-21 19:56:16 -04:00
f4536f2cb7 Implement basic support for actions
This only works for sprint, and it adds 30 sprint buffs. It also regularly
crashes the server afterwards usually.
2025-03-19 00:28:47 -04:00
3947eebb44 Add new commands to USAGE 2025-03-18 23:49:07 -04:00
788cbf114a Add support for the GM command to change the weather
You can now change the weather with `//gm weather <id>`.
2025-03-18 23:48:00 -04:00
4927fa9119 Send ActorControl and StatusEffectList packets in vain
This was hopefully supposed to show the player spawned by !spawnactor, but it
still doesn't work...
2025-03-18 23:30:59 -04:00
da0860cdd7 Move CharacterMode enum to common_spawn module 2025-03-18 22:17:06 -04:00
cfb9aad6e6 Move ObjectKind enum to common_spawn module 2025-03-18 22:15:27 -04:00
bd67eb0127 Add support for spawning NPCs, and a debug command to do it
Since the structs are so similar, I created a CommonSpawn struct to hold most of
the interesting fields.
2025-03-18 22:13:28 -04:00
039f4d7f95 Move generate_sid to login server 2025-03-18 20:33:12 -04:00
dbade00616 Restore the test_packet_sizes test 2025-03-18 20:33:12 -04:00
1f2283af14 Specify a connection type when sending packets 2025-03-18 20:33:12 -04:00
f886fbfe4b Turn the gates on in the example config 2025-03-17 17:44:22 -04:00
22379bccdd Set the remaining days subscribed to 30
To hide that message every time you login, warning you that the subscription is
running out.
2025-03-17 17:43:28 -04:00
fecfa821ad Use PatchList from Physis
This is what the Physis implementation was based off of anyway, so it should be
more or less a drop-in replacement.
2025-03-17 17:36:43 -04:00
aee23a200b Create timestamp_msecs function, run Clippy auto-fix 2025-03-17 17:31:22 -04:00
974efe3824 Move compression logic out of send_packet and into it's own function 2025-03-17 17:28:57 -04:00
a7f56a62a1 Rename FFXIVOodle to OodleNetwork, move out of a folder
I was thinking I was going to add other modules but it wasn't needed, so it
doesn't need to live in a folder.
2025-03-17 17:22:09 -04:00
c34f5d7ea8 Move CharaMake up to it's super module 2025-03-17 17:19:28 -04:00