mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 01:02:34 +00:00
Play now button functional, server list Server now rejects 'players' with nicks Nod and GDI to correct player count, implemented show folder for Games list
This commit is contained in:
@@ -22,7 +22,7 @@ class W3DHub
|
||||
@data = hash
|
||||
|
||||
@teams = @data[:teams]&.map { |t| Team.new(t) }
|
||||
@players = @data[:players]&.map { |t| Player.new(t) }
|
||||
@players = @data[:players]&.select { |t| t[:nick] != "Nod" && t[:nick] != "GDI" }&.map { |t| Player.new(t) }
|
||||
|
||||
@name = @data[:name]
|
||||
@password = @data[:password] || false
|
||||
|
||||
@@ -94,13 +94,32 @@ class W3DHub
|
||||
def show_folder(app_id, channel, type)
|
||||
puts "Show Folder Request: #{app_id} -> #{type.inspect}"
|
||||
|
||||
case type
|
||||
app_data = installed?(app_id, channel)
|
||||
|
||||
return false unless app_data
|
||||
|
||||
cmd = if W3DHub.windows?
|
||||
"explorer"
|
||||
elsif W3DHub.linux?
|
||||
"xdg-open"
|
||||
elsif W3DHub.mac?
|
||||
"open"
|
||||
end
|
||||
|
||||
path = case type
|
||||
when :installation
|
||||
app_data[:install_directory]
|
||||
when :user_data
|
||||
app_data[:install_directory]
|
||||
when :screenshots
|
||||
app_data[:install_directory]
|
||||
else
|
||||
warn "Unknown folder type: #{type.inspect}"
|
||||
raise "Unknown folder type: #{type.inspect}"
|
||||
end
|
||||
|
||||
path.gsub!("/", "\\") if W3DHub.windows?
|
||||
|
||||
system("#{cmd} \"#{path}\"")
|
||||
end
|
||||
|
||||
def wine_command(app_id, channel)
|
||||
@@ -132,6 +151,18 @@ class W3DHub
|
||||
end
|
||||
end
|
||||
|
||||
def play_now(app_id, channel)
|
||||
app_data = installed?(app_id, channel)
|
||||
|
||||
return false unless app_data
|
||||
|
||||
server = Store.server_list.select { |server| server.game == app_id && !server.status.password }&.first
|
||||
|
||||
return false unless server
|
||||
|
||||
join_server(app_id, channel, server)
|
||||
end
|
||||
|
||||
def auto_import
|
||||
return unless W3DHub.windows?
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ class W3DHub
|
||||
|
||||
if Store.application_manager.installed?(game.id, channel.id)
|
||||
button "<b>#{I18n.t(:"interface.play_now")}</b>", margin_left: 24 do
|
||||
Store.application_manager.run(game.id, channel.id)
|
||||
Store.application_manager.play_now(game.id, channel.id)
|
||||
end
|
||||
|
||||
button "<b>#{I18n.t(:"interface.single_player")}</b>", margin_left: 24 do
|
||||
|
||||
Reference in New Issue
Block a user