Releases: InsideAgent/InsideAgentBot
v0.10.0
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
- Add documentation for all methods, and important classes. by @Jacrispys in #11
- Bump com.squareup.okio:okio from 3.3.0 to 3.4.0 by @dependabot in #12
- Stats and help commands. by @Jacrispys in #15
- Cli + Robust Logging by @Jacrispys in #14
- Bump ch.qos.logback:logback-classic from 1.4.6 to 1.4.12 by @dependabot in #16
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 :)
Total cumulative hours of music listened to (Post March-2022)
Number of users across 42 servers:
Code changes from release 0.1.9-beta.1 to now:
Total code changes across the history of this project:
Full Changelog: v0.1.9-beta.1...v0.10.0
v0.1.9-beta.1
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!
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
- 6 feature random song generator by @Jacrispys in #8
- API (Token Auth and statistics) by @Jacrispys in #9
Check here for all bug fixes!
Full Changelog: v0.1.8...v0.1.9-beta.1
v0.1.8
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):
Next it will give a request button looking like this:
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:
Note: When using the color
function, be sure to format the color with hex integer format (0xdbbd25
, 0x + 6_Hex_Digits
)
Note: The author field supports linking in the text
Note: Most text inputs support Markdown synatax!
And Finally upon sending your embed, you get a result like this:
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 forPermission.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
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
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
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
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
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 ofHH: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 eithersong
orqueue
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
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!
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??