Skip to content

A multipurpose Discord bot that revolves around serving the Fortnite community.

License

Notifications You must be signed in to change notification settings

jeraldlyh/Horizon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is Horizon?

Horizon is a multipurpose discord bot that was first created in Feb 2019 to serve the needs of FortniteAsia discord server.

Features

  • In-built google translation for international players to converse in their native language
  • Fully developed RPG game system
    • Classes (developed based on Fortnite PvE characters)
    • Dungeons (mob hunting, sending character on a mission)
    • Leaderboards
    • Game kits (daily, weekly, supporter)
    • Profiles
    • Games (coin flip, lottery, slots, dice, rock paper scissors)
    • Shop (in-game items which are able to enhance users' stats)
    • Events (lottery events which users are able to purchase tickets)
    • Passive income (users are able to earn currency based on amount of time they spend in the server's voice channel)
  • Teams (users are able to create solo/duo/squad teams for scrims)
  • Moderation utilities to manage the server (purge, ban, mute, announcements etc.)
  • Discord reaction listener (tracks for user's reactions to add/remove roles)
  • FortniteAPI rank system (award users server roles based on their Fortnite K/D)
  • Fortnite scrims system (users are able to create/participate in scrims)
  • Tournament (users are able to place bets to determine the winner in a Fortnite 1v1 showdown)
  • Chat logging functionality (channels are created to log user actions/messages)

Commands

  • General

    • .time - Displays local time of Horizon.
    • .setnick - Change your nickname displayed in server once.
    • .userinfo <user> -_Displays information of User.
    • .serverinfo - Displays information of server.
    • .giveaway <role> - Starts a giveaway for Discord role.
    • .rollgiveaway <messageID> <#ofWinners> - Manually rolls the winner of giveaway.
  • Moderation (Users must have @Server Moderator role to access these commands.)

    • .ban <user> <reason> - Permanently ban an user.
    • .forceban <userID> <reason> - Permanently ban an user outside of server.
    • .unban <userID> - Unban an user in server.
    • .mute <user> <reason> <time> - Mutes an user for specified period of time.
    • .unmute <user> <reason> - Unmutes an user.
    • .userinfo <user> - Displays information of an user.
    • .grant <user> - Grant access to an user to change nickname again.
    • .announce <channel> <message> - Announce a message in specified text channel.
    • .emannounce <channel> <message> - Announce an embedded message in specified text channel.
    • .purge <amount> - Purge messages in text channel. If amount is not specified, it will be defaulted as 100 messages.
    • .lock <channel> - Locks a specified text channel.
    • .unlock <channel> - Unlocks a specified text channel.
  • Team

    • .create solo - Creates a solo team.
    • .create duo <teamName> <teamMate> - Creates a duo team.
    • .create squad <teamName> <teamMate#1> <teamMate#2> <teamMate#3> - Creates a squad team.
    • .disband <mode> - Disbands a team accordingly to the mode selected. (Captains only)
    • .leave <mode> - Leave a team accordingly to the mode selected. (Members only)
  • Leaderboard

    • .submit <mode> <kills> <placement> <gamecode> - Submits the result of the match. Screenshot must be attached for verification purposes.
    • .invite <mode> <teamMate> - Invites a user to the team.
    • .stats <mode> - Display user's statistics accordingly to the mode selected.
    • .leaderboard <mode> - Display server's overall ranking according to the mode selected. @Points Manager is required to access this command.

    Awarding of Point(s) - To accept/reject the submissions, moderators must have @Points Manager role in order to react ✅ or ❌ on the submission accordingly.

  • Scrims (Users must have @Host to access these scrim commands.)

    • .start solo - Selects solo gamemode.
    • .start duo - Selects duo gamemode.
    • .start squad - Selects squad gamemode.
  • RPG Game

    • Kits
      • .daily - Claims your daily currency kit
      • .weekly - Claims your weekly currency kit
      • .supporter - Claims your supporter currency kit
      • .nitro - Claims your nitro currency kit
    • Information
      • .top - Displays global leaderboard
      • .profile - Displays information of your profile
      • .inventory - Displays gun inventory
      • .cooldown - Checks the status of currency kits'
    • Shop
      • .shop - Displays item that are available for purchase
      • .buy <ID> <amount> - Purchase an item from the shop
    • Events
      • .lottery <amount> - Starts a lottery for the community that lasts for 3 minutes
      • .participate <amount> - Purchase a ticket in Llama Pinata event
      • .chances - Chance to win the Llama Pinata event
    • Tournament
      • .bet <user> - Bets 1,000 currency on the desired player in the tournament
    • Classes/Dungeons
      • .tree - Displays available classes
      • .choose <jobName> - Selects a class for RPG
      • .evolve - Advances to the next job in the class tree
      • .dungeon <dungeonID> - Starts an adventure in dungeon
      • .dungeons - Display available dungeons
      • .status - Checks the status of adventure
      • .hunt - Hunt monsters in the current dungeon
    • Misc
      • .consume <potion> - Increases HP by consuming health/shield potion
      • .equip <weaponID> - Equips a specific weapon
      • .dump <weaponID> - Dumps a specific weapon
      • .vote <user> - Upvotes an User
      • .claim <type> - Opens a crate/gift using a key
      • .transfer <user> <amount> - Transfers an amount to specified User

Installation

Unfortunately, this discord bot is no longer maintained and developed. Any breaking changes/errors will not be fixed. Nonetheless, you're able to host Horizon locally by setting up the necessary configs in .env file.

Requirements Reference
Python Installation
Google Sheets API Documentation
MongoDB Documentation
Discord Bot Token Documentation
Fortnite API Key Documentation
FFmpeg Installation

Clone the repo:

$ git clone https://github.com/jeraldlyh/Horizon
$ cd Horizon

Install dependencies:

$ pip3 install -r requirements.txt

About

A multipurpose Discord bot that revolves around serving the Fortnite community.

Topics

Resources

License

Stars

Watchers

Forks

Languages