proc(_assertperm, @name, @cmodetrumps, if(player() == '~console', return()) if(pisop(), return()) if(has_permission('nerdch.level.' . @name), return()) if(@cmodetrumps == 1 && pmode() == 'CREATIVE', return()) msg(concat(color(red), 'You do not have permission to do this! [ap]')) die()) #Gets the mods and admins on right now proc(_get_mods, assign(@mods, array()) assign(@ap, all_players()) foreach(@ap, @p, if(has_permission(@p, 'nerdch.level.mod'), array_push(@mods, @p) # console(sconcat(@p, 'has mod perm')) ) #if(array_contains(pgroup(@p), 'Moderators'), array_push(@mods, @p)) #if(array_contains(pgroup(@p), 'ModMode'), array_push(@mods, @p)) ) #assign(@admins, _get_admins()) #foreach(@admins, @admin, # array_push(@mods, @admin) #) return(@mods) ) #Gets just the admins on right now proc(_get_admins, assign(@admins, array()) assign(@ap, all_players()) foreach(@ap, @p, #if(or( # array_contains(pgroup(@p), 'HeadAdmins'), # array_contains(pgroup(@p), 'CAdmins'), # array_contains(pgroup(@p), 'TechAdmins'), # array_contains(pgroup(@p), 'SAdmins'), # array_contains(pgroup(@p), 'PAdmins') #), array_push(@admins, @p)) if(has_permission(@p, 'nerdch.level.admin'), array_push(@admins, @p)) ) return(@admins) ) proc(_get_chat_admins, assign(@admins, array()) assign(@ap, all_players()) foreach(@ap, @p, #if(or( # array_contains(pgroup(@p), 'HeadAdmins'), # array_contains(pgroup(@p), 'CAdmins'), # array_contains(pgroup(@p), 'TechAdmins'), # array_contains(pgroup(@p), 'SAdmins'), # array_contains(pgroup(@p), 'PAdmins') #), array_push(@admins, @p)) if(has_permission(@p, 'nerdch.level.adminchat'), array_push(@admins, @p)) ) return(@admins) ) #Messages all mods and admins proc(_mbroadcast, @msg, foreach(_get_mods(), @m, tmsg(@m, @msg) ) /*foreach(_get_admins(), @a, tmsg(@a, @msg) )*/ ) proc(_getonlinename, @name, if(equals(@name, ''), return(player()), #else: try( assign(@name2, player(@name)) return(if(equals(@name, '~console'), 'console', @name2)), @ex, try( return(player(concat(color(10), @name))), @ex, return(null))))) proc(_contains, @needle, @haystack, assign(@repl, replace(to_lower(@haystack), to_lower(@needle), '')) #if(equals(to_lower(@haystack), to_lower(@repl)), return(false), return(true)) return(not(equals_ic(@haystack, @repl))) ) proc(_kit, @name, if(equals(@name, ''), assign(@kits, array()) foreach(reg_split('\n', read('kits.txt')), @l, assign(@m, reg_match('^([^:]+)', @l)) if(array_index_exists(@m,0), array_push(@kits, @m[1]))) msg(concat(color(gray), 'Usage: /kit ')) msg(concat(color(gray), 'Available kits: ', array_implode(@kits, ', '))), #else: assign(@found, 0) foreach(reg_split('\n', read('kits.txt')), @l, assign(@m, reg_match(concat('^', @name, ': (.*)$'), @l)) if(array_index_exists(@m,0), assign(@found, 1) assign(@l, @m[1]) for(assign(@i,0),true,inc(@i), assign(@m, reg_match('^([0-9]+)x ([0-9]+(?::[0-9]+)?)[ ,]*(.*)$', @l)) if(array_index_exists(@m,0), pgive_item(@m[2], @m[1]) assign(@l, @m[3]), #else: break())))) if(equals(@found, 0), msg(concat(color(red), 'Kit not found!'))))) #This set of commands, /msg, /r, and /cmsg replaces the built in message system #and allows for colored messages, so they are more prominent proc(_message, @highlight, @to, @text, assign(@from2, player()) assign(@to2, _getonlinename(@to)) if(is_null(@to2), msg(concat(color(red), 'Error: that player is not online!')) return()) #if(equals(@to2, @from2), # msg(concat(color(red), 'foreveralone.png')) # return()) assign(@text2, concat(if(equals(@highlight, 1), color(green), color(white)), @text)) msg( concat(color(gray), '[me -> ', strip_colors(@to2), '] ', @text2)) tmsg(@to2, concat(color(gray), '[', strip_colors(@from2), ' -> me] ', @text2)) console(concat('[msg: ', @from2, ' -> ', @to2, '] ', @text)) export(concat('last_message_', to_lower(strip_colors(@to2))), to_lower(strip_colors(@from2))) export(concat('last_message_', to_lower(strip_colors(@from2))), to_lower(strip_colors(@to2))) )