/* * Decompiled with CFR 0.152. */ package de.maxhenkel.voicechat.plugins; import de.maxhenkel.voicechat.api.events.Event; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; import java.util.stream.Collectors; public class EventBuilder { private final Map, List>>> events = new HashMap, List>>>(); private EventBuilder() { } public EventBuilder addEvent(Class eventClass, Consumer event, int priority) { List eventList = this.events.getOrDefault(eventClass, new ArrayList()); eventList.add(new Tuple>(priority, event)); this.events.put(eventClass, eventList); return this; } public Map, List>> build() { HashMap, List>> result = new HashMap, List>>(); for (Map.Entry, List>>> entry : this.events.entrySet()) { result.put(entry.getKey(), entry.getValue().stream().sorted((o1, o2) -> Integer.compare((Integer)o2.getA(), (Integer)o1.getA())).map(Tuple::getB).collect(Collectors.toList())); } return result; } public static EventBuilder create() { return new EventBuilder(); } private static class Tuple { private final A a; private final B b; public Tuple(A a, B b) { this.a = a; this.b = b; } public A getA() { return this.a; } public B getB() { return this.b; } } }