Eluinhost/TeamspeakAuth

View on GitHub
src/PublicUHC/Bundle/TeamspeakAuthBundle/Resources/config/services.yml

Summary

Maintainability
Test Coverage
parameters:
  minecraft_helper.class: PublicUHC\Bundle\TeamspeakAuthBundle\Helpers\DefaultMinecraftHelper
  teamspeak_helper.class: PublicUHC\Bundle\TeamspeakAuthBundle\Helpers\DefaultTeamspeakHelper
  minotar_base_url: https://minotar.net
  skin_fetcher.timeout: 30
  skin_cache.timeout: 3600
  teamspeak.username: serveradmin
  teamspeak.password: ""
  teamspeak.host: 127.0.0.1
  teamspeak.query_port: 10011
  teamspeak.server_port: 9987
  teamspeak.group_id: 222
  auth_server.database_keepalive: 300
  auth_server.description: '§4▁§e▂§4▃§e▄§4▅§e▆§4▇§e█ §4§l    Auth Server    §e█§4▇§e▆§4▅§e▄§4▃§e▂§4▁ §c▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔'
  auth_server.port: 35879
  auth_server.host: 0.0.0.0

services:
    minecraft_helper:
        class: '%minecraft_helper.class%'
        arguments: ['@skin_fetcher']
        lazy: true

    ## teamspeak server
    teamspeak_helper:
        class: '%teamspeak_helper.class%'
        arguments: ['@teamspeak_server', '@doctrine.orm.entity_manager', '%teamspeak.group_id%', '@minecraft_helper']
        lazy: true
    teamspeak_server:
        class: TeamSpeak3_Node_Server
        factory_class: TeamSpeak3
        factory_method: factory
        arguments: ['serverquery://%teamspeak.username%:%teamspeak.password%@%teamspeak.host%:%teamspeak.query_port%/?server_port=%teamspeak.server_port%']
        lazy: true

    ## skin fetching
    skin_downloader:
        class: PublicUHC\SkinCache\Downloaders\MinotarLikeDownloader
        arguments: ['@skin_client', '%skin_fetcher.timeout%']
    skin_client:
        class: GuzzleHttp\Client
        arguments: [{base_url: '%minotar_base_url%'}]
    skin_formatter:
        class: PublicUHC\SkinCache\Formatters\HttpResponseFormatter
    skin_cache:
        class: Stash\Pool
        arguments: ['@skin_cache_driver']
    skin_cache_driver:
        class: Stash\Driver\FileSystem
        arguments: [{path: '%kernel.cache_dir%/%kernel.environment%/skins'}]
    error_image_painter:
        class: PublicUHC\SkinCache\Painters\TransparentImagePainter
    skin_fetcher:
        class: PublicUHC\SkinCache\SkinFetcher
        arguments: ['@skin_downloader', '@skin_formatter', '@skin_cache', '@error_image_painter', '%skin_cache.timeout%']
        lazy: true

    ## commands
    server_start:
        class: PublicUHC\Bundle\TeamspeakAuthBundle\Command\ServerStartCommand
        arguments:
        - '@auth_server'
        - '@doctrine.orm.entity_manager'
        - '@server_loop'
        - '%auth_server.database_keepalive%'
        - '%auth_server.description%'
        - '%kernel.root_dir%/../src/PublicUHC/Bundle/TeamspeakAuthBundle/Resources/public/images/servericon.png'
        - '@logger'
        tags:
        -  { name: console.command }
        - { name: monolog.logger, channel: authserver }

    ## server
    server_loop:
        class: React\EventLoop\LoopInterface
        factory_class: React\EventLoop\Factory
        factory_method: create
    auth_server:
        class: PublicUHC\MinecraftAuth\AuthServer\AuthServer
        arguments: ['%auth_server.port%', '%auth_server.host%', '@server_loop']
        lazy: true