mojo_client/bin/scripts/__core_internal.def
2008-03-24 16:43:51 +00:00

119 lines
3.0 KiB
Modula-2

// scripts used for configuration! DO NOT MODIFY unless you know what you do!!
#onload
log * Loading core scripts (internal config)...
#/onload
//--------------------------------------------------------
#script=exit
#permission=255
//--------------------------------------------------------
// just a name alternative
QUIT
//--------------------------------------------------------
#script=quit
#permission=255
//--------------------------------------------------------
// quit PseuWoW, say goodbye when logged in
IF ${@inworld}
SAY Terminating proc...
ENDIF
SHDN
//-----------------------------------------------
#script=cleanupvars
//-----------------------------------------------
// purpose: unset all variables that could be abused by someone
LOGDETAIL * Cleaning up variables...
UNSET #ACCPASS
UNSET #ACCNAME
LOGDETAIL * Dangerous variables removed.
//-----------------------------------------------
#script=config
#permission=255
//-----------------------------------------------
#onload
// create empty variable. stores if config script was already run successfully once.
SET,DONE
#/onload
// Load all conf files from directory /conf/
// get all *.conf file names from /conf/ directory, store the names in list 'fl' and the amount in 'fcount'
LOG ** Configuring PseuWoW...
SET,fcount ?{LGETFILES,fl,conf conf}
// sort the list, load conf files alphabetically.
LSORT fl
IF ?{NOT ${fcount}}
LOGERROR No conf file found! Can't load.
RETURN
ENDIF
LOG * Loading ${fcount} conf files.
// iterate over all files and load them; if counter i is equal to the amount of files we are done.
SET,i 0
LOOP
IF ?{EQUAL,${i} ${fcount}}
EXITLOOP
ENDIF
SET,fn ?{LINDEX,fl ${i}}
LOG * Loading conf file [ ${fn} ]
LOADCONF ${fn}
ADD,i 1
ENDLOOP
UNSET fcount
UNSET i
UNSET fn
LDELETE fl
// Apply the configuration
APPLYCONF
LOG * Configuration applied.
// Apply user permissions
APPLYPERMISSIONS
// remove dangerous variables
CLEANUPVARS
// set permissions for internal functions
INTERNAL_PERM
// if its not set in the conf file, default it to "." (WoWEmu & MaNGOS style)
DEFAULT,#CMDCHAR .
LOG ** All Config done.
SET,DONE true
//--------------------------------------------------
#script=internal_perm
#permission=255
//--------------------------------------------------
// purpose: set script permissions for internal functions that cant be set otherwise.
// if you don't set a permission for a script manually, it will have permission 255 (highest)
LOG * Assigning permissions for internal functions...
// emotes are hard to abuse, allow for everyone
setscriptpermission,emote 0
// ... set more permissions here ...
// this dummy script does nothing actually but since its loaded last in this file it causes the config
// script to be run before all .def files are loaded
// (this is important for scripts that depend on the config already existing during load-time)
//-------------------------------------------------
#script=dummy
//-------------------------------------------------
#onload
if ?{not ${#config::DONE}}
config
endif
#/onload