Minecraft(我的世界)中文论坛

标题: 关于主类与子类的问题

作者: 汤圆宝宝    时间: 2017-8-17 09:49
标题: 关于主类与子类的问题
本帖最后由 汤圆宝宝 于 2017-8-17 09:55 编辑

如题,我在Eclipse中创建了两个类
一个为Main,在plugin.yml中设置为主类
一个为XXX,这应该是子类
但是在Plugin.yml中设置Main为主类,XXX的指令就用不了
(我的是Main类来触发事件,XXX为执行命令)
就像那样,设置main为主类,执行命令的话就没啥用,打什么指令左下角就显示什么指令=-=
但是设置XXX为主类,main的事件就无法触发
所以有没有什么办法让他们都可以用的==
我已经试过代码public class XXX extends Main {
记不太清,反正差不多就这样,这样应该是继承主类到子类
但是还是没用=-=
希望各位dalao解答!

作者: a8105    时间: 2017-8-17 18:31
public class XXX implements CommandExecutor{}
public class Main extends JavaPlugin
{
    public void onEnable()
    {
        getCommand("xxx").setExecutor(new XXX());
    }
}
作者: langyo_v3    时间: 2017-8-17 18:48
本帖最后由 langyo_v3 于 2017-8-18 06:02 编辑

汤圆宝宝,你好。

任何主类都必须继承JavaPlugin。
然而,如果是子类再继承已经继承JavaPlugin的话……那就相当于有两个“主类”了。

沙发的方法似乎可行,子类不必要直接再继承Main了,而是使用CommandExecutor接口,那是专门负责命令的(大雾)。

任何插件都应当有一个并且只有一个主类。如果你想弄事件监听啥的,用不着弄一堆“主类”,而是在主类注册侦听器就行了。

该版块无悬赏功能。
SmartTable
——来自MCBBS客户端PC版

作者: JackC92    时间: 2017-8-27 00:45
楼上两位大佬已经将如何使用CommandExcutor解释的很清楚了。我想说的是,CommandExecutor这个接口可以被任何类所实现,即便是你的主类。只要你在onEnable中注册了所有实现了CommandExeutor的类,并且为你所有命令在config.yml中注册了就行。