/Sokobot

A Discord bot that lets you play Sokoban

Primary LanguageJava

Sokobot

Sokobot is a Discord bot written with JDA that lets you play Sokoban, the classic box-pushing puzzle game.

Screenshots

Level 1 Level 2

Features

Infinite levels

The maps in Sokobot are randomly generated, increasing in difficulty as you progress.

Varied controls

Sokobot has multiple control options to improve the player's experience, including reactions and wasd commands!

Simultaneous games

Thanks to the power of Java HashMaps™️, multiple users can use the bot at the same time without interfering with one another.

Custom prefixes New!

To prevent Sokobot from conflicting with other bots, admins can choose any single-character prefix to preface Sokobot's commands.

Commands

User

  • !play can be used to start a game if you are not currently in one.
  • !stop can be used to stop your active game at any time.
  • !info provides some useful details about the bot and rules of the game.

Admin New!

  • !prefix [character] can be used to change the prefix the bot responds to in the current server.

Usage

Public host New!

Sokobot is available on top.gg and can be added to your server in one click!

Self-hosting

Grab the latest .jar or build it yourself. Then, create a Discord Bot Application here and paste the bot token into token.txt. Then, ensure the two files are in the same directory and run the .jar file. Please note, this bot differs a bit from the public bot. For example, there is no voting rewards (custom emotes are always unlocked), no leaderboard, no progress saving, etc.

Compiling

Install Java 8 JDK and Gradle. In the root folder of the project, execute gradlew shadowJar. The compiled .jar file will be located in build/libs.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Feel free to create a fork and use the code for any noncommercial purposes.