mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 09:12:35 +00:00
Swapped out cncnet.org server list for w3dhub's
This commit is contained in:
65
lib/api/server_list_server.rb
Normal file
65
lib/api/server_list_server.rb
Normal file
@@ -0,0 +1,65 @@
|
||||
class W3DHub
|
||||
class Api
|
||||
class ServerListServer
|
||||
attr_reader :id, :game, :address, :port, :region, :status
|
||||
|
||||
def initialize(hash)
|
||||
@data = hash
|
||||
|
||||
@id = @data[:id]
|
||||
@game = @data[:game]
|
||||
@address = @data[:address]
|
||||
@port = @data[:port]
|
||||
@region = @data[:region]
|
||||
|
||||
@status = @data[:status] ? Status.new(@data[:status]) : nil
|
||||
end
|
||||
|
||||
class Status
|
||||
attr_reader :name, :map, :max_players, :player_count, :started, :remaining, :teams, :players
|
||||
|
||||
def initialize(hash)
|
||||
@data = hash
|
||||
|
||||
@teams = @data[:teams]&.map { |t| Team.new(t) }
|
||||
@players = @data[:players]&.map { |t| Player.new(t) }
|
||||
|
||||
@name = @data[:name]
|
||||
@map = @data[:map]
|
||||
@max_players = @data[:maxplayers]
|
||||
@player_count = @players.size || @data[:numplayers].to_i
|
||||
@started = @data[:started]
|
||||
@remaining = @data[:remaining]
|
||||
end
|
||||
end
|
||||
|
||||
class Team
|
||||
attr_reader :id, :name, :score, :kills, :deaths
|
||||
|
||||
def initialize(hash)
|
||||
@data = hash
|
||||
|
||||
@id = @data[:id]
|
||||
@name = @data[:name]
|
||||
@score = @data[:score]
|
||||
@kills = @data[:kills]
|
||||
@deaths = @data[:deaths]
|
||||
end
|
||||
end
|
||||
|
||||
class Player
|
||||
attr_reader :nick, :team, :score, :kills, :deaths
|
||||
|
||||
def initialize(hash)
|
||||
@data = hash
|
||||
|
||||
@nick = @data[:nick]
|
||||
@team = @data[:team]
|
||||
@score = @data[:score]
|
||||
@kills = @data[:kills]
|
||||
@deaths = @data[:deaths]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user