&wardrobe`cmd.wardrobe %va=$^\+wardrobe(/table(?\: (.+))?)?$: @nspemit/silent %#=ufun(%ve/tag,wardrobe)[switch(0,strlen(%1),ufun(%vb/wardrobe`fun.wardrobe,objid(owner(%#))),strlen(%2),ufun(%ve/wardrobe`fun.table-show),ufun(%vb/wardrobe`fun.table-set,%2))] @set %va/wardrobe`cmd.wardrobe=regexp &wardrobe`fun.wardrobe %vb=switch(setr(0,sql(SELECT `name` FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid` = '[sqlescape(%0)]' ORDER BY `name`)),,You have no saved descriptions. See HELP WARDROBE for how to save them.,#-1.You have no saved descriptions. See HELP WARDROBE for how to save them.,You have [switch(words(%q0),1,1 description,words(%q0) descriptions)] saved:%r[itemize(%q0)]) &wardrobe`fun.wsave %vb=switch(0,hastype(%#,PLAYER),Only players can save descriptions.,regmatch(setr(0,ucstr(%0)),^\[A-Z0-9_-\]\{1\,25\}$),That isn't a valid name for a description.,hasattrpval(%#,describe),You don't have a description set!,not(sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%:)]' AND `name`='[sqlescape(%q0)]')),You already have a description with that name saved. Type +WREPLACE %q0 to overwrite it.,null(sql(INSERT INTO `[sqlescape(get(%ve/wardrobe`tablename))]`(`objid`\,`name`\,`text`) VALUES('[sqlescape(%:)]'\,'[sqlescape(%q0)]'\,'[sqlescape(get(%#/describe))]')))Your current description has been saved as '%q0'.) &wardrobe`fun.wreplace %vb=switch(0,hastype(%#,PLAYER),Only players can save descriptions.,regmatch(setr(0,ucstr(%0)),^\[A-Z0-9_-\]\{1\,25\}$),That isn't a valid name for a description.,hasattrpval(%#,describe),You don't have a description set!,sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%:)]' AND `name`='[sqlescape(%q0)]'),You don't have a description with that name. Type +WSAVE %q0 to save a new description.,null(sql(UPDATE `[sqlescape(get(%ve/wardrobe`tablename))]` SET `text`='[sqlescape(get(%#/describe))]' WHERE `objid`='[sqlescape(%:)]' AND `name`='[sqlescape(%q0)]'))Description '%q0' updated.) &wardrobe`fun.wstore %vb=switch(0,hastype(%#,PLAYER),Only players can save descriptions.,regmatch(setr(0,ucstr(%0)),^\[A-Z0-9_-\]\{1\,25\}$),That isn't a valid name for a description.,strlen(squish(%1)),What do you want to save?,not(sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%:)]' AND `name`='[sqlescape(%q0)]')),You already have a description with that name saved. Delete it first with +WERASE %q0 then try setting it again.,null(sql(INSERT INTO `[sqlescape(get(%ve/wardrobe`tablename))]`(`objid`\,`name`\,`text`) VALUES('[sqlescape(%:)]'\,'[sqlescape(%q0)]'\,'[sqlescape(%1)]')))Description saved as '%q0'.) &wardrobe`fun.werase %vb=switch(0,hastype(%#,PLAYER),Only players can delete descriptions.,sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid` = '[sqlescape(%:)]' AND `name` = '[sqlescape(setr(0,ucstr(%0)))]'),You don't have a description with that name.,null(sql(DELETE FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid` = '[sqlescape(%:)]' AND `name` = '[sqlescape(%q0)]'))Description '%q0' deleted.) &wardrobe`fun.wexam %vb=switch(0,sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%0)]' AND `name`='[sqlescape(setr(0,ucstr(%1)))]'),You have no '%q0' description saved.,Description '%q0' (unevaluated):%r[sql(SELECT `text` FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%0)]' AND `name`='[sqlescape(%q0)]')]) &wardrobe`fun.weval %vb=switch(0,sql(SELECT COUNT(`id`) FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%0)]' AND `name`='[sqlescape(setr(0,ucstr(%1)))]'),You have no '%q0' description saved.,Description '%q0' (evaluated):%r[mapsql(#lambda/objeval\(%%#\,s\(%%1\)\),SELECT `text` FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%0)]' AND `name`='[sqlescape(%q0)]')]) &wardrobe`fun.wwear %vb=switch(0,words(%1),Which descriptions do you want to set?,eq(words(setunion(ucstr(%1),)),words(setr(0,sql(SELECT `name` FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid` = '[sqlescape(%0)]' AND `name` IN([edit(setr(1,iter(%1,'[sqlescape(ucstr(itext(0)))]')),%b,\,)]))))),You don't have these descriptions: [setdiff(ucstr(%1),%q0)],Description set.[attrib_set(%#/describe,iter(ucstr(%1),sql(SELECT `text` FROM `[sqlescape(get(%ve/wardrobe`tablename))]` WHERE `objid`='[sqlescape(%0)]' AND `name`='[sqlescape(itext(0))]')))][atrlock(%#/describe,ON)][atrlock(%#/describe,OFF)][attrib_set(%#/wardrobe,ucstr(squish(%1)))]) &wardrobe`fun.table-show %ve=switch(squish(get(%ve/wardrobe`tablename)),,There is currently no MySQL table set.,The MySQL table used by the wardrobe system is `[get(%ve/wardrobe`tablename)]`.) &wardrobe`fun.table-set %vb=switch(0,regmatch(%0,^\[a-zA-Z0-9_-\]\{1\,50\}$),That is not a valid table name.,not(sql(SELECT count(*) FROM `information_schema`.`tables` WHERE `table_name` = '[sqlescape(%0)]')),There's already a table with that name.,switch(sql(ufun(%ve/wardrobe`fun.table-set-query-[setr(0,switch(squish(get(%ve/wardrobe`tablename)),,create,rename))],%0)),#-1*,Unable to %q0 table.,Table %q0d.[attrib_set(%ve/wardrobe`tablename,%0)][set(%va/wardrobe`cmd*,!no_command)][set(%ve/wardrobe`cmd*,!no_command)])) &wardrobe`fun.table-set-query-create %ve=CREATE TABLE `[sqlescape(%0)]` ( `id` int(11) NOT NULL auto_increment, `objid` tinytext NOT NULL, `name` text NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)) &wardrobe`fun.table-set-query-rename %ve=RENAME TABLE `[sqlescape(get(%ve/wardrobe`tablename))]` TO `[sqlescape(%0)]` &fun.wsave %vb &wardrobe`tablename %ve=descs +TMCS/ADDPACKAGE wardrobe=Wardrobe (DescChanger)/1.3/A Wardrobe (description changer) which can store and set multiple descriptions per player, using MySQL/\[+WARDROBE\]%b