diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/commands/CommandSource1Mixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/commands/CommandSource1Mixin.java new file mode 100644 index 00000000..5ebe1a79 --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/commands/CommandSource1Mixin.java @@ -0,0 +1,49 @@ +package io.izzel.arclight.common.mixin.core.commands; + +import io.izzel.arclight.common.bridge.core.command.ICommandSourceBridge; +import net.minecraft.commands.CommandSourceStack; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v.command.ServerCommandSender; +import org.jetbrains.annotations.NotNull; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(targets = "net/minecraft/commands/CommandSource$1") +public class CommandSource1Mixin implements ICommandSourceBridge { + + + public CommandSender getBukkitSender(CommandSourceStack wrapper) { + return new ServerCommandSender() { + private final boolean isOp = wrapper.hasPermission(wrapper.getServer().getOperatorUserPermissionLevel()); + + @Override + public boolean isOp() { + return isOp; + } + + @Override + public void setOp(boolean value) { + } + + @Override + public void sendMessage(@NotNull String message) { + + } + + @Override + public void sendMessage(@NotNull String[] messages) { + + } + + @NotNull + @Override + public String getName() { + return "NULL"; + } + }; + } + + @Override + public CommandSender bridge$getBukkitSender(CommandSourceStack wrapper) { + return getBukkitSender(wrapper); + } +} diff --git a/arclight-common/src/main/resources/mixins.arclight.core.json b/arclight-common/src/main/resources/mixins.arclight.core.json index 76f7c895..b8f3d6c9 100644 --- a/arclight-common/src/main/resources/mixins.arclight.core.json +++ b/arclight-common/src/main/resources/mixins.arclight.core.json @@ -19,6 +19,7 @@ "advancements.AdvancementMixin", "commands.CommandsMixin", "commands.CommandSourceMixin", + "commands.CommandSource1Mixin", "commands.CommandSourceStackMixin", "commands.arguments.EntityArgumentMixin", "commands.arguments.blocks.BlockStateParserMixin",