class Arkrb::Server

Attributes

instance_name[R]
mod_list[R]

Public Class Methods

new(instance_name, sanitize_output = true) click to toggle source
# File lib/arkrb/server.rb, line 11
def initialize(instance_name, sanitize_output = true)
  @instance_name = instance_name
  @sanitize_output = sanitize_output
  mod_list
end

Public Instance Methods

backup!() click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 52
def backup!
  arkmanager_exec :backup
end
broadcast(message) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 87
def broadcast(message)
  arkmanager_exec(:broadcast, message)
end
disable_mod(mod_id) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 67
def disable_mod(mod_id)
  arkmanager_exec(:disable_mod, mod_id)
end
enable_mod(mod_id) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 62
def enable_mod(mod_id)
  arkmanager_exec(:enable_mod, mod_id)
end
get_player_list() click to toggle source
# File lib/arkrb/server.rb, line 96
def get_player_list
  sanitize_filter = @sanitize_output
  @sanitize_output = true
  users = []
  player_list = rcon_cmd('ListPlayers')
                    .split("\n")
                    .map {|m| m.delete('\\"').strip}
                    .reject(&:empty?)
  player_list.delete_if {|x| x =~ /Running command/im}
  if player_list.count == 1 && player_list.first =~ /no/im
    users << Player.new(player_list.first, player_list.first, player_list.first)
  else
    player_list.map! {|p| %i(name steam_id).zip(p.gsub!(/^[0-9]+. /im, '').split(', ')).to_h}
    player_list.each do |u|
      player_id = rcon_cmd("GetPlayerIDForSteamID #{u[:steam_id].to_i}")
                      .split("\n")
                      .delete_if {|x| x =~ /Running command/im}
                      .map! {|x| x.delete('\\"').strip}
                      .reject(&:empty?)
                      .first.split('PlayerID: ').last
      users << Player.new(u[:name], u[:steam_id], player_id)
    end
  end
  @sanitize_output = sanitize_filter
  users
end
install() click to toggle source
# File lib/arkrb/server.rb, line 19
def install
  arkmanager_exec :install
end
install_mod(mod_id) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 72
def install_mod(mod_id)
  arkmanager_exec(:install_mod, mod_id)
end
mod_updates_available?() click to toggle source

@return [Boolean]

# File lib/arkrb/server.rb, line 129
def mod_updates_available?
  arkmanager_exec :check_mod_update
end
rcon_cmd(command) click to toggle source

@return [Object]

# File lib/arkrb/server.rb, line 92
def rcon_cmd(command)
  arkmanager_exec(:rconcmd, command.to_s)
end
reinstall_mod(mod_id) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 82
def reinstall_mod(mod_id)
  arkmanager_exec(:reinstall_mod, mod_id)
end
restart!() click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 34
def restart!
  arkmanager_exec :restart
end
save_world!() click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 57
def save_world!
  arkmanager_exec :save_world
end
start!(verbose = false) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 24
def start!(verbose = false)
  arkmanager_exec :start
end
status!() click to toggle source
# File lib/arkrb/server.rb, line 38
def status!
  arkmanager_exec :status
end
stop!() click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 29
def stop!
  arkmanager_exec :stop
end
uninstall_mod(mod_id) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 77
def uninstall_mod(mod_id)
  arkmanager_exec(:uninstall_mod, mod_id)
end
update!(update_mods = false) click to toggle source

@return [True, Exception]

# File lib/arkrb/server.rb, line 43
def update!(update_mods = false)
  if update_mods
    arkmanager_exec :update, '--update-mods'
  else
    arkmanager_exec :update
  end
end
update_available?() click to toggle source

@return [Boolean]

# File lib/arkrb/server.rb, line 124
def update_available?
  arkmanager_exec :check_update
end

Private Instance Methods

arkmanager_exec(command, command_opts = '') click to toggle source
# File lib/arkrb/server.rb, line 139
def arkmanager_exec(command, command_opts = '')
  Arkrb.execute(command, command_opts, instance_name, @sanitize_output)
end