import requests

class OxfordAPI:
    def __init__(self, server_id: str, server_key: str):
        self.base_url = "https://api.oxfd.re/v1"
        self.headers = {
            "server-id": server_id,
            "server-key": server_key
        }

    def get_server(self):
        """Returns general information about the private server."""
        response = requests.get(f"{self.base_url}/server", headers=self.headers)
        response.raise_for_status()
        return response.json()

    def get_players(self):
        """Returns a list of players currently in the server."""
        response = requests.get(f"{self.base_url}/server/players", headers=self.headers)
        response.raise_for_status()
        return response.json()

    def get_queue(self):
        """Returns the current reserved server queue."""
        response = requests.get(f"{self.base_url}/server/queue", headers=self.headers)
        response.raise_for_status()
        return response.json()

    def get_bans(self):
        """Returns active bans for the server."""
        response = requests.get(f"{self.base_url}/server/bans", headers=self.headers)
        response.raise_for_status()
        return response.json()