mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 09:12:35 +00:00
Improved server nickname validation
This commit is contained in:
@@ -448,7 +448,11 @@ class W3DHub
|
||||
prefill: Store.settings[:server_list_username],
|
||||
accept_callback: accept_callback,
|
||||
cancel_callback: cancel_callback,
|
||||
valid_callback: proc { |entry| entry.length.positive? }
|
||||
# See: https://gitlab.com/danpaul88/brenbot/-/blob/master/Source/renlog.pm#L136-175
|
||||
valid_callback: proc do |entry|
|
||||
entry.length > 1 && entry.length < 30 && (entry =~ /(:|!|&|%| )/i).nil? &&
|
||||
(entry =~ /[\001\002\037]/).nil? && (entry =~ /\\/).nil?
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ class W3DHub
|
||||
|
||||
stack(width: 0.5)
|
||||
|
||||
button "Accept", width: 0.25 do
|
||||
@accept_button = button "Accept", width: 0.25 do
|
||||
if @options[:valid_callback]&.call(@prompt_entry.value)
|
||||
pop_state
|
||||
@options[:accept_callback]&.call(@prompt_entry.value)
|
||||
@@ -38,6 +38,32 @@ class W3DHub
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@prompt_entry.subscribe(:changed) do
|
||||
if @options[:valid_callback]
|
||||
if @options[:valid_callback].call(@prompt_entry.value)
|
||||
c = W3DHub::THEME[:Button][:border_color]
|
||||
|
||||
@prompt_entry.style.border_color = c
|
||||
@prompt_entry.style.default[:border_color] = c
|
||||
@prompt_entry.style.hover[:border_color] = c
|
||||
@prompt_entry.style.active[:border_color] = c
|
||||
|
||||
@accept_button.enabled = true
|
||||
else
|
||||
c = 0xff_ff0000
|
||||
|
||||
@prompt_entry.style.border_color = c
|
||||
@prompt_entry.style.default[:border_color] = c
|
||||
@prompt_entry.style.hover[:border_color] = c
|
||||
@prompt_entry.style.active[:border_color] = c
|
||||
|
||||
@accept_button.enabled = false
|
||||
end
|
||||
|
||||
@prompt_entry.set_border_color
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def draw
|
||||
|
||||
Reference in New Issue
Block a user