Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.78 KB | None | 0 0
  1. else if (Q_stricmpn (p, "!ny_banlist", 11 ) == 0) //Denna ska läsa av en ban till att börja med.
  2.     {
  3.         char *buffer_sanitized;
  4.         char name[80] = "";
  5.         char ip[80] = "";
  6.         char date_banned[80] = "";
  7.         char reason[80] = "";
  8.         char banned_by[80] = "";
  9.         char buffer[1024] = "";
  10.         char userinfo[MAX_INFO_VALUE];
  11.         char userfile[128];
  12.         char* name_end = "²]";
  13.         char* name_beginning = "[²";
  14.         char* date_banned_name = "date_banned=";
  15.         char* reason_name = "reason=";
  16.         char* banned_by_name = "banned_by=";
  17.         char* ip_name = "ip=";
  18.         char* names_banned[100]; //Ska använda denna för att dubbelkolla för dubbelnamn osv
  19.         int len;
  20.         fileHandle_t f;
  21.         /*char* position_name;
  22.         char* position_name2;
  23.         char* position_name3;
  24.         int position_name_int, position_name_start;*/
  25.         int position_name_end_int, position_name_start_int;
  26.         int position_date_banned_end_int, position_date_banned_start_int;
  27.         int position_reason_end_int, position_reason_start_int;
  28.         int position_ip_end_int, position_ip_start_int;
  29.         int position_banned_by_end_int, position_banned_by_start_int;
  30.  
  31.         char* position_name_start;
  32.         char* position_name_end;
  33.         char* position_date_banned_start;
  34.         char* position_date_banned_end;
  35.         char* position_reason_start;
  36.         char* position_reason_end;
  37.         char* position_ip_start;
  38.         char* position_ip_end;
  39.         char* position_banned_by_start;
  40.         char* position_banned_by_end;
  41.         //int position_name_end;
  42.         int i = 0;
  43.         int amount_banned = 0;
  44.         int number = 0;
  45.     //SanitizeString2( other->client->pers.netname, comparename );
  46.  
  47.     //trap_SendServerCommand(-1, va("print\"%s", comparename)); //Den ska söka efter en sanitizestringad variant
  48.         Com_sprintf(userfile, 1024*4, "bans.cfg");
  49.         trap_FS_FOpenFile(userfile, &f, FS_READ);
  50.            
  51.         if ( !f )
  52.             {
  53.             return;
  54.             }
  55.  
  56.         if ( f )
  57.             {
  58.                 // Hittar användaren så söker lösen
  59.                 trap_FS_FCloseFile( f );
  60.                 len = trap_FS_FOpenFile(userfile, &f, FS_READ);
  61.                 trap_FS_Read( buffer ,len , f );
  62.  
  63.                 /*//trap_SendServerCommand(-1, va("print\"%s", arg2));
  64.                 position_name = strstr(buffer, arg2);
  65.             //  if (atoi(position_name) > 0) //Den kanske får buffer värdet
  66.                 //{
  67.                     position_name_int = position_name - buffer;
  68.                 //  trap_SendServerCommand(-1, va("print\"%i", position_name_int));
  69.                     position_name_int = position_name_int - MAX_NAME_LENGTH;
  70.                     if (position_name_int < 0) //Denna fixen gör dock så att första kommer upp om man inte hittar annat
  71.                     {
  72.                         position_name_int = 0;
  73.                     }
  74.                 //  trap_SendServerCommand(-1, va("print\"%i", position_name_int));
  75.                     position_name2 = strstr(buffer+position_name_int, name_beginning);
  76.                     position_name_start = position_name2-buffer+2; //+2 för att komma fram till det faktiska namnet
  77.                 //  trap_SendServerCommand(-1, va("print\"%i", position_name_start));
  78.  
  79.                     position_name3 = strstr(buffer+position_name_int, name_end);
  80.                     position_name_end = position_name3-buffer;
  81.                 //  trap_SendServerCommand(-1, va("print\"%i", position_name_end));
  82.  
  83.                     strncpy(name, buffer+position_name_start, position_name_end-position_name_start);
  84.                     trap_SendServerCommand(-1, va("print\"%s", name));*/
  85.                    
  86.                     position_name_end_int = 0;
  87.                     /*trap_SendServerCommand(-1, va("print\"%i", strlen(buffer)));
  88.                     position_name_start = strstr(buffer+position_name_end_int, name_beginning);
  89.                         position_name_start_int = position_name_start-buffer+2;
  90.                         position_name_end = strstr(buffer+position_name_start_int, name_end);
  91.                         position_name_end_int = position_name_end-buffer;
  92.                         trap_SendServerCommand(-1, va("print\"\nStart: %i End: %i\n", position_name_start_int, position_name_end_int));*/
  93.                     //while (strlen(buffer) > position_bannedby_end_int+2)
  94.                     while (strlen(buffer) > position_name_end_int+100)
  95.                     {
  96.                         position_name_start = strstr(buffer+position_name_end_int, name_beginning);
  97.                         position_name_start_int = position_name_start-buffer+2;
  98.                         position_name_end = strstr(buffer+position_name_start_int, name_end);
  99.                         position_name_end_int = position_name_end-buffer;
  100.  
  101.                         position_ip_start = strstr(buffer+position_name_end_int, ip_name);
  102.                         position_ip_start_int = position_ip_start-buffer+4;
  103.                         //position_ip_end = strstr(buffer+position_name_start_int, name_end);
  104.                         //position_name_end_int = position_name_end-buffer;
  105.  
  106.                         position_date_banned_start = strstr(buffer+position_name_end_int, date_banned_name);
  107.                         position_date_banned_start_int = position_date_banned_start-buffer+13;
  108.                         position_ip_end_int = position_date_banned_start_int-16;
  109.  
  110.                         position_reason_start = strstr(buffer+position_ip_end_int, reason_name);
  111.                         position_reason_start_int = position_reason_start-buffer+8;
  112.                         position_date_banned_end_int = position_reason_start_int-12;
  113.  
  114.                         position_banned_by_start = strstr(buffer+position_date_banned_end_int, banned_by_name);
  115.                         position_banned_by_start_int = position_banned_by_start-buffer+11;
  116.                         position_reason_end_int = position_banned_by_start_int-14;
  117.  
  118.                         position_banned_by_end = strstr(buffer+position_banned_by_start_int, ";");
  119.                         position_banned_by_end_int = position_banned_by_end-buffer-1;
  120.  
  121.                     /*  position_ip_start = strstr(buffer+position_name_end_int, ip_name);
  122.                         position_ip_start_int = position_ip_start-buffer+4;
  123.  
  124.                         position_ip_start = strstr(buffer+position_name_end_int, ip_name);
  125.                         position_ip_start_int = position_ip_start-buffer+4;*/
  126.  
  127.                         number++;
  128.                         strncpy(name, buffer+position_name_start_int, position_name_end_int-position_name_start_int);
  129.                         strncpy(ip, buffer+position_ip_start_int, position_ip_end_int-position_ip_start_int);
  130.                         strncpy(date_banned, buffer+position_date_banned_start_int, position_date_banned_end_int-position_date_banned_start_int);
  131.                         strncpy(reason, buffer+position_reason_start_int, position_reason_end_int-position_reason_start_int);
  132.                         strncpy(banned_by, buffer+position_banned_by_start_int, position_banned_by_end_int-position_banned_by_start_int);
  133.                         trap_SendServerCommand(-1, va("print\"^3%i) ", number));
  134.                         trap_SendServerCommand(-1, va("print\"^3Name: ^7%s", name));
  135.                         trap_SendServerCommand(-1, va("print\" ^3IP: ^7%s", ip));
  136.                         trap_SendServerCommand(-1, va("print\" ^3Date banned: ^7%s ", date_banned));
  137.                         trap_SendServerCommand(-1, va("print\" ^3Reason: ^7%s ", reason));
  138.                         trap_SendServerCommand(-1, va("print\" ^3Banned by: ^7%s\n", banned_by));
  139.                     }
  140.                     /*while (i < 15) //Tar i = 15 för att testa ba, ska komma på en bättre loop
  141.                     {
  142.                         position_name = strstr(buffer+position_name_end, arg2); //Case insensitive
  143.                         //  if (atoi(position_name) > 0) //Den kanske får buffer värdet
  144.                         //{
  145.                         position_name_int = position_name - buffer;
  146.                         //  trap_SendServerCommand(-1, va("print\"%i", position_name_int));
  147.                         if (position_name_int == 0)
  148.                         {
  149.                             //Bör betyda att det inte hittats
  150.                             return;
  151.                         }
  152.                         position_name_int = position_name_int - MAX_NAME_LENGTH;
  153.                         if (abs(position_name_int) == MAX_NAME_LENGTH)
  154.                         {
  155.                             return;
  156.                         }
  157.                         if (position_name_int < 0) //Denna fixen gör dock så att första kommer upp om man inte hittar annat
  158.                         {
  159.                             position_name_int = 0;
  160.                         }
  161.                         //  trap_SendServerCommand(-1, va("print\"%i", position_name_int));
  162.                         position_name2 = strstr(buffer+position_name_int, name_beginning);
  163.                         position_name_start = position_name2-buffer+2; //+2 för att komma fram till det faktiska namnet
  164.                         //  trap_SendServerCommand(-1, va("print\"%i", position_name_start));
  165.  
  166.                         position_name3 = strstr(buffer+position_name_int, name_end);
  167.                         position_name_end = position_name3-buffer;
  168.                         //  trap_SendServerCommand(-1, va("print\"%i", position_name_end));
  169.  
  170.                         strncpy(name, buffer+position_name_start, position_name_end-position_name_start);
  171.                         trap_SendServerCommand(-1, va("print\"%s\n", name));
  172.                         i++;
  173.                     }
  174.                     //  }
  175.  
  176.                     //SanitizeString2( buffer, buffer_sanitized ); //Måste föra in namnen sanitized?
  177.  
  178.                     //Com_sprintf( userwrite, sizeof(userwrite), va("playername=\"%s\";\npassword=\"%s\";\npersonalGreeting=\"%s\";\nlockedip=\"%s\";\nadminlevel=\"%s\";²", username, password_login, new_info, lockedip, adminlevel));
  179.  
  180.                     /*position_password = strstr(buffer, password_name);
  181.                     position_pass = position_password - buffer;
  182.                     position_pass = position_pass+10; //Här börjar pw:t
  183.  
  184.                     position_Playername = 12;
  185.                     position_endPlayername = position_pass-13;
  186.  
  187.                     position_personalGreeting = strstr(buffer, personalGreeting_name);
  188.                     position_personalGreet = position_personalGreeting - buffer;
  189.                     position_endPassword = position_personalGreet-3; //Här slutar PW
  190.                     position_personalGreet = position_personalGreet+18; //Här börjar personalGreeting*/
  191.  
  192.                     /*  position_lockedip = strstr(buffer, lockedip_name);
  193.                     position_lockedipint = position_lockedip - buffer;
  194.                     position_endPersonalGreet = position_lockedipint-3; //Devy: Här slutar nu PG.
  195.  
  196.                     position_adminlevel = strstr(buffer, adminlevel_name);
  197.                     position_adminlevelint = position_adminlevel - buffer;
  198.                     //position_endPersonalGreet = position_adminlevelint-3; //Här slutar PG
  199.                     position_adminlevelint = position_adminlevelint+12; //Här börjar adminlevel
  200.  
  201.                     position_end_of_file = strstr(buffer, end_of_file);
  202.                 position_endadminlevel = position_end_of_file - buffer - 2;
  203.                 strncpy(playername, buffer + position_Playername, position_endPlayername - position_Playername);
  204.                 strncpy(password_login, buffer + position_pass, position_endPassword - position_pass);
  205.                 strncpy(personalGreeting, buffer + position_personalGreet, position_endPersonalGreet - position_personalGreet);
  206.                 strncpy(adminlevel, buffer + position_adminlevelint, position_endadminlevel - position_adminlevelint); //Får all info korrekt, crashar dock om man inte har upphöjd 2:a i filen, var försiktig*/
  207.     }
  208.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement