mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2025-12-16 17:22:35 +00:00
Inital Import of asterisk_gosu into launcher, non-functional.
This commit is contained in:
83
lib/asterisk/config.rb
Normal file
83
lib/asterisk/config.rb
Normal file
@@ -0,0 +1,83 @@
|
||||
class W3DHub
|
||||
class Asterisk
|
||||
class Config
|
||||
CONFIG_PATH = "#{GAME_ROOT_PATH}/data/asterisk.json"
|
||||
|
||||
attr_reader :settings, :server_profiles, :games, :irc_profiles
|
||||
|
||||
def initialize
|
||||
@config = nil
|
||||
|
||||
save_new_config unless load_config
|
||||
load_config unless @config
|
||||
end
|
||||
|
||||
def save_new_config
|
||||
hash = {
|
||||
settings: {
|
||||
theme: :default,
|
||||
|
||||
server_profile: "",
|
||||
game: "",
|
||||
launch_arguments: "",
|
||||
irc_profile: "None",
|
||||
|
||||
nickname: "",
|
||||
password: "",
|
||||
server_hostname: "",
|
||||
server_port: "",
|
||||
|
||||
preload_app: "",
|
||||
enable_preload_app: false,
|
||||
|
||||
post_launch_app: "",
|
||||
enable_post_launch_app: false,
|
||||
},
|
||||
|
||||
server_profiles: [],
|
||||
|
||||
games: [],
|
||||
|
||||
irc_profiles: []
|
||||
}
|
||||
|
||||
save_config(hash)
|
||||
end
|
||||
|
||||
def load_config
|
||||
return false unless File.exist?(CONFIG_PATH)
|
||||
|
||||
begin
|
||||
hash = JSON.parse(File.read(CONFIG_PATH), symbolize_names: true)
|
||||
|
||||
@config ||= {}
|
||||
|
||||
@config[:settings] = @settings = Settings.new(hash[:settings])
|
||||
|
||||
@config[:server_profiles] = @server_profiles = []
|
||||
hash[:server_profiles].each { |profile| @server_profiles << ServerProfile.new(profile) }
|
||||
|
||||
@config[:games] = @games = []
|
||||
hash[:games].each { |game| @games << Game.new(game) }
|
||||
|
||||
@config[:irc_profiles] = @irc_profiles = []
|
||||
hash[:irc_profiles].each { |profile| @irc_profiles << IRCProfile.new(profile) }
|
||||
|
||||
rescue JSON::ParserError
|
||||
puts "Config corrupted"
|
||||
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def hard_reset!
|
||||
save_new_config
|
||||
load_config
|
||||
end
|
||||
|
||||
def save_config(config = @config)
|
||||
File.write(CONFIG_PATH, config.to_json)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user