public void add(ContextCalculator<? super S> calculator) {
            synchronized (this) {
                // calculators registered first should have priority (and be checked last.)
                this.calculators.add(0, calculator);

                if (calculator instanceof StaticContextCalculator) {
                    StaticContextCalculator staticCalculator = (StaticContextCalculator) calculator;
                    this.staticCalculators.add(0, staticCalculator);
                }

                bake();
            }
        }
Base implementation of {@link ContextManager}.

@param <S> the subject type
@param <P> the player type
common/src/main/java/me/lucko/luckperms/common/context/manager/ContextManager.java