Skip to content

Changes

Started 1 yr 11 mo ago
Took 17 min
Add priority to event prefilters. (#1378)

This allows for prefilters to be processed in order of least to highest
complexity, leading to more efficient processing of events that don't
match. For instance, matching a regex is more expensive than matching a
boolean, so we check the boolean first, and if it doesn't match, then we
don't try the regex match, whether or not it would match. General
prefilter types have been given a default complexity, but as every
prefilter is different, it's also possible for individual overrides to
provide a custom priority instead.
(commit: 416a628)
src/main/java/com/laytonsmith/core/events/prefilters/BooleanPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/ItemStackPrefilterMatcher.java src/main/java/com/laytonsmith/core/extensions/ExtensionTracker.java src/main/resources/docs/Developer_Guide src/main/java/com/laytonsmith/tools/ShellEventMixin.java src/main/java/com/laytonsmith/core/events/prefilters/MaterialPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/Prefilter.java src/main/java/com/laytonsmith/core/exceptions/ConfigRuntimeException.java src/main/java/com/laytonsmith/core/events/prefilters/RegexPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/WorldPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/StringICPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/PrefilterMatcher.java src/main/java/com/laytonsmith/core/functions/EventBinding.java src/main/java/com/laytonsmith/core/events/prefilters/MathPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/StringPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/MacroICPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/AbstractPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/LocationPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/MacroPrefilterMatcher.java src/main/java/com/laytonsmith/core/events/prefilters/ExpressionPrefilterMatcher.java src/test/java/com/laytonsmith/testing/StaticTest.java src/main/java/com/laytonsmith/abstraction/bukkit/events/BukkitAbstractEventMixin.java src/main/java/com/laytonsmith/core/events/AbstractEvent.java src/main/java/com/laytonsmith/core/events/prefilters/PrefilterBuilder.java src/main/java/com/laytonsmith/core/events/Event.java src/main/java/com/laytonsmith/core/events/EventUtils.java src/main/resources/docs/Extension_Development src/main/java/com/laytonsmith/core/events/AbstractGenericEvent.java
noreply at