diff --git a/builder/lib/zandronum_doom_vars.rb b/builder/lib/zandronum_doom_vars.rb index 3951413..edc5a5e 100644 --- a/builder/lib/zandronum_doom_vars.rb +++ b/builder/lib/zandronum_doom_vars.rb @@ -4,131 +4,132 @@ # https://wiki.zandronum.com/Server_Variables. # Default values for the console commands pulled from # Doomseeker source at https://bitbucket.org/Doomseeker/doomseeker - -module ZandronumDoomVars - def initialize(name) - @server_name = name # This is for the internal BUILDER reference, not sv_hostname - @max_players = '32' # Can be up to 64 but don't do that unless you have the bandwidth (you don't) - @server_variables = { - sv_adminlistfile: 'adminlist.txt', - sv_afk2spec: '0', - sv_aircontrol: '0.00390625', - sv_artifactreturntime: '30', - sv_banexemptionfile: 'whitelist.txt', - sv_banfile: 'banlist.txt', - sv_banlistreparsetime: '0', - sv_broadcast: 'true', - sv_cheats: 'false', - sv_colorstripmethod: '0', - sv_coop_damagefactor: '1.0', - sv_coopspawnvoodoodolls: 'true', - sv_coopunassignedvoodoodolls: 'true', - sv_coopunassignedvoodoodollsfornplayers: @max_players.to_s, - sv_defaultdmflags: 'true', - sv_disableautohealth: 'false', - sv_disallowbots: 'false', - sv_disallowspying: 'false', - sv_disallowsuicide: 'false', - sv_dropstyle: '0', - sv_duelcountdowntime: '10', - sv_enforcebans: 'true', - sv_enforcemasterbanlist: 'true', - sv_fastweapons: '0', - sv_flagreturntime: '15', - sv_forcejoinpassword: 'false', - sv_forcepassword: 'false', - sv_gravity: '800', - sv_hostemail: '', - sv_hostname: 'Unnamed Zandronum server', - sv_invasioncountdowntime: '10', - sv_joinpassword: 'password', - sv_killallmonsters_percentage: '100', - sv_limitcommands: 'true', - sv_limitnumvotes: 'true', - sv_lmscountdowntime: '10', - sv_logfile_append: 'false', - sv_logfilenametimestamp: 'true', - sv_logfiletimestamp: 'true', - sv_logfiletimestamp_usedate: 'false', - sv_measureoutboundtraffic: 'false', - sv_maprotation: 'true', - sv_markchatlines: 'false', - sv_maxclients: '32', - sv_maxclientsperip: '2', - sv_maxlives: '0', - sv_maxpacketsize: '1024', - sv_maxplayers: '32', - sv_maxteams: '2', - sv_minimizetosystray: 'true', - sv_minvoters: 'true', - sv_motd: '', - sv_nocallvote: '0', - sv_nochangemapvote: 'false', - sv_nodrop: 'false', - sv_noduellimitvote: 'false', - sv_noforcespecvote: 'false', - sv_nofraglimitvote: 'false', - sv_nokickvote: 'false', - sv_nokill: 'false', - sv_nomapvote: 'false', - sv_nopointlimitvote: 'false', - sv_notimelimitvote: 'false', - sv_nowinlimitvote: 'false', - sv_password: 'password', - sv_possessioncountdowntime: '10', - sv_possessionholdtime: '30', - sv_pure: 'true', - sv_queryignoretime: '10', - sv_randomcoopstarts: 'false', - sv_randommaprotation: 'false', - sv_rconpassword: '', - sv_showlauncherqueries: 'false', - sv_showwarnings: 'false', - sv_smartaim: '0', - sv_suddendeath: 'true', - sv_survivalcountdowntime: '10', - sv_timestamp: 'false', - sv_timestampformat: '0', - sv_unlimited_pickup: 'false', - sv_updatemaster: 'true', - sv_usemapsettingspossessionholdtime: 'true', - sv_usemapsettingswavelimit: 'true', - sv_useteamstartsindm: 'false', - sv_useticbuffer: 'true', - sv_website: '' - } - @console_variables = { - bot_allowchat: 'true', - botskill: '0', - buckshot: '0', - chat_sound: '1', - compatmode: '0', - crashlogs: '', - crashlog_dir: '', - displaynametags: '3', - domination: '0', - duellimit: '0', - fraglimit: '0', - handicap: '0', - instagib: '0', - invasion: '0', - lastmanstanding: '0', - lmsallowedweapons: '1023', - masterhostname: '', - maxviewpitch: '90', - pointlimit: '0', - possession: '0', - skill: '3', - skulltag: '0', - survival: '0', - switchonpickup: '0', - teamlms: '0', - terminator: '0', - timelimit: '0', - teamdamage: '0', - teampossession: '0', - turbo: '0', - win_limit: '0' - } +module DoomVars + class ZandronumDoomVars + def initialize(name) + @server_name = name # This is for the internal BUILDER reference, not sv_hostname + @max_players = '32' # Can be up to 64 but don't do that unless you have the bandwidth (you don't) + @server_variables = { + sv_adminlistfile: 'adminlist.txt', + sv_afk2spec: '0', + sv_aircontrol: '0.00390625', + sv_artifactreturntime: '30', + sv_banexemptionfile: 'whitelist.txt', + sv_banfile: 'banlist.txt', + sv_banlistreparsetime: '0', + sv_broadcast: 'true', + sv_cheats: 'false', + sv_colorstripmethod: '0', + sv_coop_damagefactor: '1.0', + sv_coopspawnvoodoodolls: 'true', + sv_coopunassignedvoodoodolls: 'true', + sv_coopunassignedvoodoodollsfornplayers: @max_players.to_s, + sv_defaultdmflags: 'true', + sv_disableautohealth: 'false', + sv_disallowbots: 'false', + sv_disallowspying: 'false', + sv_disallowsuicide: 'false', + sv_dropstyle: '0', + sv_duelcountdowntime: '10', + sv_enforcebans: 'true', + sv_enforcemasterbanlist: 'true', + sv_fastweapons: '0', + sv_flagreturntime: '15', + sv_forcejoinpassword: 'false', + sv_forcepassword: 'false', + sv_gravity: '800', + sv_hostemail: '', + sv_hostname: 'Unnamed Zandronum server', + sv_invasioncountdowntime: '10', + sv_joinpassword: 'password', + sv_killallmonsters_percentage: '100', + sv_limitcommands: 'true', + sv_limitnumvotes: 'true', + sv_lmscountdowntime: '10', + sv_logfile_append: 'false', + sv_logfilenametimestamp: 'true', + sv_logfiletimestamp: 'true', + sv_logfiletimestamp_usedate: 'false', + sv_measureoutboundtraffic: 'false', + sv_maprotation: 'true', + sv_markchatlines: 'false', + sv_maxclients: '32', + sv_maxclientsperip: '2', + sv_maxlives: '0', + sv_maxpacketsize: '1024', + sv_maxplayers: '32', + sv_maxteams: '2', + sv_minimizetosystray: 'true', + sv_minvoters: 'true', + sv_motd: '', + sv_nocallvote: '0', + sv_nochangemapvote: 'false', + sv_nodrop: 'false', + sv_noduellimitvote: 'false', + sv_noforcespecvote: 'false', + sv_nofraglimitvote: 'false', + sv_nokickvote: 'false', + sv_nokill: 'false', + sv_nomapvote: 'false', + sv_nopointlimitvote: 'false', + sv_notimelimitvote: 'false', + sv_nowinlimitvote: 'false', + sv_password: 'password', + sv_possessioncountdowntime: '10', + sv_possessionholdtime: '30', + sv_pure: 'true', + sv_queryignoretime: '10', + sv_randomcoopstarts: 'false', + sv_randommaprotation: 'false', + sv_rconpassword: '', + sv_showlauncherqueries: 'false', + sv_showwarnings: 'false', + sv_smartaim: '0', + sv_suddendeath: 'true', + sv_survivalcountdowntime: '10', + sv_timestamp: 'false', + sv_timestampformat: '0', + sv_unlimited_pickup: 'false', + sv_updatemaster: 'true', + sv_usemapsettingspossessionholdtime: 'true', + sv_usemapsettingswavelimit: 'true', + sv_useteamstartsindm: 'false', + sv_useticbuffer: 'true', + sv_website: '' + } + @console_variables = { + bot_allowchat: 'true', + botskill: '0', + buckshot: '0', + chat_sound: '1', + compatmode: '0', + crashlogs: '', + crashlog_dir: '', + displaynametags: '3', + domination: '0', + duellimit: '0', + fraglimit: '0', + handicap: '0', + instagib: '0', + invasion: '0', + lastmanstanding: '0', + lmsallowedweapons: '1023', + masterhostname: '', + maxviewpitch: '90', + pointlimit: '0', + possession: '0', + skill: '3', + skulltag: '0', + survival: '0', + switchonpickup: '0', + teamlms: '0', + terminator: '0', + timelimit: '0', + teamdamage: '0', + teampossession: '0', + turbo: '0', + win_limit: '0' + } + end end -end +end \ No newline at end of file diff --git a/builder/lib/zandronum_doom_vars.rb b/builder/lib/zandronum_doom_vars.rb index 3951413..edc5a5e 100644 --- a/builder/lib/zandronum_doom_vars.rb +++ b/builder/lib/zandronum_doom_vars.rb @@ -4,131 +4,132 @@ # https://wiki.zandronum.com/Server_Variables. # Default values for the console commands pulled from # Doomseeker source at https://bitbucket.org/Doomseeker/doomseeker - -module ZandronumDoomVars - def initialize(name) - @server_name = name # This is for the internal BUILDER reference, not sv_hostname - @max_players = '32' # Can be up to 64 but don't do that unless you have the bandwidth (you don't) - @server_variables = { - sv_adminlistfile: 'adminlist.txt', - sv_afk2spec: '0', - sv_aircontrol: '0.00390625', - sv_artifactreturntime: '30', - sv_banexemptionfile: 'whitelist.txt', - sv_banfile: 'banlist.txt', - sv_banlistreparsetime: '0', - sv_broadcast: 'true', - sv_cheats: 'false', - sv_colorstripmethod: '0', - sv_coop_damagefactor: '1.0', - sv_coopspawnvoodoodolls: 'true', - sv_coopunassignedvoodoodolls: 'true', - sv_coopunassignedvoodoodollsfornplayers: @max_players.to_s, - sv_defaultdmflags: 'true', - sv_disableautohealth: 'false', - sv_disallowbots: 'false', - sv_disallowspying: 'false', - sv_disallowsuicide: 'false', - sv_dropstyle: '0', - sv_duelcountdowntime: '10', - sv_enforcebans: 'true', - sv_enforcemasterbanlist: 'true', - sv_fastweapons: '0', - sv_flagreturntime: '15', - sv_forcejoinpassword: 'false', - sv_forcepassword: 'false', - sv_gravity: '800', - sv_hostemail: '', - sv_hostname: 'Unnamed Zandronum server', - sv_invasioncountdowntime: '10', - sv_joinpassword: 'password', - sv_killallmonsters_percentage: '100', - sv_limitcommands: 'true', - sv_limitnumvotes: 'true', - sv_lmscountdowntime: '10', - sv_logfile_append: 'false', - sv_logfilenametimestamp: 'true', - sv_logfiletimestamp: 'true', - sv_logfiletimestamp_usedate: 'false', - sv_measureoutboundtraffic: 'false', - sv_maprotation: 'true', - sv_markchatlines: 'false', - sv_maxclients: '32', - sv_maxclientsperip: '2', - sv_maxlives: '0', - sv_maxpacketsize: '1024', - sv_maxplayers: '32', - sv_maxteams: '2', - sv_minimizetosystray: 'true', - sv_minvoters: 'true', - sv_motd: '', - sv_nocallvote: '0', - sv_nochangemapvote: 'false', - sv_nodrop: 'false', - sv_noduellimitvote: 'false', - sv_noforcespecvote: 'false', - sv_nofraglimitvote: 'false', - sv_nokickvote: 'false', - sv_nokill: 'false', - sv_nomapvote: 'false', - sv_nopointlimitvote: 'false', - sv_notimelimitvote: 'false', - sv_nowinlimitvote: 'false', - sv_password: 'password', - sv_possessioncountdowntime: '10', - sv_possessionholdtime: '30', - sv_pure: 'true', - sv_queryignoretime: '10', - sv_randomcoopstarts: 'false', - sv_randommaprotation: 'false', - sv_rconpassword: '', - sv_showlauncherqueries: 'false', - sv_showwarnings: 'false', - sv_smartaim: '0', - sv_suddendeath: 'true', - sv_survivalcountdowntime: '10', - sv_timestamp: 'false', - sv_timestampformat: '0', - sv_unlimited_pickup: 'false', - sv_updatemaster: 'true', - sv_usemapsettingspossessionholdtime: 'true', - sv_usemapsettingswavelimit: 'true', - sv_useteamstartsindm: 'false', - sv_useticbuffer: 'true', - sv_website: '' - } - @console_variables = { - bot_allowchat: 'true', - botskill: '0', - buckshot: '0', - chat_sound: '1', - compatmode: '0', - crashlogs: '', - crashlog_dir: '', - displaynametags: '3', - domination: '0', - duellimit: '0', - fraglimit: '0', - handicap: '0', - instagib: '0', - invasion: '0', - lastmanstanding: '0', - lmsallowedweapons: '1023', - masterhostname: '', - maxviewpitch: '90', - pointlimit: '0', - possession: '0', - skill: '3', - skulltag: '0', - survival: '0', - switchonpickup: '0', - teamlms: '0', - terminator: '0', - timelimit: '0', - teamdamage: '0', - teampossession: '0', - turbo: '0', - win_limit: '0' - } +module DoomVars + class ZandronumDoomVars + def initialize(name) + @server_name = name # This is for the internal BUILDER reference, not sv_hostname + @max_players = '32' # Can be up to 64 but don't do that unless you have the bandwidth (you don't) + @server_variables = { + sv_adminlistfile: 'adminlist.txt', + sv_afk2spec: '0', + sv_aircontrol: '0.00390625', + sv_artifactreturntime: '30', + sv_banexemptionfile: 'whitelist.txt', + sv_banfile: 'banlist.txt', + sv_banlistreparsetime: '0', + sv_broadcast: 'true', + sv_cheats: 'false', + sv_colorstripmethod: '0', + sv_coop_damagefactor: '1.0', + sv_coopspawnvoodoodolls: 'true', + sv_coopunassignedvoodoodolls: 'true', + sv_coopunassignedvoodoodollsfornplayers: @max_players.to_s, + sv_defaultdmflags: 'true', + sv_disableautohealth: 'false', + sv_disallowbots: 'false', + sv_disallowspying: 'false', + sv_disallowsuicide: 'false', + sv_dropstyle: '0', + sv_duelcountdowntime: '10', + sv_enforcebans: 'true', + sv_enforcemasterbanlist: 'true', + sv_fastweapons: '0', + sv_flagreturntime: '15', + sv_forcejoinpassword: 'false', + sv_forcepassword: 'false', + sv_gravity: '800', + sv_hostemail: '', + sv_hostname: 'Unnamed Zandronum server', + sv_invasioncountdowntime: '10', + sv_joinpassword: 'password', + sv_killallmonsters_percentage: '100', + sv_limitcommands: 'true', + sv_limitnumvotes: 'true', + sv_lmscountdowntime: '10', + sv_logfile_append: 'false', + sv_logfilenametimestamp: 'true', + sv_logfiletimestamp: 'true', + sv_logfiletimestamp_usedate: 'false', + sv_measureoutboundtraffic: 'false', + sv_maprotation: 'true', + sv_markchatlines: 'false', + sv_maxclients: '32', + sv_maxclientsperip: '2', + sv_maxlives: '0', + sv_maxpacketsize: '1024', + sv_maxplayers: '32', + sv_maxteams: '2', + sv_minimizetosystray: 'true', + sv_minvoters: 'true', + sv_motd: '', + sv_nocallvote: '0', + sv_nochangemapvote: 'false', + sv_nodrop: 'false', + sv_noduellimitvote: 'false', + sv_noforcespecvote: 'false', + sv_nofraglimitvote: 'false', + sv_nokickvote: 'false', + sv_nokill: 'false', + sv_nomapvote: 'false', + sv_nopointlimitvote: 'false', + sv_notimelimitvote: 'false', + sv_nowinlimitvote: 'false', + sv_password: 'password', + sv_possessioncountdowntime: '10', + sv_possessionholdtime: '30', + sv_pure: 'true', + sv_queryignoretime: '10', + sv_randomcoopstarts: 'false', + sv_randommaprotation: 'false', + sv_rconpassword: '', + sv_showlauncherqueries: 'false', + sv_showwarnings: 'false', + sv_smartaim: '0', + sv_suddendeath: 'true', + sv_survivalcountdowntime: '10', + sv_timestamp: 'false', + sv_timestampformat: '0', + sv_unlimited_pickup: 'false', + sv_updatemaster: 'true', + sv_usemapsettingspossessionholdtime: 'true', + sv_usemapsettingswavelimit: 'true', + sv_useteamstartsindm: 'false', + sv_useticbuffer: 'true', + sv_website: '' + } + @console_variables = { + bot_allowchat: 'true', + botskill: '0', + buckshot: '0', + chat_sound: '1', + compatmode: '0', + crashlogs: '', + crashlog_dir: '', + displaynametags: '3', + domination: '0', + duellimit: '0', + fraglimit: '0', + handicap: '0', + instagib: '0', + invasion: '0', + lastmanstanding: '0', + lmsallowedweapons: '1023', + masterhostname: '', + maxviewpitch: '90', + pointlimit: '0', + possession: '0', + skill: '3', + skulltag: '0', + survival: '0', + switchonpickup: '0', + teamlms: '0', + terminator: '0', + timelimit: '0', + teamdamage: '0', + teampossession: '0', + turbo: '0', + win_limit: '0' + } + end end -end +end \ No newline at end of file diff --git a/builder/main.rb b/builder/main.rb index ea1dd64..367cb4a 100644 --- a/builder/main.rb +++ b/builder/main.rb @@ -14,7 +14,6 @@ options.verbose = false options.instance_name = 'doom-server' options.iwad_file = 'doom.wad' - options.server_port = 10_666 options.ini_file = './doom-server.ini' opt_parser = OptionParser.new do |opts| @@ -25,9 +24,6 @@ opts.on('-n', '--name [NAME]', 'Logical name of the server instance (NOT the \'hostname\' var!)') do |instance_name| options[:instance_name] = instance_name end - opts.on('-p', '--port [PORT]', 'Port for the server to use') do |port| - options[:server_port] = port - end opts.on('-i', '--ini-file [FILE]', '.ini file to populate settings from') do |ini| options[:ini_file] = ini end @@ -46,13 +42,15 @@ ARGV.empty? && ARGV.push('-h') settings = Options.parse_arguments(ARGV) - pp settings - - if false + doom_vars = DoomVars::ZandronumDoomVars.new(settings.instance_name) + # TODO: process .ini file settings and kick off templating process + begin erb :'summon.bash' erb :'adminlist.txt' erb :'banlist.txt' erb :'default.cfg' erb :'whitelist.txt' + rescue StandardError => se + puts "There was a problem creating the configuration files:\n#{se.message}" end end