Add 'report' command to report issues in-game

git-svn-id: svn://svn.code.sf.net/p/crossfire/code/maps/trunk@21706 282e977c-c81d-0410-88c4-b93c2d0d6712
master
partmedia 2021-01-02 23:47:28 +00:00
parent 53f6c3dc64
commit 59f89d8acc
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,39 @@
from email.mime.text import MIMEText
import subprocess
import Crossfire
def report(pl):
desc = Crossfire.ScriptParameters()
if desc == None:
pl.Message("To report an issue, type 'report <description of the issue>'.")
return
details = {
'PLAYER': Crossfire.WhoAmI().Name,
'MAP': Crossfire.WhoAmI().Map.Path,
'X': Crossfire.WhoAmI().X,
'Y': Crossfire.WhoAmI().Y,
'DESC': desc,
}
report = """
Reporter: {PLAYER}
Map: {MAP} ({X}, {Y})
Report: {DESC}
""".format(**details)
Crossfire.Log(Crossfire.LogInfo, "A problem was reported: %s" % (report))
msg = MIMEText(report)
recipient = "crossfire"
msg["From"] = "crossfire"
msg["Subject"] = "Crossfire issue report"
result = subprocess.run(['sendmail', recipient], input=msg.as_bytes())
if result.returncode == 0:
pl.Message("Thank you for your report.")
else:
pl.Message("There was an error reporting your problem. Please contact a Dungeon Master to report your problem.")
report(Crossfire.WhoAmI())

View File

@ -4,4 +4,5 @@ Crossfire.RegisterCommand("autojail", "/python/commands/autojail", 0)
Crossfire.RegisterCommand("dip", "/python/commands/dip", 0)
Crossfire.RegisterCommand("disinfect", "/python/commands/disinfect", 0)
Crossfire.RegisterCommand("give", "/python/commands/give", 0)
Crossfire.RegisterCommand("report", "/python/commands/report", 0)
Crossfire.RegisterCommand("reputation", "/python/commands/reputation", 0)