[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_id=482600
|
||||||
curseforge_optional_dependencies=fabric-api
|
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",
|
"package": "io.gitlab.jfronny.libjf.devutil.mixin",
|
||||||
"compatibilityLevel": "JAVA_16",
|
"compatibilityLevel": "JAVA_16",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
"ArgumentTypesMixin",
|
||||||
|
"CommandManagerMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"MinecraftClientMixin"
|
"MinecraftClientMixin"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user