Skip to content
This repository was archived by the owner on Jul 22, 2026. It is now read-only.

Commit 6999e38

Browse files
ridit-jangraclaude
andcommitted
fix: show server-censored chat for sender, surface bans on login screen
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent fe0fddc commit 6999e38

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

scripts/login.gd

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ func _ready() -> void:
99

1010
login_button.pressed.connect(_on_login_pressed)
1111

12-
if NetworkManager.display_name != "":
12+
if NetworkManager.ban_message != "":
13+
status_label.text = NetworkManager.ban_message
14+
NetworkManager.ban_message = ""
15+
elif NetworkManager.display_name != "":
1316
status_label.text = "Logged in as: " + NetworkManager.display_name + " — connecting..."
1417
else:
1518
status_label.text = "Not logged in"

scripts/network_manager.gd

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ var session_token: String = ""
3030
var user_id: String = ""
3131
var display_name: String = ""
3232
var is_new_account: bool = false
33+
var ban_message: String = ""
3334
var local_skin: String = "cvc:1"
3435
var current_scene_name: String = "village"
3536
var current_lobby_id: String = ""
@@ -112,11 +113,17 @@ func _process(_delta: float) -> void:
112113
else:
113114
_handle_voice_packet(pkt)
114115
elif state == WebSocketPeer.STATE_CLOSED:
115-
if _connected:
116+
var was_connected := _connected
117+
_connected = false
118+
if was_connected:
116119
var code = _socket.get_close_code()
117120
if code == 4001:
118121
clear_session()
119-
_connected = false
122+
elif code == 4003:
123+
ban_message = _socket.get_close_reason()
124+
if ban_message == "":
125+
ban_message = "You are banned from Pixl."
126+
get_tree().change_scene_to_file("res://scenes/login.tscn")
120127
emit_signal("disconnected_from_server")
121128

122129
func start_login() -> void:
@@ -262,8 +269,7 @@ func _handle_message(raw: String) -> void:
262269
local_skin = sk
263270
emit_signal("player_skin_changed", uid, sk)
264271
"chat":
265-
if String(json["userId"]) != user_id:
266-
emit_signal("chat_message", json["userId"], String(json.get("displayName", "")), String(json.get("text", "")))
272+
emit_signal("chat_message", json["userId"], String(json.get("displayName", "")), String(json.get("text", "")))
267273
"emote":
268274
emit_signal("emote_received", json["userId"], String(json.get("key", "")))
269275
"npc_init":
@@ -359,7 +365,6 @@ func send_chat(text: String) -> void:
359365
if not _is_socket_open():
360366
return
361367
_socket.send_text(JSON.stringify({"type": "chat", "text": text}))
362-
emit_signal("chat_message", user_id, display_name, text)
363368

364369
func send_scene_change(scene_name: String) -> void:
365370
var actual := scene_name

0 commit comments

Comments
 (0)