WorldEdit

WorldEdit

45M Downloads

Crash when fabric permission api is present

morgantic opened this issue ยท 2 comments

commented

WorldEdit Version

7.3.10-beta-01

Platform Version

Fabric 0.16.9

Confirmations

  • I am using the most recent Minecraft release.
  • I am using a version of WorldEdit compatible with my Minecraft version.
  • I am using the latest or recommended version of my platform software.
  • I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
  • I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

Bug Description

I have another mod that comes with fabric-permission-api:

	- do_a_barrel_roll 3.8.1
	   |-- fabric-permissions-api-v0 0.2-SNAPSHOT
	   \-- mixinsquared 0.1.2-beta.4

When this mod is loaded, worledit crashes with this stacktrace:

---- Minecraft Crash Report ----
// You should try our sister game, Minceraft!

Time: 2025-01-02 15:08:41
Description: Exception in server tick loop

java.lang.NoSuchMethodError: 'net.minecraft.class_2168 net.minecraft.class_1297.method_5671()'
	at knot//me.lucko.fabric.api.permissions.v0.Permissions.getPermissionValue(Permissions.java:147)
	at knot//com.sk89q.worldedit.fabric.FabricPermissionsProvider$LuckoFabricPermissionsProvider.hasPermission(FabricPermissionsProvider.java:61)
	at knot//com.sk89q.worldedit.fabric.FabricPlayer.hasPermission(FabricPlayer.java:207)
	at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.base/java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1950)
	at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
	at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:632)
	at knot//com.sk89q.worldedit.command.util.PermissionCondition.lambda$satisfied$0(PermissionCondition.java:47)
	at java.base/java.util.Optional.map(Optional.java:260)
	at knot//com.sk89q.worldedit.command.util.PermissionCondition.satisfied(PermissionCondition.java:47)
	at knot//com.sk89q.worldedit.fabric.CommandWrapper.lambda$requirementsFor$2(CommandWrapper.java:86)
	at knot//com.mojang.brigadier.tree.CommandNode.canUse(CommandNode.java:65)
	at knot//net.minecraft.class_2170.method_9239(class_2170.java:403)
	at knot//net.minecraft.class_2170.method_9241(class_2170.java:397)
	at knot//net.minecraft.class_3324.method_14596(class_3324.java:623)
	at knot//net.minecraft.class_3324.method_14576(class_3324.java:524)
	at knot//net.minecraft.class_3324.method_14570(class_3324.java:210)
	at knot//net.minecraft.class_8610.method_52408(class_8610.java:152)
	at knot//net.minecraft.class_8736.method_53043(class_8736.java:22)
	at knot//net.minecraft.class_8736.method_65081(class_8736.java:8)
	at knot//net.minecraft.class_2600.method_11072(class_2600.java:27)
	at knot//net.minecraft.class_3738.run(class_3738.java:18)
	at knot//net.minecraft.class_1255.method_18859(class_1255.java:164)
	at knot//net.minecraft.class_4093.mixinextras$bridge$method_18859$5(class_4093.java)
	at knot//net.minecraft.class_4093.wrapOperation$cfn000$carpet-tis-addition$yeetUpdateSuppressionCrash_implForThreadExecutorTaskExecuting(class_4093.java:570)
	at knot//net.minecraft.class_4093.method_18859(class_4093.java:23)
	at knot//net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:889)
	at knot//net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:180)
	at knot//net.minecraft.class_1255.method_16075(class_1255.java:138)
	at knot//net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:871)
	at knot//net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:865)
	at knot//net.minecraft.class_1255.method_18857(class_1255.java:147)
	at knot//net.minecraft.server.MinecraftServer.method_18857(MinecraftServer.java:829)
	at knot//net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:836)
	at knot//net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:719)
	at knot//net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:292)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Expected Behavior

I would expect worldedit to not crash if the fabric-permission-api is present

Reproduction Steps

  1. Install worldedit and Do A Barrel Roll
  2. Launch the game

Anything Else?

No response

commented

that other mod is including a version of the fabric permissions API for the wrong version of Minecraft. this isn't a worldedit issue. if a mod for the wrong version of MC is loaded, it's expected that something will break. WorldEdit just happens to be the first thing that checks for permissions as it includes commands

commented

Oh, I see, thanks for the info! I didn't assume WorldEdit actually actively uses the fabric permission api.