Refactor: chat sanitization into NetworkChat proc

This commit is contained in:
Toes | Robin Ury 2026-08-20 16:38:04 -04:00
parent 97c74323d8
commit 00ec796c7a
No known key found for this signature in database
GPG key ID: A5DAA8C945CA3941
2 changed files with 4 additions and 5 deletions

View file

@ -15,8 +15,8 @@ enum Kind { PLAYER, SYSTEM }
static func sanitize_body(value: Variant) -> String:
if typeof(value) != TYPE_STRING:
return ""
var result: String = str(value).replace("\r", " ").replace("\n", " ")
result = result.replace("\t", " ").strip_edges()
var strippable_whitespace = RegEx.create_from_string("^[\\s\\p{Z}\\p{Cf}\\x{2800}]+|[\\s\\p{Z}\\p{Cf}\\x{2800}]+$")
var result := strippable_whitespace.sub(value, "")
if result.is_empty() or result.length() > MAX_VISIBLE_CHARACTERS:
return ""
if result.to_utf8_buffer().size() > MAX_UTF8_BYTES:

View file

@ -893,15 +893,14 @@ func _on_entry_text_submitted(_value: String) -> void:
func _send() -> void:
if _send_pending:
return
var strippable_spaces := RegEx.create_from_string("(^\\s+|\\s+$)")
var body := strippable_spaces.sub(_entry.text, "", true)
var body := NetworkChatProtocol.sanitize_body(_entry.text)
if body.is_empty():
close_chat()
return
if _handle_editor_world_command(body):
return
_send_pending = true
_pending_send_body = NetworkChatProtocol.sanitize_body(body)
_pending_send_body = body
_entry.editable = false
if not _service.send_local_message(
body,