Skip to content

thenorthstar/HaxBall-Public-Yellow-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 

Repository files navigation

HaxBall-Public-Yellow-Bot

Discord

What is Yellow Bot

Yellow or in another words, obstacle course is a type of parkour, where the players pass the obstacles and kick the ball at the end. In our bot, players can make practices (1.1) on yellow maps and improve theirselves. We have added 7 different maps of miscellaneous difficulty levels as default. Of course, user can change them or add new ones.

Image 1.1 (A player is making practice at Beginner Yellow map)

1 1

Functionalities

Before talking about this section, let us indicate that this bot will be separated in different versions to let users to choose one or more of them. So, let's take a look at what the versions have (or will be having):

Version 1

  • Automatic map change system (both with timer and dependent of a goal scored)
  • Dynamic content (pre-defined color, font, sound and messages)
  • Language switch possibility (tr and en) (2.1)
  • Map change by command (admin only - see commands section)
  • Possibility to see map list (admin only) and map informations
  • Speed counter (2.2)
  • Simple logging system

Version 2

  • AFK System (AFK player is moved to spectators after a timeout)
  • Bad words detection in player's own language (three times warning is resulted in ban)
  • Check for duplicated accounts and names
  • Mute system and slow mode for players (adjustable through console panel)
  • Password and re-captcha settings via command

Version 3

  • Join history
  • Push control
  • Speed control
  • Vote system (for banning riotous players)

Version 4

  • Goal messages
  • Map and player statistics
  • Map related uniform
  • Player timer

Version 5

  • Camera on the leading player
  • Optimization for room.onPlayerChat section
  • Path finder for the fastest route

Image 2.1 (A player is trying to change their language)

2 1

Image 2.2 (Speed is shown on player avatar)

2 2

Commands

Of course we manage our rooms with some commands. For example, map changing, speed status changing etc. So, without further ado, let's take a look at the commands:

Version 1

  • !admin: Changes the player's admin status.
  • !commands: Shows the available commands. (3.1)
  • !discord: Shows the discord address. User can adjust it through the scripts.
  • !lang: Switches the language of the player with given language code. If there are no languages corresponding with the given code, then a warning is displayed.
  • !mapinfo: Displays the information (its name and ID) about the current map.
  • !maplist: Displays the map list (name and ID). (admin only) (3.2)
  • !mapload ID: Loads the map with given ID. If there are no maps corresponding with the given ID, then a warning is displayed. (3.3)
  • !speed: Turns the speed on/off. When ON, player can see their speed during the race.

Version 2

  • !mute ID Time: Mutes the player with given ID for the given time.
  • !muteall: Administrators can mute/unmute chat for others.
  • !pass: Creates a random password, removes if a password already exists.
  • !recaptcha: Turns off/on re-captcha.

Version 3

  • !joinhistory: Players can see their join history.
  • !push: Turns off/on the push feature. If closed, players are transparent to the each other, otherwise the default conditions occur.
  • !vote ID: Players can vote others to make them banned.

Version 4

  • !mapinfo (v4 update): Shows the current map's best time with details.
  • !spawn: Resets player location and timer.
  • !top5: Shows the top 5 statistics for the current map.

Version 5

  • Nothing for this version yet.

Image 3.1 (Commands are being displayed)

3 1

Image 3.2 (Map list is being displayed)

3 2

Image 3.3 (An administrator is changing the current map by command)

3 3

Notes

  • As you see above (3.3), global announcements will be made in the room's own language.

Homework For the Users

Of course we are not going to add some enhanced functions to let somethings should stay hidden. Hence, the user should try and do them as their own. Now, let's take a look at that topics:

  • Blacklist
  • Collision detector between players and map objects (Hint: Dot product)
  • Database related stuff (Hint: JQuery - AJAX and the technology which you preferred to use, for example: C#)
  • Discord approval
  • IP based localization (Hint: JQuery - AJAX)
  • LocalStorage based statistics
  • Rank system
  • Registration system
  • Spam ban
  • Webhooks

Releases

No releases published

Packages

No packages published