mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-15 08:42:34 +00:00
Added functional support for developer multi join
This commit is contained in:
@@ -235,11 +235,11 @@ class W3DHub
|
||||
end
|
||||
end
|
||||
|
||||
def join_server(app_id, channel, server, password = nil)
|
||||
if installed?(app_id, channel) && Store.settings[:server_list_username].to_s.length.positive?
|
||||
def join_server(app_id, channel, server, username = Store.settings[:server_list_username], password = nil, multi = false)
|
||||
if installed?(app_id, channel) && username.to_s.length.positive?
|
||||
run(
|
||||
app_id, channel,
|
||||
"+connect #{server.address}:#{server.port} +netplayername #{Store.settings[:server_list_username]}#{password ? " +password \"#{password}\"" : ""}"
|
||||
"+connect #{server.address}:#{server.port} +netplayername #{username}#{password ? " +password \"#{password}\"" : ""}#{multi ? " +multi" : ""}"
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -81,15 +81,19 @@ class W3DHub
|
||||
)
|
||||
end
|
||||
|
||||
def self.join_server(server, password)
|
||||
def self.join_server(server:, username: Store.settings[:server_list_username], password: nil, multi: false)
|
||||
if (
|
||||
(server.status.password && password.length.positive?) ||
|
||||
!server.status.password) &&
|
||||
Store.settings[:server_list_username].to_s.length.positive?
|
||||
username.to_s.length.positive?
|
||||
|
||||
Store.application_manager.join_server(
|
||||
server.game,
|
||||
server.channel, server, password
|
||||
server.channel,
|
||||
server,
|
||||
username,
|
||||
password,
|
||||
multi
|
||||
)
|
||||
else
|
||||
CyberarmEngine::Window.instance.push_state(W3DHub::States::MessageDialog, type: "?", title: "?", message: "?")
|
||||
|
||||
@@ -410,11 +410,11 @@ class W3DHub
|
||||
if server.status.password
|
||||
W3DHub.prompt_for_password(
|
||||
accept_callback: proc do |password|
|
||||
W3DHub.join_server(server, password)
|
||||
W3DHub.join_server(server: server, password: password)
|
||||
end
|
||||
)
|
||||
else
|
||||
W3DHub.join_server(server, nil)
|
||||
W3DHub.join_server(server: server)
|
||||
end
|
||||
end
|
||||
)
|
||||
@@ -422,18 +422,24 @@ class W3DHub
|
||||
if server.status.password
|
||||
W3DHub.prompt_for_password(
|
||||
accept_callback: proc do |password|
|
||||
W3DHub.join_server(server, password)
|
||||
W3DHub.join_server(server: server, password: password)
|
||||
end
|
||||
)
|
||||
else
|
||||
W3DHub.join_server(server, nil)
|
||||
W3DHub.join_server(server: server)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if W3DHUB_DEVELOPER
|
||||
list_box(items: (1..12).to_a.map(&:to_s), margin_left: 16, width: 72, tip: "Number of game clients", enabled: (game_installed && !game_updatable), **TESTING_BUTTON)
|
||||
button "Multijoin", tip: "Launch multiple clients with configured username_\#{number}", enabled: (game_installed && !game_updatable), **TESTING_BUTTON
|
||||
client_instances = list_box(items: (1..12).to_a.map(&:to_s), margin_left: 16, width: 72, tip: "Number of game clients", enabled: (game_installed && !game_updatable), **TESTING_BUTTON)
|
||||
button("Multijoin", tip: "Launch multiple clients with configured username_\#{number}", enabled: (game_installed && !game_updatable), **TESTING_BUTTON) do
|
||||
username = Store.settings[:server_list_username]
|
||||
|
||||
client_instances.value.to_i.times do |i|
|
||||
W3DHub.join_server(server: server, username: format("%s_%d", username, i), multi: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
flow(fill: true)
|
||||
|
||||
Reference in New Issue
Block a user