Skip to content
A Spigot plugin to bridge PCB and its game servers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A Spigot plugin to bridge Project City Build and its Minecraft servers (Currently being rewritten in Kotlin)

Project Structure

PCBridge is designed to be modular - allowing it to be simultaneously built for Spigot, Bungee, or whatever is the latest server software.

  • core: Contains interfaces and extensions used across all modules. This is the main framework module
  • api: Contains API requests (Retrofit)
  • entities: The model/data layer - contains nothing but POJOs (Plain Old Java Objects)
  • actions: Small, reusable pieces of logic. For example, getting the ban status of a UUID
  • spigot: Contains logic specific to just Spigot - commands, listeners, extensions, etc
  • bungee: Contains logic specific to just Bungee (not created yet)


Each platform has its own Environment and Module. Spigot contains a SpigotEnvironment which serves as a dependency injection layer, providing Spigot specific implementations of services such as the logger, config file, chat colors, plugin hooks, etc.

Data Flow

Each platform has a CommandDelegatable and ListenerDelegatable which serve as the wiring between a user and their events.

A command (represented by Commandable) is an event where the user types in a command such as /ban. A command event is received by the CommandDelegatable and dispatches to the relevant command handler - in this case the BanCommand - which performs all the required logic and data flow management (think of it as a Presenter in MVP). Finally, the data is passed off to an interactor - in this case the BanCommandInteractor which just handles user interactions such as displaying text to the command sender, or handling clicking a 'Confirm' link (think of it as the View in MVP).


  • /ban <name> [reason] - Bans a player from the PCB game network
  • /unban <name> - Unbans a player
  • /status <name> - Checks the ban status of a player
  • /mute <name> - Prevents a player from sending chat messages
  • /unmute <name> - Removes a player's mute
  • /maintenance [on|off] - Puts the server into Maintenance Mode; no non-staff player can join while active
  • /prefix <name> [set|clear] <prefix> - Sets or resets a player's prefix
  • /prefix <name> - Gets a player's current prefix
  • /suffix <name> [set|clear] <suffix> - Sets or resets a player's suffix
  • /suffix <name> - Gets a player's current suffix

Using on Server

PCBridge relies on Vault for managing ranks. Make sure that you have Vault.jar in your server's plugin folder, as well as a permission management plugin jar of your choice (eg. PEX).

You can’t perform that action at this time.