- client:send(data) is not documented] fixed
- it'd be nice if the "Unknown command: " also stated the username (and optionally the IP) so I could check which client is sending crap obsoleted by clientUnknownCommand
- +loadfromdisk [access] [dchpp]
would load the respective xml files from disk, inverse of refresh, all other plugins may handle their own reloading (like LuaScript already does with +reload) - it isn't really nice that OpCom steals "+help*", for instance it would be good if LuaScript also had a chance to reply that it knows the +reload command.
ACTION_HANDLED still needs to be called after the last script is done, so maybe one could implement a HUB_HANDLED return code instead which would allow scripts to get the message anyway. the inverse could be PLUGIN_HANDLED (hmm.. what would this be good for?). I haven't given this enough thought yet though. will be fixed with ACTION_STOP when it works =) - +showuserswithlevel <level> [<regex_or_wildcard_enabled_thing>]
(but then again, I can read the access.xml just fine ;) ), but an +isregged command would be nice to have in OpCom or an extra boolean for +reg, like +reg <nick> <pass> <level> [overwrite], so regged users aren't accidentally overwritten - +refresh could reload the OpCom.xml settings, but then again, once a hub is set up correctly these things usually don't need tweaking (unless you want exceptionally high uptimes of course)
- ip mask specification is reversed (10.11.12.13/8 is converted to 10.11.12.0-10.11.12.255 when it should be 10.0.0.0-10.255.255.255) fixed
- a small note:
Code: Select all
<ServerIp type="string">surfnet.mine.nu</ServerIp><!-- don't use :<port> =) --> - why is RegistrationServers not in settings? settings.RegistrationServers could be a nice array in Lua
- functionality to reload a single script set (so the memory of other scripts isn't cleared). it would look like:
+reload [script_set1[ script_set2[ ...]]
(without arguments it would reload all)
this needs an identifier of script sets.. something like <Context name="foobar"> (can't include space)) - a way to implement a timer. either like PtokaX or nmdc does it, or with a sleep command, like:a sleep() would be more versatile, methinks
Code: Select all
while some_global do -- some_global may be modified anytime
someFunction( someArguments )
-- hm.. this might need a wakeUp() function too.. ?
sleep( some_amount_of_seconds )
end - (yeah, you know, just added it for completeness)
a way to enumerate users. perhaps a linked list would be memory efficient: client:getFirst and client:getNext()
PtokaX will use an array of strings for this if I'm not mistaken. fixed by foreach - SendPmToAll(), it's not really that needed, a hubMessage() works just fine, but some scripters and Mass-Message junkies can't seem to live without it. the following suggestion would elimate the need for this though: fixed by foreach
- client group objects, like getGroupByLevel( lowest_level[, highest_level] ), which would return an object with the following methods:
send( data ), privateMessage( data ), hubMessage( data[, from] )
for emulating SendToOps() there would exist a need to find out which level has operator status, but this is not really needed (OP status being almost obsoleted and all) fixed by foreach
hm.. most things here will require more than a little work. sorry about that :)
[edit: moved some stuff around]
[edit: changed things fixed in 0.16,0.17]
[edit: highlighted stuff that I find important]