Skip to content

NetworkControl

Last updated View as MarkdownAgent setup

NetworkControl

It's designed to be the one-stop-shop for the network. It handles routing, connections, player data, dynamic server creation & deletion and more.

Process Description
Server Handling Dynamically creates & destroys servers as the network requires. Staff and creators can also request servers to be created, for events or recording sessions. Owners can request a permanent server to be deployed (/server Staff-1 for example)
Player Routing On connection or server change request, NetworkControl identifies a clear, clean server to send the player to.
Purchase Routing Accepts a Payment via the Tebex webhook callbacks, and dispenses the appropriate package & logs it for chargeback prevention.
Party Management Creates, Manages and destroys parties. Senior staff can hijack parties and control them. Creators can join any party. Limited to Paid ranks & 20 people max.
Friend Management Handles player relationships. A player is limited to 100 friends.
Voting Management Accepts an incoming request from voting sites to deploy rewards as appropriate
DDoS Protection Detects a DDoS attack, and enables mitigations, such as firewalling, swapping out the IP address in use, and emails the network provider, OVH, to request assistance with nullifying the affected routes.
Player Profiles Collects & Stores player UUIDs and usernames, and then stores associated information, such as their ranks, coins, network level, etc.

File Structure

  • src
    • main
      • java
        • org
          • infiniteGaming
            • networkcontrol
              • bridge
                • NCGameBridge.java
              • cloud
                • CloudProvisioningEngine.java
                • ConfigLoader.java
                • ConfigManager.java
                • ServerProfile.java
              • integration
                • ModerationLogBus.java
                • StoreWebhookHandler.java
              • process
                • ProcessManager.java
                • ServerProcessSpawner.java
              • profile
                • CurrencyTransactionEngine.java
                • PlayerProfileManager.java
                • PreferenceRegistry.java
                • PunishmentEngine.java
                • RankHierarchyRegistry.java
              • security
                • DDoSProtectionSwitcher.java
              • service
                • HeartbeatMonitor.java
                • MatchMakerEnginer.java
                • ServiceDiscoveryListener.java
              • social
                • FriendsManager.java
                • PartyManager.java
              • store
                • StateStore.java
              • voting
                • VotifierReceiver.java
              • NetworkControlCore.java
      • resources
        • config.json
        • networkcontrol.json
        • permission_bridge.json
        • ranks.json