Skip to content

Communication Settings

The communication section in mineLogin's configuration is crucial for networks running multiple server instances. It allows different servers to share information about player authentication status, sessions, and other important data. Here's a detailed breakdown of the communication settings:

yaml
communication:
  type: PLUGIN_MESSAGING_CHANNEL
  host: localhost
  port: 25565
  username: username
  password: password

Options Explained

  1. type:

    • Purpose: Specifies the method of communication between servers.
    • Options:
      • PLUGIN_MESSAGING_CHANNEL: Uses Minecraft's built-in plugin messaging system.
      • REDIS: Uses Redis, an in-memory data structure store, for communication.
      • NATS: Uses NATS, a lightweight messaging system, for communication.
    • Considerations:
      • PLUGIN_MESSAGING_CHANNEL is suitable for small networks and doesn't require additional software.
      • REDIS and NATS offer better performance and scalability for larger networks.
  2. host:

    • Purpose: The address of the Redis or NATS server.
    • Usage: Only applicable when type is set to REDIS or NATS.
    • Example: localhost for a server on the same machine, or an IP address for a remote server.
  3. port:

    • Purpose: The port number for the Redis or NATS server.
    • Usage: Only applicable when type is set to REDIS or NATS.
    • Default ports: Redis typically uses 6379, NATS typically uses 4222.
  4. username:

    • Purpose: Username for authenticating with the NATS server.
    • Usage: Only applicable when type is set to NATS.
    • Note: Redis typically doesn't use username authentication, relying on password only.
  5. password:

    • Purpose: Password for authenticating with the Redis or NATS server.
    • Usage: Applicable when type is set to REDIS or NATS.
    • Importance: Use a strong, unique password to secure your communication channel.

Setting Up Different Communication Types

  1. PLUGIN_MESSAGING_CHANNEL:

    • Simplest to set up, requires no additional configuration beyond selecting the type.
    • Example config:
      yaml
      communication:
        type: PLUGIN_MESSAGING_CHANNEL
    • Pros: Easy setup, no additional software required.
    • Cons: Limited scalability, may not be suitable for very large networks.
  2. REDIS:

    • Requires a Redis server to be set up and running.
    • Example config:
      yaml
      communication:
        type: REDIS
        host: 192.168.1.100
        port: 6379
        password: your_strong_password_here
    • Pros: High performance, great for large networks.
    • Cons: Requires setting up and maintaining a Redis server.
  3. NATS:

    • Requires a NATS server to be set up and running.
    • Example config:
      yaml
      communication:
        type: NATS
        host: nats.example.com
        port: 4222
        username: nats_user
        password: your_strong_password_here
    • Pros: Lightweight, scalable, good for microservices architecture.
    • Cons: Requires setting up and maintaining a NATS server.

Best Practices

  1. Security:

    • Always use strong, unique passwords for Redis or NATS authentication.
    • Consider using SSL/TLS encryption for communication if supported by your setup.
  2. Performance:

    • For networks with more than a few servers, consider using REDIS or NATS for better performance.
    • Monitor the performance of your communication system and adjust as needed.
  3. Scalability:

    • Plan for future growth. If you expect your network to expand significantly, setting up REDIS or NATS early can save time later.
  4. Redundancy:

    • For critical networks, consider setting up redundant Redis or NATS servers to ensure continuous operation.
  5. Monitoring:

    • Implement monitoring for your communication system to quickly detect and resolve any issues.

Troubleshooting

  1. If using PLUGIN_MESSAGING_CHANNEL and experiencing issues:

    • Ensure all servers are running compatible versions of mineLogin.
    • Check server logs for any communication errors.
  2. For REDIS or NATS:

    • Verify that the server is running and accessible from all Minecraft server instances.
    • Check firewall settings to ensure the necessary ports are open.
    • Use Redis-cli or NATS command-line tools to test connectivity independently of mineLogin.

Remember, the choice of communication type can significantly impact your network's performance and scalability. Choose the option that best fits your current needs while allowing for future growth.