Skip to content

Commit 9716796

Browse files
TheMeinerLPluckoDrexHDmcmdevpowercasgamer
authored
Upgrade Minestom dependency to 2026.05.17-1.21.11 (#2)
* Update to Minecraft 1.21.11 * Add shared module for Fabric, NeoForge and Forge * Fix shared module context keys (LuckPerms#4206) * Add UUID mismatch warning suppression setting (LuckPerms#4194) * Hytale (LuckPerms#4213) * Improve Hytale PermissionProvider compatibility * Add Hytale with-deps Gradle buildscript * Fix yaml dependency issue in Hytale jar (LuckPerms#4229) * Relocate guava and gson in Hytale jar * Refactor PermissionProcessors * Attempt to fix slf4j classloading issue on Hytale * Add inheritance origin metadata for Hytale virtual groups * Fix duplicate readNode call in SqlStorage * Remove Hytale chat formatter and update deps * Improve debug logging for Hytale login handling * Add rate limit for verbose chat output * Update bytebin/bytesocks custom config settings * Add support for NATS token authentication (LuckPerms#4238) * Update Gradle to v9.4 * Update Hytale to target 2026.03.26-89796e57b * Update to Minecraft 26.1 * Fix Fabric shadowJar config * Add index to time column in SQL Messenger (LuckPerms#4255) * Add context argument to group listmembers command (LuckPerms#4252) * Add Redis Sentinel support for messaging (LuckPerms#4244) * build: target latest Minestom (2026.05.17-1.21.11) and publish snapshot from deployment branch Bumps the Minestom compileOnly dependency in the minestom and minestom:loader modules from 2025.08.29-1.21.8 to the current Maven Central release so the OneLiteFeather LuckPerms fork builds against the Minestom version Titan deploys with. Adds the deployment branch to the CI publish trigger so net.luckperms:*:5.6-SNAPSHOT is deployed to the OneLiteFeather repository for downstream Butterfly/Titan builds. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: compile Minestom modules on Java 25 toolchain Minestom 2026.05.17-1.21.11 requires a JVM 25+ runtime, so the relocation-free minestom and minestom:loader modules can no longer be built against Java 21 (':minestom:compileJava' failed to resolve the dependency). Switch both modules to a Java 25 toolchain and install JDK 25 alongside 21 in CI; JDK 21 stays the default JAVA_HOME so the Forge/Fabric/NeoForge platform builds are unaffected and only the Minestom modules use the 25 toolchain. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * ci: build entire project on JDK 25 The 21/25 split did not work: Gradle's toolchain auto-detection does not pick up the JDK 25 that setup-java installs as a secondary version, so ':minestom:compileJava' still could not resolve the Java 25 Minestom dependency. Run the whole build on JDK 25, consistent with the Titan, Butterfly and shared OneLiteFeather workflows. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * ci: run Gradle on JDK 21, expose JDK 25 toolchain via env Gradle 8.14.3 cannot run on JDK 25 ('Unsupported class file major version 69'), so the full-JDK-25 runtime broke the build script compilation. Keep the Gradle runtime on JDK 21 (last entry, so it is the default JAVA_HOME) and additionally install JDK 25, exposing it to Gradle toolchain detection via org.gradle.java.installations.fromEnv so only the Java 25 Minestom modules use it. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: use Java 25 toolchain for minestom:app (Gradle 9) Gradle 9 removed project-level sourceCompatibility/targetCompatibility, which broke ':minestom:app' evaluation after the upstream merge. Replace them with a Java 25 toolchain, consistent with the minestom and minestom:loader modules. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: migrate minestom:app to Blossom 2.x DSL The upstream merge brought net.kyori.blossom 2.2.0, whose DSL replaced the top-level blossom { replaceTokenIn / replaceToken } block. Use the sourceSets.main.blossom.javaSources.property form (matching upstream common/build.gradle) and the {{ version }} placeholder in LuckPermsApplication. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: override options.release=25 for minestom modules The root subprojects block forces options.release=11 on every module's JavaCompile tasks, which set the org.gradle.jvm.version attribute to 11 and made ':minestom:compileJava' reject Minestom 2026.05.17-1.21.11 (requires JVM 25+). Override release to 25 in the three minestom modules so the Java 25 toolchain compiler targets 25 and the dependency resolves. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * fix(minestom): adapt to upstream LuckPerms common API The upstream merge changed the common permission-calculator API. Port MinestomCalculatorFactory to the new CalculatorFactory.build signature (QueryOptions, Map<String,Node>, CacheMetadata), pass the source map to the now-parameterised processors, and return the concrete PermissionCalculatorMonitored instead of the now-abstract PermissionCalculator (mirrors StandaloneCalculatorFactory). Add the slf4j-api compile dependency that common no longer exposes transitively. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: keep project group me.lucko.luckperms, publish as net.luckperms The fork overrode project.group to net.luckperms, which made upstream's loader shadowJars (include(dependency('me.lucko.luckperms:.*'))) drop :common, :api and :loader-utils. That broke the standalone jar-in-jar (NoClassDefFoundError: common.dependencies.DependencyManager during the preloadDependencies Docker step) and would affect every upstream platform loader. Restore project.group to me.lucko.luckperms (matching root subprojects so the shadow include filters match again) and set groupId = net.luckperms explicitly on each MavenPublication, so the published coordinates (net.luckperms:api/common/loader-utils/minestom/ minestom-app/minestom-loader) consumed by Butterfly and Titan stay unchanged. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * build: publish all LuckPerms platform/loader modules to OLF repo Adds a shared publishing convention so every remaining platform and loader module (bukkit/bungee/velocity/fabric/forge/neoforge/sponge/ nukkit/standalone/hytale + loaders, common:minecraft) is deployed to the OneLiteFeather repository as net.luckperms:<dashed-path>, publishing the shadowJar for loader modules and the java component otherwise. The six modules with bespoke publications (api, common, loader-utils, minestom, minestom-app, minestom-loader) are excluded and unchanged. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * ci: dedupe concurrent push/PR runs to stop Harbor push race The push and pull_request triggers spawned two concurrent runs for the same commit, racing on the Harbor image push (build-docker failing with 'blob upload invalid'). Add a concurrency group keyed on the head commit SHA (shared by both events) with cancel-in-progress, so only one run per commit executes. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP * ci: drop feature-branch push trigger Remove the claude/titan-minestom-deployment-XhoNO push trigger; the pull_request trigger on PR #2 already runs build/test/publish, so the extra push trigger only added a redundant concurrent run. https://claude.ai/code/session_01S76fk9ma5Szkf9r1W44RVP --------- Co-authored-by: lucko <git@lucko.me> Co-authored-by: Drex <nicknamedrex@gmail.com> Co-authored-by: John <mcmdev1337@gmail.com> Co-authored-by: powercas_gamer <cas@mizule.dev> Co-authored-by: Yannick Schinko <yannick@tedworld.de> Co-authored-by: Dominik <43303963+0ptk@users.noreply.github.com> Co-authored-by: masel.io <git@byteexception.eu> Co-authored-by: claude <claude@anthropic.com>
1 parent 9e47abd commit 9716796

190 files changed

Lines changed: 5839 additions & 2958 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ env:
1414
REGISTRY: ghcr.io
1515
IMAGE_NAME: ${{ github.repository }}
1616

17+
concurrency:
18+
group: ci-${{ github.event.pull_request.head.sha || github.sha }}
19+
cancel-in-progress: true
20+
1721
jobs:
1822
build-gradle:
1923
runs-on: ubuntu-latest
@@ -27,7 +31,7 @@ jobs:
2731
uses: actions/setup-java@v4
2832
with:
2933
distribution: 'temurin'
30-
java-version: '21'
34+
java-version: '25'
3135

3236
- name: Setup Gradle
3337
uses: gradle/actions/setup-gradle@v4

api/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
group = 'net.luckperms'
1+
group = 'me.lucko.luckperms'
22

3-
sourceCompatibility = 1.8
4-
targetCompatibility = 1.8
3+
tasks.withType(JavaCompile).configureEach {
4+
options.release = 8
5+
}
56

67
jar {
78
manifest {
@@ -65,6 +66,7 @@ publishing {
6566
publications {
6667
mavenJava(MavenPublication) {
6768
artifactId = 'api'
69+
groupId = 'net.luckperms'
6870

6971
from components.java
7072

api/src/main/java/net/luckperms/api/platform/Platform.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ enum Type {
7979
NEOFORGE("NeoForge"),
8080
FORGE("Forge"),
8181
MINESTOM("Minestom"),
82-
STANDALONE("Standalone");
82+
STANDALONE("Standalone"),
83+
HYTALE("Hytale");
8384

8485
private final String friendlyName;
8586

build.gradle

Lines changed: 69 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
plugins {
22
alias(libs.plugins.licenser) apply false
33
id 'org.cyclonedx.bom' version '3.0.1'
4+
alias(libs.plugins.loom) apply false
45
}
56

67
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
78
import org.gradle.api.tasks.testing.logging.TestLogEvent
89

9-
defaultTasks 'licenseFormat', 'build'
10-
1110
subprojects {
1211
apply plugin: 'java'
1312
apply plugin: 'maven-publish'
14-
apply plugin: 'org.cadixdev.licenser'
13+
apply plugin: 'dev.yumi.gradle.licenser'
1514

1615
group = 'me.lucko.luckperms'
1716
version = '5.6-SNAPSHOT'
1817

19-
sourceCompatibility = 11
20-
targetCompatibility = 11
21-
2218
tasks.withType(JavaCompile).configureEach {
2319
options.encoding = 'UTF-8'
20+
options.release = 11
2421
}
2522

2623
tasks.withType(Test).configureEach {
@@ -38,18 +35,11 @@ subprojects {
3835
}
3936

4037
def determinePatchVersion = {
41-
// get the name of the last tag
42-
def tagInfo = new ByteArrayOutputStream()
43-
exec {
38+
def tagInfo = providers.exec {
4439
commandLine 'git', 'describe', '--tags'
45-
standardOutput = tagInfo
46-
}
47-
tagInfo = tagInfo.toString()
40+
}.standardOutput.asText.get().trim()
4841

49-
if (!tagInfo.contains('-')) {
50-
return 0
51-
}
52-
return tagInfo.split("-")[1]
42+
return tagInfo.contains('-') ? tagInfo.split('-')[1] : 0
5343
}
5444

5545
project.ext.majorVersion = '5'
@@ -59,9 +49,8 @@ subprojects {
5949
project.ext.fullVersion = project.ext.apiVersion + '.' + project.ext.patchVersion
6050

6151
license {
62-
header = rootProject.file('HEADER.txt')
63-
include '**/*.java'
64-
newLine = true
52+
rule(rootProject.file("HEADER.txt"))
53+
exclude '*.xml'
6554
}
6655

6756
repositories {
@@ -80,3 +69,64 @@ subprojects {
8069
maven { url 'https://libraries.minecraft.net/' }
8170
}
8271
}
72+
73+
// Publish every remaining LuckPerms platform/loader module to the
74+
// OneLiteFeather repository as net.luckperms:<dashed-path>. The six modules
75+
// that already define their own publication (api, common, loader-utils,
76+
// minestom, minestom-app, minestom-loader) are intentionally excluded.
77+
def olfExtraPublishPaths = [
78+
':bukkit', ':bukkit:loader', ':bukkit-legacy', ':bukkit-legacy:loader',
79+
':bungee', ':bungee:loader', ':velocity',
80+
':fabric', ':forge', ':forge:loader', ':neoforge', ':neoforge:loader',
81+
':sponge', ':sponge:loader', ':sponge:sponge-service', ':sponge:sponge-service-proxy',
82+
':nukkit', ':nukkit:loader',
83+
':standalone', ':standalone:app', ':standalone:loader',
84+
':hytale', ':hytale:loader', ':hytale:loader-with-deps',
85+
':common:minecraft'
86+
] as Set
87+
88+
subprojects {
89+
afterEvaluate { proj ->
90+
if (!olfExtraPublishPaths.contains(proj.path)) {
91+
return
92+
}
93+
94+
def shadowTask = proj.tasks.findByName('shadowJar')
95+
def hasJavaComponent = proj.components.findByName('java') != null
96+
if (shadowTask == null && !hasJavaComponent) {
97+
return
98+
}
99+
100+
proj.publishing {
101+
publications {
102+
if (findByName('mavenJava') == null && findByName('maven') == null && findByName('olf') == null) {
103+
olf(MavenPublication) {
104+
groupId = 'net.luckperms'
105+
artifactId = proj.path.substring(1).replace(':', '-')
106+
version = proj.version
107+
if (shadowTask != null) {
108+
artifact(shadowTask)
109+
} else {
110+
from proj.components.java
111+
}
112+
}
113+
}
114+
}
115+
repositories {
116+
maven {
117+
name = 'OneLiteFeatherRepository'
118+
def snapshotsRepoUrl = uri('https://repo.onelitefeather.dev/onelitefeather-snapshots')
119+
def releasesRepoUrl = uri('https://repo.onelitefeather.dev/onelitefeather-releases')
120+
url = proj.version.toString().contains('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
121+
credentials(PasswordCredentials) {
122+
username = System.getenv('ONELITEFEATHER_MAVEN_USERNAME')
123+
password = System.getenv('ONELITEFEATHER_MAVEN_PASSWORD')
124+
}
125+
authentication {
126+
basic(BasicAuthentication)
127+
}
128+
}
129+
}
130+
}
131+
}
132+
}

bukkit/src/main/java/me/lucko/luckperms/bukkit/calculator/BukkitCalculatorFactory.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,20 @@
3030
import me.lucko.luckperms.common.cacheddata.CacheMetadata;
3131
import me.lucko.luckperms.common.calculator.CalculatorFactory;
3232
import me.lucko.luckperms.common.calculator.PermissionCalculator;
33+
import me.lucko.luckperms.common.calculator.PermissionCalculatorMonitored;
3334
import me.lucko.luckperms.common.calculator.processor.DirectProcessor;
3435
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
3536
import me.lucko.luckperms.common.calculator.processor.RegexProcessor;
3637
import me.lucko.luckperms.common.calculator.processor.SpongeWildcardProcessor;
3738
import me.lucko.luckperms.common.calculator.processor.WildcardProcessor;
3839
import me.lucko.luckperms.common.config.ConfigKeys;
3940
import me.lucko.luckperms.common.model.HolderType;
41+
import net.luckperms.api.node.Node;
4042
import net.luckperms.api.query.QueryOptions;
4143

4244
import java.util.ArrayList;
4345
import java.util.List;
46+
import java.util.Map;
4447

4548
public class BukkitCalculatorFactory implements CalculatorFactory {
4649
private final LPBukkitPlugin plugin;
@@ -50,25 +53,25 @@ public BukkitCalculatorFactory(LPBukkitPlugin plugin) {
5053
}
5154

5255
@Override
53-
public PermissionCalculator build(QueryOptions queryOptions, CacheMetadata metadata) {
56+
public PermissionCalculator build(QueryOptions queryOptions, Map<String, Node> sourceMap, CacheMetadata metadata) {
5457
List<PermissionProcessor> processors = new ArrayList<>(8);
5558

56-
processors.add(new DirectProcessor());
59+
processors.add(new DirectProcessor(sourceMap));
5760

5861
if (this.plugin.getConfiguration().get(ConfigKeys.APPLY_BUKKIT_CHILD_PERMISSIONS)) {
59-
processors.add(new ChildProcessor(this.plugin));
62+
processors.add(new ChildProcessor(this.plugin, sourceMap));
6063
}
6164

6265
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_REGEX)) {
63-
processors.add(new RegexProcessor());
66+
processors.add(new RegexProcessor(sourceMap));
6467
}
6568

6669
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_WILDCARDS)) {
67-
processors.add(new WildcardProcessor());
70+
processors.add(new WildcardProcessor(sourceMap));
6871
}
6972

7073
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_WILDCARDS_SPONGE)) {
71-
processors.add(new SpongeWildcardProcessor());
74+
processors.add(new SpongeWildcardProcessor(sourceMap));
7275
}
7376

7477
boolean op = queryOptions.option(BukkitContextManager.OP_OPTION).orElse(false);
@@ -82,6 +85,6 @@ public PermissionCalculator build(QueryOptions queryOptions, CacheMetadata metad
8285
processors.add(OpProcessor.INSTANCE);
8386
}
8487

85-
return new PermissionCalculator(this.plugin, metadata, processors);
88+
return new PermissionCalculatorMonitored(this.plugin, metadata, processors);
8689
}
8790
}

bukkit/src/main/java/me/lucko/luckperms/bukkit/calculator/ChildProcessor.java

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,28 +26,37 @@
2626
package me.lucko.luckperms.bukkit.calculator;
2727

2828
import me.lucko.luckperms.bukkit.LPBukkitPlugin;
29+
import me.lucko.luckperms.bukkit.inject.server.LuckPermsPermissionMap;
2930
import me.lucko.luckperms.common.cacheddata.result.TristateResult;
30-
import me.lucko.luckperms.common.calculator.processor.AbstractSourceBasedProcessor;
31+
import me.lucko.luckperms.common.calculator.processor.AbstractPermissionProcessor;
3132
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
33+
import net.luckperms.api.node.Node;
3234
import net.luckperms.api.util.Tristate;
3335

34-
import java.util.Collections;
3536
import java.util.HashMap;
3637
import java.util.Map;
3738
import java.util.concurrent.atomic.AtomicBoolean;
3839

3940
/**
4041
* Permission Processor for Bukkits "child" permission system.
4142
*/
42-
public class ChildProcessor extends AbstractSourceBasedProcessor implements PermissionProcessor {
43+
public class ChildProcessor extends AbstractPermissionProcessor implements PermissionProcessor {
4344
private static final TristateResult.Factory RESULT_FACTORY = new TristateResult.Factory(ChildProcessor.class);
4445

4546
private final LPBukkitPlugin plugin;
47+
private final Map<String, Node> sourceMap;
48+
4649
private final AtomicBoolean needsRefresh = new AtomicBoolean(false);
47-
private Map<String, TristateResult> childPermissions = Collections.emptyMap();
50+
private Map<String, TristateResult> childPermissions;
4851

49-
public ChildProcessor(LPBukkitPlugin plugin) {
52+
public ChildProcessor(LPBukkitPlugin plugin, Map<String, Node> sourceMap) {
5053
this.plugin = plugin;
54+
this.sourceMap = sourceMap;
55+
refresh();
56+
}
57+
58+
private void refresh() {
59+
this.childPermissions = processChildPermissions(this.sourceMap, this.plugin.getPermissionMap());
5160
}
5261

5362
@Override
@@ -59,20 +68,18 @@ public TristateResult hasPermission(String permission) {
5968
}
6069

6170
@Override
62-
public void refresh() {
71+
public void invalidate() {
72+
this.needsRefresh.set(true);
73+
}
74+
75+
private static Map<String, TristateResult> processChildPermissions(Map<String, Node> sourceMap, LuckPermsPermissionMap permissionMap) {
6376
Map<String, TristateResult> childPermissions = new HashMap<>();
64-
this.sourceMap.forEach((key, node) -> {
65-
Map<String, Boolean> children = this.plugin.getPermissionMap().getChildPermissions(key, node.getValue());
77+
sourceMap.forEach((key, node) -> {
78+
Map<String, Boolean> children = permissionMap.getChildPermissions(key, node.getValue());
6679
children.forEach((childKey, childValue) -> {
6780
childPermissions.put(childKey, RESULT_FACTORY.resultWithOverride(node, Tristate.of(childValue)));
6881
});
6982
});
70-
this.childPermissions = childPermissions;
71-
this.needsRefresh.set(false);
72-
}
73-
74-
@Override
75-
public void invalidate() {
76-
this.needsRefresh.set(true);
83+
return childPermissions;
7784
}
7885
}

bukkit/src/main/resources/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,16 @@ redis:
268268
address: localhost
269269
username: ''
270270
password: ''
271+
# Settings for Redis Sentinel.
272+
# Sentinel provides high availability for Redis by monitoring master/replica instances.
273+
# Port 26379 is used by default for sentinel nodes.
274+
sentinel:
275+
enabled: false
276+
master: mymaster
277+
addresses:
278+
- localhost:26379
279+
username: ''
280+
password: ''
271281

272282
# Settings for Nats.
273283
# Port 4222 is used by default; set address to "host:port" if differs
@@ -276,6 +286,7 @@ nats:
276286
address: localhost
277287
username: ''
278288
password: ''
289+
token: ''
279290

280291
# Settings for RabbitMQ.
281292
# Port 5672 is used by default; set address to "host:port" if differs

bukkit/src/main/resources/luckperms.commodore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,9 @@ luckperms {
543543

544544
editor;
545545
listmembers {
546-
page brigadier:integer;
546+
page brigadier:integer {
547+
context brigadier:string greedy_phrase;
548+
}
547549
}
548550
setweight {
549551
weight brigadier:integer;

bungee/src/main/java/me/lucko/luckperms/bungee/calculator/BungeeCalculatorFactory.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,19 @@
2929
import me.lucko.luckperms.common.cacheddata.CacheMetadata;
3030
import me.lucko.luckperms.common.calculator.CalculatorFactory;
3131
import me.lucko.luckperms.common.calculator.PermissionCalculator;
32+
import me.lucko.luckperms.common.calculator.PermissionCalculatorMonitored;
3233
import me.lucko.luckperms.common.calculator.processor.DirectProcessor;
3334
import me.lucko.luckperms.common.calculator.processor.PermissionProcessor;
3435
import me.lucko.luckperms.common.calculator.processor.RegexProcessor;
3536
import me.lucko.luckperms.common.calculator.processor.SpongeWildcardProcessor;
3637
import me.lucko.luckperms.common.calculator.processor.WildcardProcessor;
3738
import me.lucko.luckperms.common.config.ConfigKeys;
39+
import net.luckperms.api.node.Node;
3840
import net.luckperms.api.query.QueryOptions;
3941

4042
import java.util.ArrayList;
4143
import java.util.List;
44+
import java.util.Map;
4245

4346
public class BungeeCalculatorFactory implements CalculatorFactory {
4447
private final LPBungeePlugin plugin;
@@ -48,23 +51,23 @@ public BungeeCalculatorFactory(LPBungeePlugin plugin) {
4851
}
4952

5053
@Override
51-
public PermissionCalculator build(QueryOptions queryOptions, CacheMetadata metadata) {
54+
public PermissionCalculator build(QueryOptions queryOptions, Map<String, Node> sourceMap, CacheMetadata metadata) {
5255
List<PermissionProcessor> processors = new ArrayList<>(4);
5356

54-
processors.add(new DirectProcessor());
57+
processors.add(new DirectProcessor(sourceMap));
5558

5659
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_REGEX)) {
57-
processors.add(new RegexProcessor());
60+
processors.add(new RegexProcessor(sourceMap));
5861
}
5962

6063
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_WILDCARDS)) {
61-
processors.add(new WildcardProcessor());
64+
processors.add(new WildcardProcessor(sourceMap));
6265
}
6366

6467
if (this.plugin.getConfiguration().get(ConfigKeys.APPLYING_WILDCARDS_SPONGE)) {
65-
processors.add(new SpongeWildcardProcessor());
68+
processors.add(new SpongeWildcardProcessor(sourceMap));
6669
}
6770

68-
return new PermissionCalculator(this.plugin, metadata, processors);
71+
return new PermissionCalculatorMonitored(this.plugin, metadata, processors);
6972
}
7073
}

0 commit comments

Comments
 (0)