/* -*- LPC -*- */ /* * $Locker: $ * $Id: related_files.c,v 1.14 2002/11/18 01:37:21 ceres Exp $ */ #include <playerinfo.h> #include <nomic_system.h> void delete_related_files( string name, int mail, int refresh_type ) { string *files; string area; string dir; if (previous_object() != find_object("/secure/bulk_delete") && previous_object() != find_object("/secure/delete_clear") && previous_object() != find_object("/obj/handlers/refresh")) { if (!master()->high_programmer(previous_object(-1)) && ((string)previous_object()->query_name() != name)) { tell_object(find_player("ceres"), "Not doing erasing. %O\n", previous_object()); unguarded( (: write_file, "/log/CHEAT", ctime( time() ) + ": illegal attempt to delete related files using "+ "/secure/related_files\nTrace: "+ back_trace() :) ); return; } } unguarded( (: rm, "/save/artifacts/"+ name :) ); unguarded( (: rm, "/save/bank_accounts/"+name[0..0] + "/" + name + ".o" :) ); unguarded( (: rm, "/save/cmr_library/"+ name +".o" :) ); catch("/obj/handlers/library"->restart(name)); unguarded( (: rm, "/save/library/"+ name[0..0] + "/" + name + ".o" :) ); unguarded( (: rm, "/save/philosophies/"+ name[0..0] + "/"+ name + ".o" :) ); foreach(dir in get_dir("/save/vaults/*")) if(dir != "." && dir != "..") unguarded( (: rm, "/save/vaults/" + dir + "/" + name + ".o" :) ); unguarded( (: rm, "/save/newsrc/"+name[0..0]+"/"+name+".o" :) ); files = get_dir( "/w/.dead_ed_files/"+ name +"-*" ); if ( sizeof( files ) ) { map(files, (: unguarded( (: rm, "/w/.dead_ed_files/"+ $1 :) ) :) ); } if ( mail ) { // We only delete their player info if we also delete their mail... "/obj/handlers/folder_handler"->delete_account( name ); //PLAYERINFO_HANDLER->player_remove( name ); } "/obj/handlers/secure_handlers/inhume"->player_refreshed( name ); "/obj/handlers/guild_things/thieves_ledger"->delete_crimes( name ); "/obj/handlers/guild_things/quota/thief_quota"->remove_thief(name); "/obj/handlers/guild_things/quota/thief_quota"->remove_player(name); "/d/am/buildings/apex/admin_office"->remove_member( name ); "/d/am/items/watch_ledger"->delete_crimes( name ); foreach (area in NOMIC_HANDLER->query_citizenship_areas()) { NOMIC_HANDLER->remove_citizen(area, name); } } /* delete_related_files() */