Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/shells/magier/comm.c b/std/shells/magier/comm.c
new file mode 100644
index 0000000..0cbd266
--- /dev/null
+++ b/std/shells/magier/comm.c
@@ -0,0 +1,149 @@
+// MorgenGrauen MUDlib
+//
+// comm.c
+//
+// $Id: comm.c 8755 2014-04-26 13:13:40Z Zesstra $
+#pragma strict_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#include <wizlevels.h>
+#include <magier.h>
+#define NEED_PROTOTYPES
+#include <thing/properties.h>
+#include <thing/description.h>
+#include <player.h>
+#include <properties.h>
+
+
+//                           ###########
+//############################ ECHOALL ################################
+//                           ###########
+
+static int _echoall(string str)
+{
+  if (!(str=_unparsed_args()))
+    return USAGE("echoall <text>\n");
+  str=break_string(str);
+  shout(str);
+  printf(str);
+  return 1;
+}
+
+//                           ##########
+//############################ ECHOTO #################################
+//                           ##########
+
+static int _echoto(string str)
+{
+  object ob;
+  string who;
+  string msg;
+
+  if (!(str=_unparsed_args())||sscanf(str, "%s %s", who, msg) != 2)
+    return USAGE("echoto <spieler> <text>\n");
+  ob = find_player(lower_case(who));
+  if (!ob)
+  {
+    printf("echoto: Es ist kein Spieler '%s' eingeloggt.\n",who);
+    return 1;
+  }
+  msg=break_string(msg,78);
+  tell_object(ob,msg);
+  printf("%s->%s",ob->Name(WEN),msg);
+  return 1;
+}
+
+//                           #########
+//############################ MECHO ##################################
+//                           #########
+
+static int _mecho(string str)  {
+  object *who;
+  int i;
+
+  if (!sizeof(str=_unparsed_args()))
+    return USAGE("mecho <text>\n");
+  who=users();
+  i=sizeof(who);
+  while(i--)if (IS_LEARNER(who[i]))
+      tell_object(who[i], break_string(str,78));
+  return 1;
+}
+
+//                            ########
+//############################# PING ##################################
+//                            ########
+
+static int _ping(string str)
+{
+  object pl;
+
+  if (!sizeof(str))
+    return USAGE("ping <spielername>\n");
+  if (!(pl=find_player(lower_case(str))))
+    return
+      _notify_fail(sprintf("ping: Spieler %s nicht gefunden.\n",
+                           capitalize(str))),0;
+  tell_object(pl,sprintf("%s pingt Dich an.\a\n",capitalize(getuid())));
+  return printf("PINGGGGGGG! DAS sollte %s auf Dich aufmerksam "
+                "gemacht haben.\n",capitalize(getuid(pl))),1;
+}
+
+//                           ##########
+//############################ OROPAX #################################
+//                           ##########
+
+int _oropax(string cmdline)
+{
+  int level,old,new;
+
+  cmdline=_unparsed_args();
+  old=QueryProp(P_EARMUFFS);
+  if (!sizeof(cmdline)||cmdline=="0")
+  {
+    if (old)
+    {
+      printf("Du nimmst das Oropax aus Deinen Ohren und hoerst "
+             "wieder allen anderen zu.\n");
+      SetProp(P_EARMUFFS, 0);
+    }
+    else
+      printf("Du hast doch gar kein Oropax in den Ohren.\n");
+    return 1;
+  }
+  if (sscanf(cmdline, "%d", level) == 0 || level < 1)
+    return USAGE("oropax [<magierlevel>]\n");
+  if ((new=SetProp(P_EARMUFFS, level))==level)
+  {
+    if (new==old)
+      return printf("Du hattest Deine Oropaxmenge schon auf Magierlevel "
+                    "%d angepasst.\n",level),1;
+    if (new>old)
+      return printf("Du stopfst Dir soviel Oropax in die Ohren, dass "
+                    "Du nur noch %s ab\nLevel %d hoerst.\n",
+                    level>=LEARNER_LVL?"Magier":"Seher",level),1;
+    return printf("Du nimmst soviel Oropax aus den Ohren, dass Du ab "
+                  "sofort wieder %s ab\nLevel %d verstehst.\n",
+                  level>=LEARNER_LVL?"Magier":"Seher",level),1;
+  }
+  return printf("Du stopfst und stopfst, bis Dir das Oropax wieder zur "
+                "Nase herauskommt.\nLeider musst Du damit Magier ab Level "
+                "%d weiterhin hoeren.\n",new),1;
+}
+
+//                         ###################
+//########################## INITIALISIERUNG #############################
+//                         ###################
+
+static mixed _query_localcmds()
+{
+  return
+    ({({"oropax","_oropax",0,LEARNER_LVL}),
+      ({"echoto","_echoto",0,LEARNER_LVL}),
+      ({"echoall","_echoall",0,LEARNER_LVL}),
+      ({"mecho","_mecho",0,LEARNER_LVL}),
+      ({"ping","_ping",0,LEARNER_LVL})});
+}