From fd158ca33e0d56cde22834a71a5e708c213b915a Mon Sep 17 00:00:00 2001 From: Him188 Date: Sun, 30 May 2021 23:40:30 +0800 Subject: [PATCH] Add `@JvmOverloads` for `JSimpleCommand` constructor and add default arguments (#349) --- .../src/command/java/JSimpleCommand.kt | 12 ++++---- .../test/command/JSimpleTest.java | 29 +++++++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 backend/mirai-console/test/command/JSimpleTest.java diff --git a/backend/mirai-console/src/command/java/JSimpleCommand.kt b/backend/mirai-console/src/command/java/JSimpleCommand.kt index cf80c1ab3..8d98ee863 100644 --- a/backend/mirai-console/src/command/java/JSimpleCommand.kt +++ b/backend/mirai-console/src/command/java/JSimpleCommand.kt @@ -1,10 +1,10 @@ /* - * Copyright 2019-2020 Mamoe Technologies and contributors. + * Copyright 2019-2021 Mamoe Technologies and contributors. * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. * - * https://github.com/mamoe/mirai/blob/master/LICENSE + * https://github.com/mamoe/mirai/blob/master/LICENSE */ package net.mamoe.mirai.console.command.java @@ -43,11 +43,11 @@ import net.mamoe.mirai.console.permission.Permission * @see SimpleCommand * @see [CommandManager.executeCommand] */ -public abstract class JSimpleCommand( +public abstract class JSimpleCommand @JvmOverloads constructor( @ResolveContext(RESTRICTED_CONSOLE_COMMAND_OWNER) owner: CommandOwner, @ResolveContext(COMMAND_NAME) primaryName: String, @ResolveContext(COMMAND_NAME) vararg secondaryNames: String, - basePermission: Permission, + basePermission: Permission = owner.parentPermission, ) : SimpleCommand(owner, primaryName, secondaryNames = secondaryNames, parentPermission = basePermission) { public override var description: String = super.description protected set diff --git a/backend/mirai-console/test/command/JSimpleTest.java b/backend/mirai-console/test/command/JSimpleTest.java new file mode 100644 index 000000000..4eb39cea8 --- /dev/null +++ b/backend/mirai-console/test/command/JSimpleTest.java @@ -0,0 +1,29 @@ +/* + * Copyright 2019-2021 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + +package command; + +import net.mamoe.mirai.console.command.java.JSimpleCommand; +import net.mamoe.mirai.console.plugin.jvm.JavaPlugin; +import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription; + +public class JSimpleTest { + @SuppressWarnings("PluginMainServiceNotConfiguredJava") + private static class Main extends JavaPlugin { + public Main(JvmPluginDescription description) { + super(description); + } + } + + static class T extends JSimpleCommand { + public T() { + super(new Main(null), "name"); + } + } +}