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:
2021-11-22 22:02:01 -06:00
parent 74fc6bc24c
commit 6dd1966384
3 changed files with 35 additions and 4 deletions

View File

@@ -22,7 +22,7 @@ class W3DHub
@data = hash @data = hash
@teams = @data[:teams]&.map { |t| Team.new(t) } @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] @name = @data[:name]
@password = @data[:password] || false @password = @data[:password] || false

View File

@@ -94,13 +94,32 @@ class W3DHub
def show_folder(app_id, channel, type) def show_folder(app_id, channel, type)
puts "Show Folder Request: #{app_id} -> #{type.inspect}" puts "Show Folder Request: #{app_id} -> #{type.inspect}"
case type app_data = installed?(app_id, channel)
when :installation
when :user_data return false unless app_data
when :screenshots
else cmd = if W3DHub.windows?
warn "Unknown folder type: #{type.inspect}" "explorer"
elsif W3DHub.linux?
"xdg-open"
elsif W3DHub.mac?
"open"
end end
path = case type
when :installation
app_data[:install_directory]
when :user_data
app_data[:install_directory]
when :screenshots
app_data[:install_directory]
else
raise "Unknown folder type: #{type.inspect}"
end
path.gsub!("/", "\\") if W3DHub.windows?
system("#{cmd} \"#{path}\"")
end end
def wine_command(app_id, channel) def wine_command(app_id, channel)
@@ -132,6 +151,18 @@ class W3DHub
end end
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 def auto_import
return unless W3DHub.windows? return unless W3DHub.windows?

View File

@@ -129,7 +129,7 @@ class W3DHub
if Store.application_manager.installed?(game.id, channel.id) if Store.application_manager.installed?(game.id, channel.id)
button "<b>#{I18n.t(:"interface.play_now")}</b>", margin_left: 24 do 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 end
button "<b>#{I18n.t(:"interface.single_player")}</b>", margin_left: 24 do button "<b>#{I18n.t(:"interface.single_player")}</b>", margin_left: 24 do