Răsfoiți Sursa

* When viewing help over auth, only show allowed commands

Bryan Drewery 16 ani în urmă
părinte
comite
58f6bce171
4 a modificat fișierele cu 6 adăugiri și 1 ștergeri
  1. 1 0
      src/binds.c
  2. 3 0
      src/cmds.c
  3. 1 0
      src/cmds.h
  4. 1 1
      src/eggdrop.h

+ 1 - 0
src/binds.c

@@ -430,6 +430,7 @@ void add_builtins(const char *table_name, cmd_t *cmds)
                 /* add BT_dcc cmds to cmdlist[] :: add to the help system.. */
                 if (!strcmp(table->name, "dcc") && (findhelp(cmds->name) != NULL)) {
                   cmdlist[cmdi].name = cmds->name;
+				  cmdlist[cmdi].type = cmds->type;
                   cmdlist[cmdi].flags.match = FR_GLOBAL | FR_CHAN;
                   break_down_flags(cmds->flags, &(cmdlist[cmdi].flags), NULL);
                   cmdi++;

+ 3 - 0
src/cmds.c

@@ -672,6 +672,9 @@ static void cmd_help(int idx, char *par)
     for (n = 0; n < cmdi; n++) { /* loop each command */
       if (!flagrec_ok(&cmdlist[n].flags, &fr) || !wild_match(match, (char *) cmdlist[n].name))
         continue;
+      // Auth?
+      if (!(!dcc[idx].irc || (dcc[idx].irc && (cmdlist[n].type & AUTH_ALL))))
+        continue;
       fnd++;
       if (nowild) {
         flg[0] = 0;

+ 1 - 0
src/cmds.h

@@ -23,6 +23,7 @@ typedef struct {
 typedef struct {
         const char *name;
         struct flag_record     flags;
+        int type;
 } mycmds;
 
 typedef struct {

+ 1 - 1
src/eggdrop.h

@@ -154,7 +154,7 @@ enum {		/* TAKE A GUESS */
 #define AUTH_CHAN	BIT3
 #define AUTH_MSG	BIT4
 #define AUTH_NOT	BIT5
-#define AUTH_ALL	AUTH|AUTH_CHAN|AUTH_MSG|AUTH_NOT
+#define AUTH_ALL	(AUTH|AUTH_CHAN|AUTH_MSG|AUTH_NOT)
 #define have_cmd(name, flags) ((!is_restricted_cmd(name)) && (!(flags & (HUB|LEAF)) || (flags & HUB && conf.bot->hub) || (flags & LEAF && !conf.bot->hub)))