Bukkit和基础
AttributePlus默认就导入了 Bukkit
这个类,所以我们可以直接使用这个类下的所有静态方法。
我们应该学习看javadoc
https://bukkit.windit.net/javadoc/org/bukkit/Bukkit.html
打开后我们可以看到,它是一个经过汉化的文档
首先映入眼帘的是 程序包
org.bukkit
就是包名,类 Bukkit
就是类名,他们结合起来 org.bukkit.Bukkit
就是这个类的路径。
我们可以点击下面的按钮“静态方法”来查看这个类下的所有静态方法,也就是可以在脚本属性中直接使用的方法。
修饰符和类型
暂时不需要理解修饰符的概念,只做一些简单的说明。static boolean
看到 static
,就代表这个方法是静态的。(这个 static
就是修饰符)boolean
代表这个方法返回的类型,它是一个布尔值
static void
static
同上void
代表这个方法什么都不返回,和Kotlin语言(AttributePlus使用kotlin编写)的 Unit
概念类似,所以你会在“方法大全”中看到很多 Unit
static @NotNull ItemStack
@NotNull
是注解,它现在代表返回的 ItemStack
对象 @NotNull
,即不为 null
。ItemStack
代表这个方法返回一个 ItemStack
的对象,它是物品堆,现在你也不需要理解它是什么。
如何使用
正常使用即可,要求什么参数就填什么参数
Bukkit.broadcastMessage("紧急通知!")
基本数据类型
这是在Java中一个很重要的概念。你可以看到返回值如 boolean
int
double
等之类的返回值,他们为什么是小写的?为什么“方法大全”中是首字母大写的?
Java中有8中基本数据类型 byte
short
int
long
float
double
char
boolean
,他们对应的包装类型分别是Byte
Short
Integer
Long
Float
Double
Character
Boolean
。
我们以 double
举例。double
就是 Double
类所包装(或封装)的基本数据类型,其他同理。
特性 | double (基本类型) | Double (包装类) |
---|---|---|
类型 | 基本数据类型 | 对象 (类) |
默认值 | 无 (局部变量需初始化) | null (成员变量/数组元素) |
可为 null | 否 | 是 |
存储 | 直接存储数值 | 存储引用,内部包含 double 值 |
性能 | 更高 (无对象开销) | 稍低 (有对象开销) |
用途 | 数值计算 | 集合、泛型、需要 null 的场景 |
这是Java的概念,在Kotlin中并没有相关的概念,但这并不意味着它不高效。其背后的设计理念和实现机制非常巧妙。Kotlin 的核心设计目标之一是拥有一个完全统一的类型系统。这意味着:
- 在 Kotlin 中,一切皆是对象。无论是数字、布尔值还是字符,它们都被视为对象。
- 这与 Java 形成鲜明对比。Java 有 基本数据类型 (
double
等) 和 引用类型 (Double
等) 两种不同的系统,这导致了复杂性(比如装箱/拆箱)和一些限制(比如基本类型不能调用方法)。
正如我之前说的,AttributePlus使用kotlin编写的,所以你会在方法大全“方法大全”中看到的是 Double
而不是 double
。
但是你又能看到 AttributeAPI.attackTo(LivingEntity entity, LivingEntity attacker, double damage)
这种小写的 double
,这是因为我时而复制AttributePlus文档,时而自己写文档导致的。
总结:你无需关心它的大小写,直接按照数据基本类型使用即可。因为这背后的设计更为巧妙和复杂,如果你想了解,可以去搜一下视频或者文档,很多人讲的都比我好。
注意事项
很多方法都有要求最低的Minecraft版本,如果你使用的版本不支持还硬要使用就会报错。