[devutil] Fix issue when running serverside
This commit is contained in:
parent
1695679e3d
commit
c63d637d1f
|
@ -13,4 +13,4 @@ modrinth_optional_dependencies=P7dR8mSH
|
|||
curseforge_id=482600
|
||||
curseforge_optional_dependencies=fabric-api
|
||||
|
||||
commons_version=2022.6.7+11-38-13
|
||||
commons_version=2022.6.7+17-43-1
|
|
@ -0,0 +1,23 @@
|
|||
package io.gitlab.jfronny.libjf.devutil.mixin;
|
||||
|
||||
import com.mojang.brigadier.arguments.*;
|
||||
import net.minecraft.command.argument.*;
|
||||
import net.minecraft.command.argument.serialize.*;
|
||||
import net.minecraft.util.registry.*;
|
||||
import org.spongepowered.asm.mixin.*;
|
||||
import org.spongepowered.asm.mixin.injection.*;
|
||||
|
||||
@Mixin(ArgumentTypes.class)
|
||||
public abstract class ArgumentTypesMixin {
|
||||
@Shadow
|
||||
private static <A extends ArgumentType<?>, T extends ArgumentSerializer.ArgumentTypeProperties<A>> ArgumentSerializer<A, T> register(Registry<ArgumentSerializer<?, ?>> registry, String id, Class<? extends A> clazz, ArgumentSerializer<A, T> serializer) {
|
||||
throw new RuntimeException("Mixin not applied properly");
|
||||
}
|
||||
|
||||
@Redirect(method = "register(Lnet/minecraft/util/registry/Registry;)Lnet/minecraft/command/argument/serialize/ArgumentSerializer;", at = @At(value = "INVOKE", target = "Lnet/minecraft/command/argument/ArgumentTypes;register(Lnet/minecraft/util/registry/Registry;Ljava/lang/String;Ljava/lang/Class;Lnet/minecraft/command/argument/serialize/ArgumentSerializer;)Lnet/minecraft/command/argument/serialize/ArgumentSerializer;"))
|
||||
private static <A extends ArgumentType<?>, T extends ArgumentSerializer.ArgumentTypeProperties<A>> ArgumentSerializer<A, T> libjf$redirectRegister(Registry<ArgumentSerializer<?, ?>> registry, String id, Class<? extends A> clazz, ArgumentSerializer<A, T> serializer) {
|
||||
if (clazz != TestFunctionArgumentType.class && clazz != TestClassArgumentType.class)
|
||||
return register(registry, id, clazz, serializer);
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package io.gitlab.jfronny.libjf.devutil.mixin;
|
||||
|
||||
import com.mojang.brigadier.*;
|
||||
import net.minecraft.server.command.*;
|
||||
import org.spongepowered.asm.mixin.*;
|
||||
import org.spongepowered.asm.mixin.injection.*;
|
||||
|
||||
@Mixin(CommandManager.class)
|
||||
public class CommandManagerMixin {
|
||||
@Redirect(method = "<init>(Lnet/minecraft/server/command/CommandManager$RegistrationEnvironment;Lnet/minecraft/command/CommandRegistryAccess;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/command/TestCommand;register(Lcom/mojang/brigadier/CommandDispatcher;)V"))
|
||||
private void register(CommandDispatcher<?> dispatcher) {
|
||||
// Ignored: would cause an issue
|
||||
}
|
||||
}
|
|
@ -4,6 +4,8 @@
|
|||
"package": "io.gitlab.jfronny.libjf.devutil.mixin",
|
||||
"compatibilityLevel": "JAVA_16",
|
||||
"mixins": [
|
||||
"ArgumentTypesMixin",
|
||||
"CommandManagerMixin"
|
||||
],
|
||||
"client": [
|
||||
"MinecraftClientMixin"
|
||||
|
|
Loading…
Reference in New Issue