Nadybot 5.0 (beta) released

After about 1 year of work, I’m proud to finally release Nadybot 5.0 beta to the public.


What on earth is Nadybot 5.0?
You might be wondering “why 5.0?” and “What happened to 1.0 till 4.0?” Let me explain:
Nadybot started as a fork of Budabot 4.0 and eventually let to me releasing my own version of Budabot 4.1 and then 4.2 (https://github.com/Nadyita/Budabot) but after that I decided that it was time to change the name, because I didn’t want to call myself the “official” Budabot developer since Tyrence left. So now everyone can see that it’s actually like a Budabot 5.0, just not a Budabot anymore. And although the name is nothing to write home about, I eventually got used to it.


Why you should be using it
Nadybot already has all the new items, nanos, tons of fixes that were long overdue, and it has a clean codebase that’s not a pain to work with, which means I am more than happy to continue development and add features and fixes in the future.

Upgrading from Budabot 4 to Nadybot 5 is as seamless as it gets: just install and use your old database.

The code is, as was Budabot’s, fully released under the GPL and we’re still working on improving it and adding features.


Key features

  • A working Discord integration with relaying, notifications and command execution from Discord
  • A webfrontend to make configuration easier
  • Fully up to date database for items, nanos, perks and procs
  • A full-fledged raid module with or without points
  • A Wiki where we’re trying to create documentation for features that require it.
  • Item search groups items, so you can spot the breakpoints easily
  • Largely compatible with old Budabot modules. If it ain’t working, drop me a line and I’ll fix it.

Requirements

  • PHP 7.4 or newer. Yes, that might be a bummer for some, but I also provide Docker/Podman images (and some documentation for it). I haven’t tested Nadybot with Windows as I don’t have a Windows installation anymore, but if there are people who’d like t try, you’re more than welcome. There’s actually no reason why it shouldn’t work. The following extensions are required as a minimum:
    • Curl
    • OpenSSL
    • JSON
    • PCNTL
  • A MySQL or SQLite database, same as Budabot

If you are interested

There’s a public bot Nadybot open to everyone (very much like Zetabyte or Darnbot) which you can use to test commands and what they look like. Feel free to send some !totw or !subway command or join the private chat and play around. Note: That bot doesn’t have the raid module enabled though, because it requires a different permission system.

Feel free to contact me on Discord with any questions about the bot. Unless I’m raiding, I usually answer promptly ;o)

There’s also a Discord server that you can join and where you can see the Discord integration of the bot in action.

Full changelog since Budabot 4.0


Version 5.0:

This is the first version named Nadybot and the first one to only support PHP7.4+.

Features

  • Integrate a lightweight web server (yes, no kidding) and a REST API for some
    basic endpoints which will in the future lead to a full-fledged
    web interface for the bot. More on the wiki.
    Right now, the web UI only allows changing the configuration easily.
  • Roll commands now allow sending result to team/raid
  • Add a proper raid module for point raids. If activated, this will
    give you 6 more ranks to assign rights to (3 raid leaders, 3 raid admins).
    The raid and bid system is modelled after what Hodorraid is using.
    More on the wiki.
  • Proper Discord relay integration with newest v8 API. More on the wiki.
  • Bot relay now support grc protocol v2, allowing total customizability of
    all colors.
  • Support for notifications to Discord for all major commands
  • Raffle module allows raffling multiple items, item groups
    and also introduces configurable raffle bonus points so that people
    not winning anything get better chances on next raffle
  • Added guide for tradeskilling a sauna
  • !weapon command now has a built-in search function for names,
    so you no longer need the aoid.
  • Add module to check which nano a disc turns into
  • Add module to have bot relay darknet/lightnet messages from their
    private channels
  • Add module to search for items locking a certain skill
  • Add module to search for breakpoints or highest usable QL of items
  • Add module to notify about GSP shows and helping you tune in

Changes

  • Add all Symbiants to the implant module
  • Add all Spirits to the spirit module
  • Removed unneeded guides (map navigation anyone?)
  • News can now be marked as read, so they won’t get shown again.
  • Votes are now stored in a different format
  • Documentation is slowly moving into a Github wiki

Bug fixes

  • Orglist module can now once again download and search for orgs

Coding

  • Everything is now typed (where possible) and requires PHP 7.4 or higher
  • AsyncHttp is now truly async, even for SSL/TLS
  • Pushed back synchronous blocking calls with Http
  • Introduced a Websocket client to allow Discord integration

Version 4.2:

This is the last version named Budabot and the last one to support PHP5.
Development will continue with Nadybot.

Features

  • Improved StopWatch module with laps
  • Introduced an AMQP link for bot relaying without AO’s message penalty
  • Introduced skill aliases to make it easier to search for skills. !whatbuffs cl, pm, si or agi will now just work
  • Introduced a DISCORD module to send notifications to Discord channels
  • Added new options to sort and format the alt list
  • Allowed configuring where to announce city waves
  • Fixed, unified and prettified the !weapon command and the FA calc
  • Overhauled !nano and !nanolines with fresh data and grouping, also showing froob-friendly and general nanos
  • Added support for filtering outgoing and incoming messages in relays
  • Added switchable timer to notify when to plant after a notum wars win
  • Added possibility to turn off pictures in !loot and the loot lists
  • Added new totw 201+ loot with !totw and grouped all other

Changes

  • Do not announce when someone just brb’s, just silently set them afk
  • Renamed !raffle join to enter
  • Made sending usage stats opt-in instead of opt-out
  • Updated items database to 18.08.53 patch
  • Sort !timers output by remaining time ascending
  • Added a huge load of new item groups
  • Added a bunch of new locations to the whereis database
  • Reformatted !axp output

Bug fixes

  • Fixed and added tons of nano locations
  • Fixed the !weather command by switching to Nominatim plus the Norwegian weather service
  • Fixed the !vote command
  • Fixed “!whatbuffs weapon smt”
  • Fixed Fast Attack calculations
  • Fixed configuration option where to show people adding or removing themselves from loot

Coding

  • Restructured the file-system layout to make PSR-4 auto loading work properly
  • Replaced all bundled versions of software for the bot with composer modules
  • SQL files now support multi-line commands
    • Better readability for create commands
    • Faster insert speed due to extended inserts
  • Added lots and lots of PHPDoc information

Version 4.1:

  • Introduce a global PHP coding style for the project and fix all files so they adhere to it
  • Remove the API documentation for now as the tool used to build it currently doesn’t work anymore
  • Add type-hints to variables where possible and document functions and their return value, while still sticking to PHP5 compaibility
  • Colorize the whompah-cities according to factions
  • Group search results for items
  • Better alignment for !history
  • !whatbuffs now works with nanos and not nano crystals and can show what provides the buff
  • !whatbuffs now supports towers, contracts and use-items (tutoring devices, extruder nutrition bar)
  • !whatbuffs caps contracts and filigree rings at QL250
  • !whatbuffs now works for nano resist
  • !whois now supports and shows inactive players, so you can better check if a name is free
  • Upgrade item databases to the latest version
  • The items database now supports updating the item_buffs and item_types as well
  • !aggdef now shows a visual slider and makes it easier to set the calculated value
  • Add a bunch of new NPCs to !whereis
  • Remove Blackmane’s Stat Buffer as it’s annoying as hell when you try to find buffs
  • Provide a compact and useful docker image to run BudaBot
  • Allow gracefully shutting down the bot by listening to SIGINT and SIGTERM, thus allowing the bot to be run as a service
  • More concise tower messages
  • Add profession symbol to online list
  • Color the whois org-name according to the org’s faction
  • Make mistyped command suggestions more reasonable
7 Likes

This is a very impressive project, great work! Thanks for taking on the development of such an important third party tool for AO :heart:

Glad to see this bot being released, as i always said and will continue to say, variety of choice for users is always best.

I’m sincerely wishing Nadybot the best and, again, i’m glad to see AO players in 2020 still have several active projects to rely their org & raid on, the more the merryer !