注册新属性 (BaseAttribute)
看完你就可以自己注册一个新的属性了
最后更新于
看完你就可以自己注册一个新的属性了
最后更新于
/**
* @param attributeType 属性类型
* @param attributeName 属性名
* @param placeholder 属性变量 (%ap_<属性变量>%)
*/
public BaseAttribute(AttributeType attributeType, String attributeName, String placeholder);public class DamageAttribute extends BaseAttribute {
public DamageAttribute() {
super(AttributeType.DAMAGE, "伤害提升", "test1");
}
@Override
public void run(Entity damager, Entity entity, double attributeValue) {
//获取攻击者属性数据
AttributeData attributeData = this.attributeData(damager);
//属性最小值
double min = attributeValue;
//属性最大值 (所有属性最大值都是在 标签后加[1])
//最小值: 伤害提升
//最大值: 伤害提升[1]
double max= attributeData.getAttributeValue("伤害提升[1]");
//随机值
double r = new Random().nextDouble() * (max - min) + min;
//增加此次攻击者攻击伤害
this.addDamage(r);
}
}public class DamageChanceAttribute extends BaseAttribute {
public DamageChanceAttribute() {
super(AttributeType.DAMAGE, "伤害提升几率", "test2");
}
@Override
public void run(Entity damager, Entity entity, double attributeValue) {
//触发几率判断
if (this.chance(attributeValue)){
AttributeData attributeData = this.attributeData(damager);
//获取最小值
double min = attributeData.getAttributeValue("伤害提升");
//获取最大值
double max= attributeData.getAttributeValue("伤害提升[1]");
double r = new Random().nextDouble() * (max - min) + min;
this.addDamage(r);
}
}
}
public class DamageAttribute extends BaseAttribute {
public DamageAttribute() {
super(AttributeType.NULL, "伤害提升", "test1");
}
}@Override
public void onEnable(){
//将属性草(一种植物)进服务器里
new DamageChanceAttribute().registerAttribute();
new DamageAttribute().registerAttribute();
}注册 AttributePlus 插件属性,那就必须在插件 plugin.yml 内添加以下内容
depend: [AttributePlus]