README.md 5.2 KB

This repo used to be a giant collection of the modules I've written, but since the advent of UnrealIRCd v5 there's now a centralised repo for that shit instead. Many of my mods can be found there, so if you're a *NIX user then use Unreal's own module manager to install them and keep them up to date. ;]

When modules aren't in that central repo, it usually means it's something tailored to very specific needs and there's no real reason to include it on there. For those, you still need to do a couple of manual steps (see below).

For troubleshooting etc, view the HALP.md fiel. You can also find (some) discussion in the 3rd party mods board on the Unreal forums. =]

Windows users: you're currently shit out of luck when it comes to using my modules. I need to hack my AppVeyor to build modules from all the new locations first. :DDDDDDD Unless you're feeling brave and wanna try manually compiling them yourself of course. ;]

All modules should be loaded on all servers, unless explicitly specified otherwise

The shown config block snippets are just examples of the structure, it's up to you to integrate it properly with your existing config

Module compilation (*NIX only)

This repo now rocks a modules.list file, which can be used with Unreal's mod manager. ;];] Simply edit <Unreal install dir>/conf/modules.sources.list and add the following URL to the bottom of that file: https://gottem.nl/unreal/modlist. Then run <Unreal install dir>/unrealircd module list and verify that modules from this repo are included in the output.

Repo structure

  • skrip: Some miscellaneous scripts that might be of use (see readme in the dir for deetz) ;]
  • templates: Muh templ8s for Unreal m0ds m8, everything is explained inside the .c files there
  • spec: Specifically written for someone by request, as such it's tailored to them/their network and is probably not very useful to you (see readme in the dir for deetz)
  • malv: Specifically written for Malvager; move along, nothing to see here =]

Paid modules

I also started writing modules with the intention of selling them, as those are generally very complex and take up a lot of my spare time. ;] For more information about those, simply go to my shop sort of thing.

If you don't need these but still want to support me, feel free to donate through PayPal or use the custom job fee option in my shop if you want to donate with credit card or iDEAL. :>

Log events

Unreal 6 now uses log events rather than just plain notices, so we had to create a bunch of new events. Snomasks were also redone entirely so we no longer use custom snomasks for this, but rather Unreal's log block now determines what is broadcast globally. You can still create your own snomasks with these events. ;]

To achieve similar global noticing behaviour as in Unreal 5 you'll need to add this to your unrealircd.conf:

log {
    source {
        autovhost.AUTOVHOST_INVALID;
        block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED;
        block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG;
        commandsno.COMMANDSNO_USAGE;
        modmanager_irc.MODMANAGER_IRC_USAGE;
        rtkl.RTKL_USAGE;
        sacmds.SACMDS_NICK_USAGE;
        sacmds.SACMDS_UMODE_USAGE;
        textshun.TEXTSHUN_MATCH;
    }
    destination {
        remote;
    }
}

An overview of all new/custom log events (grouped by module):

  • autovhost.AUTOVHOST_INVALID
  • block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED, block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG
  • block_no_tls.BLOCK_NO_TLS_CHANGED
  • commandsno.COMMANDSNO_USAGE
  • fantasy.FANTASY_INVALID, fantasy.FANTASY_OUT_OF_SPACE
  • gecos_replace.GECOS_REPLACE_TRUNCATED
  • geoip.GEOIP_LOOKUP_ERROR, geoip.GEOIP_ACCEPTED, geoip.GEOIP_OPERMSG
  • ldapauth.LDAPAUTH_ACCEPTED, ldapauth.LDAPAUTH_OPERMSG
  • modmanager_irc.MODMANAGER_IRC_USAGE, modmanager_irc.MODMANAGER_IRC_RELAYEDOUTPUT
  • mshun.MSHUN_EXPIRE, mshun.MSHUN_CHANGED
  • operoverride_ext.OPEROVERRIDE_EXT_UNKNOWN, operoverride_ext.OPEROVERRIDE_EXT_BAN, operoverride_ext.OPEROVERRIDE_EXT_REGONLY, operoverride_ext.OPEROVERRIDE_EXT_INVITE
  • otkl.OTKL_MATCH, otkl.OTKL_REPLACE, otkl.OTKL_ADD, otkl.OTKL_DEL
  • repeatprot.REPEATPROT_TRIGGERED
  • report.REPORT_SYNC_ERROR
  • rtkl.RTKL_USAGE
  • sacmds.SACMDS_NICK_USAGE, sacmds.SACMDS_UMODE_USAGE
  • signore.SIGNORE_ADD, signore.SIGNORE_DEL, signore.SIGNORE_EXPIRE
  • textshun.TEXTSHUN_ADD, textshun.TEXTSHUN_DEL, textshun.TEXTSHUN_EXPIRE, textshun.TEXTSHUN_MATCH

Certain modules also reuse already existing events:

  • block_masshighlight: kill.KILL_COMMAND, tkl.TKL_ADD_TEMPSHUN
  • block_no_tls: kill.KILL_COMMAND
  • block_notlsident: kill.KILL_COMMAND
  • fixhop: operoverride.OPEROVERRIDE_INVITE
  • rehashgem: config.CONFIG_RELOAD
  • repeatprot: kill.KILL_COMMAND