I have created a module for Anope called DiceServ, inspired in part by the RPGServ module on the Caelestia.net IRC network (although I got my inspiration more from an older version running on MagicStar). The module is a dice rolling pseudo-client. It can do basic dice rolls, but it can also handle very complex syntax as well. It has support for the math constants of e and pi, it supports many math functions, it can handle addition, subtraction, multiplication, division, powers (using ^), and modulus, it does implicit multiplication and unary minus (negative numbers), can handle percentile dice, can roll multiple sets at once, has an extended roll feature to display the individual results of each roll set, calc functions for non-rounding, specialized rollers for D&D3e character creation and Earthdawn's step system, ability to trigger through BotServ fantasy, and an ignore system to allow channel owners (as well as channel operators if enabled, applies to the whole network) to prevent abuse in their channels and Services Operators to prevent users from abusing it.
What I need is for people to use the module and test it out, from a user standpoint, from a channel owner and/or operator standpoint, and from a Services Operator standpoint. I am also looking for suggestions in addition to bug fixes, both from coders and non-coders alike. This includes if you want support for more specialized dice rolls or other math functions.
The module has been made in 6 flavors: Anope 1.8.x (I have been compiling with 1.8.0, and it should work with all versions of 1.8.x, it may work with 1.7.x but I do not support that), Anope 1.9.0 (including 1.9.0-p1), Anope 1.9.1 (including 1.9.1-p1), Anope 1.9.2 (including 1.9.2-p1 and 1.9.2-p2), Anope 1.9.3-p1 (but NOT including 1.9.3, that version is broken and DiceServ does not function with it), and Anope 1.9.4. In case anyone wonders why I still have versions for many of the earlier 1.9.x releases, it's because I wish to have wide support for the module, and in addition, it allows me to see what's changed between the various 1.9.x versions.
(If you plan on loading the module after starting Anope, you can ignore the following, but keep it in mind in case you do decide to load it at startup later.) The 1.8.x version needs to be added to ModuleDelayedAutoload to function properly. The 1.9.x versions can be loaded through the module blocks. See the module's source code for a directive block in case you wish to change the default settings.
A big note: The 1.9.0 version may leak memory due to a lack of code events for handling nick and channel dropping correctly. Anope 1.9.1 added events for those, and thus all 1.9.x versions past 1.9.0 are free of those memory leaks.
As mentioned in a lower post, some Linux distros do not include the math library in a default compile, but other *nix OSes such as FreeBSD do. If the math library is not compiled into Anope as well as the module, Anope will crash when you try to use DiceServ due to unresolved dependencies. To remedy this, you need to include -lm with the LDFLAGS when configuring Anope. For 1.8.x and 1.9.0, this can be done via the environment. For 1.9.1 and later, the library should be found automatically so nothing extra needs to be done for them.
The module may be downloaded from the following 6 URLs:
Anope 1.8.x:
http://kirby.cyberbotx.com/diceserv_1.8.cAnope 1.9.0:
http://kirby.cyberbotx.com/diceserv_1.9.0.cAnope 1.9.1:
http://kirby.cyberbotx.com/diceserv_1.9.1.cAnope 1.9.2:
http://kirby.cyberbotx.com/diceserv_1.9.2.cAnope 1.9.3:
http://kirby.cyberbotx.com/diceserv_1.9.3.cppAnope 1.9.4:
http://kirby.cyberbotx.com/diceserv_1.9.4.cppIf I get enough feedback on this, I will release it on the module site, but I feel it needs testing before I release it there.