diff --git a/src/com/massivecraft/massivecore/collections/MassiveSet.java b/src/com/massivecraft/massivecore/collections/MassiveSet.java index 5fa3341e..b0124dba 100644 --- a/src/com/massivecraft/massivecore/collections/MassiveSet.java +++ b/src/com/massivecraft/massivecore/collections/MassiveSet.java @@ -3,7 +3,9 @@ package com.massivecraft.massivecore.collections; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedHashSet; +import java.util.List; /** * This subclass adds better constructors. @@ -51,5 +53,24 @@ public class MassiveSet extends LinkedHashSet { this(Arrays.asList(elements)); } + + // -------------------------------------------- // + // OPTIMIZE: REMOVE ALL & RETAIN ALL + // -------------------------------------------- // + // This will greatly reduce the complexity in cases with big sizes. + + @Override + public boolean removeAll(Collection c) + { + if (c instanceof List) c = new HashSet(c); + return super.removeAll(c); + } + + @Override + public boolean retainAll(Collection c) + { + if (c instanceof List) c = new HashSet(c); + return super.retainAll(c); + } } diff --git a/src/com/massivecraft/massivecore/event/EventMassiveCore.java b/src/com/massivecraft/massivecore/event/EventMassiveCore.java index 7bd8a4be..f9e75bcd 100644 --- a/src/com/massivecraft/massivecore/event/EventMassiveCore.java +++ b/src/com/massivecraft/massivecore/event/EventMassiveCore.java @@ -44,4 +44,13 @@ public abstract class EventMassiveCore extends Event implements Runnable, Cancel super(isAsync); } + // -------------------------------------------- // + // UTIL + // -------------------------------------------- // + + public boolean isSynchronous() + { + return !this.isAsynchronous(); + } + }