add escaping bbcode tags to chat

This commit is contained in:
Teatov 2025-02-15 00:56:09 +10:00
parent 1db73736c4
commit 42ef398544

View File

@ -1,6 +1,10 @@
class_name Chat class_name Chat
extends Menu extends Menu
const BBCODE_TAGS_TO_ESCAPE: PackedStringArray = [
"url", "img", "font", "dropcap", "opentype_features", "outline_size"
]
var _chat_message_scene := preload("res://scenes/ui/chat_message.tscn") var _chat_message_scene := preload("res://scenes/ui/chat_message.tscn")
var _message_history: PackedStringArray = [] var _message_history: PackedStringArray = []
@ -72,7 +76,7 @@ func _send_message(message: String) -> void:
func _make_message_node(player_name: String, message: String) -> RichTextLabel: func _make_message_node(player_name: String, message: String) -> RichTextLabel:
var node := _chat_message_scene.instantiate() as RichTextLabel var node := _chat_message_scene.instantiate() as RichTextLabel
node.text = "[b]" + player_name + ":[/b] " + message node.text = "[b]" + player_name + ":[/b] " + _escape_bbcode_tags(message)
return node return node
@ -85,6 +89,14 @@ func _set_message_from_history() -> void:
_message_edit.text = "" _message_edit.text = ""
func _escape_bbcode_tags(message: String) -> String:
for tag_name in BBCODE_TAGS_TO_ESCAPE:
var tag := "[" + tag_name
if tag in message:
message = message.replace(tag, "[lb]" + tag_name)
return message
func _on_message_edit_text_submitted(message: String) -> void: func _on_message_edit_text_submitted(message: String) -> void:
if _message_edit.text == "": if _message_edit.text == "":
return return