Added /admin-profile and retired tiers for normal /profile command
(I also fixed some smaller stuff, but the bot is pretty much done at this point!)
Added /admin-profile and retired tiers for normal /profile command
(I also fixed some smaller stuff, but the bot is pretty much done at this point!)
Added /spin command
HT Tickets added woohoo
Did very little work today, I just cannot concentrate.
Added a high tier ticket system ui, will make the backend later today or tomorrow.
Added a queue system that I’ll make a video on when the bot releases.
Yes 3 lines for 16h
Added queue ping selector :O
Yes this took this many hours, because I had to create bugfixes, literally remake the db, and update the db creds. in the bot, the api.
Added reaction emojis
Added the ability to look up profiles by /profile minecraft_name:Polokalap
Also started working on tier testing and swapped displaying tiers from text to emojis.
Added welcome message
HELLO
Added /profile command
Created ticket panel!
I’m pretty sure I added archiving, I don’t really know. Also, I swapped out .env to data.json for channel ids
Now you can create and close tickets!! It also sends a cute lil’ embed that you can edit in json :D
Hello :3
I made the bot time out the user if they spammed blocked content!
Dear diary,
Today, I added listeners when a message gets updated, so people can’t bypass the filter system by sending a message then editing it to a url, or something blocked. I also added another detection method that works the following way:
Message is:
“https://youtube.com meow uwu :3 also look at this 18+ video https://blocked.url”
The old system would’ve allowed this, because it’s remove any white spaces, so the message becomes:
“https://youtube.commeowuwu:3alsolookatthis18+video https://blocked.url”
Then, it’d check if it contains a blocked sequence of characters, which is “://” in that case. Then, it’d check if it contains any of the “good” domains, and if it does, it’d allow the user to send the message. That was a bad system, and I rushed it.
The new system does this:
Message gets chunked:
[“https://youtube.com”, “meow”, “uwu”, “:3”, “also”, “look”, “at”, “this”, “18+”, “video”, “https://blocked.url”]
And it iterates trough every field. So now, if a url is present in a chunk, it’d only check that url.
Also I added new translation keys.
I added a system that sends the moderators a report about a flag in their own channel. I also added flags for encouraging self-harm.
Added a language and a moderation system. You have a filter.json in src/resources and you can set up rules in it without ever touching code.
Here’s the syntax:
{
“flags”: [
{
“name”: “Gyűlölkődés”,
“description”: “A gyűlölködő meggnyílvánulások nem megengedettek a szerveren!”,
“punishment”: “ONE_HOUR”,
“flags”: [
],
“ignore”: [
],
“always”: [
“nigger”,
“nigga”,
“cigány”,
“cigris”,
“cigo”,
“nigris”,
“nigg”,
“buzi”
]
}
]
}
When someone types one of the words out form “always”, it’ll punish them no matter what. If they send something that’s in “flags”, it’ll check if it also contains something from “ignore”. This is a bad system, but it works fine for now. Also, it punishes the user from the “punishment” field. You can set the following parameters: NONE, FIVE_MIN, ONE_HOUR, ONE_DAY, THREE_DAYS, SEVEN_DAYS, KICK, BAN.
As you can see from the linked image, it lets people bypass the moderation system with one of the following permissions: MANAGE_CHANNEL, MESSAGE_MANAGE.
I also added a language system, so what value you set in .env for “LANGUAGE”, it’ll use that +”.json” for every message. That’ll be useful when translating.