mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 17:22:35 +00:00
Improved server nickname validation
This commit is contained in:
@@ -448,7 +448,11 @@ class W3DHub
|
|||||||
prefill: Store.settings[:server_list_username],
|
prefill: Store.settings[:server_list_username],
|
||||||
accept_callback: accept_callback,
|
accept_callback: accept_callback,
|
||||||
cancel_callback: cancel_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
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class W3DHub
|
|||||||
|
|
||||||
stack(width: 0.5)
|
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)
|
if @options[:valid_callback]&.call(@prompt_entry.value)
|
||||||
pop_state
|
pop_state
|
||||||
@options[:accept_callback]&.call(@prompt_entry.value)
|
@options[:accept_callback]&.call(@prompt_entry.value)
|
||||||
@@ -38,6 +38,32 @@ class W3DHub
|
|||||||
end
|
end
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
|
|||||||
Reference in New Issue
Block a user