@startuml skinparam shadowing false title Control API: real address and ban of a player participant "Admin tool" as admin participant "etrelay control API\n:8090" as control participant "etrelay\nrelay loop" as relay participant "ET server" as et actor "Player\n203.0.113.7" as player note over admin, et : the ET server shows the player as :51234 admin -> control : GET /sessions control --> admin : [{client: 203.0.113.7:27960, port: 51234}] note right of admin : port 51234 = 203.0.113.7 == Ban == admin -> control : PUT /bans/203.0.113.7\n{reason, minutes} control -> control : bans.json (atomic write)\ncut 203.0.113.7's sessions player -> relay : game packets relay -> relay : banned: dropped note over et : no packet: times the player out @enduml