pyre-bot / pyre-bot Goto Github PK
View Code? Open in Web Editor NEWDiscord bot used to manage Risk of Rain 2 servers.
Home Page: http://discord.pyre-bot.com
License: GNU General Public License v3.0
Discord bot used to manage Risk of Rain 2 servers.
Home Page: http://discord.pyre-bot.com
License: GNU General Public License v3.0
Documentation needs updated to match current release
With the new use of JSON files for data storing, the setup script should create these files on first launch
Describe the bug
Stat tracking is reading wrong values and putting negatives into Discord
Describe the bug
When using on_command_error, exceptions that aren't specifically called don't output.
To Reproduce
Break something
Expected behavior
Show me exceptions
Before regular restart, I want Discord message like
'Server is restarting for maintenance. It takes less than 3 minutes'.
(My)Discord Members can understand that The server will come back soon.
Tentative solution: Execute fixed_time on the server at a fixed interval (every few seconds or so) and reference the last value if this situation occurs.
Change stat tracking to disabled by default
Before this is completed the following must be done:
Is your feature request related to a problem? Please describe.
server_config
to match server.cfgMay involve moving stat tracking to C# plugin
Since it doesn't verify the existence of the item or equip, it passes along a command which features (none) items or equips if given an argument that doesn't match anything in the game. The solution for this is to add dictionaries for items and equips that can be referenced. Keep in mind that DebugToolkit, which is the plugin that handles the give_item and give_equip commands, has autocomplete, i.e. you can say the item name is "shield" and it will know you meant to give the "PersonalShield" item and carry that out.
At the very least, the bot could wait for the server output, because if it doesn't find the item or equip it will give this as part of the output:
[Info : Unity Log] The requested object could not be found:
We could set that up the same way we set up the chat command to inform the sender on Discord that the item / equip is not found and to try again, and not passing the command to botcmd.txt.
Also add a dictionary for stages so that their "real" names can be referenced rather than their dev names (see: https://github.com/risk-of-thunder/R2Wiki/wiki/List-of-scene-names)
Is your feature request related to a problem? Please describe.
Allow bot and relevant cogs to auto-update
Since Discord updated their bot API to expect '/' as a prefix, this is something that requires an update
Create an admin command which signals to the bot that next time the respective server hits the lobby, pass the "disconnect" cmd to the game server to shut it down and ping the admin user who used this command. I want this because I'm constantly checking to see which servers are in lobby when I want to shut down a server to update a plugin or something else. This would make it so I don't have to monitor them manually.
Is your feature request related to a problem? Please describe.
Running multiple bot instances is excessive
Describe the solution you'd like
Single bot for several servers
Describe alternatives you've considered
Using the current channel dictionary, determine which bot is being used
Is your feature request related to a problem? Please describe.
Create update command for admins that actually updates the server.
Pretty straightforward, just need to change the way the chat string is pulled from the log to prevent cutting off anything with regex.
This branch is for developing a singular version of the bot, one that only requires one instance to control multiple servers. This requires the bot to read from server log files in a central directory for output to discord, as well as for the servers to read commands to ingest. Previously, each bot had its own installation, and had to be located on the same machine as the server, in order to read and write to the necessary files.
As of now, we have seq working to ingest logs from all servers simultaneously, filter out irrelevant events, and forward the resulting events to logs stored in centralized directory that can be (theoretically) read by one bot instance. I want to explore putting additional tags to the logs that signify to the bot which server wrote it, rather than the file name prefix notation I'm using now (which requires 1 log file per server).
The major challenge from this point is how to ingest commands to the game servers using our database system. I know that taking commands from discord and outputting them to another service with the Python bot is easy, and I just need to move that to its own feed, but how we go about having the server read from that feed is what we have to figure out now.
Describe the bug
When using the reload commands, autochat gets duplicated
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The bot will only output the chat once.
Access the player.duration variable in players.py, any time a player connects / disconnects (detected by the server log output already), add the duration of their time spent to a log that is tracked across sessions and can be output to the discord.
In the future, be able to assign Steam players to their Discord IDs so they can track their own stats. Can be expanded to things like runs cleared, times joined, etc.
Possible issue I forsee: May not be able to retrieve player.duration if the player just disconnected. Will have to test this out. If this is a problem, you could just compare the real time at which they joined to the real time at which they left to get their stay duration, instead of using player.duration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.