add server console input

This commit is contained in:
Teatov 2025-02-15 02:02:05 +10:00
parent 809da74969
commit ed41775543
4 changed files with 40 additions and 8 deletions

View File

@ -28,6 +28,7 @@ Networker="*res://scripts/globals/networker.gd"
Cursorer="*res://scripts/globals/cursorer.gd"
Referencer="*res://scripts/globals/referencer.gd"
Inputer="*res://scripts/globals/inputer.gd"
Consoler="*res://scripts/globals/consoler.gd"
[debug]

View File

@ -3,6 +3,7 @@
[sub_resource type="SystemFont" id="SystemFont_mq8v6"]
font_names = PackedStringArray("Monospace")
font_weight = 600
subpixel_positioning = 0
[node name="RichTextLabel" type="RichTextLabel"]
clip_contents = false

View File

@ -0,0 +1,21 @@
extends Node
var input_thread: Thread
func _enter_tree() -> void:
input_thread = Thread.new()
input_thread.start(_process_input)
func _exit_tree() -> void:
input_thread.wait_to_finish()
func _process_input() -> void:
var text := ""
while text != "quit":
print("Insert some text: ")
text = OS.read_string_from_stdin().strip_edges()
Referencer.chat.send_server_message(text)
get_tree().quit()

View File

@ -64,19 +64,28 @@ func close() -> void:
_msg_scroll.vertical_scroll_mode = ScrollContainer.SCROLL_MODE_SHOW_NEVER
func send_server_message(message: String) -> void:
_send_message.rpc(message, true)
@rpc("any_peer", "call_local", "reliable", 1)
func _send_message(message: String) -> void:
var player_name := (
Networker.players[multiplayer.get_remote_sender_id()]["name"] as String
)
var message_node := _make_message_node(player_name, message)
func _send_message(message: String, server: bool = false) -> void:
var player_name := ""
if not server:
player_name = (
Networker.players[multiplayer.get_remote_sender_id()]["name"] as String
)
var message_node := _make_message_node(message, player_name)
_msg_container.add_child(message_node)
print(player_name + ": " + message)
func _make_message_node(player_name: String, message: String) -> RichTextLabel:
func _make_message_node(message: String, player_name: String = "") -> RichTextLabel:
var node := _chat_message_scene.instantiate() as RichTextLabel
node.text = "[b]" + player_name + ":[/b] " + _escape_bbcode_tags(message)
if player_name:
node.text = "[b]" + player_name + ":[/b] " + _escape_bbcode_tags(message)
else:
node.text = message
return node
@ -105,7 +114,7 @@ func _on_message_edit_text_submitted(message: String) -> void:
_message_history.append(message)
_history_position = 0
close()
_send_message.rpc(message)
_send_message.rpc(message, false)
func _on_message_margin_minimum_size_changed() -> void: