Skip to content

Releases: InsideAgent/InsideAgentBot

v0.10.0

24 Dec 18:30
7261571
Compare
Choose a tag to compare

Major Features

  • Stage Channel support
  • Full project documentation
  • Statistics commands
  • Help commands
  • Developer tools (debug commands)
  • Lots of maintenance and bug fixes
  • Robust logging
  • Configuration file & super users

For a more detailed overview of whats changed over the last year click here

What's Changed

What's next

It may be noticeable that I haven't been updating this project as often, and have more been focusing on making important bug fixes rather than major improvements. Unfortunately this is a trend that will likely continue... Luckily I have decided to start utilizing branches and issues to keep track of my own progress, which means anyone will be able to see exactly what is or isn't being worked on. For the future I have a couple of features I would still like to add to make this project feel more "complete." Those can be found under the Post 0.10.0 milestone. While I may be taking a step back from active development on this project, it is still my baby and I will work to support any requested features and maintain functionality for the foreseeable future.

Closing Thoughts

I would just like to thank anyone who has added this bot to their servers or starred the repository. While this project isn't massively popular it is far larger than I would have ever imagined when I first started this project ~2 years ago. Once again, thank you to anyone who uses this project!

Some Cool Screenshots :)

'#' Of Servers the bot is in:
image

Total cumulative hours of music listened to (Post March-2022)
image

Number of users across 42 servers:
image

Code changes from release 0.1.9-beta.1 to now:
image

Total code changes across the history of this project:
image

Full Changelog: v0.1.9-beta.1...v0.10.0

v0.1.9-beta.1

19 Sep 17:21
Compare
Choose a tag to compare

API/Stats/More (Part 1)

Radio Command

The NEW radio command brings a new way to listen to music, using the command /radio <limit> the bot will generate <limit> amount of songs (up to 100) of any 5 genres you choose via the selector!

image

API

While limited and not available to public for use yet , there is now a API for the bot! Using the new /auth-token command you can retrieve a token for access to the api using discord authentication! In the future you will be able to take this token and input it into the AgentApi builder and get a easy way to implement informational methods from InsideAgent into your program!

Stats

Backpacking on the introduction of the API, I completely overhauled the structure of the SQL database. This means that there is now a way to get stats from the bot, along with the bot tracking stats. In the future you will be able to use the AgentApi to get the stats, along with generating graphs based off stats.

Side Note:

This update also removed the gamespy feature. Sadly it didn't seem to have a good path for scaling or growth, and I determined the application would be better without it.

Closing Thoughts

That's it for today, but the Stats/API is only in part 1 of its update cycle, so be looking out for the full release of the features in the near future, as always submitting Issues/Pull requests help me improve the bot in areas I wasn't aware needed it, so please do submit those!

What's Changed

Check here for all bug fixes!

Full Changelog: v0.1.8...v0.1.9-beta.1

v0.1.8

29 Jul 04:38
Compare
Choose a tag to compare

v0.1.8 QOL+ and Embed Editor

Embed Editor

While sitting one day, I wished there was an easy way to create embed's from the discord client. I learned of Carl Bot and it's web-editor, but I wanted something BUILT-IN to discord, so I created the Embed editor.

To Start, use the slash command /embedbuilder (channel) (the channel arg being optional):
image

Next it will give a request button looking like this:
image

After clicking the button you will be greeted with the default embed, and a drop down list of options to edit the embed along with the Send! button, to send the embed to the specified channel:
image

Note: When using the color function, be sure to format the color with hex integer format (0xdbbd25, 0x + 6_Hex_Digits)
image

Note: The author field supports linking in the text
image

Note: Most text inputs support Markdown synatax!
image

And Finally upon sending your embed, you get a result like this:
image

There are many other nuances and cool things to learn about the embed editor, but I'm not going to list them here, so go find them yourself!

Changelog + QOL:

  • Added Feature Request forms.
  • Added Bug Report Forms.
  • Many bug fixes, found below.
  • Added Nickname Command /nick (can nick bot or user)
  • Moved bot to Server (more below)

Dedicated server!

One of the biggest changes in this update was the setting up of a linux and MySQL database on a external linux device. Now the server is run locally on a remote device, this posed many challenges, such as the transfer of DB storage to the new device, along with setting up a linux distro I've never worked with, and attempting to setup docker. Unfortunately my local machine would not run docker desktop, so for now I manage files manually via USB for updates, but I am hoping on a more permanent solution soon.

Bugs Squashed! 🐞

  • Added message for un-pausing the player when already un-paused.
  • Added video source category to the sendTrackInfo command
  • Forced music channel to be set in DB when any track plays.
  • Removed conflicting default branches for interaction responses.
  • Removed conflicting default branches for interaction responses. (x5 more locations lol)
  • Fixed djEnabled embed coloring.
  • Added error message to seek command if no track is playing.
  • Required user access for hijack command in slash commands.
  • Fixed data leak with SQL statements not being closed.
  • Optimized fileplay method.
  • Added permission check to nickname command for Permission.NICKNAME_MANAGE
  • Updated README.md
  • Fixed toggle-player button.
  • Disallowed debug commands in private messages.
  • Fixed bot not leaving channel??? (Sometimes it still doesnt???)
  • Added null check to skip track.
  • Enabled auto reconnect to VC
  • Changed Guild Object instances to ID's to preserve them from being garbage collected.
  • Random changes to loop command to fix stuff lol.

Closing Thoughts

I'm very happy of the state of the bot right now, and I'm unlikely to update it, unless its to fix bugs, or if someone suggets or I think of new features to add. Right now very out of ideas though. Thanks for hanging with me, and if you like the service, become awesome clicking here.

v0.1.7

29 May 18:32
Compare
Choose a tag to compare

v0.1.7 Introducing Slash Commands!

Why Slash Commands?

With discord requiring intent for reading message content in a few months, I decided it was better to stay ahead of the curve and introduce slash commands before I was forced! This does not mean that normal text commands don't work though, they will be considered legacy options until I am forced to remove them to due intent requirements.

Commands:

All commands have remained the same besides the removal of some aliases, this list of commands can be found here!

Stuff for nerds:

Since slash commands are interactions and require reply's I had to refactor the entire command & audioPlayer infrastructure to have each method return a message that can be sent in a reply or a channel directly when it gets called. This also caused some issues with the Record: LoadAudioHandler as it passes methods through a inner anonymous class, but this was solved through the use of SynchronousQueue!

Changelog:

Full Changelog: v0.1.6...v0.1.7

v0.1.6

21 May 04:35
Compare
Choose a tag to compare

v0.1.6 QOL and Other updates!

Changelog:

  • Resolved issue #2 (eecb859)
  • Update README (9dc336c)
  • Handled ContextException for missing messages. (3bcae5e)
  • Working on webhooks (VERY WIP) v0.3.1 (ed25773)
  • Added Logback for Jansi/Windows & Started Debug adding commands. (62c6da0)
  • Updated & Added Inactivity Check (02000e3)
  • Updated CodeQL and other Build Checks. (3ebaf4b)
  • Moved System ENV to Config (0a9fe4b)
  • Added File support to track loader. (23d0562)
  • Other Bug fixes found here -> (Click!)

v0.1.5

09 May 00:52
Compare
Choose a tag to compare

Release v0.1.5

Keeping in trend with smaller releases (mentioned in v0.1.3) this one will only be adding 2 features, and a lot more work under the hood.

Major Changes:

  • Added -skipto or -st command to skip to a certain index in the current queue!
  • Added Requirement for guilds to register their guild. (!registerguild)

Minor Changes (Cosmetic)

  • Added checks to new commits
  • Released to public.
  • Full Readme
  • Code of Conduct
  • Contribution guidelines
  • Other enhancements to the repo overall, but not the project itself.

v0.1.4

08 May 04:46
Compare
Choose a tag to compare

Full Changelog:

  • Added Professional README.
  • Improved Queue message.
  • Added License to project and release to public.
  • Fixed many many bugs.
  • Updated & Improved currently playing to have buttons for actions.
  • -playtop or -ptop command added (referenced in prior release but not in official commit)

For a full List of changes see this: 0.1.3...v0.1.4

v0.1.3

30 Apr 23:08
Compare
Choose a tag to compare

Big changes on the horizon (0.1.3)!

Major Changes in this update:

  • Finished AudioPlayer! Changelist will follow...
  • Many bug fixes and refactors across the board
  • Added Live DJ to AudioPlayer
  • Added many new Commands to AudioPlayer
  • Many other niche changes.

Current Command List for AudioPlayer:

  • -play - Add a link to most streaming platforms, or use its name to search!
  • -skip - Skips the current song!
  • -volume - a number 1-100 to adjust volume!
  • -clear - clears the current queue!
  • -stop or -pause - pauses the current playing audio!
  • -resume - resumes the current queue!
  • -disconnect or -dc or -leave - disconnects the bot from its channel!
  • -follow or -move moves the bot to your current channel!
  • -queue or -q - Shows a Embed of songs (10 per page) with page selectors, and a button to remove the message!
  • -shuffle - Shuffles the queue!
  • -song or -info - Shows info about the song, including a progress bar, the song requester, and Title/Author!
  • -remove - Removes a song from the queue at a given index number!
  • -seek - Takes in arg in the form of HH:mm:ss that seeks to that time in the current song!
  • -fix - Resets the VoiceChannel's region to help reduce latency and audio lag.
  • -loop - Args are either song or queue to loop a song or to loop the entire queue! (Skipping resets any loops!)
  • -move - Intakes to numbers and swaps their positions in the queue!
  • -hijack - Secret Command 🤫Only Accessible by certified DJ's!
  • -playtop or -ptop - Adds a song to the top of the queue, (added in 577b5ca )

AudioPlayer Changelog

  • Implemented message when queueing songs to give the user a mass amount of useful info.
  • Refactored GuildAudioManager in many ways to optimize performance and Guild separation.
  • Ported LoadAudioHandler to a record.
  • Added many commands to GuildAudioManager.
  • Polished most commands and UI implementations.
  • Added secret DJ mode.

The Future of InsideAgent!

Rather than a checklist for this portion of the changelog, I figured it would be easier to type it in a paragraph format. First off I have noticed that having only major updates as official releases isn't a good idea, so I have decided that every few commits I will be updating the 0.0.X version, and then major versions will update the 0.X.0 version number. This allows people to be able to see my progress easier along the way, and then find the Major Updates for new features and extensive changelogs similar to this. Overall I believe this will make it easier to follow my progress, along with helping push through my next topic. That being the potential for this project to go public! (Most people right now would be reading this when it is already public so welcome!), but for those of you who I have added as private viewers, I plan to take this project to the next level. Rather than keeping this a troll bot with random commands and some nice features, I want to adapt this bot to become a large scale public bot for anyone to use, along with sending me PR's for new features. However, this means that I need the bot to be available 24/7 which is why in the coming days I will be purchasing some small equipment to host the bot and SQL server on! I feel this will make it much more enjoyable for end-users when the bot is public, as then it can be accessed at any time! This also means that the project will likely receive updates on a separate branch, that will be merged into master when I want the server to update.

Well, I think that's all for now, I appreciate anyone who gives this bot a try, and hopefully it makes many people's lives easier. Stay safe and have a good day!

v0.1.2

24 Apr 22:26
Compare
Choose a tag to compare

Woohoo! We finally hit 0.1.2!

Major Changes in this update:

  • Added AudioPlayer to include YouTube and Spotify queries!
  • Work In Progress chat filter, shames users for certain language!
  • Adapted YAML Data Storage to MySQL
  • Completed main functions of GameSpy
  • Last Implementation of GameSpy will include automatic notifications every X days! (Coming soon)

AudioPlayer current Commands:

  • -play - Add a link to most streaming platforms, or use its name to search!
  • -skip - Skips the current song!
  • -volume - a number 1-100 to adjust volume!
  • -clear - clears the current queue!
  • -stop or -pause - pauses the current playing audio!
  • -resume - resumes the current queue!
  • -disconnect or -dc or -leave - disconnects the bot from its channel!
  • -follow or -move moves the bot to your current channel!
  • -queue or -q - WIP, currently not enabled.

GameSpy Current Commands and IMPL:

  • !gamespy - toggles the feature off per guild
  • !gamespydump - developer command to manually requests guilds data, Will Be ported to weekly updates in the future!
  • MySQL guild table - This table includes each guilds ID, GameSpy toggle state, TicketChannel, and GameSpyChannel
  • MySQL GameSpyUsers table - includes the guild ID, along with the users ID, and their total Time logged.

Various other optimizations!

  • Seperate thread for GameSpy watcher.
  • TrackScheduler for AudioPlayer
  • GuildAudioManager instance provided to each guild using AudioPlayer
  • LoadAudioHandler to load songs, can be extended for custom IMPL
  • Moved all keys to System Variables 😬 oops!
  • Much more if you dig into the code a bit lol

Finally, Future expectations!

  • Hopefully I can extend my AudioPlayer classes and port them to allow PrivateConnection access (Group chats & DMs)
  • Finish GameSpy auto-updates
  • Port Bot to a Raspberry Pi where it can be enabled 24/7
  • Finish Chat Filter and add server config for wide range of possibilites
  • New Features? No leaks yet!

That's it for today, hope this is useful and will work well for anyone who wants to use this 😄

0.1.1 First Official Release!

05 Apr 05:20
Compare
Choose a tag to compare
Pre-release

First tagged release woo!

Started the version at 0.1.1 instead of 0.1.0 because I should have made a official release for complaints, but forgot, so here we are now!

Feature List:

  • Complaint Command
  • Complaint Modal Option
  • Complaint Thread Option (For private thread enabled servers)
  • Cancel Complaint Option
  • RegisterGuild command
  • SetTicketChannel Command
  • GameSpy
  • Experimental Annotations (Likely Deleted Soon)
  • GameSpy Icon (https://i.imgur.com/MD8RHHL.png)

Upcoming Features:

  • Private Message functions
  • GameSpy tracking over time & releasing reports
  • Secret Features? Who said secret Features??