Add a dev settings feature, keyed off codename right now

This commit is contained in:
Lucien Greathouse
2018-12-03 16:54:21 -08:00
parent 061ea0e7a3
commit 503d7400f3
7 changed files with 86 additions and 37 deletions

View File

@@ -0,0 +1,68 @@
if not plugin then
return
end
local Session = require(script.Session)
local Config = require(script.Config)
local Version = require(script.Version)
local Logging = require(script.Logging)
local DevSettings = require(script.DevSettings)
--[[
Check if the user is using a newer version of Rojo than last time. If they
are, show them a reminder to make sure they check their server version.
]]
local function checkUpgrade()
-- When developing Rojo, there's no use in doing version checks
if DevSettings:isEnabled() then
return
end
local lastVersion = plugin:GetSetting("LastRojoVersion")
if lastVersion then
local wasUpgraded = Version.compare(Config.version, lastVersion) == 1
if wasUpgraded then
local message = (
"\nRojo detected an upgrade from version %s to version %s." ..
"\nMake sure you have also upgraded your server!" ..
"\n\nRojo plugin version %s is intended for use with server version %s.\n"
):format(
Version.display(lastVersion), Version.display(Config.version),
Version.display(Config.version), Config.expectedServerVersionString
)
print(message)
end
end
plugin:SetSetting("LastRojoVersion", Config.version)
end
local function main()
local displayedVersion = DevSettings:isEnabled() and "DEV" or Version.display(Config.version)
Logging.trace("Rojo %s initialized", displayedVersion)
local toolbar = plugin:CreateToolbar("Rojo " .. displayedVersion)
local currentSession
-- TODO: More robust session tracking to handle errors
-- TODO: Icon!
toolbar:CreateButton("Connect", "Connect to Rojo Session", "")
.Click:Connect(function()
checkUpgrade()
if currentSession ~= nil then
Logging.warn("A session is already running!")
return
end
Logging.info("Started new session.")
currentSession = Session.new()
end)
end
main()