// Path: src/main/java/stream/flarebot/flarebot/util/objects/RunnableWrapper.java
// public class RunnableWrapper {
// 
//     private final Runnable action;
//     private final Class<? extends Command> origin;
// 
//     public RunnableWrapper(Runnable action, Class<? extends Command> origin) {
//         this.action = action;
//         this.origin = origin;
//     }
// 
//     public Runnable getAction() {
//         return action;
//     }
// 
//     public Class<? extends Command> getOrigin() {
//         return origin;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         RestActionWrapper wrapper = (RestActionWrapper) o;
// 
//         return getAction().equals(wrapper.getAction()) && getOrigin().equals(wrapper.getOrigin());
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = getAction().hashCode();
//         result = 31 * result + getOrigin().hashCode();
//         return result;
//     }
// 
// }


import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.eclipse.jetty.util.ConcurrentHashSet;
import stream.flarebot.flarebot.commands.Command;
import stream.flarebot.flarebot.util.objects.RunnableWrapper;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
package stream.flarebot.flarebot.util;



public class ConfirmUtil {

    private static final Cache<String, Set<RunnableWrapper>> confirmCache =
            CacheBuilder.newBuilder()
// Path: src/main/java/stream/flarebot/flarebot/util/objects/RunnableWrapper.java
// public class RunnableWrapper {
// 
//     private final Runnable action;
//     private final Class<? extends Command> origin;
// 
//     public RunnableWrapper(Runnable action, Class<? extends Command> origin) {
//         this.action = action;
//         this.origin = origin;
//     }
// 
//     public Runnable getAction() {
//         return action;
//     }
// 
//     public Class<? extends Command> getOrigin() {
//         return origin;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         RestActionWrapper wrapper = (RestActionWrapper) o;
// 
//         return getAction().equals(wrapper.getAction()) && getOrigin().equals(wrapper.getOrigin());
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = getAction().hashCode();
//         result = 31 * result + getOrigin().hashCode();
//         return result;
//     }
// 
// }


// Path: src/main/java/stream/flarebot/flarebot/util/ConfirmUtil.java
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.eclipse.jetty.util.ConcurrentHashSet;
import stream.flarebot.flarebot.commands.Command;
import stream.flarebot.flarebot.util.objects.RunnableWrapper;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;

package stream.flarebot.flarebot.util;



public class ConfirmUtil {

    private static final Cache<String, Set<RunnableWrapper>> confirmCache =
            CacheBuilder.newBuilder()
                    .expireAfterAccess(1, TimeUnit.MINUTES)