﻿using System;
using DarkRift.Server;

namespace Dissonance.Integrations.DarkRift2
{
    public struct DarkRift2Peer
        : IEquatable<DarkRift2Peer>
    {
        public readonly IClient Client;

        public DarkRift2Peer(IClient client)
        {
            Client = client;
        }

        public bool Equals(DarkRift2Peer other)
        {
            return Client.ID == other.Client.ID;
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj))
                return false;
            return obj is DarkRift2Peer && Equals((DarkRift2Peer)obj);
        }

        public override int GetHashCode()
        {
            return Client.ID.GetHashCode();
        }

        public static bool operator ==(DarkRift2Peer left, DarkRift2Peer right)
        {
            return left.Equals(right);
        }

        public static bool operator !=(DarkRift2Peer left, DarkRift2Peer right)
        {
            return !left.Equals(right);
        }

        public override string ToString()
        {
            return "DR2:" + Client.ID;
        }
    }
}
