1.1 --- a/plugins/sql-admin-manager.sp Tue Aug 14 04:46:21 2007 +0000
1.2 +++ b/plugins/sql-admin-manager.sp Tue Aug 14 05:42:44 2007 +0000
1.3 @@ -227,39 +227,54 @@
1.4
1.5 decl String:query[256];
1.6
1.7 + new Handle:hQuery;
1.8 + Format(query, sizeof(query), "SELECT id FROM sm_groups WHERE name = '%s'", safe_name);
1.9 + if ((hQuery = SQL_Query(db, query)) == INVALID_HANDLE)
1.10 + {
1.11 + return DoError(client, db, query, "Group retrieval query failed");
1.12 + }
1.13 +
1.14 + if (!SQL_FetchRow(hQuery))
1.15 + {
1.16 + ReplyToCommand(client, "[SM] %t", "SQL Group not found");
1.17 + CloseHandle(hQuery);
1.18 + CloseHandle(db);
1.19 + return Plugin_Handled;
1.20 + }
1.21 +
1.22 + new id = SQL_FetchInt(hQuery, 0);
1.23 +
1.24 + CloseHandle(hQuery);
1.25 +
1.26 /* Delete admin inheritance for this group */
1.27 - Format(query,
1.28 - sizeof(query),
1.29 - "DELETE FROM sm_admins_groups WHERE group_id IN (SELECT id FROM sm_groups WHERE name = '%s')",
1.30 - safe_name);
1.31 + Format(query, sizeof(query), "DELETE FROM sm_admins_groups WHERE group_id = %d", id);
1.32 if (!SQL_FastQuery(db, query))
1.33 {
1.34 return DoError(client, db, query, "Admin group deletion query failed");
1.35 }
1.36
1.37 /* Delete group overrides */
1.38 - Format(query,
1.39 - sizeof(query),
1.40 - "DELETE FROM sm_group_overrides WHERE group_id IN (SELECT id FROM sm_groups WHERE name = '%s')",
1.41 - safe_name);
1.42 + Format(query, sizeof(query), "DELETE FROM sm_group_overrides WHERE group_id = %d", id);
1.43 if (!SQL_FastQuery(db, query))
1.44 {
1.45 return DoError(client, db, query, "Group override deletion query failed");
1.46 }
1.47
1.48 + /* Delete immunity */
1.49 + Format(query, sizeof(query), "DELETE FROM sm_group_immunity WHERE group_id = %d OR other_id = %d", id, id);
1.50 + if (!SQL_FastQuery(db, query))
1.51 + {
1.52 + return DoError(client, db, query, "Group immunity deletion query failed");
1.53 + }
1.54 +
1.55 /* Finally delete the group */
1.56 - Format(query, sizeof(query), "DELETE FROM sm_groups WHERE name = '%s'", safe_name);
1.57 + Format(query, sizeof(query), "DELETE FROM sm_groups WHERE id = %d", id);
1.58 if (!SQL_FastQuery(db, query))
1.59 {
1.60 return DoError(client, db, query, "Group deletion query failed");
1.61 }
1.62
1.63 - if (SQL_GetAffectedRows(db))
1.64 - {
1.65 - ReplyToCommand(client, "[SM] %t", "SQL Group deleted");
1.66 - } else {
1.67 - ReplyToCommand(client, "[SM] %t", "SQL Group not found");
1.68 - }
1.69 + ReplyToCommand(client, "[SM] %t", "SQL Group deleted");
1.70
1.71 CloseHandle(db);
1.72