diff --git a/1.12.2/src/main/kotlin/matterlink/command/MatterlinkCommandSender.kt b/1.12.2/src/main/kotlin/matterlink/command/MatterlinkCommandSender.kt new file mode 100644 index 0000000..ac23346 --- /dev/null +++ b/1.12.2/src/main/kotlin/matterlink/command/MatterlinkCommandSender.kt @@ -0,0 +1,52 @@ +package matterlink.command + +import com.sun.org.apache.xpath.internal.operations.Bool +import matterlink.bridge.ApiMessage +import matterlink.bridge.MessageHandler +import matterlink.config.cfg +import net.minecraft.command.ICommandSender +import net.minecraft.server.MinecraftServer +import net.minecraft.util.text.ITextComponent +import net.minecraft.world.World +import net.minecraftforge.fml.common.FMLCommonHandler +import javax.annotation.Nonnull + +object MatterlinkCommandSender : IMinecraftCommandSender, ICommandSender { + private var level: Int = 0 + + override fun execute(cmdString: String, level: Int): Boolean { + return 0 < FMLCommonHandler.instance().minecraftServerInstance.commandManager.executeCommand( + this, + cmdString + ) + } + + override fun getName(): String { + return "MatterLink" + } + + override fun getEntityWorld(): World { + return FMLCommonHandler.instance().minecraftServerInstance.getWorld(0) + } + + override fun canUseCommand(permLevel: Int, commandName: String?): Boolean { + //TODO: Implement actual permissions checking + return true + } + + override fun getServer(): MinecraftServer? { + return FMLCommonHandler.instance().minecraftServerInstance + } + + override fun sendMessage(@Nonnull component: ITextComponent?) { + MessageHandler.transmit(ApiMessage( + username = cfg!!.relay.systemUser, + text = component!!.unformattedComponentText + )) + + } + + override fun sendCommandFeedback(): Boolean { + return true + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/matterlink/bridge/command/PassthroughCommand.kt b/core/src/main/kotlin/matterlink/bridge/command/PassthroughCommand.kt new file mode 100644 index 0000000..1e27d4e --- /dev/null +++ b/core/src/main/kotlin/matterlink/bridge/command/PassthroughCommand.kt @@ -0,0 +1,11 @@ +package matterlink.bridge.command + +class PassthroughCommand(override val name: String) : IBridgeCommand { + + override fun call(args: String): Boolean { + return true + } + + override val help: String = "No help available for this command." + +} \ No newline at end of file diff --git a/core/src/main/kotlin/matterlink/command/IMinecraftCommandSender.kt b/core/src/main/kotlin/matterlink/command/IMinecraftCommandSender.kt new file mode 100644 index 0000000..be24c47 --- /dev/null +++ b/core/src/main/kotlin/matterlink/command/IMinecraftCommandSender.kt @@ -0,0 +1,11 @@ +package matterlink.command + +interface IMinecraftCommandSender { + /** + * @param cmdString The command to execute with its arguments + * @param level Privilege level to execute this command at, currently unused + * + * @return Any output of the command + */ + fun execute(cmdString: String, level: Int) : Boolean +} \ No newline at end of file