Coder Social home page Coder Social logo

saikou-bot / saikoubotv2 Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 3.0 1 MB

A Discord bot, built to deliver a better user experience for the Saikou Discord server.

Home Page: https://discord.gg/saikou

License: Apache License 2.0

JavaScript 99.94% Shell 0.06%
discord-bot saikou-bot javascript discord bot discordjs-bot discordapp discord-js discordjs

saikoubotv2's Introduction

What is Saikou bot V2?

Saikou is a Discord bot built in javascript, with the intention of improving the user experience in the Saikou Discord server.

issues pr Nodejs checks stars forks

Contributing

All contributions to this repository are greatly appreciated, whether it's small changes or big. You can fork this repo and make a pull request, which will be reviewed.

saikoubotv2's People

Contributors

brandon-005 avatar danny519 avatar dependabot-preview[bot] avatar dependabot[bot] avatar ha6000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

saikoubotv2's Issues

Donate Command

Allows users to donate to each other if they are feeling generous. Max donation limit will scale depending on the donated users amount of credits.

  • Allow users to donate to each other.
  • Max donation amount scales with users balance.

Arguments Handler

Handles arguments and making sure you pass all the arguments

  • Detect if not enough arguments are specified
  • Pass arguments as object
  • Add nice embed
  • on object for events
  • send raw cooldown instance

Kick command

Kick command that works with names, IDs and mentions. Will automatically add a warn to the user incase they rejoin

  • kick command that works with names, IDs and mentions.
  • DM user before they are kicked letting them know that they are banned.
  • Automatically add a warning to user

Clear command

Removes messages in bulk.

  • Manage messages permission check
  • Able to clear messages
  • Log cleared messages in mod logs
  • Require a reason for clearing messages before allowing?

Limited channel for commands

Similar to what was featured in the first version of the Saikou bot, however the limited channels should be made flexible to support commands like .suggest which would be in the suggestions channel instead of bot commands.

Redo items/shop system

each item will be in a folder called items, each item will have a file where other information can be found about it such as: emoji, price and functionality. When a user tries to use an item, the item files will be referred to.

  • handler to load item files, with category folders for each pages items
  • Add item command, will add the itemName and if its’s in shop to MongoDB (Boolean, true false) commandExample: .additem ItemName true <= would be in shop because it’s true.
  • Remove item from shop command (sets item Boolean to false)
  • Delete item command, will delete the item from MongoDB.

Item files:

  • Shop command listing all the item files, listing info such as price etc.

Commands:

  • Buy command to purchase items.
  • Inventory displaying items the user owns.
  • Sell command.

Roblox saikou games info command

Will display information about our games, similar to the last version of the bot where if the user typed in ?mwt, it would show stats for MWT such as concurrent player count, overall visits, favourites etc.

  • Display game information
  • Link to game in the title
  • Search game

test

testing octokit, dont mind me

Work Command

The work command will give players 'Credits' for completing the scenarios correctly. The work command scenarios should be military themed to fit the style of the Roblox game.

Scenario Example: You worked as a soldier, but forgot the code to your base, you have a note of the jumbled code, you must decipher it to continue with your job. The jumbled code is 'RMAY'.

If they type in the correct answer of army, they would be awarded the credits, however if they didn't get it right they would be rewarded nothing or little cash.

  • At least 3 different scenarios
  • Different cash amount depending on how hard the scenario is.

Daily Command

  • Cooldown
  • Randomly select item
  • Give user item

Like the previous version of Saikou bot, an incorporated daily command to keep users coming back is a great addition.

Crate System:
When a user does .daily, there is a guarantee that they will receive a crate alongside a small amount of cash, the crate will go directly to their inventory where they can open it with .use, depending on which crate they got from the daily supply (common, rare, legendary), it will depend on what the reward will be.

Rewards could include... items, more defences, medals, credits.

Trading command

Gives the ability for users to gift items to each other. Depending on how much money the user has, depends on what items they can be gifted to prevent people gifting super high credit amount items to beginners.

  • Gift users items
  • Limit gift items depending on users cash amount (E.g. if an item price is greater than their balance don’t allow it to be gifted to them)

Log commands

commands to see recent stdout or stderr

  • !errors
  • !logs

MWT facts command

Revamp the old command to contain up-to-date facts, aswell as the addition of a whole variety of new ones.

  • 10+ MWT Facts
  • Embed Message
  • Default Cooldown
  • Randomly pick fact

Swearing detection

Detect basic swearing in messages

  • Convert special chars to normal ones
  • Remove double chars.
  • Perfect filter

Mute command

Mute command that works with hours, days and minutes. Will automatically warn the user too when being muted, allows staff to keep track of what punishment they have been given.

  • Mute command with hours, minutes and days.
  • DM user when they are muted, informing them that they have been muted.
  • Automatically add a warning on top of the mute.
  • Send message in moderation doing the mod log, ping mod who muted to input evidence.

Moderation Log fixes

  • Role creation/deletion
  • Channel creation/deletion
  • Message delete partials
  • Message update partials
  • Message update attachments

Tank, AA, Helicopter command

Based off the last versions TAH command, similar to rock paper scissors. Will award users with money if it's correct, and deduct money if wrong.

  • Custom emojis
  • Draws, wins, loses
  • Award the user money if they win
  • Multiplayer Option
  • AI Option
  • Award user currency if they win and deduct if they lose
  • Send multiplayer reaction to DMs so users can’t cheat.
  • Permission checking If user is bot or yourself

Ban command

Ban command that works with names, IDs and mentions. Will automatically delete the users warns to save space in the database.

  • Ban command that works with names, IDs and mentions.
  • DM user before they are banned letting them know that they are banned.
  • Automatically delete users warnings.

Vehicles

Vehicles will be used in economy as a form of boosts to the player who purchases it. There will be a separate shop fo players to be able to purchase vehicles. The more expensive the better the boosts.

Vehicles that are purchasable:

  • Tank
  • APC
  • Jeep

When a user buys one of these vehicles, they will need to pay a maintenance fee every few days or week to keep it.

  • Purchasable vehicle which is saved to MongoDB
  • e.g. x2 coin boost when vehicle has been bought
  • Take a certain amount of money away from a user depending on how expensive the vehicle is, maintenance fee.

Credits leaderboard

Credits leaderboard which will display the top 10 users with the most amount of credits.

  • Credits leaderboard showing top 10
  • Top 3 players will have 🏅🥈🥉
  • Index forEach
  • Add commas to cash amounts for it to be easier in being read.
  • Change design on how it’s displayed for it to seem more even.

Report abuse command

Reports players, helps with people not following the layout properly, using await messages.

  • User input reported player
  • Attachment
  • Checks for if the user has DM's disabled or didn't input in time.
  • Display attachment on embed, along with the info the user provided.
  • Cancel report option
  • Skip proof option if user doesn't have any.
  • Allow multiple attachments to be posted possibly?
  • Check if link inputted is a https link.
  • Add who created the reported

Quests

Quests will be used in the economy section as a form of gaining extra items, users will be able to pick a quest from a command (example, .pick quest 1), they will be able to view which quest is currently active and if they complete it, they are given the reward for completing it.

  • Able to add and remove quests
  • Quests saved to database
  • Display all quests on the quest list command
  • Pickable quests which vary in difficulty
  • Reward user if quest is complete

Finish suggest command

Finalise the suggest command to add more features.

  • Suggestion numbers which will increase as each suggestion is posted.
  • Delete all messages that aren’t the suggest command
  • If more than 15 suggestions, move to feature channel.
  • Delete .suggest user command.
  • Able to delete your own suggestion?

Decide command

Decides between two arguments e.g.

Going to the park, going to the beach

Bot response:

I choose going to the park

  • Choose out of the args
  • Randomly pick message to go with args

Help command

Displays a list of commands, able to do .help commandName for some extra information such as aliases, description etc.

  • Categories .help categoryName prefix changes with bot .env

  • List of all commands in category.

Profile Command

Profile command for economy, will list information such as their credits, active items (items that have boosts for a set duration), badges and more. Similar style to what the old one from Saikou bot V1, however more optimised and suited for the new changes.

  • Display Credits and Medals
  • Display Active items (temp text for now)
  • Display name
  • Display rounded avatar
  • Role listing for staff, bot developers etc
  • Able to have a bio?

Sell command selling into the minuses

When selling an item, the quantity will go down as expected until it reaches x1, where it is meant to delete the item.

Instead of deleting the item, the issue that I'm having is the quantity going down to x0, x-1 etc. I've tried using the $gt operator which unfortunately hasn't worked. Any help is appreciated!

Bug report command

A command that will allow users who are experiencing issues, to report them and inform the bot developers. Will create a issue in the repo

  • Creating issue
  • Interface

Auto Moderation

Auto Moderation should be included to prevent a lot of work on our staff.

Features:

  • Spam detection
  • Invite link detection

When creating these features, people bypassing needs to be in mind, if someone triggers any of the above, they should be automatically warned, if they are at for example 3 warnings, they would be auto muted, kicked etc.

Warn and warnings Command

Warn command that can be used by staff to issue a warning to a player, user will be DMed to inform them of the warning and the reason. Will be saved with MongoDB.

Warnings command will show all of a users warnings within a server.

  • Warn command with mongoDB
  • Warnings command which allows a user to check their or someone elses warns.

cleanup time

Cleanup the economy to not give items to users as a 'default' if they have no items.

Make it so bots can't be added to the database, avoids unnecessary documents that won't ever be used.

Error Handling

If an error occurs with a command, a message should be posted in the chat letting the user know an error has occurred to avoid them doing the same command over and over expecting it to work.

Cooldowns

Command cooldowns which can be adjustable for each command.

When having the time of the cooldown in the channel, having the time remaining instead of the cooldown time will allow users to know how long their cooldown lasts for.

Users who have the Nitro Booster role should have half the cooldown time, alongside users who have the Omega Follower role obtained.

  • Module
  • Implementation in commands

Use command

The use command is a command that will allow users to use the items they have bought from the shop, depending on the item, it will depend on how the item is used.

Defences will be added onto stats and will give higher protection when used, whereas items like crates will give a random prize such as credits or medals.

Quests.js no data check

Check if the user doesn’t have any quests otherwise the bot will error.

  • Do check if the user doesn’t have quests active
  • If quest isn’t active, return embed informing user no quest is active.

Credits command

A command which will display all the users who have helped SaikouBotV2 become a reality, instead of shoving them inside the help command.

  • Display all users who have helped out
  • Embedded

Easter eggs

Hidden secrets that users can find if they choose to do so, can be put into a quest.

  • Skillrate beyond godlike rating 10% chance
  • TAH secret option to choose force instead of AI and user.

Structure update

Moving params for commands to object

Dedicated util folder with constructor that will be put in utils object
database handler and database object

this is a little vague, I will show prototype when I have one

  • arguments
  • utils

Lottery command

Users will pay a £50 entry fee, and every 24 hours there will be a random user who will be picked to win. The amount they win is dependent on how many people have entered the lottery. E.g. if 5 people enter and someone wins, the winner gets £250.

  • Randomly pick a user after 24 hours
  • Give user reward of everyone else who paid the fee to enter.

Roblox search user command

Allows users to search for a Roblox player via their userID or username. Will show information such as their creation date, bio, status etc.

  • Search with ID or username
  • Display information about the user
  • Error checking for incorrect names etc.

Add money command

Reserved for the staff team to add money on top of the users balance for things like giveaways.

  • Command limited to staff
  • Give user credits amount on top of their current amount.

Maintenance ‘mode’

The ability for bot developers to limit the use of certain commands if maintenance is being performed on them or on all commands if a whole wide maintenance is occurring.

Hot reload

A command to reload command and command to reload every command and watcher to check for file changes and reload commands

  • hot reload command
  • all reload command
  • watcher for command file changes
  • Watch for command create
  • Watch for command delete

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.