Giter Site home page Giter Site logo

gregor7008 / butler-george Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 6.56 MB

Why another bot, if you only need one? Everything you need, right here: Moderation, Administration, Configuration...

License: Other

Java 100.00%
discord bot moderation organization personalization discord-bot jda jda-discord-bot

butler-george's Introduction

Butler George Logo

Butler George

Discord Version Milestones

Why another bot, if you only need one

Everything you need, right here: Moderation, Administration, Configuration...

🌐 Overview

Butler George is a complex Discord bot including not only all commonly used functions of popular Discord bots, but also everything else you will ever need.
Combined neatly into one single bot, so no one can ever complain about too many bots on your server!

📈 Functions

The newest version of Butler George will feature:

  • Hosting:
    • GUI for easier access and controlling of the bot
    • Support for AutoStart and AutoFill for the bot token
      and the database connection details
    • Additional commands for fixing issues on the spot
  • Development:
    • Custom EventAwaiter for more options regarding user interaction
    • API interface and HTTPS RequestHandler
    • Completely reworked configuration load and save system
  • Frontend features:
    • Reworked configuration commands for server admins (/configure)
    • Reworked ModMail, now usable on multiple guilds (/modmail)
    • Reworked music interface
    • Context Menu options for moderators for e.g. (temp-)muting
    • Reduced message spam (Both server and private side)
    • Private messages are no longer embedded

📗 History

In Juli 2021 Nevar by @1887Jonas, the bot we used since the creation of our community was shutdown. And as auto role assignment was really important for the security of the server back then, we needed to find a replacement real quick. And as there was also a need for automated actions resulting from this autorole mess, we decided to start our own bot: Butler George was born!
On the 29th of August 2021 Butler George was finally ready to completey replace all previously used functions of Nevar. Since then he was developed into a huge tool for administration, moderation and server configuration, implementing all commonly used functions on big servers: Join2Create channels, level and experience system, ModMail, reaction roles and much more.

📊 Statistics

🆔 Display Card:

Metric Stats

🧮 Code:

Code lines Project size
Java Version Platforms

🆘 Issues:

Open issues Closed issues

📥 Interaction:

Contributors Downloads

💻 Activity:

Last Commit Activity New Commits

✨ The Team

Gregor7008 (Team Leader)
Gregor7008 Card
Gregor7008 Activity

🈯 About Translating

ℹ️ We're assuming you are familiar with using GitHub and have already cloned this GitHub repository!
       If you aren't familiar with GitHub: Reach out to us we're grateful to help!

  1. Quick Start

    We currently have 5 languages to choose from: English (en), German (de), Spanish (es), French (fr) and Dutch (nl).
    To start translating, please copy the default en folder in src/main/resources/languages and rename it to either one of the already supported abbreviations or to the two letter abbreviation of a new language.
    Please note: A new language will not be available as soon as the folder is created, as we have add it to the bots internal list!

  2. Keywords

    Butler George uses keywords for obtaining message content. You will therefore notice the following structure in all files:
    keyword=a_lot_of_text_here
    For everything to work correctly: DO NOT CHANGE the keyword and the =. Only translate what is written behind the =!

    Please note: The bot will only read the text BEHIND the keyword, not the text in a following line (v.i.)!

  3. Message parts

    Butler George usually replies with a two-part message: The first part describes the type of the event the bot replies to (i.e. when a command was successfully executed), the second part then goes into more detail. Because of this division, it needed a separation symbol.
    We utilize ; ‎ for this and let Butler George search for it. You'll notice them not far behind the =.
    You may translate everything before and behind the ; . DO NOT CHANGE the ; ‎ itself, as well as the space behind it!

  4. Variables

    In some instances Butler George has to variate the message, depending on who is responsible for an event (i.e. when a user joins a server).
    For that we choose the format {variable}, where variable would be the name of the variable. This name is choosen in correlation to what the variable will be replaced with (i.e. a variating user would have the variable {user}).
    You may translate everything before and behind the variable. DO NOT CHANGE the variables name!

  5. New lines

    As Butler George is dependent on the keyword-value structure and therefore searches every line of a file for this structure, you can't create a new line in the final message by just pressing Enter, but have to use the regex notation.
    Explaining this would be way beyond the scope of this text, but for the purpose of translating the replies of this bot you only need to know \n, which would be the regex expression for a new line.
    For the english version I used \n sometimes, when the line got too long, or the topic changed drastically.
    You may use \n at your own discretion!

  6. Emojis

    As you probably already know, Discord uses not Unicode but Markdown expressions for displaying emojis.
           ℹ️ Unicode is the internationally used standard for en- and decoding text/symbols/emojis on computers.
                 Emoji code looks like this: U+2764
           ℹ️ Markdown is a readable language for the creation of formatted text or simple websites, replacing complex code.
                 Emoji code looks like this: :sweat_smile:
    To now use emojis in the text, we have to just write the respective expression in the text and it'll be replaced automatically. You'll see those expressions used in nearly every message and recognize them in the files as well.

    For Butler George we decided to establish a simple system:
    keyword=message title; :emoji_expression: | message_description
    We're hereby asking you to keep this system so the responses of Butler George stay clean and tidy.

    Quick tip: It looks way better, if you not only use the system :emoji: | text at the start of the messsages description, but also whenever you're creating a new line using \n (v.s.)!

  7. Folder structure

    To make it simpler in the developement phase, Butler George relies, when finding the language files for a certain instance, on the language files being ordered in the exact same way, as the program is setup.
    So... DO NOT CHANGE THE FOLDER STRUCTURE!!!

  8. Contributing

    To finally commit your changes, you have three options: You may either open a pull request, send the changed files directly to a developement team member (contact details are on their profiles) or use one of the contact options to hand over the files.

    If you want to get credit for the translations you made, please tell us when commiting the changes as well as who to credit. This may be a Discord user, a GitHub organization or a private person.

If you are considering to translate: Thank you very much ❤️! We're looking forward to working with you!

💕 About Emojis

  • ℹ️ Disclaimer:

    All emojis used by Butler George are provided by Discord, or publicly available and are not under any copyright!
    The table below shows all the emojis available to Butler George!

  • ✨ Personal usage:

    If you want to use the emojis for yourself (Considering you have Discord Nitro) or make them available for your own Discord bot:
    Join these servers:

    • Icons:
      Emoji - Icons Widget Small
    • Badges:
      Emoji - Badges Widget Small
    • Logos:
      Emoji - Logos Widget Small
    • Miscellaneous:
      Emoji - Misc Widget Small

    You may send an invitation for your bot into #📥-invite-your-bot (A command for automation will be added soon), so we can invite your bot and therefore make the emojis available.

  • 📋 Available Emojis:

    Icons from Emojis - Icons
    Emoji Name ID Type
    announcements_icon announcements_icon 1006860118794711151 .png
    bell_icon bell_icon 1006860119981695077 .png
    camera_icon camera_icon 1006962533032271925 .png
    compass_icon compass_icon 1006962534714187907 .png
    deafened_icon deafened_icon 1006860121198055484 .png
    disconnect_icon disconnect_icon 1006860122036904008 .png
    gift_icon gift_icon 1006962540653326356 .png
    image_icon image_icon 1006860124297637911 .png
    inbox_icon inbox_icon 1006860125711126578 .png
    info_icon info_icon 1006859363195039744 .png
    integrations_icon integrations_icon 1006860127019741307 .png
    invite_icon invite_icon 1006859364411375616 .png
    library_icon library_icon 1006962541500579961 .png
    link_icon link_icon 1006859365258645555 .png
    members_icon members_icon 1006859366730846249 .png
    moderator_icon moderator_icon 1006859367930396722 .png
    muted_icon muted_icon 1006860128156401735 .png
    role_icon role_icon 1006860129376927804 .png
    rules_icon rules_icon 1006860130597478502 .png
    search_icon search_icon 1006860131599921212 .png
    settings_icon settings_icon 1006859369155137627 .png
    store_icon store_icon 1006962544273014836 .png
    stage_icon stage_icon 1006962545682305225 .png
    star_icon star_icon 1006962546428882985 .png
    support_icon support_icon 1006859370107240501 .png
    text_channel_icon text_channel_icon 1006860132778512474 .png
    ticket_icon ticket_icon 1006859371638177852 .png
    undeafened_icon undeafened_icon 1006860133881614347 .png
    unmuted_icon unmuted_icon 1006860135148310529 .png
    voice_channel_icon voice_channel_icon 1006860136440156181 .png
    square_check_mark square_check_mark 1006855217482047590 .png
    square_cross square_cross 1006855220908793906 .png
    circle_check_mark circle_check_mark 1006855212968972328 .png
    circle_cross circle_cross 1006855214176935947 .png
    offline_status offline_status 1006861145480626247 .png
    online_status online_status 1006861146978013284 .png
    idle_status idle_status 1006861144692117534 .png
    error_status error_status 1006861143630958694 .png
    ping_bad ping_bad 1006861148123041822 .png
    ping_medium ping_medium 1006861150387966012 .png
    ping_good ping_good 1006861149226147900 .png
    check_mark_gif check_mark_gif 1006855216550903808 .gif
    cross_gif cross_gif 1006855219424002140 .gif
    thumbs_down_gif thumbs_down_gif 1006919629790265424 .gif
    thumbs_up_gif thumbs_up_gif 1006919630989840394 .gif
    verify_black verify_black 1006960275146149939 .gif
    verify_blue verify_blue 1006960280510664764 .gif
    verify_green verify_green 1006960278023446539 .gif
    verify_orange verify_orange 1006960282150653993 .gif
    verify_pink verify_pink 1006960284889518100 .gif
    verify_purple verify_purple 1006960286902784111 .gif
    verify_red verify_red 1006960288886702151 .gif
    Badges from Emojis - Badges
    Emoji Name ID Type
    1st 1st 1006964116432355338 .png
    2nd 2nd 1006964117376090123 .png
    3rd 3rd 1006964118630174894 .png
    bot_badge bot_badge 1006963978372661268 .png
    verified_bot_badge verified_bot_badge 1006963997318328360 .png
    system_badge system_badge 1006963994881429504 .png
    balance_squad_badge balance_squad_badge 1006963977114353664 .png
    bravery_squad_badge bravery_squad_badge 1006963979505119272 .png
    brilliance_squad_badge brilliance_squad_badge 1006963980465623183 .png
    hype_squad_badge hype_squad_badge 1006963987855978496 .png
    bughunter_lvl1_badge bughunter_lvl1_badge 1006963981883297982 .png
    bughunter_lvl2_badge bughunter_lvl2_badge 1006963983145766972 .png
    employee_badge employee_badge 1006963985553305690 .png
    employee_badge__matt employee_badge__matt 1006963986673180833 .png
    partner_badge partner_badge 1006963990305439805 .png
    partner_badge_matt partner_badge_matt 1006963992272588853 .png
    early_supporter_badge early_supporter_badge 1006963984378900490 .png
    nitro_booster_badge nitro_booster_badge 1006963989105872996 .png
    server_owner_badge server_owner_badge 1006963993530871888 .png
    server_team_badge server_team_badge 1006964120169496616 .png
    verified_badge verified_badge 1006963995959373956 .png
    verified_badge_green verified_badge_green 1006963998597582958 .png
    Logos from Emojis - Logos
    Emoji Name ID Type
    discord discord 1006958534988148816 .png
    clyde clyde 1006958533490774107 .png
    whatsapp whatsapp 1006864196098600960 .png
    instagram instagram 1006864185541545994 .png
    snapchat snapchat 1006864188515307540 .png
    facebook facebook 1006864184228720740 .png
    twitter twitter 1006864194815139891 .png
    tiktok tiktok 1006864192176922684 .png
    youtube youtube 1006864197142990889 .png
    twitch twitch 1006864193611382784 .png
    netflix netflix 1006864187219251240 .png
    paypal paypal 1006865455111217224 .png
    steam steam 1006864190033645578 .png
    cn cn 1006865447037186088 .png
    cpp cpp 1006865448320643082 .png
    cs cs 1006865445481086997 .png
    java java 1006865452015820890 .png
    java_script_1 java_script_1 1006865452997287937 .png
    java_script_2 java_script_2 1006865454024896603 .png
    css3 css3 1006865449570549790 .png
    html5 html5 1006865450820444181 .png
    python python 1006902375073710151 .png
    Miscellaneous from Emojis - Misc
    Emoji Name ID Type
    wumpus_ahegao wumpus_ahegao 1006962679518347465 .png
    wumpus_blush wumpus_blush 1006920765347745822 .png
    wumpus_cookie_leg wumpus_cookie_leg 1006920795982921728 .png
    wumpus_cozy_leg wumpus_cozy_leg 1006920797253795921 .png
    wumpus_crown_leg wumpus_crown_leg 1006920798633742426 .png
    wumpus_gamer_leg wumpus_gamer_leg 1006920801909473340 .png
    wumpus_heart wumpus_heart 1006920804476399617 .png
    wumpus_heart_leg wumpus_heart_leg 1006920803033559110 .png
    wumpus_ping wumpus_ping 1006920810629451838 .png
    wumpus_ping_leg wumpus_ping_leg 1006920808922370168 .png
    wumpus_pizza_leg wumpus_pizza_leg 1006920811866767431 .png
    wumpus_plus wumpus_plus 1006920812726583308 .png
    wumpus_pray wumpus_pray 1006920814215577602 .png
    wumpus_sweat wumpus_sweat 1006920823925379132 .png
    wumpus_wizard wumpus_wizard 1006920828396515449 .png
    bell_gif bell_gif 1006920868238200919 .gif
    cake_gif cake_gif 1006920869836234792 .gif
    clap_gif clap_gif 1006920871228739765 .gif
    tada_gif tada_gif 1006920872952602656 .gif
    wumpus wumpus 1006920830271377509 .gif
    wumpus_congrats wumpus_congrats 1006920794535895062 .gif
    wumpus_cry wumpus_cry 1006920800454058055 .gif
    wumpus_jumpscared wumpus_jumpscared 1006920805969563770 .gif
    wumpus_love wumpus_love 1006920807601152092 .gif
    wumpus_relief_1 wumpus_relief_1 1006920816186896404 .gif
    wumpus_relief_2 wumpus_relief_2 1006920817881387049 .gif
    wumpus_sad wumpus_sad 1006920819064188928 .gif
    wumpus_smug wumpus_smug 1006920820926451753 .gif
    wumpus_sweat_smile wumpus_sweat_smile 1006920822507716651 .gif
    wumpus_think wumpus_think 1006920825775079566 .gif
    wumpus_witch wumpus_witch 1006920826936889384 .gif
    wumpus_yee wumpus_yee 1006920831961665606 .gif

📇 Contact Us

You may contact us...

  • via our Discord server
  • by opening a new issue here
  • by starting a new discussion here
  • in urgent cases via E-mail

🧭 Credits

ReadMe Statistics by @anuraghazra
Blog Post Workflow by @gautamkrishnar
Metrics by @lowlighter
Shields by shields.io
Activity recorded by wakatime.com

©️ Gregor7008 - 2022

butler-george's People

Contributors

github-actions[bot] avatar gregor7008 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

butler-george's Issues

RSS feed processing

Inspiration taken from MonitoRSS bot already running on our Discord server

Configloader Rework

Implementation of background system to, if config files are changed whilst the bot is operating, update all the old configuration files without the bot breaking.
Could be done by saving all the old keys and value-data-types, trying to get the updated versions and on an error update the config files whilst returning castet values so it matches the updated system for now.

Server statistics showcase option

Just like "Statbot" for example, where locked channels are created which names change depending on a member count, role count, etc... As many options as possible ofc

Tag and note system for users

Accessible for moderators only of course, but this can be used to, whitout needing a moderation channel, add tags to a user (ofc management of those tags is needed as well) as well as notes.

Limitierte Textfelder

Aktuell konnte noch kein Weg gefunden werden, welches dem Programm erlaubt, selbstständig zu wissen, wie viele Text Felder es generieren muss. Ist ein bisschen ungünstig weil es die Kreativität einschränken könnte.

Switching from Login credentials to License keys

This will simplify the GUI and lower the error rate in the database connecting and Discord API login process.

  1. Remove all unused GUI text fields
  2. Rework the startup process by making it modular so the database connection starts when the id of the bot is known (Necessary for DB-Login)
  3. Implement all connection details for the database connection in hard code and a config file which is excluded from GitHub uploads
  4. Implement a method to check for the correct license key within the bots database, if the database for the bots id even exists

Reimplementation of Polls

As of the 06.06.2022 polls have been removed because of "bad design". Still a feature I would appreciate though, so reimplementation is requested!

Make answers to context menu interactions private

This is needed, as the public shouldnt be informed about moderators muting or temporarily banning a user. In the same process the input methods could be reworked. I'm suggesting using Modals here.

Code cleanup and documentation?

Just a simple documentation on what is happening where, as well as making the code readable as in "You can read the code out loud and you’ll understand it".

ModMail for multiple servers

Inspiration could be taken of "Elemental", which is using a detection on which server both the bot and the user are, the lists them, the user selects one and the bot creates an internal ticket the user can opt-out of and opt-in to if needed, so support can be given across multiple servers at the same time.

Response message unification

  1. Make private messages not embedded. Could be done within a different formatting within LanguageEngine - So new method with a String being returned.
  2. Instead of a summary of the description as the title of the response embed, rather use an actual title. So replace "Choose server:" with "Server selection:"

💡 Point 2 would only be a matter of looking through the language files and rewriting them!

Bot should initialize commands with custom permissions

When restarting the bot, it initializes all commands with the default permission regardless of changes made to the permissions. Therefore:
When the bot goes offline, it should save which commands are accessable for what roles and initialize them accordingly when starting up again.

Giveaway command

A command that create a new giveaway on execution. The giveaway should be completely customizable, recognize people entering the giveaway, end at a specific predefined point of time (also customizable) and specify a random winner on ending.

More level reward options

Currently it's only roles someone can get on reaching a certain level.
Why not also introduce XP and Level rewards?
ℹ️ I've not included anything else here, because anything else could be done using roles: Permissions, Colors, Emojis, Access in general...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.