LuckPerms

LuckPerms

41.4k Downloads

LuckPerms API NoSuchMethodError

bloodmc opened this issue ยท 2 comments

commented

When adding LP API 4.3 as a dependency in dev, I get the error below on startup. However, If I depend on LP Sponge(latest) instead, it works fine.

java.lang.NoSuchMethodError: me.lucko.luckperms.api.Contexts.setContexts(Lme/lucko/luckperms/api/context/ContextSet;)Lme/lucko/luckperms/api/Contexts;
	at me.lucko.luckperms.common.context.ContextManager.formContexts(ContextManager.java:149) ~[ContextManager.class:?]
	at me.lucko.luckperms.sponge.context.SpongeContextManager.formContexts(SpongeContextManager.java:75) ~[SpongeContextManager.class:?]
	at me.lucko.luckperms.sponge.context.SpongeContextManager.formContexts(SpongeContextManager.java:42) ~[SpongeContextManager.class:?]
	at me.lucko.luckperms.common.context.ContextManager.calculate(ContextManager.java:206) ~[ContextManager.class:?]
	at me.lucko.luckperms.common.context.ContextsCache.supply(ContextsCache.java:53) ~[ContextsCache.class:?]
	at me.lucko.luckperms.common.context.ContextsCache.supply(ContextsCache.java:41) ~[ContextsCache.class:?]
	at me.lucko.luckperms.common.buffer.ExpiringCache.get(ExpiringCache.java:64) ~[ExpiringCache.class:?]
	at me.lucko.luckperms.common.context.ContextsCache.getContextSet(ContextsCache.java:65) ~[ContextsCache.class:?]
	at me.lucko.luckperms.sponge.service.proxy.api7.SubjectProxy.getActiveContexts(SubjectProxy.java:162) ~[SubjectProxy.class:?]
	at me.ryanhamshire.griefprevention.util.PermissionUtil.getActiveContexts(PermissionUtil.java:90) ~[PermissionUtil.class:?]
	at me.ryanhamshire.griefprevention.permission.GPPermissionManager.getFlagOverride(GPPermissionManager.java:390) ~[GPPermissionManager.class:?]
	at me.ryanhamshire.griefprevention.permission.GPPermissionManager.getFinalPermission(GPPermissionManager.java:254) ~[GPPermissionManager.class:?]
	at me.ryanhamshire.griefprevention.permission.GPPermissionManager.getFinalPermission(GPPermissionManager.java:176) ~[GPPermissionManager.class:?]
	at me.ryanhamshire.griefprevention.listener.EntityEventHandler$1.test(EntityEventHandler.java:396) ~[EntityEventHandler$1.class:?]
	at me.ryanhamshire.griefprevention.listener.EntityEventHandler$1.test(EntityEventHandler.java:1) ~[EntityEventHandler$1.class:?]
	at org.spongepowered.api.event.entity.AffectEntityEvent.filterEntities(AffectEntityEvent.java:119) ~[AffectEntityEvent.class:?]
	at me.ryanhamshire.griefprevention.listener.EntityEventHandler.onEntitySpawn(EntityEventHandler.java:337) ~[EntityEventHandler.class:?]
	at org.spongepowered.common.event.listener.SpawnEntityEventListener_EntityEventHandler_onEntitySpawn142.handle(Unknown Source) ~[?:?]
	at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:?]
	at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:383) [SpongeModEventManager.class:?]
	at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:333) [SpongeModEventManager.class:?]
	at org.spongepowered.mod.event.SpongeModEventManager.extendedPost(SpongeModEventManager.java:435) [SpongeModEventManager.class:?]
	at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:404) [SpongeModEventManager.class:?]
	at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:465) [SpongeEventManager.class:?]
	at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:242) [SpongeImpl.class:?]
	at net.minecraft.world.WorldServer.handler$spongeLoadEntities$zmd000(WorldServer.java:2713) [WorldServer.class:?]
	at net.minecraft.world.WorldServer.loadEntities(WorldServer.java) [WorldServer.class:?]
	at net.minecraft.world.chunk.Chunk.onLoad(Chunk.java:920) [Chunk.class:?]
	at net.minecraftforge.common.chunkio.ChunkIOProvider.syncCallback(ChunkIOProvider.java:109) [ChunkIOProvider.class:?]
	at net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:94) [ChunkIOExecutor.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:130) [ChunkProviderServer.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:101) [ChunkProviderServer.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.redirect$onProvideChunkHead$zml000(ChunkProviderServer.java:678) [ChunkProviderServer.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:147) [ChunkProviderServer.class:?]
	at net.minecraft.server.MinecraftServer.prepareSpawnArea(MinecraftServer.java:3808) [MinecraftServer.class:?]
	at org.spongepowered.common.world.WorldManager.createWorldFromProperties(WorldManager.java:830) [WorldManager.class:?]
	at org.spongepowered.common.world.WorldManager.loadAllWorlds(WorldManager.java:771) [WorldManager.class:?]
	at net.minecraft.server.MinecraftServer.loadAllWorlds(MinecraftServer.java:3759) [MinecraftServer.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:273) [DedicatedServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:552) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
commented

It's most likely because you're shading the API into your project, instead of letting it be provided by the LuckPerms plugin.

commented

The issue is you only deployed LuckPerms API 4.3 but I'm depending on 4.4 which doesn't exist on maven.

https://github.com/lucko/LuckPerms/blob/master/api/src/main/java/me/lucko/luckperms/api/Contexts.java#L215

setContexts was added in 4.4 which is why i'm getting NoSuchMethodError