check for newer version + small bugFixes

This commit is contained in:
infinitefusion
2023-04-15 09:54:20 -04:00
parent 3b6d636e72
commit 895952ffe5
21 changed files with 60 additions and 11 deletions

View File

@@ -415,7 +415,8 @@ end
def getSpriteCredits(spriteName)
File.foreach(Settings::CREDITS_FILE_PATH) do |line|
row = line.split(';')
if row[0].include?(spriteName)
echo row[0]
if row[0] == spriteName
return row[1]
end
end
@@ -556,4 +557,26 @@ def get_default_moves_at_level(species,level)
end
p moves
return moves
end
end
def find_newer_available_version
latest_Version = fetch_latest_game_version
return nil if !latest_Version
return nil if is_higher_version(Settings::GAME_VERSION_NUMBER,latest_Version)
return latest_Version
end
def is_higher_version(gameVersion, latestVersion)
gameVersion_parts = gameVersion.split('.').map(&:to_i)
latestVersion_parts = latestVersion.split('.').map(&:to_i)
# Compare each part of the version numbers from left to right
gameVersion_parts.each_with_index do |part, i|
return true if (latestVersion_parts[i].nil? || part > latestVersion_parts[i])
return false if part < latestVersion_parts[i]
end
# If all parts are equal up to this point, the longer version is considered higher
return latestVersion_parts.length < gameVersion_parts.length
end

View File

@@ -6,10 +6,6 @@ def test_http_get
end
end
def downloadCustomSprite(head_id, body_id)
base_custom_path = "https://raw.githubusercontent.com/infinitefusion/sprites/main/Sprite%20Credits.csv"
end
def updateCreditsFile
return if $PokemonSystem.download_sprites != 0
download_file(Settings::CREDITS_FILE_URL,Settings::CREDITS_FILE_PATH,)
@@ -18,6 +14,7 @@ end
def download_file(url, saveLocation)
begin
response = HTTPLite.get(url)
p response
if response[:status] == 200
File.open(saveLocation, "wb") do |file|
file.write(response[:body])
@@ -26,7 +23,8 @@ def download_file(url, saveLocation)
return saveLocation
end
return nil
rescue MKXPError
rescue MKXPError => error
echo error
return nil
end
end
@@ -84,3 +82,22 @@ def list_online_custom_sprites
# response = HTTPLite.get(api_url)
# return HTTPLite::JSON.parse(response[:body]).map { |file| file['name'] }
end
GAME_VERSION_FORMAT_REGEX = /\A\d+(\.\d+)*\z/
def fetch_latest_game_version
begin
download_file(Settings::VERSION_FILE_URL,Settings::VERSION_FILE_PATH,)
version_file = File.open(Settings::VERSION_FILE_PATH, "r")
version = version_file.first
version_file.close
version_format_valid = version.match(GAME_VERSION_FORMAT_REGEX)
return version if version_format_valid
return nil
rescue MKXPError, Errno::ENOENT => error
echo error
return nil
end
end

View File

@@ -321,6 +321,11 @@ class PokemonLoadScreen
def pbStartLoadScreen
updateCreditsFile
newer_version = find_newer_available_version
if newer_version
pbMessage(_INTL("Version {1} is now available! Please check the game's official page to download the newest version.",newer_version))
end
if ($game_temp.unimportedSprites && $game_temp.unimportedSprites.size > 0)
handleReplaceExistingSprites()
end

View File

@@ -88,7 +88,7 @@ end
def getSpriteCredits(spriteName)
File.foreach(Settings::CREDITS_FILE_PATH) do |line|
row = line.split(',')
if row[0].include?(spriteName)
if row[0] == (spriteName)
return row[1]
end
end