mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
TGS3 DM changes (#26534)
* TGS3 * Fix line endings * Enable 16-bit long topics * Cleans up topic socket usage * Reduces and refines the IRC status throttle * Increase the CP status delay to a reasonable amount * Fixes the testmerge command not having a keyword * Clean up rebooting a bit * Get error codes from windows when symlinking fails * Clean up world announces * Aborting compilation will kill the DD process * Add support for changing the project name * Removes the log page * Add support for compile cancellation * Version bumps and docs * Add merge-pr repo CL command * Fixes DM cancel command's help message * Refactor command line to show better formatted help text * Corrects a typo * Multi-key game options must be manually edited * Moving of the server installation from the control panel * Fix a bug with server moving * Corrects webclient disposal syntax * Service now handles the PR Json the game uses properly * PR listing command for CL * Fixes reversed testmerge and update help entries * Windows scheduling to help avoid reboot crashes * Generalization of chat infastructure * Brings a file name in line with everything else * Shutdown exceptions no longer keep the service online * Enable provider switching on the backend. More thread safety * Support for switching, password encryption and defaults. * Removes boilerplate on log writing * Discord integration * Update the installer dependencies * Version bump * Adds support for getting the latest byond version * Fixes issue with not being able to set discord channels * Fix being able to reconnect if chat is disabled * Extra validation for interface types * Add the Chat page for the control panel * Various cleanup * Set read ACL on the data directory * Remove redundant namespace usage * Fixes some buttons not updating the server page * Future proof against upcoming removal of repo data directory * Normalize Main declaration * Update the IRC library * Enables CTCP * Removes useless hack * Logging + enable IRC private messages * Jobs config * And finally the maps config * Save the last config panel visited * Not gonna use these * Minor formatting cleanup * Fixes the chat page not refereshing after clicking reconnect * Fixes server page not initializing correctly * Repo now defaults to tgstation github when not found * Revert "Set read ACL on the data directory" This reverts commit 15b0021ec51532bca14690a884caa81e811fbc46. * Design the admin config page * Prep format the repo's admin_ranks.txt * Add a negative permissions field * IRC now RFC quits before disconnecting * Turns out that fixed the disconnect lag * Updates the admin ranks config api to work for us * Done with this config shit * @optimumtact * Fix this * Fix the .wxs * Try to get md5/sha1 working. * Add FCIV to appveyor * Generalize the command class * Revert "Generalize the command class" This reverts commit 5c61f6df58d66f0fea4170c8aee0cd5beaa99b5d. * ITS THE FUCKING SEX NUMBER!!!! * Final touches * No THESE are the final touches * Do not advertise * Revert "Do not advertise" This reverts commit f64281d486f9ca27e39f19635ab4deacb2d7e1ac. * Hopefully the last version bump for long time * Fix line endings * Fix default dbconfig.txt * Fix Discord not checking the right admin channel * Fix discord listening on ALL channels instead of configured ones * Package the discord fixes for @JamieH * Format the testmerge data a little better * Apply 7 character clamping of commit strings * Fold admin hard reboot into regular reboot list * Backward ahelp compatibility with the adminbus bot * Removes an unecessary semicolon * Fix stray merge conflict in the config * Fix Newtonsoft being included by the commandline * Improve byond update logging * Chat cleanup * Fixes some setup non-errors from being displayed * Repository no longer counts being busy as being valid * Repository no longer valid while cloning * Fixes a nudge socket change issue * Frontend cleanup * Fixes CanStart race condition * Fixes compile cancel delays * Various fixes * More fixes * Better readme * More readme * Fix a config command description * Add missing repo status command * Never delete the backups * Log the compiles * More logging * Stuff * A thing happened, but I'm not sure what * Tiny * INB4 second squash * Version bump * Shallow clones should speed things up * Regular clones * This is how it's set on travis * Fix this dupe * Add backup tag support to backend and command line * Add some missing repo commands, fix GetHead. Fix reset on branches * Remove the interfaces for commit and push * Remove that generate changelog checkbox * Yeah, that's a misunderstanding * Make changelog pushing a config, with no way to enable for now * Add Reset and Recompile option * Update readme * Repo page cleanup * Fixed NudgePort message possible repeating Fixed Reset and Recompile option always being visible * Fixed compilation copy not overwriting files Fixed compiler trying to unecessarily delete the whole A/B folder Improved game folder initialization speed * Selectively stage the html folder * Make the restriction a config * Switch to using LibGit2Sharp+SSH * WIP SSH support * Removes some success chat messages * Make repo authentication purely file based * Quick IRC fix * Should all work in theory... * More fine grained * Remove the username thing * Use the right default email for tgstation-server * Update the readme * That's worthy of a version bump * Speling * Makes it do as the readme says * Fix testmerge list not having a scrollbar * Trying out commit message based deployment [TGSDeploy] * Whoops * Testing * Better * Version Bump [TGSDeploy] * Need to set the var at parent scope [TGSDeploy] * Use the commit message * Try this [TGSDeploy] * Try just this * This maybe? [TGSDeploy] * >like [TGSDeploy] * Wildcard, bitches [TGSDeploy] * Saner title [TGSDeploy] * Readme update * This should loin ya * Fix it [TGSDeploy] * Readme, cleanup, and doc updates * Improve DD crash handling * Version bump [TGSDeploy] * TGS3 Config Changes * Line endings * Map config code change * Missed a few * Security and Visibility selectors for the Server page * Fixes OCD * Fax it * Fixes * Version bump [TGSDeploy] * eh * The word comment has lost it's meaning to me * This is a terrible name but whatever * Support config changes * This is part of the code so it belongs with the code * ExportService now has a return value * Copying of the logs dir during compile for #27674 * Version bump [TGSDeploy] * Removes some uneedful * Moves daemon config to BYOND folder, much safer * Fix a config comment translation miss * Fix project settings issue * Fix config apply button not showing up after repo clone * Fix anchoring for Backup Tags: label * Version Bump [TGSDeploy] * Nudge port only listens while server is running * Fix some instances of the control panel crashing when the service stops * Add start menu shortcuts * Remove the actual server * Remove appveyor * Fix gitignore * And this * Readd HTTPS_Get for now * Readd legacy support * Fix * Fix this stuff * Last thing * Line endings * Final touches * Dat newline * More stuff * Where'd that go? * Real final touches
This commit is contained in:
@@ -423,6 +423,8 @@
|
||||
return
|
||||
|
||||
var/list/options = list("Regular Restart", "Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)")
|
||||
if(world.RunningService())
|
||||
options += "Service Restart (Force restart DD)";
|
||||
var result = input(usr, "Select reboot method", "World Reboot", options[1]) as null|anything in options
|
||||
if(result)
|
||||
SSblackbox.add_details("admin_verb","Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -432,7 +434,10 @@
|
||||
if("Hard Restart (No Delay, No Feeback Reason)")
|
||||
world.Reboot()
|
||||
if("Hardest Restart (No actions, just reboot)")
|
||||
world.Reboot(fast_track = TRUE)
|
||||
world.Reboot(fast_track = TRUE)
|
||||
if("Service Restart (Force restart DD)")
|
||||
GLOB.reboot_mode = REBOOT_MODE_HARD
|
||||
world.ServiceReboot()
|
||||
|
||||
/datum/admins/proc/end_round()
|
||||
set category = "Server"
|
||||
|
||||
@@ -183,7 +183,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
to_chat(C, "<span class='adminnotice'>PM to-<b>Admins</b>: [name]</span>")
|
||||
|
||||
//send it to irc if nobody is on and tell us how many were on
|
||||
var/admin_number_present = send2irc_adminless_only(initiator_ckey, name)
|
||||
var/admin_number_present = send2irc_adminless_only("#[id] [initiator_ckey]", name)
|
||||
log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
|
||||
if(admin_number_present <= 0)
|
||||
to_chat(C, "<span class='notice'>No active admins are online, your adminhelp was sent to the admin irc.</span>")
|
||||
@@ -567,9 +567,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
|
||||
|
||||
/proc/send2irc(msg,msg2)
|
||||
if(config.useircbot)
|
||||
if(world.RunningService())
|
||||
world.ExportService("[SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE] [msg] | [msg2]")
|
||||
else if(config.useircbot)
|
||||
shell("python nudge.py [msg] [msg2]")
|
||||
return
|
||||
|
||||
/proc/send2otherserver(source,msg,type = "Ahelp")
|
||||
if(config.cross_allowed)
|
||||
|
||||
@@ -59,11 +59,11 @@
|
||||
if (!msg)
|
||||
message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.")
|
||||
return
|
||||
cmd_admin_pm(whom, msg, AH)
|
||||
cmd_admin_pm(whom, msg)
|
||||
|
||||
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM.
|
||||
//Fetching a message if needed. src is the sender and C is the target client
|
||||
/client/proc/cmd_admin_pm(whom, msg, datum/admin_help/AH)
|
||||
/client/proc/cmd_admin_pm(whom, msg)
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM: You are unable to use admin PM-s (muted).</font>")
|
||||
return
|
||||
@@ -144,9 +144,9 @@
|
||||
|
||||
if(irc)
|
||||
to_chat(src, "<font color='blue'>PM to-<b>Admins</b>: [rawmsg]</font>")
|
||||
admin_ticket_log(src, "<font color='red'>Reply PM from-<b>[key_name(src, TRUE, TRUE)] to <i>IRC</i>: [keywordparsedmsg]</font>")
|
||||
var/datum/admin_help/AH = admin_ticket_log(src, "<font color='red'>Reply PM from-<b>[key_name(src, TRUE, TRUE)] to <i>IRC</i>: [keywordparsedmsg]</font>")
|
||||
ircreplyamount--
|
||||
send2irc("Reply: [ckey]",rawmsg)
|
||||
send2irc("[AH ? "#[AH.id] " : ""]Reply: [ckey]", rawmsg)
|
||||
else
|
||||
if(recipient.holder)
|
||||
if(holder) //both are admins
|
||||
@@ -221,42 +221,44 @@
|
||||
|
||||
var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target)
|
||||
var/compliant_msg = trim(lowertext(msg))
|
||||
var/unhandled = FALSE
|
||||
var/irc_tagged = "[sender](IRC)"
|
||||
switch(compliant_msg)
|
||||
if("ticket close")
|
||||
if(ticket)
|
||||
ticket.Close(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully closed"
|
||||
if("ticket resolve")
|
||||
if(ticket)
|
||||
ticket.Resolve(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully resolved"
|
||||
if("ticket ic")
|
||||
if(ticket)
|
||||
ticket.ICIssue(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully marked as IC issue"
|
||||
if("ticket reject")
|
||||
if(ticket)
|
||||
ticket.Reject(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully rejected"
|
||||
else
|
||||
unhandled = TRUE
|
||||
if(!unhandled)
|
||||
return "Ticket could not be found"
|
||||
var/list/splits = splittext(compliant_msg, " ")
|
||||
if(splits.len && splits[1] == "ticket")
|
||||
if(splits.len < 2)
|
||||
return "Usage: ticket <close|resolve|icissue|reject>"
|
||||
switch(splits[2])
|
||||
if("close")
|
||||
if(ticket)
|
||||
ticket.Close(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully closed"
|
||||
if("resolve")
|
||||
if(ticket)
|
||||
ticket.Resolve(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully resolved"
|
||||
if("icissue")
|
||||
if(ticket)
|
||||
ticket.ICIssue(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully marked as IC issue"
|
||||
if("reject")
|
||||
if(ticket)
|
||||
ticket.Reject(irc_tagged)
|
||||
return "Ticket #[ticket.id] successfully rejected"
|
||||
else
|
||||
return "Usage: ticket <close|resolve|icissue|reject>"
|
||||
return "Error: Ticket could not be found"
|
||||
|
||||
var/static/stealthkey
|
||||
var/adminname = config.showircname ? irc_tagged : "Administrator"
|
||||
|
||||
if(!C)
|
||||
return "No client"
|
||||
return "Error: No client"
|
||||
|
||||
if(!stealthkey)
|
||||
stealthkey = GenIrcStealthKey()
|
||||
|
||||
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
|
||||
if(!msg)
|
||||
return "No message"
|
||||
return "Error: No message"
|
||||
|
||||
message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]")
|
||||
log_admin_private("IRC PM: [sender] -> [key_name(C)] : [msg]")
|
||||
@@ -276,8 +278,6 @@
|
||||
|
||||
return "Message Successful"
|
||||
|
||||
|
||||
|
||||
/proc/GenIrcStealthKey()
|
||||
var/num = (rand(0,1000))
|
||||
var/i = 0
|
||||
|
||||
Reference in New Issue
Block a user