From 58dfe64c9c66d3e0ebcb328adde5f4c5c06d8d70 Mon Sep 17 00:00:00 2001 From: Mahtra <93822896+MahtraDR@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:02:52 +1300 Subject: [PATCH 1/4] [scripts][dependency][bootstrap] More prep for components in core lich --- bootstrap.lic | 11 ++++++----- dependency.lic | 23 +++++++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/bootstrap.lic b/bootstrap.lic index b97ad75e6f..3b12c87ce4 100644 --- a/bootstrap.lic +++ b/bootstrap.lic @@ -3,8 +3,9 @@ Documentation: https://elanthipedia.play.net/Lich_script_development#bootstrap =end -$BOOTSTRAP_VERSION = '1.0.2' +$BOOTSTRAP_VERSION = '1.0.3' DRINFOMON_IN_CORE_LICH ||= false +DRINFOMON_CORE_LICH_DEFINES ||= [] class_defs = { 'drinfomon' => :DRINFOMON, @@ -54,7 +55,7 @@ $MODERN_LICH = lich_version >= if Regexp.last_match(1) Gem::Version.new('4.6.49') end -if args.wipe_constants +if args.wipe_constants && !DRINFOMON_IN_CORE_LICH class_defs.each_value { |symb| remove_constant(symb) if constant_defined?(symb) } exit end @@ -62,9 +63,9 @@ end scripts_to_run = args.flex || [] echo scripts_to_run.to_s if UserVars.bootstrap_debug -if scripts_to_run.include?("drinfomon") && DRINFOMON_IN_CORE_LICH - scripts_to_run -= ['drinfomon'] - echo("Removing drinfomon from scripts_to_run") if UserVars.bootstrap_debug +if (scripts_to_run & DRINFOMON_CORE_LICH_DEFINES).any? && DRINFOMON_IN_CORE_LICH + scripts_to_run -= DRINFOMON_CORE_LICH_DEFINES + echo("Removing core_lich_defines from scripts_to_run") if UserVars.bootstrap_debug end until scripts_to_run.empty? diff --git a/dependency.lic b/dependency.lic index 55d5540bbf..459be2af98 100644 --- a/dependency.lic +++ b/dependency.lic @@ -10,9 +10,10 @@ require 'ostruct' require 'digest/sha1' require 'monitor' -$DEPENDENCY_VERSION = '1.7.9' +$DEPENDENCY_VERSION = '1.7.10' $MIN_RUBY_VERSION = '3.2.2' DRINFOMON_IN_CORE_LICH ||= false +DRINFOMON_CORE_LICH_DEFINES ||= [] no_pause_all no_kill_all @@ -244,6 +245,7 @@ class ScriptManager def update_status_url defaulturl = 'https://api.github.com/repos/' + @status_repo + '/git/trees/' + @status_branch mainurl = 'https://api.github.com/repos/rpherbig/dr-scripts/git/trees/main' + fallbackurl = 'https://api.github.com/repos/rpherbig/dr-scripts/git/trees/main' eo_drscripts = 'https://api.github.com/repos/elanthia-online/dr-scripts/git/trees/main' unless url_exist?(defaulturl) @@ -251,7 +253,6 @@ class ScriptManager _respond Lich::Messaging.monsterbold("Unsetting custom repo settings, if any.") Settings['status_repo'] = nil if Settings['status_repo'] Settings['status_branch'] = nil if Settings['status_branch'] - Settings.save end if url_exist?(defaulturl) @@ -260,6 +261,9 @@ class ScriptManager elsif url_exist?(mainurl) _respond Lich::Messaging.monsterbold("Using alternate Status URL. #{mainurl}") @status_url = mainurl + elsif url_exist?(fallbackurl) + _respond Lich::Messaging.monsterbold("Using fallback Status URL. #{fallbackurl}") + @status_url = fallbackurl elsif url_exist?(eo_drscripts) _respond Lich::Messaging.monsterbold("Using Elanthia Online Status URL. #{eo_drscripts}") @status_url = eo_drscripts @@ -269,7 +273,7 @@ class ScriptManager end def url_exist?(url_string) - url = URI.parse(URI::Parser.new.escape(url_string)) + url = URI.parse(url_string) req = Net::HTTP.new(url.host, url.port) req.use_ssl = (url.scheme == 'https') path = url.path @@ -1604,7 +1608,7 @@ def custom_require respond("CR:starting:#{script_names}") if UserVars.bootstrap_debug if DRINFOMON_IN_CORE_LICH echo("DRInfomon in core lich detected. Skipping loading drinfomon and commons") if UserVars.bootstrap_debug - script_names -= %W(drinfomon common common-arcana common-crafting common-healing common-healing-data common-items common-money common-moonmage common-summoning common-theurgy common-travel common-validation events slackbot equipmanager spellmonitor) + script_names -= DRINFOMON_CORE_LICH_DEFINES end bootstrapper = force_start_script('bootstrap', script_names) pause 0.05 @@ -1731,7 +1735,6 @@ def setup_profiles end def setup_data - echo("Force checking scripts/data files.") $manager.setup_data end @@ -1781,7 +1784,7 @@ end def update_d echo('Restarting Dependency in 2 seconds...') - force_start_script('bootstrap', ['wipe_constants']) unless DRINFOMON_IN_CORE_LICH + force_start_script('bootstrap', ['wipe_constants']) before_dying do sleep 2 force_start_script('dependency') @@ -1831,7 +1834,7 @@ end full_install if install -force_start_script('bootstrap', ['wipe_constants']) unless DRINFOMON_IN_CORE_LICH +force_start_script('bootstrap', ['wipe_constants']) # Proactively starting DRinfomon as script zero to prevent # race conditions involving this script which so many other @@ -1847,11 +1850,11 @@ end if DRINFOMON_IN_CORE_LICH Lich::Util.issue_command("exp all 0", /^Circle: \d+/, /^Rested EXP Stored|Unlock Rested Experience|type: AWAKEN/, quiet: true) Lich::Util.issue_command("info", /^Name/, /^ Date: Wed, 13 Nov 2024 21:06:49 +1300 Subject: [PATCH 2/4] cleanup --- dependency.lic | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/dependency.lic b/dependency.lic index 459be2af98..49ed669b0c 100644 --- a/dependency.lic +++ b/dependency.lic @@ -245,7 +245,6 @@ class ScriptManager def update_status_url defaulturl = 'https://api.github.com/repos/' + @status_repo + '/git/trees/' + @status_branch mainurl = 'https://api.github.com/repos/rpherbig/dr-scripts/git/trees/main' - fallbackurl = 'https://api.github.com/repos/rpherbig/dr-scripts/git/trees/main' eo_drscripts = 'https://api.github.com/repos/elanthia-online/dr-scripts/git/trees/main' unless url_exist?(defaulturl) @@ -253,6 +252,7 @@ class ScriptManager _respond Lich::Messaging.monsterbold("Unsetting custom repo settings, if any.") Settings['status_repo'] = nil if Settings['status_repo'] Settings['status_branch'] = nil if Settings['status_branch'] + Settings.save end if url_exist?(defaulturl) @@ -261,9 +261,6 @@ class ScriptManager elsif url_exist?(mainurl) _respond Lich::Messaging.monsterbold("Using alternate Status URL. #{mainurl}") @status_url = mainurl - elsif url_exist?(fallbackurl) - _respond Lich::Messaging.monsterbold("Using fallback Status URL. #{fallbackurl}") - @status_url = fallbackurl elsif url_exist?(eo_drscripts) _respond Lich::Messaging.monsterbold("Using Elanthia Online Status URL. #{eo_drscripts}") @status_url = eo_drscripts @@ -273,7 +270,7 @@ class ScriptManager end def url_exist?(url_string) - url = URI.parse(url_string) + url = URI.parse(URI::Parser.new.escape(url_string)) req = Net::HTTP.new(url.host, url.port) req.use_ssl = (url.scheme == 'https') path = url.path @@ -1735,6 +1732,7 @@ def setup_profiles end def setup_data + echo("Force checking scripts/data files.") $manager.setup_data end @@ -1784,8 +1782,8 @@ end def update_d echo('Restarting Dependency in 2 seconds...') - force_start_script('bootstrap', ['wipe_constants']) - before_dying do + force_start_script('bootstrap', ['wipe_constants']) unless DRINFOMON_IN_CORE_LICH + before_dying do sleep 2 force_start_script('dependency') end @@ -1834,7 +1832,7 @@ end full_install if install -force_start_script('bootstrap', ['wipe_constants']) +force_start_script('bootstrap', ['wipe_constants']) unless DRINFOMON_IN_CORE_LICH # Proactively starting DRinfomon as script zero to prevent # race conditions involving this script which so many other @@ -1850,11 +1848,11 @@ end if DRINFOMON_IN_CORE_LICH Lich::Util.issue_command("exp all 0", /^Circle: \d+/, /^Rested EXP Stored|Unlock Rested Experience|type: AWAKEN/, quiet: true) Lich::Util.issue_command("info", /^Name/, /^ Date: Wed, 13 Nov 2024 21:08:24 +1300 Subject: [PATCH 3/4] cleanup --- dependency.lic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependency.lic b/dependency.lic index 49ed669b0c..551277bb8e 100644 --- a/dependency.lic +++ b/dependency.lic @@ -1783,7 +1783,7 @@ end def update_d echo('Restarting Dependency in 2 seconds...') force_start_script('bootstrap', ['wipe_constants']) unless DRINFOMON_IN_CORE_LICH - before_dying do + before_dying do sleep 2 force_start_script('dependency') end From 8ebda13df4076a39d01be8e0d24183915d256973 Mon Sep 17 00:00:00 2001 From: Mahtra <93822896+MahtraDR@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:13:39 +1300 Subject: [PATCH 4/4] cleanup --- bootstrap.lic | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.lic b/bootstrap.lic index 3b12c87ce4..8d8be595ec 100644 --- a/bootstrap.lic +++ b/bootstrap.lic @@ -63,9 +63,9 @@ end scripts_to_run = args.flex || [] echo scripts_to_run.to_s if UserVars.bootstrap_debug -if (scripts_to_run & DRINFOMON_CORE_LICH_DEFINES).any? && DRINFOMON_IN_CORE_LICH +if (scripts_to_run & DRINFOMON_CORE_LICH_DEFINES).any? scripts_to_run -= DRINFOMON_CORE_LICH_DEFINES - echo("Removing core_lich_defines from scripts_to_run") if UserVars.bootstrap_debug + echo("Removing core lich defines from scripts_to_run") if UserVars.bootstrap_debug end until scripts_to_run.empty?