Fix musica sc script handle

This commit is contained in:
2025-11-03 08:38:47 +08:00
parent 9f920e3573
commit f363a8a24a

View File

@@ -76,8 +76,10 @@ impl Script for MusicaScript {
} }
// .message <id> <voice> <name> <text> // .message <id> <voice> <name> <text>
if parts[0] == ".message" && parts.len() >= 5 { if parts[0] == ".message" && parts.len() >= 5 {
let name = parts[3].clone(); let name_index = parts.len() - 2;
let text = parts[4].clone(); let text_index = parts.len() - 1;
let name = parts[name_index].clone();
let text = parts[text_index].clone();
let message = Message { let message = Message {
name: if name.is_empty() { None } else { Some(name) }, name: if name.is_empty() { None } else { Some(name) },
message: text, message: text,
@@ -110,7 +112,9 @@ impl Script for MusicaScript {
Some(m) => m, Some(m) => m,
None => return Err(anyhow::anyhow!("Not enough messages to import.")), None => return Err(anyhow::anyhow!("Not enough messages to import.")),
}; };
if !parts[3].is_empty() { let name_index = parts.len() - 2;
let text_index = parts.len() - 1;
if !parts[name_index].is_empty() {
let mut name = match &m.name { let mut name = match &m.name {
Some(n) => n.clone(), Some(n) => n.clone(),
None => { None => {
@@ -125,7 +129,7 @@ impl Script for MusicaScript {
name = name.replace(k, v); name = name.replace(k, v);
} }
} }
parts[3] = name.replace(' ', "\u{3000}"); parts[name_index] = name.replace(' ', "\u{3000}");
} }
let mut text = m.message.clone(); let mut text = m.message.clone();
if let Some(repl) = replacement { if let Some(repl) = replacement {
@@ -133,7 +137,7 @@ impl Script for MusicaScript {
text = text.replace(k, v); text = text.replace(k, v);
} }
} }
parts[4] = text.replace(' ', "\u{3000}"); parts[text_index] = text.replace(' ', "\u{3000}");
me = mes.next(); me = mes.next();
} }
let line = parts.join(" "); let line = parts.join(" ");