插件开发就像一个新手村,是一个熟练jvav语法的不错环境首先,我们需要认识以下关键字(除基元)访问修饰符:无:表示此变量最大可见性范围仅为包内public:任何地方都可见private:仅在声明此方法的类可见protected:与 无 一样,但可以通过继承这个类来访问基本关键字:static:表示声明的方法/变量是属于这个类而非其对象,可以被任何方法在访问权限允许的情况下直接调用/更改final:用于表示变量为最终变量,在被一次显式赋值后不可刚刚其值,但可调用变量方法,如作用于类上则表示此类不可被继承class:用于表明这是一个类abstract:用于声明这是一个抽象方法,抽象方法不可有方法体,当类被实例化或继承时,调用这个类的类需要实现其所有声明abstract的方法,与接口几乎一样,但不同于接口,抽象类可以有非抽象方法,如果一个类有抽象方法/因继承而需要实现的方法,则必须声明抽象,因继承需要实现的方法则可以实现方法interface:表明这是一个接口null:用于表示一个值无意义(不可赋值给基元)instanceof:左边的对象的类型或实现的接口/继承的类的类型是否是右边的类型一:首先你得拥有一台电脑和一个灵活的脑子(如果你有就已经超过了99%的赛博文盲)和一个idea和一个我的世界插件插件二:创建一个新的插件,假设他叫jntm创建后你理应有一个plugin.yml文件(插件清单)pom.xml(项目清单)和一个叫jntm的类点开jntm类,这个类是你的插件主类它应该是一个这样的格式:package org.exmple.jntm;import org.bukkit.plugin.java.JavaPlugin;public final class Jntm extends JavaPlugin {@Override public void onEnable() {// Plugin startup logic }@Override public void onDisable() {// Plugin shutdown logic }}package 表示这个插件在的包插件主类是不可继承的(除非你把final删了,不过一般不推荐,后面解释)这个类继承了JavaPlugin类,并且作为子类新覆写(并非重写)了两个方法,一个是插件开始方法(就是插件启动时被调用)和插件关闭方法一般大多数方法都是动态方法(就是非static字段声明),动态类型不可直接被外部类调用(即使是public),他们必须通过实例(就是类的对象)访问,通过new 类名称 来实例化一个新的对象小知识:对象是什么?对象指一个类的实例,动态修饰的变量或方法会被打包进对象,静态不会,就比如这是一个Amns类public class Amns{public int a = 114514;}我们调用它Amns i1 = new Amns();Amns i2 = new Amns();i1.a = 91;System.out.println(i1.a + "\n" + i2.a);会输出91114514因为每个对象都是独立的完我们现在回到刚刚的问题,为什么不要随意继承插件主类?首先,假设Amns类继承了Jntm类,那么,实际上插件主类会实例化一个新的对象给被继承的子类用,一般我们在我的世界操控的插件主类是插件调用时实例化的,所以懂的都懂明天继续写