Files
Bubberstation/interface/interface.dm
san7890 bbd0e070a3 Adds In-Game Link To Server Config (#94371)
## About The Pull Request

On the tin, just adds a link to
https://github.com/tgstation-operations/server-config to the game so
people are a little bit more aware of it.

Here's how it looks:

<img width="1386" height="275" alt="image"
src="https://github.com/user-attachments/assets/63d2d284-6d5f-4f41-ba80-abc33699f7c5"
/>

## Why It's Good For The Game

More visibility to a public resource, this wasn't feasible before the
present situation. It won't show up here unless the config variable is
set.
## Changelog
🆑
config: If you publicly host a copy of your server's config, you may now
link to the public URL in the 'CONFIGURL' setting in the server config.
It will show to players in the Escape Menu's Resources Carousel.
/🆑
2025-12-13 20:52:36 -05:00

133 lines
4.2 KiB
Plaintext

//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs.
/client/verb/wiki()
set name = "wiki"
set desc = "Brings you to the Wiki"
set hidden = TRUE
var/wikiurl = CONFIG_GET(string/wikiurl)
if(!wikiurl)
to_chat(src, span_danger("The wiki URL is not set in the server configuration."))
return
var/query = tgui_input_text(src,
"Type what you want to know about. This will open the wiki in your web browser. Type nothing to go to the main page.",
"Wiki",
max_length = MAX_MESSAGE_LEN,
)
if(isnull(query)) //cancelled out
return
var/output = wikiurl
if(query != "")
output += "?title=Special%3ASearch&profile=default&search=[query]"
DIRECT_OUTPUT(src, link(output))
/client/verb/forum()
set name = "forum"
set desc = "Visit the forum."
set hidden = TRUE
var/forumurl = CONFIG_GET(string/forumurl)
if(!forumurl)
to_chat(src, span_danger("The forum URL is not set in the server configuration."))
return
DIRECT_OUTPUT(src, link(forumurl))
/client/verb/rules()
set name = "rules"
set desc = "Show Server Rules."
set hidden = TRUE
var/rulesurl = CONFIG_GET(string/rulesurl)
if(!rulesurl)
to_chat(src, span_danger("The rules URL is not set in the server configuration."))
return
DIRECT_OUTPUT(src, link(rulesurl))
/client/verb/github()
set name = "github"
set desc = "Visit Github"
set hidden = TRUE
var/githuburl = CONFIG_GET(string/githuburl)
if(!githuburl)
to_chat(src, span_danger("The Github URL is not set in the server configuration."))
return
DIRECT_OUTPUT(src, link(githuburl))
/client/verb/config()
set name = "config"
set desc = "View the server configuration files."
set hidden = TRUE
var/configurl = CONFIG_GET(string/configurl)
if(!configurl)
to_chat(src, span_danger("The Config URL is not set in the server configuration."))
return
DIRECT_OUTPUT(src, link(configurl))
/client/verb/reportissue()
set name = "report-issue"
set desc = "Report an issue"
var/githuburl = CONFIG_GET(string/githuburl)
if(!githuburl)
to_chat(src, span_danger("The Github URL is not set in the server configuration."))
return
var/testmerge_data = GLOB.revdata.testmerge
var/has_testmerge_data = (length(testmerge_data) != 0)
var/message = "This will open the Github issue reporter in your browser. Are you sure?"
if(has_testmerge_data)
message += "<br>The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:<br>"
message += GLOB.revdata.GetTestMergeInfo(FALSE)
// We still use tg_alert here because some people were concerned that if someone wanted to report that tgui wasn't working
// then the report issue button being tgui-based would be problematic.
if(tg_alert(src, message, "Report Issue", "Yes", "No") != "Yes")
return
var/base_link = githuburl + "/issues/new?template=bug_report_form.yml"
var/list/concatable = list(base_link)
var/client_version = "[byond_version].[byond_build]"
concatable += ("&reporting-version=" + client_version)
// the way it works is that we use the ID's that are baked into the template YML and replace them with values that we can collect in game.
if(GLOB.round_id)
concatable += ("&round-id=" + GLOB.round_id)
// Insert testmerges
if(has_testmerge_data)
var/list/all_tms = list()
for(var/entry in testmerge_data)
var/datum/tgs_revision_information/test_merge/tm = entry
all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
var/all_tms_joined = jointext(all_tms, "\n")
concatable += ("&test-merges=" + url_encode(all_tms_joined))
DIRECT_OUTPUT(src, link(jointext(concatable, "")))
/client/verb/changelog()
set name = "Changelog"
set category = "OOC"
if(!GLOB.changelog_tgui)
GLOB.changelog_tgui = new /datum/changelog()
GLOB.changelog_tgui.ui_interact(mob)
if(prefs.lastchangelog != GLOB.changelog_hash)
prefs.lastchangelog = GLOB.changelog_hash
prefs.save_preferences()
winset(src, "infobuttons.changelog", "font-style=;")
/client/verb/hotkeys_help()
set name = "Hotkeys Help"
set category = "OOC"
if(!GLOB.hotkeys_tgui)
GLOB.hotkeys_tgui = new /datum/hotkeys_help()
GLOB.hotkeys_tgui.ui_interact(mob)