Skip to content

Commit 93f1995

Browse files
committed
Fix views
1 parent 9b69fb6 commit 93f1995

File tree

5 files changed

+155
-16
lines changed

5 files changed

+155
-16
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "majsoul_max_rs"
3-
version = "0.3.6"
3+
version = "0.3.7"
44
edition = "2021"
55

66
[lib]

liqi_config/settings.mod.json

+132-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,142 @@
11
{
2-
"character": 200001,
3-
"characters": {},
2+
"mainChar": 200001,
3+
"charSkin": {
4+
"200087": 408701,
5+
"200040": 404001,
6+
"200067": 406701,
7+
"200090": 409001,
8+
"200070": 407001,
9+
"200052": 405201,
10+
"200028": 402801,
11+
"200079": 407901,
12+
"200060": 406001,
13+
"200016": 401601,
14+
"200068": 406801,
15+
"200051": 405101,
16+
"200043": 404301,
17+
"200019": 401901,
18+
"200082": 408201,
19+
"200005": 400501,
20+
"200065": 406501,
21+
"200085": 408501,
22+
"200029": 402901,
23+
"200012": 401201,
24+
"200022": 402201,
25+
"200042": 404201,
26+
"200064": 406401,
27+
"200001": 400101,
28+
"200061": 406101,
29+
"200071": 407101,
30+
"200056": 405601,
31+
"200084": 408401,
32+
"200054": 405401,
33+
"200006": 400601,
34+
"200063": 406301,
35+
"200041": 404101,
36+
"200077": 407701,
37+
"200013": 401301,
38+
"200020": 402001,
39+
"200046": 404601,
40+
"200050": 405001,
41+
"200023": 402301,
42+
"200072": 407201,
43+
"200017": 401701,
44+
"200021": 402101,
45+
"200011": 401101,
46+
"200047": 404701,
47+
"200044": 404401,
48+
"200004": 400401,
49+
"200010": 401001,
50+
"200033": 403301,
51+
"200002": 400201,
52+
"200049": 404901,
53+
"200037": 403701,
54+
"200045": 404501,
55+
"200038": 403801,
56+
"200083": 408301,
57+
"200088": 408801,
58+
"200081": 408101,
59+
"200034": 403401,
60+
"200074": 407401,
61+
"200026": 402601,
62+
"200018": 401801,
63+
"200032": 403201,
64+
"200059": 405901,
65+
"200014": 401401,
66+
"200027": 402701,
67+
"200057": 405701,
68+
"200066": 406601,
69+
"200025": 402501,
70+
"200069": 406901,
71+
"200003": 400301,
72+
"200008": 400801,
73+
"200007": 400701,
74+
"200086": 408601,
75+
"200055": 405501,
76+
"200009": 400901,
77+
"200078": 407801,
78+
"200080": 408001,
79+
"200073": 407301,
80+
"200058": 405801,
81+
"200076": 407601,
82+
"200036": 403601,
83+
"200024": 402401,
84+
"200053": 405301,
85+
"200075": 407501,
86+
"200031": 403101,
87+
"200048": 404801,
88+
"200015": 401501,
89+
"200030": 403001,
90+
"200035": 403501,
91+
"200062": 406201,
92+
"200039": 403901,
93+
"200089": 408901
94+
},
495
"nickname": "",
596
"starCharacter": [],
697
"hintSwitch": 1,
798
"title": 0,
899
"loadingBg": [],
9100
"emojiSwitch": 0,
10-
"views": [[], [], [], [], [], [], [], [], [], []],
11-
"view": 0,
101+
"viewsPresets": [
102+
[
103+
{
104+
"slot": 0,
105+
"item_id": 305001,
106+
"type": 0,
107+
"item_id_list": []
108+
},
109+
{
110+
"slot": 1,
111+
"item_id": 305007,
112+
"type": 0,
113+
"item_id_list": []
114+
},
115+
{
116+
"slot": 2,
117+
"item_id": 305010,
118+
"type": 0,
119+
"item_id_list": []
120+
},
121+
{
122+
"slot": 3,
123+
"item_id": 305011,
124+
"type": 0,
125+
"item_id_list": []
126+
}
127+
],
128+
[],
129+
[],
130+
[],
131+
[],
132+
[],
133+
[],
134+
[],
135+
[],
136+
[]
137+
],
138+
"presetIndex": 0,
12139
"showServer": 1,
13140
"autoUpdate": 1,
14141
"version": "v0.11.39.w"
15-
}
142+
}

src/modder.rs

+17-5
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ impl Modder {
158158
assert!(PARSER.read().await.respond_type.contains_key(&msg_id));
159159
let method_name = PARSER.read().await.respond_type[&msg_id].0.clone();
160160
let mut modified_data: Option<Vec<u8>> = None;
161-
info!("Respond method: {}", method_name);
162161
match method_name.as_ref() {
163162
".lq.Lobby.fetchCharacterInfo" => {
164163
let mut msg = lq::ResCharacterInfo::decode(msg_block.data.as_ref())?;
@@ -227,14 +226,18 @@ impl Modder {
227226
".lq.FastTest.authGame" => {
228227
let mut msg = lq::ResAuthGame::decode(msg_block.data.as_ref())?;
229228
if MOD_SETTINGS.read().await.hint_on() {
230-
msg.game_config
229+
if let Some(r) = msg
230+
.game_config
231231
.as_mut()
232232
.and_then(|c| c.mode.as_mut()?.detail_rule.as_mut())
233-
.map(|r| r.bianjietishi = true);
233+
{
234+
r.bianjietishi = true;
235+
}
234236
}
235237
for p in &mut msg.players {
236238
self.change_player(p).await;
237239
}
240+
info!("Respond authGame: {:?}", msg);
238241
modified_data = Some(msg.encode_to_vec());
239242
}
240243
".lq.Lobby.fetchTitleList" => {
@@ -334,6 +337,7 @@ impl Modder {
334337
_ => {}
335338
}
336339
if let Some(data) = modified_data {
340+
info!("Respond method: {}", method_name);
337341
msg_block.data = data;
338342
let mut buf = vec![buf[0], buf[1], buf[2]];
339343
buf.extend(msg_block.encode_to_vec());
@@ -388,6 +392,12 @@ impl Modder {
388392
p.nickname = MOD_SETTINGS.read().await.nickname.clone();
389393
}
390394
p.title = MOD_SETTINGS.read().await.title;
395+
p.views.clear();
396+
p.views.extend(
397+
MOD_SETTINGS.read().await.views_presets
398+
[MOD_SETTINGS.read().await.preset_index as usize]
399+
.clone(),
400+
);
391401
}
392402
}
393403
if MOD_SETTINGS.read().await.show_server() {
@@ -417,7 +427,9 @@ impl Modder {
417427
}
418428
character.views.clear();
419429
character.views.extend(
420-
MOD_SETTINGS.read().await.views_presets[MOD_SETTINGS.read().await.preset_index as usize].clone(),
430+
MOD_SETTINGS.read().await.views_presets
431+
[MOD_SETTINGS.read().await.preset_index as usize]
432+
.clone(),
421433
);
422434
character
423435
}
@@ -504,7 +516,7 @@ impl Modder {
504516
".lq.Lobby.saveCommonViews" => {
505517
fake = true;
506518
let msg = lq::ReqSaveCommonViews::decode(msg_block.data.as_ref())?;
507-
MOD_SETTINGS.write().await.views_presets[msg.save_index as usize] = msg.views.clone();
519+
MOD_SETTINGS.write().await.views_presets[msg.save_index as usize] = msg.views;
508520
if msg.is_use == 1 {
509521
MOD_SETTINGS.write().await.preset_index = msg.save_index;
510522
}

src/settings.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,9 @@ pub async fn get_lqbin_prefix(version: &str) -> Result<String> {
236236

237237
#[derive(Serialize, Deserialize, Debug, Clone)]
238238
pub struct ModSettings {
239-
#[serde(default)]
239+
#[serde(rename = "mainChar")]
240240
pub main_char: u32,
241-
#[serde(default)]
241+
#[serde(rename = "charSkin")]
242242
pub char_skin: HashMap<u32, u32>,
243243
#[serde(default)]
244244
pub nickname: String,
@@ -252,9 +252,9 @@ pub struct ModSettings {
252252
pub loading_bg: Vec<u32>,
253253
#[serde(rename = "emojiSwitch")]
254254
emoji_switch: i32,
255-
#[serde(default)]
255+
#[serde(rename = "viewsPresets")]
256256
pub views_presets: [Vec<ViewSlot>; 10],
257-
#[serde(default)]
257+
#[serde(rename = "presetIndex")]
258258
pub preset_index: u32,
259259
#[serde(rename = "showServer")]
260260
show_server: i32,

0 commit comments

Comments
 (0)