Skip to content

northpl93/NorthPlatform

Repository files navigation

NorthPlatform

Universal solution for Minecraft networks.

Developers

  • Michał Kasprzyk (northpl93)
  • Rafał Szewczyk (xxRafiiiisxx) - API.GuiManager, parts of API.MiniGame, WorldProperties, GoldHunter

License

This project is published for reference purposes only. You can't use any part of this code. So, no required dependencies nor compile instructions are published.

A detailed description of modules

API is the heart of the whole system. It manages loading of custom extensions, called components. Component allows you to mark which piece of code belongs to which platform, it allows you to easily develop an extension which can be launched both on e.g. Bukkit and Bungee and exchanges information between these two instances. There are also core APIs that allows management of Minecraft network (players, proxies, daemons, servers).

List of features:

  • Custom plugins (components) system, with multi-platform support.
  • Utilizes MongoDB&Redis databases.
    • My serializer with support for bson&messagepack.
  • Real-time communication based on Redis within the network.
    • Remote method execution based on Java proxies and pub/sub.
    • Distributed locking (variation of redlock algorithm).
    • Value (simple variable stored in Redis with caching)
    • Network-wide events (abstraction for pub/sub)
  • APIs for network management.
    • Players API with support for distributed locking (allows multiple servers/proxies to safe access players data in Redis)
    • Real-time information about all servers, proxies and daemons running in the network.
  • Basic support for groups/permissions
    • Works both on bukkit and bungee.
    • One centralised configuration (permissions.xml in network controller)
  • Commands API
    • You may create commands which can be executed both on bungee and bukkit (i.e. /network)
    • Easy internationalization.
  • Internationalization
    • Rich messages API with translation support.
    • Each player may choose his language.
    • Most components are built with a mind to support translatable messages.
  • Many components built for Bukkit servers
    • Chest GUIs & hot-bar menus. (XML layout configuration)
    • Holograms (based on invisible Armor Stands)
    • GUI based on dropped items and holograms (like on Hypixel)
    • Scoreboard API
    • Simple API for packets manipulation

It's one of the most important components. Each network must have one instance of the standalone API with this component. Main features:

  • Broadcasts configuration files in Redis. (NetworkController.ConfigServer)
  • Automatically manages the number of running servers in servers groups. (NetworkController.ServersManager)

This component starts and manages Spigot instances.

Various small features essential for all types of Minecraft servers.

  • Private messages
  • Support commands (/helpop)
  • Server and worlds management commands (performance info etc.)
  • Online time counting
  • Banning and kicking

Provides basic support for chat channels, formatting etc.

Provides support for multiple currencies in the network.

  • Supports transactional access to player's accounts.
  • Supports integration with Vault.
  • Manages a lifecycle of game arenas.
  • Manages player's parties.
  • Provides useful utils for minigame development.
  • Provides integration with NetworkController (allows to automatically manage the number of servers depending on the number of free arenas)

This component manages shops with persistent (between matches) items.

All features required by a lobby on a minigames server.

  • User interfaces (chest GUI, hotbar, NPCs)
  • Loot-chests
  • Tutorials

Features required to handle authentication of both players with bought a copy of game and pirates.

Simple settings and protection for Minecraft worlds. See example config.

List of minigames

Developed by Michał Kasprzyk

Developed by Michał Kasprzyk

Developed by Rafał Szewczyk

About

Universal solution for Minecraft networks.

Resources

Stars

Watchers

Forks

Languages