package tc.oc.commons.bukkit.event;
import java.util.Objects;
import org.bukkit.event.EventPriority;
/**
* Combines an event type and priority level into a single value. Useful as a cache key.
*/
public class EventKey<T> {
final Class<T> event;
final EventPriority priority;
public EventKey(Class<T> event, EventPriority priority) {
this.event = event;
this.priority = priority;
}
public Class<T> event() {
return event;
}
public EventPriority priority() {
return priority;
}
@Override
public boolean equals(Object o) {
if(this == o) return true;
if(!(o instanceof EventKey)) return false;
EventKey eventKey = (EventKey) o;
return Objects.equals(event, eventKey.event) &&
priority == eventKey.priority;
}
@Override
public int hashCode() {
return Objects.hash(event, priority);
}
}