Releases: en3sis/hans
v2.1.1
v2.1.0
New plugin: /plugins verify
- adds a new
verify
plugin that is enabled by default. - on
/plugin verify
it will ask for the verification role and post a message in the channel. - clicking on the
Verify
button will prompt with a modal. - users get a random emoji representing a mood, they'll need to type that for validation.
Screenshots
Change Log
- Updates to Discord.JS 14.13.0 by @en3sis in #69
- ops: fixes some issues with resolveGuildPlugins by @en3sis in #70
- Default guild-plugins state by @en3sis in #71
- chore: removes ephemeral from the /timezone command by @en3sis in #72
- fix: regex to allow timezones with format Continent/Country_Name by @en3sis in #73
- fix: adds unit test for timezones by @en3sis in #74
- Ops/migrations by @en3sis in #75
- ops: moves tests from mocha to jest, adds redis for cache by @en3sis in #76
- feat: adds a new /events command by @en3sis in #77
- build(deps): bump @babel/traverse from 7.22.17 to 7.23.2 by @dependabot in #78
- feat: changes presentation by @en3sis in #79
- build(deps): bump axios from 1.5.0 to 1.6.0 by @dependabot in #82
- chatgpt: max-tokens increases & other improvements by @en3sis in #81
- feat: adds captcha verification for users by @en3sis in #83
Full Changelog: v2.0.4...v2.1.0
Fix of critical bug for hans:latest
- Fixes a critical bug with the
/timezone
command.
Release v2.0.3 - timezone & fixes
💠 Feature:
- The
/timezone
command facilitates international coordination on your Discord server. By setting and comparing time zones, members plan activities, and meetings, or just check in at convenient times. Ideal for global communities and teams.
✅ Fixes & others:
- feat: /twitch command which will fetch and display streamer by @en3sis in #60
- fix: issue with moderation plugin by @en3sis in #64
- ops: small improvements gpt coomand by @en3sis in #65
- fix: fixes the ephemeral props to missing commands by @en3sis in #66
- bug: interaction.replay -> interaction.editReplay by @en3sis in #67
Full Changelog: v2.0.2...v2.0.3
Release v2.0.2
Fixes:
- Fixes an issue with the
interaction.reply
Release v2.0.1
This update focuses on improving the overall structure and stability of the bot with small features addition.
What's Changed
- fix: threads plugin by @en3sis in #46
- feat: free 100 ChatGPT commands per guild (daily reset) by @en3sis in #51
- ops: docker-compose instructions by @en3sis in #53
- ops: renames guilds-plugins table to use _, by @en3sis in #54
- feat: Plugin & Command:
/summarize
by @en3sis in #55 - ops: Docker image upgraded 16.13.0 -> Node 18 by @en3sis in #56
- ops: improves errors & information report by @en3sis in #57
- feat: persists bot presence, won't rewrite on a restart, real-time updates by @en3sis in #58
Full Changelog: v2.0.0...v2.0.1
Release 2.0.0
With this update, we have introduced a major change - each functionality has been transformed into a separate plugin that can be enabled or disabled on a per-guild basis. This allows for greater flexibility and customization options for our users. As new features are added, they will also be implemented as individual plugins.
❇️ New:
- Migration from MongoDB to Supabase:
- All functionalities are now plugins and can be enabled or disabled per guild basis.
- When the bot is started, it fetches and inserts all guilds, plugins, and configurations into the database.
- New schema for Guilds.
- New schema for Plugins.
- New schema for Configurations.
- Addition of the
/ask
command for ChatGPT3.5-turbo
: this feature is exclusively available for premium guilds, although each guild can have its own API key to use the functionality. - Addition of the
/plugins
command to configure the bot for each guild. - Migration from
npm
toyarn
. - Better README.md documentation
- Improves Docker deployment workflow & configurations
- Update to Commands & Plugins
- Discord.JS v14.11.0
- New Hans logo
🗺️ Roadmap:
-
Commands & Plugins:
- Allow more configurations for ChatGPT, such as max tokens, model, and temperature, allowing a maximum of X tokens per day per guild, so that even non-premium guilds can use it.
- Add functionality to the moderation plugin to detect edit/delete/update messages.
- Add functionality to the moderation plugin to detect links and remove them.
- Add the giveaway plugin.
-
Bot:
- Move plugin settings to models that contain all the settings for each plugin.
- Use absolute paths for imports.
Release v1.1.0
With the release of the new version, here is the list with some of the main changes & improvements:
❇️ New:
- Updates to Discord v14.3.0
- Allows to define Hans's activity from his DB config document.
- Adds a new (basic) Reddit plugin, allowing you to watch for specific /r and post the latest channel.
- New
/mock
command, mocks a string of text based on the famous Sponge-Bob meme. - New
/moderation->purge
that removes ann
amount of messages (max 100) - New
/reddit
command forsubscribe/unsubscribe
your guild to a specific /r - New
/moderation->sentiment
command for dealing with the sentiment analysis plugin (notification channel, enable/disable). - Improved the
/support command
, now has information about how to report bugs or request features. - User's guild settings document is now part of the
Client
object:Hans.guildSettings(id)
- Bot settings document is now part of the
Client
object:Hans.settings
.
🔅 Improvements & Fixes:
- Guilds Documents now have a premium, which will allow us to define which guilds can use paid APIs like OpenAI.
- Prepares the utils for crypto, in the future we want to hash things like API Keys if users need to add their own Key.
- Changes the way we handle reading & writing plugins configuration.
- Improved bot pulse functionality, adds more details.
- Now the invite link can be read from Hans Settings.
- Fixes some issues with commands permission, still room for improvements.
- Moves guilds documents to own db (
guilds
) & collection (global
). - Uses
addChannelOption
&addUserOption
instead of string options when possible and needed.
⚙️ DevOps:
- Uses QEMU & Buildx for the multi-platform image build
- Nightly build will happen every night at 2 AM, tagged as
hans:nightly
- Added a manual build if we need to deploy it before.
- Adds a
.prod
deployment manifest for production,deployment.yaml
will target nightly releases - Allows fetching GitHub API without a KEY for public projects
- Adds preparation for OpenAI API
- Adds
lodash
&node-cron
- Recommended extensions for contributors.
Release v1.0.1
🐞 Fixes:
- Fixes an issue with MongoDB connection not staying open.
- Fixes an issue with the k8s deployment file, one env var was missing
- Fixes an issue with the sentiment-analysis plugin
🆕 New:
- PR and Issue template
Release v1.0.0 🥳
After many years of using Hans as the pillar of our Discord community, I decided to make it public & open-source it!
Many functionalities and old/guild-specific commands were cleaned out and left everything else to be used as a base.
💎 Features
- Discord.JS v13.6.0
- Slash Commands ready!
- Built with TS
- Covers main guildEvents (guildMemberAdd, guildMemberRemove, messageDelete, messageUpdate, messageCreate... )
- Production-ready with easily Docker or K8s deployments.
🗓 Current slash commands:
- /weather city -> Weather at specific city
- /about username -> User details
- /invite -> Hans invite link
- /support -> Hans support discord
- /wifu -> Well, you know what it is :P
🔌 Plugins
Moderation:
Sentiment Analysis: Checks message sentiment (positive or negative) and based on the weight, it will notify to a given channel.
Threads:
Creates thread channels. Once a message is created, it will automatically open a thread discussion. This is helpful to keep the channel clean and on-topic (support channels, for example)
Guild member Activity
Can enable a member join/leave channel for activity logs.
🗺 Roadmap
As for the next steps, now that the base it's set, we can start working on improvements and features. The first step will be to open issues (that anyone can contribute to!) to enable guild configuration. Right now, the plugins' functionality can only be done vía DB editing.
Once the core functionality is there, new features will be work on.
👥 Community
- Feel fee to join the official discord channel: https://discord.gg/WpTrnnvJXe
- If you have any ideas or you find a bug, open an Issue