⚙️
T-MiniGameAPI
WebsiteDiscord
2.0.0
2.0.0
  • 🏠Home
  • 💻Maven and Gradle
  • 📦Minigame setup
  • 🖱️Plugins are using this libarary
  • Basic features
    • 🗺️Configuration
      • 🎯Configurators
      • 🔴Override Configuartors
    • 🧑Models
      • 📦File model
        • 🟢Single file
        • 🟠Many files
      • 🧑‍🦱Users
    • 📔Loaders
      • 📗Loader
        • 📂File loader
  • Minigame features
    • 🅰️Arena system
      • 🟢Arena
      • 🔵ArenaManager
    • 🎮Game system
      • 🔴Game Manager
      • 🔵Game State
      • 🟡Users in game
      • 🟢Teams
    • ⏰Timers
      • 😀SimpleTimer
      • ✨XpTimer
    • 🪙Coins system
      • 🟢UserCoins
      • 🔵UserCoinsManager
    • ✨Statistics system
      • 🟢Default statistics system
      • 🔵Your own statistics system
    • 💥Cosmetics system
      • 📀Cosmetic
        • 💕ParticleCosmetic
      • ✳️Cosmetics Manager
      • 🧒Users' cosmetics
        • 💿UserCosmeticsManager
        • ✅UserCosmetics
  • Modules
    • 🔌What is module ?
    • 🗒️Modules list
    • Internal Modules
      • Commands Module
        • 🧔Parent commands
        • 🧒Sub commands
        • 📑Tab completer
        • ®️Command registration
      • SQL Module
        • 💡DbModel
        • SQLDatabaseDao
        • 💾Database loader
        • SQLDatabaseAdapter
        • SQLDatabaseMigrator
      • MongoDB Module
        • MongoDbConnector
        • 💡MongoDbModel
        • MongoDbDao
        • 💾MongoDb loader
    • 💾How to create module?
Powered by GitBook
On this page
  1. Minigame features
  2. Game system

Game Manager

This class manages games on the server.

In joinGame, gameRestert, and leaveFromGame methods define the logic of joining the game, leaving, and game restarting system.

The library has a default restarting system, to enable it, you must create RestertingGameState and define your restart logic.

The GameManage must be set in your name class by method. setGameManager(new MyGameManager());

GameManager methods:

Optional<Game> getGameByPlayer(Player player); // Gets game by player
Optional<Game> getGameByArenaName(String arenaName); //Gets game by arena name
String randomGame(); //Draws arena name
void gameRestart(Game game); //Restart game    
void joinGame(Arena arena, Player player); //Joins player to arena
void leaveFromGame(Game game, Player player); //Leaves player from game
Set<Game> getGames(); //Gets list of arenas

How to define your own GameManager to define game logic?

Every game manager must extend AbstractGameManager.

public class MyGameManager extends AbstractGameManager {

    @Override
    public String randomGame() {
        //Define your logic of drawing new arena name
       return "";
    }

    @Override
    public void joinGame(Arena arena, Player player) {
     //Define your logic of joining to arena        
    }

    @Override
    public void leaveFromGame(Game game, Player player) {
     //Define your logic of leaving from arena   
    }
}

How to enable the default restarting system?

@Override
protected GameState getRestartingGameState(Game game) {
   //enables default game restarting system
   return new RestartingGameState(this, game);
}

Define your restarting system.

@Override
public void gameRestart(Game game) {
    //define your own logic of restarting game
 }

How to use rejoin feature ?

Optional<Game> gameOptional = gameManager.rejoin(player, 
(game) -> game.getState() instanceof PlayingGameState, (rejoinState) -> {
            UserGameConverter userGameConverter = gameManager.getUserGameConverter();

            RecoverableUserGame recoverableUserGame = rejoinState.getRecoverableUserGame();
            Game game = rejoinState.getGame();

            MyUserGame myUserGame = userGameConverter.convertToUserGame(recoverableUserGame, MyUserGame.class);

            game.addUserGame(myUserGame);

            rejoinState.teleportToLatestLocation(player);

            rejoinState.restorePlayerOptions(player);
            rejoinState.restorePlayerInventory(player);

            game.removeRecoverableUserGame(recoverableUserGame);
        });
PreviousGame systemNextGame State

Last updated 8 months ago

🎮
🔴