@name %va=TMCS - General Wizard Command Object @name %vb=TMCS - General Wizard Function Object @name %vd=TMCS - General Powered Command Object @name %ve=TMCS - General Powered Function Object @name %vc=Talvo's MUSHcode Suite Core @name %vs=Talvo's MUSHcode Suite - Startup Object @set me=VI:[create(TMCS - Info \(DB\) Object)] @set %vi=NO_COMMAND @power %vi=MANY_ATTRIBS @link %vi=%va @describe %vi=This object is used as a general database object for Suite packages. All attr names are prefixed with ` but there is otherwise no specific structure to their naming - each package does as it needs. @lock/control %vi=$me &info`core`version %vc=1.1 @set %vc=info`core`objects:[insert(get(%vc/info`core`objects),-3,%vi)] &core`cmd.delete-package %va=$+tmcs/delete *: @nspemit/silent %#=setr(9,ufun(%ve/tag,core))[setq(0,0)][switch(0,strmatch(%#,#1),You must be God to do that.,hasflag(%#,wizard),You must be a Wizard to do that.,not(strmatch(%0,*`*)),There is no package with that name.,ufun(%ve/haspackage,%0),There is no package with that name.,if(strmatch(%0,core),lt(words(ufun(%ve/packages)),2),1),You cannot delete the Core while other packages are installed.,Removing package [setr(n,get(%vc/info`%0))] ([ucstr(%0)])...[setq(0,1,t,get(%vc/info`%0`objects))])] ; @assert %q0 ; @dolist [remove(get(%vc/info`core`objects),%vc)]={@nspemit/silent %#=Wiping package attributes from [name(##)](##)... ; @wipe ##/%0`**} ; @nspemit/silent %#=%q9Removing package info from Core object... ; @wipe %vc/info`%0 ; @dolist %qt={@set ##=no_command ; @nuke ## ; @nspemit/silent %#=%q9Destroying Object [name(##)](##)...} ; @force/noeval me=@nspemit/silent %#=%q9Package deleted. +TMCS/UPDATE