Bei klingelton ohne Argument den aktuellen Status ausgeben.
Dies ist so dokumentiert und aus meiner Sicht auch sinnvoll. Damit die
Syntaxhilfe ausgegeben wird außerdem einige return 0; eingefügt.
Change-Id: I2b76442f698b31f51d9a5c8c1a2f5c3a63927db5
diff --git a/std/player/comm.c b/std/player/comm.c
index e6c8718..c8981f2 100644
--- a/std/player/comm.c
+++ b/std/player/comm.c
@@ -1175,9 +1175,39 @@
return (flag & QueryProp(P_ALERT));
}
+private string beep_status()
+{
+ int beep_interval=({int})QueryProp(P_MESSAGE_BEEP);
+ mapping text = ([
+ MB_SAY: "sage",
+ MB_TELL: "teile mit",
+ MB_CHANNEL: "Ebenenmeldungen",
+ MB_MENTION: "Erwaehnungen",
+ MB_SHOUT: "rufe",
+ MB_MISC: "sonstige",]);
+ string types = CountUp(map(filter(m_indices(text), #'_alert_filter_flags), text));
+ if(!sizeof(types))
+ {
+ types = "Keine";
+ }
+ return
+ "Gewaehlte Klingeltoene: " + types + "\n"
+ "Zeitabstand: "
+ + (beep_interval ? "maximal alle " + beep_interval + " Sekunden."
+ : "keiner") + "\n"
+ + (QueryProp(P_ALERT) & AL_NO_SOUND ? " Allerdings sind Toene insgesamt "
+ "bei Dir abgeschaltet. (\'hilfe ton\')" : "");
+}
+
static int _msg_beep(string str)
{
- int beep_interval;
+ if(!sizeof(str))
+ {
+ ReceiveNotify(
+ beep_status(),
+ query_verb());
+ return 1;
+ }
notify_fail(
"Syntax:\n"
@@ -1186,8 +1216,6 @@
"- klingelton ein\n"
"- klingelton <+/-><tm / sag / ebenen / ruf / erwaehnung / sonstige / alle / >\n");
- if(!sizeof(str))
- return 0;
if (!regmatch(str,"^[[:digit:]]", RE_PCRE))
{
if (str=="aus")
@@ -1207,7 +1235,7 @@
]);
foreach(string part : explode(str, " ") - ({""}))
{
- if(!(part[1..] in flags)) continue;
+ if(!(part[1..] in flags)) return 0;
if(part[0] == '+')
{
SetProp(P_ALERT,
@@ -1218,6 +1246,10 @@
SetProp(P_ALERT,
QueryProp(P_ALERT) & ~ flags[part[1..]]);
}
+ else
+ {
+ return 0;
+ }
}
// 0 hat leider historisch die Bedeutung von MB_MISC, daher muss hier
// statt dessen auf AL_NO_SOUND gesetzt werden.
@@ -1229,32 +1261,19 @@
}
else
{
- beep_interval = to_int(str);
+ int beep_interval = to_int(str);
if(beep_interval >= 0)
{
- SetProp(P_MESSAGE_BEEP, beep_interval);
+ SetProp(P_MESSAGE_BEEP, beep_interval);
+ }
+ else
+ {
+ return 0;
}
}
- beep_interval=({int})QueryProp(P_MESSAGE_BEEP);
- mapping text = ([
- MB_SAY: "sage",
- MB_TELL: "teile mit",
- MB_CHANNEL: "Ebenenmeldungen",
- MB_MENTION: "Erwaehnungen",
- MB_SHOUT: "rufe",
- MB_MISC: "sonstige",]);
- string types = CountUp(map(filter(m_indices(text), #'_alert_filter_flags), text));
- if(!sizeof(types))
- {
- types = "Keine";
- }
ReceiveNotify(
- "Gewaehlte Klingeltoene: " + types + "\n"
- "Zeitabstand: "
- + (beep_interval ? "maximal alle " + beep_interval + " Sekunden." : "kein") + "\n"
- + (QueryProp(P_ALERT) & AL_NO_SOUND ? " Allerdings sind Toene insgesamt "
- "bei Dir abgeschaltet. (\'hilfe ton\')" : ""),
+ beep_status(),
query_verb());
return 1;
}