GithubHelp home page GithubHelp logo

nadybot / nadybot Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 5.0 93.51 MB

The successor of the original Budabot, taking the project one step further

Home Page: https://github.com/Nadybot/Nadybot

License: GNU General Public License v3.0

Shell 0.30% PHP 99.52% Batchfile 0.01% Dockerfile 0.05% PowerShell 0.01% HTML 0.11%
anarchy-online bot

nadybot's People

Contributors

bdurrer avatar beefsupremely avatar bigwheels16 avatar bitnykk avatar deathlef avatar dependabot[bot] avatar destru avatar gelbpunkt avatar heis avatar itzunagi avatar javier-cornejo avatar junglegeorge avatar martindanielsson avatar meowomancer avatar mreidel-godaddy avatar nadyita avatar norbby42 avatar savagedlight avatar teeko7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nadybot's Issues

Write an installer and automatic updater for NadyUI

Plan is to have a setting to choose to always use "latest" version or to subscribe to the "stable" channel and have the bot check once every 24h, download and install the according package.
Rounded by a command installui <latest|stable> for manual setup.

Discord gateway reconnection handling

There seems to be an issue where the Discord gateway client disconnects after several days, which might be:

  • Cloudflare
  • Opcodes where resuming isn't allowed

We should try to reproduce this and investigate a side-issue where memory allocation in PHP seems to fail in the gateway module when memory is free. Could be a memory leak?

TODO:

  • Proper reconnection backoff with max 5 retries
  • Log websocket closing?

Convert Discord mentions

Currently, relaying something like You are so cool, @Nadyita will result in the pure Discord message sent to AO, which is You are so cool, <@[!]user_id> (so You are so cool, <@1234567890> or You are so cool, <@!1234567890>, depending whether there is a nickname or not).

We should replace mentions with the user's Discord name or even linked AO character if possible.

Support Windows

Issues found while testing in a VM:

  • Support Composer 2 (Patcher.php, line 25: $operation::TYPE would be composer 2, getType was removed)
  • Conditionally disable readline module if not available since that's POSIX only
  • Fix webserver path handling (almost everything 404s right now)
  • Set up CI to vendor composer and a php.ini (?)

Test with MySQL InnoDB

AWS cannot work with MyIsam databases, so do some extensive testing and ensure that InnoDB is not only working, but also the default if possible.

[Websockets] Large packet issues

It seems that continuation frames are not detected as such and so when Discord send a large packet, we interpret pars of that packet as a new one.

Fix dyna database

Neither location, type, nor levels of the dyna DB seem to be accurate in any way.

[ITEMS_MODULE] !boss command errors

Player: !boss legchopper

Nadybot: There was an error executing your command: Argument 1 passed to Nadybot\Core\Text::makeImage() must be of the type int, null given, called in C:\Users\User\Desktop\bundle (2) - Copy\src\Modules\ITEMS_MODULE\BosslootController.php on line 107

Howto migrate from budabot 4

Hello, as said in the title, how do you migrate from budabot 4 to nadybot, keeping all modules and database in the process ofc, is that possible?

Allow !itemid to search by name

This is so we can use the found weapons in the !weapons command, so maybe even go further and have a link to that command directly, if it's enabled?

Support README.md files for modules

We need to be able to describe what a module as a whole does when running sth. like !config MODULENAME. Adding and parsing basic Markdown or a specific JSON format seem to be a good start. This should be displayed on NadyUI as well

Add a command to temporarily block people from raiding

[Leritall]: Ok, say you have someone deserving of a temp ban for something not massively major. Allowing them to attend, but not gain points/bid would give them a chance to redeem themselves
To [Leritall]: That wouldn't stop them from ninja'ing anything though
[Leritall]: That's true. But ninja should be a perm ban, no?
[Leritall]: I guess it depends on severity
To [Leritall]: Depends on how people handle it
[Leritall]: Yea
To [Leritall]: So you are suggesting to allow to "block" people from joiing a raid and also from receiving or spending points
[Leritall]: No, I'm suggesting a middle ground between ban and not ban
[Leritall]: where they'd be allowed to join. But not get anything out of it. for x amounts of raids, and then it'd go back to normal after said time
To [Leritall]: Well something like "block raid " or "block points " or "block bid ", right?
[Leritall]: yea, something like that
[Leritall]: Would allow them to still be in the raid. But it would be their choice whether or not to participate, seeing they wouldn't get anything out of it. But it would give them a chance to prove that they regret what they did etc

Chunk too large embed segments

Currently, we simply convert the popups to embeds, not taking into account their maximum size. Now that we even use fields, each of these must be limited to 1000 chars. Error can be seen when relaying the !config-command

Implement automatic database schema updates

Currently, we have to either have people run update scripts between releases or take care of schema updates manually in the @setup. Both isn't great. I want schemas to be updates automatically when the bot starts, no matter if MySQL or SQLite.

Disabling all Guild commands results in SQL error

When attempting to run the !config cmd disable guild command, the request fails and results in a SQL syntax error in the log.

2020-11-18 23:03:25.792 INFO  [Inc. Msg.] Player: config cmd disable guild
2020-11-18 23:03:25.793 ERROR Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?)' at line 1
Query: SELECT `type`, `file`, `cmd`, `admin` FROM `cmdcfg_botname` WHERE `cmdevent` = 'cmd' AND (`type` = ?)
Params: []
2020-11-18 23:03:25.793 INFO  [Out. Msg.] Player There was an SQL error executing your command.

Enhance tracker module

The tracker module should allow to configure which information to show about tracked people:

  • Level
  • AI Level
  • Org
  • Faction
  • Profession

We also want to have an online-list for these tracked people (optionally grouped by something like the title level) so that PvP-focussed bots can easily see what the other side has in which level range.

Raffle end seems to cause SQL-error

> !raffle end
ERROR Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Query: SELECT name FROM raffle_bonus_babelfisch WHERE name IN ()
Params: []

Add predefined raid rewards

One wish is to be able to do something like !raid reward beast or !raid reward s28 which should

  1. Add a predefined amount of points to each raider
  2. Be logged with a reason, so you can see for what points were given.

Additionally, it would be nice not to have a fixed list of these raid points, but the ability to edit them, so you don't need access to the source or the database to have more predefined raid points.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.