From ccf8aca5fd6de0ff5408e0564d2e5cb653659266 Mon Sep 17 00:00:00 2001 From: xavo95 Date: Thu, 3 Apr 2025 19:26:26 +0000 Subject: [PATCH] 2.3.0 CN support --- Cargo.lock | 421 ++++++++++-------- .../configserver.default.toml | 2 +- wicked-waifus-data/src/misc_data.rs | 5 + .../src/pb_components/action.rs | 139 ++++++ .../src/pb_components/condition.rs | 70 ++- .../src/pb_components/entity_state.rs | 1 + wicked-waifus-data/src/pb_components/var.rs | 3 +- .../gameserver.default.toml | 2 +- .../src/logic/components/mod.rs | 44 +- .../src/logic/components/paragliding_skin.rs | 11 + .../src/logic/components/soar_wing_skin.rs | 11 + .../src/logic/ecs/component.rs | 2 + .../src/logic/handler/dummy.rs | 1 + .../src/logic/handler/friend.rs | 5 +- .../src/logic/handler/mod.rs | 1 + .../src/logic/handler/scene.rs | 2 +- .../src/logic/player/mod.rs | 3 +- .../src/logic/role/formation.rs | 2 +- .../src/logic/role/mod.rs | 2 +- .../src/logic/utils/action_utils.rs | 19 +- .../src/logic/utils/condition_utils.rs | 6 + .../src/logic/utils/world_util.rs | 9 +- .../security/client_public_key.pem | 14 +- .../security/pre_2.2_client_public_key.pem | 8 + 24 files changed, 551 insertions(+), 232 deletions(-) create mode 100644 wicked-waifus-game-server/src/logic/components/paragliding_skin.rs create mode 100644 wicked-waifus-game-server/src/logic/components/soar_wing_skin.rs create mode 100644 wicked-waifus-gateway-server/security/pre_2.2_client_public_key.pem diff --git a/Cargo.lock b/Cargo.lock index 44fc312..f9f6e81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,9 +60,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -131,7 +131,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -160,20 +160,17 @@ dependencies = [ [[package]] name = "axum-server" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56bac90848f6a9393ac03c63c640925c4b7c8ca21654de40d53f55964667c7d8" +checksum = "495c05f60d6df0093e8fb6e74aa5846a0ad06abaf96d76166283720bf740f8ab" dependencies = [ "bytes", - "futures-util", + "fs-err", "http", "http-body", - "http-body-util", "hyper", "hyper-util", - "pin-project-lite", "tokio", - "tower 0.4.13", "tower-service", ] @@ -200,9 +197,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bitflags" @@ -279,9 +276,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.16" +version = "1.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" dependencies = [ "jobserver", "libc", @@ -448,9 +445,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" dependencies = [ "powerfmt", ] @@ -556,9 +553,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -583,9 +580,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "form_urlencoded" @@ -596,6 +593,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs-err" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f89bda4c2a21204059a977ed3bfe746677dfd137b83c339e702b0ac91d482aa" +dependencies = [ + "autocfg", + "tokio", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -703,14 +710,16 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -721,9 +730,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "git2" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" +checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" dependencies = [ "bitflags", "libc", @@ -820,9 +829,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -841,12 +850,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -892,9 +901,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ "bytes", "futures-util", @@ -947,9 +956,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -971,9 +980,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -992,9 +1001,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -1047,9 +1056,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -1082,13 +1091,24 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + [[package]] name = "kcp" version = "0.1.0" @@ -1112,15 +1132,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libgit2-sys" -version = "0.18.0+1.9.0" +version = "0.18.1+1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" +checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" dependencies = [ "cc", "libc", @@ -1138,9 +1158,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libmimalloc-sys" -version = "0.1.39" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" +checksum = "6b20daca3a4ac14dbdc753c5e90fc7b490a48a9131daed3c9a9ced7b2defd37b" dependencies = [ "cc", "libc", @@ -1172,9 +1192,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.21" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -1184,9 +1204,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" @@ -1212,9 +1232,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lzma-rs" @@ -1226,6 +1246,17 @@ dependencies = [ "crc", ] +[[package]] +name = "lzma-sys" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "matchers" version = "0.1.0" @@ -1259,9 +1290,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mimalloc" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" +checksum = "03cb1f88093fe50061ca1195d336ffec131347c7b833db31f9ab62a2d1b7925f" dependencies = [ "libmimalloc-sys", ] @@ -1382,9 +1413,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "openssl-probe" @@ -1480,26 +1511,6 @@ dependencies = [ "indexmap", ] -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -1547,18 +1558,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.7.35", + "zerocopy", ] [[package]] name = "prettyplease" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", "syn", @@ -1627,13 +1638,19 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -1653,7 +1670,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.23", + "zerocopy", ] [[package]] @@ -1691,7 +1708,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", ] [[package]] @@ -1779,9 +1796,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ring" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", @@ -1793,9 +1810,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" dependencies = [ "const-oid", "digest", @@ -1819,9 +1836,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "1.0.1" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ "bitflags", "errno", @@ -1832,9 +1849,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" dependencies = [ "log", "once_cell", @@ -1862,9 +1879,9 @@ checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ "ring", "rustls-pki-types", @@ -1891,18 +1908,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -2045,9 +2062,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2287,9 +2304,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.99" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -2315,13 +2332,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.18.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.2", "once_cell", "rustix", "windows-sys 0.59.0", @@ -2379,9 +2395,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.39" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "num-conv", @@ -2392,9 +2408,9 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "tinystr" @@ -2423,9 +2439,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", @@ -2463,9 +2479,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -2509,21 +2525,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower" version = "0.5.2" @@ -2681,7 +2682,7 @@ checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unreal-niggery-rs" version = "0.1.0" -source = "git+https://git.xeondev.com/xavo95/unreal-niggery-rs.git#dde535bafb2a16ce6b45d481e93a9dc6389c676b" +source = "git+https://git.xeondev.com/xavo95/unreal-niggery-rs.git#07330a27e1e49f0544f5fde51698c0a2300cc737" dependencies = [ "widestring", ] @@ -2694,9 +2695,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.0.8" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06f78313c985f2fba11100dd06d60dd402d0cabb458af4d94791b8e09c025323" +checksum = "4b0351ca625c7b41a8e4f9bb6c5d9755f67f62c2187ebedecacd9974674b271d" dependencies = [ "base64", "flate2", @@ -2712,9 +2713,9 @@ dependencies = [ [[package]] name = "ureq-proto" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64adb55464bad1ab1aa9229133d0d59d2f679180f4d15f0d9debe616f541f25e" +checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" dependencies = [ "base64", "http", @@ -2753,11 +2754,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.15.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", ] [[package]] @@ -2786,9 +2787,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -2799,6 +2800,63 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + [[package]] name = "webpki-roots" version = "0.26.8" @@ -2810,9 +2868,9 @@ dependencies = [ [[package]] name = "whoami" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" dependencies = [ "redox_syscall", "wasite", @@ -2974,7 +3032,7 @@ dependencies = [ [[package]] name = "wicked-waifus-protocol" version = "0.1.0" -source = "git+https://git.xeondev.com/wickedwaifus/wicked-waifus-proto#042098295ad1498bd24b7ccfa1d4bc7276fa5ca9" +source = "git+https://git.xeondev.com/wickedwaifus/wicked-waifus-proto#75096f1a9810546b0152c12e902378455ce2c269" dependencies = [ "byteorder", "crc32fast", @@ -2985,14 +3043,14 @@ dependencies = [ "serde", "serde_json", "syn", - "thiserror 1.0.69", + "thiserror 2.0.12", "wicked-waifus-protocol-derive", ] [[package]] name = "wicked-waifus-protocol-derive" version = "0.1.0" -source = "git+https://git.xeondev.com/wickedwaifus/wicked-waifus-proto#042098295ad1498bd24b7ccfa1d4bc7276fa5ca9" +source = "git+https://git.xeondev.com/wickedwaifus/wicked-waifus-proto#75096f1a9810546b0152c12e902378455ce2c269" dependencies = [ "proc-macro2", "quote", @@ -3030,9 +3088,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -3206,18 +3264,18 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags", ] @@ -3234,6 +3292,15 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + [[package]] name = "yoke" version = "0.7.5" @@ -3260,39 +3327,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ - "byteorder", - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive 0.8.23", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ "proc-macro2", "quote", @@ -3391,9 +3437,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.2.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b280484c454e74e5fff658bbf7df8fdbe7a07c6b2de4a53def232c15ef138f3a" +checksum = "27c03817464f64e23f6f37574b4fdc8cf65925b5bfd2b0f2aedf959791941f88" dependencies = [ "aes", "arbitrary", @@ -3402,17 +3448,16 @@ dependencies = [ "crc32fast", "crossbeam-utils", "deflate64", - "displaydoc", "flate2", + "getrandom 0.3.2", "hmac", "indexmap", "lzma-rs", "memchr", "pbkdf2", - "rand 0.8.5", "sha1", - "thiserror 2.0.12", "time", + "xz2", "zeroize", "zopfli", "zstd", @@ -3454,18 +3499,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.3" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.14+zstd.1.5.7" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/wicked-waifus-config-server/configserver.default.toml b/wicked-waifus-config-server/configserver.default.toml index fce5666..67ac32a 100644 --- a/wicked-waifus-config-server/configserver.default.toml +++ b/wicked-waifus-config-server/configserver.default.toml @@ -11,5 +11,5 @@ serve_dir_path = "data/assets/config-server" [asset_config] repository_url = "https://git.xeondev.com/wickedwaifus/wicked-waifus-config-server-files.git" -reference = "4d51547b78" +reference = "8f109f2724" discard_local_changes = true \ No newline at end of file diff --git a/wicked-waifus-data/src/misc_data.rs b/wicked-waifus-data/src/misc_data.rs index 1890a10..27a8f75 100644 --- a/wicked-waifus-data/src/misc_data.rs +++ b/wicked-waifus-data/src/misc_data.rs @@ -189,7 +189,9 @@ pub enum EntityType { ReboundPlateGear, RefreshGroup, RenderSpecifiedRange, + RenderSpecifiedRange2, Resurrection, + RewardNpc, RollingFireball, Rotator, SceneAura, @@ -219,6 +221,7 @@ pub enum EntityType { TeleControlGroup, Teleporter, TemporaryTeleporter, + TimedStrikeDevice, TimelineTrackController, TimeStop, Trample, @@ -227,6 +230,7 @@ pub enum EntityType { TreasureBox, Trigger, TriggerConditionListener, + TuanziNpc, TurntableController, VacuumCleaner, VarManager, @@ -242,6 +246,7 @@ pub enum EntityType { WaterCollection, WaterSpout, Weapon, + WindSource, } #[derive(Deserialize, PartialEq, Debug, Copy, Clone)] diff --git a/wicked-waifus-data/src/pb_components/action.rs b/wicked-waifus-data/src/pb_components/action.rs index 79d3e93..5a983bb 100644 --- a/wicked-waifus-data/src/pb_components/action.rs +++ b/wicked-waifus-data/src/pb_components/action.rs @@ -193,6 +193,10 @@ pub enum LeisureInteractOption { Manipulate(LeisureInteractOptionManipulate), Glide, GetUp, + FailurePose, + GameplayPose1, + GameplayPose2, + GameplayPose3 } #[derive(Deserialize, Debug, Clone)] @@ -456,6 +460,13 @@ pub struct TransitionOptionPlayMp4 { pub mp4_path: String, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct TransitionOptionCharacterDisplay { + // TODO: +} + #[derive(Deserialize, Debug, Clone)] #[serde(tag = "Type")] pub enum TransitionOption { // TODO: Extract @@ -463,6 +474,7 @@ pub enum TransitionOption { // TODO: Extract FadeInScreen(TransitionOptionFadeInScreen), Seamless(TransitionOptionSeamless), PlayMp4(TransitionOptionPlayMp4), + CharacterDisplay(TransitionOptionCharacterDisplay), } #[derive(Deserialize, Debug, Clone)] @@ -1264,6 +1276,13 @@ pub struct MemoirsSystem { pub id: i32, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct DangoCollect { + pub id: i32, +} + #[derive(Deserialize, Debug, Clone)] #[serde(tag = "Type")] pub enum SystemOption { @@ -1271,6 +1290,7 @@ pub enum SystemOption { CookSystem(SystemOptionUnlockOption), AtlasSystem(SystemOptionUnlockOption), MemoirsSystem(MemoirsSystem), + DangoCollect(DangoCollect), } #[derive(Deserialize, Debug, Clone)] @@ -1317,6 +1337,7 @@ pub enum Color { Yellow, Green, White, + Gray } #[derive(Deserialize, Debug, Clone)] @@ -1439,6 +1460,15 @@ pub struct PlayEffect { pub pos2: PlayEffectPos, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct PlayEffect2 { + pub r#type: String, // TODO: Convert to enum + pub path: String, + pub pos2: Option, +} + #[derive(Deserialize, Debug, Clone)] #[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] #[serde(rename_all = "PascalCase")] @@ -2131,6 +2161,102 @@ pub struct VehicleMoveWithPathLine { pub config: serde_json::Value, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct ClientPreEnableSubLevels { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct GuestOperateUiAnimation { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct ChangeEntityCamp { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct NewMoveWithSpline { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct DangoAbyssActivatePortal { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct DangoAbyssCreateRewardTreasureBox { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct DangoAbyssGotoNextFloor { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct DangoAbyssReceiveReward { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct SummonEntity { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct GetRewardByInteract { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct OpenQte { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct ActiveAntiGravitySafePoint { + #[cfg(feature = "strict_json_fields")] + pub config: serde_json::Value, +} + #[derive(Deserialize, Debug, Clone)] #[serde(tag = "Name")] pub enum Action { @@ -2213,6 +2339,7 @@ pub enum Action { SetSportsState(ActionFields), OpenSimpleGameplay(ActionFields), PlayEffect(ActionFields), + PlayEffect2(ActionFields), RestorePlayerCameraAdjustment(ActionFields), AdjustPlayerCamera(ActionFields), SetPlayerPos(ActionFields), @@ -2293,6 +2420,18 @@ pub enum Action { ResetLevelPlay(ActionFields), VehicleSprint(ActionFields), VehicleMoveWithPathLine(ActionFields), + ClientPreEnableSubLevels(ActionFields), + GuestOperateUiAnimation(ActionFields), + ChangeEntityCamp(ActionFields), + NewMoveWithSpline(ActionFields), + DangoAbyssActivatePortal(ActionFields), + DangoAbyssCreateRewardTreasureBox(ActionFields), + DangoAbyssGotoNextFloor(ActionFields), + DangoAbyssReceiveReward(ActionFields), + SummonEntity(ActionFields), + GetRewardByInteract(ActionFields), + OpenQte(ActionFields), + ActiveAntiGravitySafePoint(ActionFields), } #[derive(Deserialize, Debug, Clone)] diff --git a/wicked-waifus-data/src/pb_components/condition.rs b/wicked-waifus-data/src/pb_components/condition.rs index d3bc171..f9d9da3 100644 --- a/wicked-waifus-data/src/pb_components/condition.rs +++ b/wicked-waifus-data/src/pb_components/condition.rs @@ -233,7 +233,6 @@ pub struct OnlinePlayerConditionTargetOptionTypeParticipator { #[serde(rename_all = "PascalCase")] pub struct OnlinePlayerConditionTargetOptionTypeHost {} - #[derive(Deserialize, Debug, Clone)] #[serde(tag = "Type")] pub enum OnlinePlayerConditionTargetOption { @@ -490,6 +489,21 @@ pub struct FinishDungeon { pub condition: DungeonType, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckDungeonFinish { + pub dungeon_id: i32, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckDungeonHasSaveConfig { + pub dungeon_id: i32, + pub is_has_save_config: bool, +} + #[derive(Deserialize, Debug, Clone)] #[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] #[serde(rename_all = "PascalCase")] @@ -708,6 +722,15 @@ pub struct ReachArea { pub effect_path: Option, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase", deny_unknown_fields)] +pub struct EntityDeadPosition { + pub entity_id: i64, + pub var: Var, + pub is_ignore_rot: Option, +} + #[derive(Deserialize, Debug, Clone)] #[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] #[serde(rename_all = "PascalCase", deny_unknown_fields)] @@ -715,6 +738,7 @@ pub struct Kill { pub exist_targets: Vec, pub targets_to_awake: Vec, pub prefab_var: Option, + pub entity_dead_positions: Option>, } #[derive(Deserialize, Debug, Clone)] @@ -1075,6 +1099,42 @@ pub struct CheckActivityState { pub activity_state: i32, } +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckSubLevelState { + // TODO: + #[cfg(feature = "strict_json_fields")] + pub UiType: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckEntityGravityDirection { + // TODO: + #[cfg(feature = "strict_json_fields")] + pub UiType: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckTeleControlState { + // TODO: + #[cfg(feature = "strict_json_fields")] + pub UiType: serde_json::Value, +} + +#[derive(Deserialize, Debug, Clone)] +#[cfg_attr(feature = "strict_json_fields", serde(deny_unknown_fields))] +#[serde(rename_all = "PascalCase")] +pub struct CheckEntityReward { + // TODO: + #[cfg(feature = "strict_json_fields")] + pub UiType: serde_json::Value, +} + #[derive(Deserialize, Debug, Clone)] #[serde(tag = "Type")] pub enum Condition { @@ -1117,6 +1177,8 @@ pub enum Condition { EnterDungeon(EnterDungeon), LeaveDungeon(LeaveDungeon), FinishDungeon(FinishDungeon), + CheckDungeonFinish(CheckDungeonFinish), + CheckDungeonHasSaveConfig(CheckDungeonHasSaveConfig), CompareCalabashLevel(CompareCalabashLevel), CheckCalabashDevelopReward(CheckCalabashDevelopReward), CheckLordGymFinish(CheckLordGymFinish), @@ -1171,6 +1233,10 @@ pub enum Condition { ReadMail(ReadMail), ReceiveTelecom(ReceiveTelecom), CheckActivityState(CheckActivityState), + CheckSubLevelState(CheckSubLevelState), + CheckEntityGravityDirection(CheckEntityGravityDirection), + CheckTeleControlState(CheckTeleControlState), + CheckEntityReward(CheckEntityReward), } #[derive(Deserialize, Debug, Clone)] @@ -1179,4 +1245,4 @@ pub enum Condition { pub struct Conditions { pub r#type: i32, pub conditions: Vec, -} \ No newline at end of file +} diff --git a/wicked-waifus-data/src/pb_components/entity_state.rs b/wicked-waifus-data/src/pb_components/entity_state.rs index a4dcdb0..8fec93d 100644 --- a/wicked-waifus-data/src/pb_components/entity_state.rs +++ b/wicked-waifus-data/src/pb_components/entity_state.rs @@ -57,4 +57,5 @@ pub struct EntityStateComponent { pub cycle_states: Option>, pub prefab_performance_type: Option, pub lock_config: Option, + pub instant_actions_on_state_change: Option, } \ No newline at end of file diff --git a/wicked-waifus-data/src/pb_components/var.rs b/wicked-waifus-data/src/pb_components/var.rs index be76fec..867138c 100644 --- a/wicked-waifus-data/src/pb_components/var.rs +++ b/wicked-waifus-data/src/pb_components/var.rs @@ -54,7 +54,8 @@ pub enum VarType { Int, String, Float, - Prefab + Prefab, + Transform } #[derive(Deserialize, Debug, Clone)] diff --git a/wicked-waifus-game-server/gameserver.default.toml b/wicked-waifus-game-server/gameserver.default.toml index 210406c..ffc50c9 100644 --- a/wicked-waifus-game-server/gameserver.default.toml +++ b/wicked-waifus-game-server/gameserver.default.toml @@ -19,7 +19,7 @@ load_textmaps = true quadrant_size = 1000000 [asset_config] -asset_url = "https://git.xeondev.com/wickedwaifus/wicked-waifus-data/releases/download/pioneer_2.2.3/bundle.zip" +asset_url = "https://git.xeondev.com/wickedwaifus/wicked-waifus-data/releases/download/pioneer_2.3.1/bundle.zip" buffer_size = 268435456 [default_unlocks] diff --git a/wicked-waifus-game-server/src/logic/components/mod.rs b/wicked-waifus-game-server/src/logic/components/mod.rs index 8998a70..dd9c9ab 100644 --- a/wicked-waifus-game-server/src/logic/components/mod.rs +++ b/wicked-waifus-game-server/src/logic/components/mod.rs @@ -1,39 +1,43 @@ mod attribute; +mod autonomous; +mod concomitant; mod entity_config; mod equip; +mod fight_buff; +mod fsm; +mod interact; +mod monster_ai; mod movement; mod owner_player; +mod paragliding_skin; mod player_owned_entity_marker; mod position; +mod role_skin; +mod soar_wing_skin; +mod state_tag; +mod summoner; +mod tag; mod visibility; mod vision_skill; -mod monster_ai; -mod fsm; -mod role_skin; -mod fight_buff; -mod state_tag; -mod tag; -mod autonomous; -mod interact; -mod concomitant; -mod summoner; pub use attribute::Attribute; +pub use autonomous::Autonomous; +pub use concomitant::Concomitant; pub use entity_config::EntityConfig; pub use equip::Equip; +pub use fight_buff::FightBuff; +pub use fsm::Fsm; +pub use interact::Interact; +pub use monster_ai::MonsterAi; pub use movement::Movement; pub use owner_player::OwnerPlayer; +pub use paragliding_skin::ParaglidingSkin; pub use player_owned_entity_marker::PlayerOwnedEntityMarker; pub use position::Position; +pub use role_skin::RoleSkin; +pub use soar_wing_skin::SoarWingSkin; +pub use state_tag::StateTag; +pub use summoner::Summoner; +pub use tag::Tag; pub use visibility::Visibility; pub use vision_skill::VisionSkill; -pub use monster_ai::MonsterAi; -pub use fsm::Fsm; -pub use role_skin::RoleSkin; -pub use fight_buff::FightBuff; -pub use state_tag::StateTag; -pub use tag::Tag; -pub use autonomous::Autonomous; -pub use interact::Interact; -pub use concomitant::Concomitant; -pub use summoner::Summoner; diff --git a/wicked-waifus-game-server/src/logic/components/paragliding_skin.rs b/wicked-waifus-game-server/src/logic/components/paragliding_skin.rs new file mode 100644 index 0000000..47ffb0a --- /dev/null +++ b/wicked-waifus-game-server/src/logic/components/paragliding_skin.rs @@ -0,0 +1,11 @@ +use crate::logic::ecs::component::Component; + +pub struct ParaglidingSkin { + pub skin_id: i32, +} + +impl Component for ParaglidingSkin { + fn set_pb_data(&self, pb: &mut wicked_waifus_protocol::EntityPb) { + pb.paragliding_skin_id = self.skin_id + } +} diff --git a/wicked-waifus-game-server/src/logic/components/soar_wing_skin.rs b/wicked-waifus-game-server/src/logic/components/soar_wing_skin.rs new file mode 100644 index 0000000..c601dae --- /dev/null +++ b/wicked-waifus-game-server/src/logic/components/soar_wing_skin.rs @@ -0,0 +1,11 @@ +use crate::logic::ecs::component::Component; + +pub struct SoarWingSkin { + pub skin_id: i32, +} + +impl Component for SoarWingSkin { + fn set_pb_data(&self, pb: &mut wicked_waifus_protocol::EntityPb) { + pb.soar_wing_skin_id = self.skin_id + } +} diff --git a/wicked-waifus-game-server/src/logic/ecs/component.rs b/wicked-waifus-game-server/src/logic/ecs/component.rs index e501af9..b5a99e2 100644 --- a/wicked-waifus-game-server/src/logic/ecs/component.rs +++ b/wicked-waifus-game-server/src/logic/ecs/component.rs @@ -42,6 +42,8 @@ impl_component_container! { Interact; Concomitant; Summoner; + SoarWingSkin; + ParaglidingSkin; } pub trait Component { diff --git a/wicked-waifus-game-server/src/logic/handler/dummy.rs b/wicked-waifus-game-server/src/logic/handler/dummy.rs index 3169208..0f17700 100644 --- a/wicked-waifus-game-server/src/logic/handler/dummy.rs +++ b/wicked-waifus-game-server/src/logic/handler/dummy.rs @@ -51,4 +51,5 @@ dummy_handler! { EntityPatrolStop; Advice; PlayerTitleData; + LoadingConfig; } \ No newline at end of file diff --git a/wicked-waifus-game-server/src/logic/handler/friend.rs b/wicked-waifus-game-server/src/logic/handler/friend.rs index 7689e0a..7c93df3 100644 --- a/wicked-waifus-game-server/src/logic/handler/friend.rs +++ b/wicked-waifus-game-server/src/logic/handler/friend.rs @@ -78,7 +78,8 @@ fn get_bot_details() -> PlayerDetails { sdk_account_id: "Encore_PS5".to_string(), cross_play_enabled: true, limit_state: 0, - jtc: 0, - ztc2: 0, + player_title_id: 0, + cur_player_title_id: 0, + sex: 0, } } diff --git a/wicked-waifus-game-server/src/logic/handler/mod.rs b/wicked-waifus-game-server/src/logic/handler/mod.rs index a2d03bb..60ffc36 100644 --- a/wicked-waifus-game-server/src/logic/handler/mod.rs +++ b/wicked-waifus-game-server/src/logic/handler/mod.rs @@ -186,6 +186,7 @@ handle_request! { InputSettingUpdate; LanguageSettingUpdate; ServerPlayStationPlayOnlyState; + LoadingConfig; // Player (TODO: Review this on_..., port some from go) // ModifySignature; diff --git a/wicked-waifus-game-server/src/logic/handler/scene.rs b/wicked-waifus-game-server/src/logic/handler/scene.rs index ac4a153..5f9b195 100644 --- a/wicked-waifus-game-server/src/logic/handler/scene.rs +++ b/wicked-waifus-game-server/src/logic/handler/scene.rs @@ -54,7 +54,7 @@ pub fn on_access_path_time_server_config_request( response: &mut AccessPathTimeServerConfigResponse, ) { // TODO: port this from golang - response.access_path_time_server_config = vec![]; + response.pb = vec![]; } pub fn on_player_head_data_request( diff --git a/wicked-waifus-game-server/src/logic/player/mod.rs b/wicked-waifus-game-server/src/logic/player/mod.rs index 1c7975b..02b0c0c 100644 --- a/wicked-waifus-game-server/src/logic/player/mod.rs +++ b/wicked-waifus-game-server/src/logic/player/mod.rs @@ -49,7 +49,7 @@ use crate::logic::player::player_tutorials::{PlayerTutorial, PlayerTutorials}; use crate::logic::{ components::{ Attribute, EntityConfig, Equip, FightBuff, Movement, OwnerPlayer, PlayerOwnedEntityMarker, - Position, Visibility, VisionSkill, + Position, Visibility, VisionSkill, SoarWingSkin }, ecs::component::ComponentContainer, }; @@ -412,7 +412,6 @@ impl Player { role_id, entity_id: world.get_entity_id(role_id), on_stage_without_control: false, - // role_skin_id: role_skin.skin_id, } }) .collect(), diff --git a/wicked-waifus-game-server/src/logic/role/formation.rs b/wicked-waifus-game-server/src/logic/role/formation.rs index 6319b7f..3108d7e 100644 --- a/wicked-waifus-game-server/src/logic/role/formation.rs +++ b/wicked-waifus-game-server/src/logic/role/formation.rs @@ -8,7 +8,7 @@ pub struct RoleFormation { } // Will be updated every version -const DEFAULT_FORMATION: &[i32] = &[1203, 1502, 1607]; +const DEFAULT_FORMATION: &[i32] = &[5101, 1407, 1507]; impl RoleFormation { pub fn default_roles() -> &'static [i32] { diff --git a/wicked-waifus-game-server/src/logic/role/mod.rs b/wicked-waifus-game-server/src/logic/role/mod.rs index 98e76aa..09c674a 100644 --- a/wicked-waifus-game-server/src/logic/role/mod.rs +++ b/wicked-waifus-game-server/src/logic/role/mod.rs @@ -56,7 +56,7 @@ impl Role { #[inline(always)] pub fn get_all_roles_except_mc() -> Vec { role_info_data::iter() - .filter(|role| role.role_type == 1 && !MAIN_CHARACTER_ARRAY.contains(&role.id)) + .filter(|role| (role.role_type == 1 && !MAIN_CHARACTER_ARRAY.contains(&role.id)) || role.id == 5101) .map(|role| role.id) .collect() } diff --git a/wicked-waifus-game-server/src/logic/utils/action_utils.rs b/wicked-waifus-game-server/src/logic/utils/action_utils.rs index 0fb3365..74e7e05 100644 --- a/wicked-waifus-game-server/src/logic/utils/action_utils.rs +++ b/wicked-waifus-game-server/src/logic/utils/action_utils.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use wicked_waifus_protocol::{CommonTagData, EntityCommonTagNotify, EntityStateReadyNotify, ItemRewardNotify, Ls2, NormalItemUpdateNotify, RewardItemInfo}; +use wicked_waifus_protocol::{CommonTagData, EntityCommonTagNotify, EntityStateReadyNotify, ItemRewardNotify, NormalItemUpdateNotify, RewardItemInfo, WR}; use wicked_waifus_data::pb_components::action::{Action, ChangeSelfEntityState, UnlockTeleportTrigger}; use wicked_waifus_data::pb_components::entity_state::EntityStateComponent; @@ -103,6 +103,7 @@ pub fn perform_action(player: &mut Player, Action::SetSportsState(action) => unimplemented_action! { action }, Action::OpenSimpleGameplay(action) => unimplemented_action! { action }, Action::PlayEffect(action) => unimplemented_action! { action }, + Action::PlayEffect2(action) => unimplemented_action! { action }, Action::RestorePlayerCameraAdjustment(action) => unimplemented_action! { action }, Action::AdjustPlayerCamera(action) => unimplemented_action! { action }, Action::SetPlayerPos(action) => unimplemented_action! { action }, @@ -183,6 +184,18 @@ pub fn perform_action(player: &mut Player, Action::ResetLevelPlay(action) => unimplemented_action! { action }, Action::VehicleSprint(action) => unimplemented_action! { action }, Action::VehicleMoveWithPathLine(action) => unimplemented_action! { action }, + Action::ClientPreEnableSubLevels(action) => unimplemented_action! { action }, + Action::GuestOperateUiAnimation(action) => unimplemented_action! { action }, + Action::ChangeEntityCamp(action) => unimplemented_action! { action }, + Action::NewMoveWithSpline(action) => unimplemented_action! { action }, + Action::DangoAbyssActivatePortal(action) => unimplemented_action! { action }, + Action::DangoAbyssCreateRewardTreasureBox(action) => unimplemented_action! { action }, + Action::DangoAbyssGotoNextFloor(action) => unimplemented_action! { action }, + Action::DangoAbyssReceiveReward(action) => unimplemented_action! { action }, + Action::SummonEntity(action) => unimplemented_action! { action }, + Action::GetRewardByInteract(action) => unimplemented_action! { action }, + Action::OpenQte(action) => unimplemented_action! { action }, + Action::ActiveAntiGravitySafePoint(action) => unimplemented_action! { action }, } } @@ -208,8 +221,8 @@ fn collect_action(player: &mut Player, ); player.notify(NormalItemUpdateNotify { normal_item_list, no_tips: false }); // UpdateHandBookActiveStateMapNotify - let mut rewards: HashMap = HashMap::new(); - rewards.insert(0, Ls2 { + let mut rewards: HashMap = HashMap::new(); + rewards.insert(0, WR { item_list: drop.drop_preview.iter() .map(|(&id, &quantity)| RewardItemInfo { show_plan_id: 0, // TODO: Check how to get this diff --git a/wicked-waifus-game-server/src/logic/utils/condition_utils.rs b/wicked-waifus-game-server/src/logic/utils/condition_utils.rs index ea9fa50..58ac04b 100644 --- a/wicked-waifus-game-server/src/logic/utils/condition_utils.rs +++ b/wicked-waifus-game-server/src/logic/utils/condition_utils.rs @@ -59,6 +59,8 @@ pub fn check_condition(player: &Player, Condition::EnterDungeon(condition) => unimplemented_condition! { condition }, Condition::LeaveDungeon(condition) => unimplemented_condition! { condition }, Condition::FinishDungeon(condition) => unimplemented_condition! { condition }, + Condition::CheckDungeonFinish(condition) => unimplemented_condition! { condition }, + Condition::CheckDungeonHasSaveConfig(condition) => unimplemented_condition! { condition }, Condition::CompareCalabashLevel(condition) => unimplemented_condition! { condition }, Condition::CheckCalabashDevelopReward(condition) => unimplemented_condition! { condition }, Condition::CheckLordGymFinish(condition) => unimplemented_condition! { condition }, @@ -113,6 +115,10 @@ pub fn check_condition(player: &Player, Condition::ReadMail(condition) => unimplemented_condition! { condition }, Condition::ReceiveTelecom(condition) => unimplemented_condition! { condition }, Condition::CheckActivityState(condition) => unimplemented_condition! { condition }, + Condition::CheckSubLevelState(condition) => unimplemented_condition! { condition }, + Condition::CheckEntityGravityDirection(condition) => unimplemented_condition! { condition }, + Condition::CheckTeleControlState(condition) => unimplemented_condition! { condition }, + Condition::CheckEntityReward(condition) => unimplemented_condition! { condition }, } } diff --git a/wicked-waifus-game-server/src/logic/utils/world_util.rs b/wicked-waifus-game-server/src/logic/utils/world_util.rs index f92d135..4a0634e 100644 --- a/wicked-waifus-game-server/src/logic/utils/world_util.rs +++ b/wicked-waifus-game-server/src/logic/utils/world_util.rs @@ -9,7 +9,7 @@ use wicked_waifus_data::{ blueprint_config_data, template_config_data, EntityLogic, EntityType, LevelEntityConfigData, }; -use crate::logic::components::{Autonomous, Fsm, Interact, MonsterAi, StateTag, Tag}; +use crate::logic::components::{Autonomous, Fsm, Interact, MonsterAi, SoarWingSkin, StateTag, Tag}; use crate::logic::ecs::entity::EntityBuilder; use crate::logic::ecs::world::World; use crate::logic::math::Transform; @@ -86,6 +86,9 @@ macro_rules! create_player_entity_pb { .with(ComponentContainer::RoleSkin(RoleSkin { skin_id: role.skin_id, })) + .with(ComponentContainer::SoarWingSkin(SoarWingSkin { + skin_id: 84000001, + })) .with(ComponentContainer::FightBuff(buf_manager)) .build(); @@ -177,6 +180,9 @@ pub fn add_player_entities(player: &Player) { .with(ComponentContainer::RoleSkin(RoleSkin { skin_id: role.skin_id, })) + .with(ComponentContainer::SoarWingSkin(SoarWingSkin { + skin_id: 84000001, + })) .with(ComponentContainer::FightBuff(buf_manager)) .build(); @@ -262,7 +268,6 @@ fn build_player_info_list(world: &World) -> Vec { entity_id: id.into(), role_id: conf.config_id, on_stage_without_control: false, - // role_skin_id: role_skin.skin_id, }) .collect(), ..Default::default() diff --git a/wicked-waifus-gateway-server/security/client_public_key.pem b/wicked-waifus-gateway-server/security/client_public_key.pem index 4964fdf..72788af 100644 --- a/wicked-waifus-gateway-server/security/client_public_key.pem +++ b/wicked-waifus-gateway-server/security/client_public_key.pem @@ -1,8 +1,8 @@ -----BEGIN RSA PUBLIC KEY----- -MIIBCgKCAQEAwAcVNpSs+nDFnAY9W2AccjI2H9/heX8KJVj9/ABF00U72dqSQqKO -nrxCvp6P3yAAbhELFUbEkSPiPs67CC4gkg51k2gelQcyTADqV9hr3oYw4SnCLQCj -+np34uqjd3gfwPWLiYFI1KDzAFO8dlVEKVnQjOJcRYQDGx9XmGHy2OtaOoQOQlgx -iATkOyRXc4jtlpXtWvB6cAE0KSqgkmnfDxSN/tYP3ltprtdAQN8ZiYQrAEmKhnCj -KPi1TC/EWyWxRiZK5KmtLXWMNaODlL1XiqKQbHwo9bKz7I/z3bdb+/YtaqpiiwWO -IAJsAahEp/Os8Pc+BVruOTF7ZEUEMa2poQIDAQAB ------END RSA PUBLIC KEY----- +MIIBCgKCAQEAs7Rm+MkiLPLaD3TPldbEJGnTaMJDPIK/TOhd6MONnj4uCEvSuAQ8 +mZPp2QYXTOb8GWvFsWnHpRAB4lbTC81ri9lQWjokvsEZAXTSPYyE8G32s0kooqQH +b1dAgIDltONJiQFhBs7o7F4xnWvp8nk9H8NVI1EAgqeeK7h4idMuAucvv7svx+gB +F+HsS1+QbRDKH+V8mTS8XGGqn/QWgTa41DfylINsi8H7IYejCfX/wvWU3x0wN+u0 +1HxANV3YhBUC2M1ggQEb6GCJb58krCiJM5879fr21HIU1VSZAkKc3ggGaTD3p6X2 +7ceqBQj0+XUHtspDc348Lc92u3ZzFUUzGQIDAQAB +-----END RSA PUBLIC KEY----- \ No newline at end of file diff --git a/wicked-waifus-gateway-server/security/pre_2.2_client_public_key.pem b/wicked-waifus-gateway-server/security/pre_2.2_client_public_key.pem new file mode 100644 index 0000000..4964fdf --- /dev/null +++ b/wicked-waifus-gateway-server/security/pre_2.2_client_public_key.pem @@ -0,0 +1,8 @@ +-----BEGIN RSA PUBLIC KEY----- +MIIBCgKCAQEAwAcVNpSs+nDFnAY9W2AccjI2H9/heX8KJVj9/ABF00U72dqSQqKO +nrxCvp6P3yAAbhELFUbEkSPiPs67CC4gkg51k2gelQcyTADqV9hr3oYw4SnCLQCj ++np34uqjd3gfwPWLiYFI1KDzAFO8dlVEKVnQjOJcRYQDGx9XmGHy2OtaOoQOQlgx +iATkOyRXc4jtlpXtWvB6cAE0KSqgkmnfDxSN/tYP3ltprtdAQN8ZiYQrAEmKhnCj +KPi1TC/EWyWxRiZK5KmtLXWMNaODlL1XiqKQbHwo9bKz7I/z3bdb+/YtaqpiiwWO +IAJsAahEp/Os8Pc+BVruOTF7ZEUEMa2poQIDAQAB +-----END RSA PUBLIC KEY-----