SX-Attribute

SX-Attribute 开发 - 注册属性

开发总览   JavaDoc   注册属性   注册条件   API


SubAttribute

属性实现

属性构造器

需编写的五个方法

可覆盖的各个方法

不可覆盖的方法(部分)

静态工具类方法

Attribute 优先级

EventData子类

DamageEventData

UpdateEventData

具体代码示范

import github.saukiya.sxattribute.data.attribute.SXAttributeType;
import github.saukiya.sxattribute.data.attribute.SubAttribute;
import github.saukiya.sxattribute.data.eventdata.EventData;
import org.bukkit.entity.Player;

import java.util.List;

public class TestAttribute extends SubAttribute {

    public TestAttribute() {
        super("TestAttribute", 2, SXAttributeType.DAMAGE);
    }
    
    @Override
    public void eventMethod(EventData eventData) {
        if (eventData instanceof DamageEventData){
            // Method
        }
    }

    @Override
    public String getPlaceholder(Player player, String string) {
        return string.equalsIgnoreCase("Test1") ? getDf().format(getAttributes()[0]) : 
                string.equalsIgnoreCase("Test2") ? getDf().format(getAttributes()[1]) : null;
    }

    @Override
    public List<String> getPlaceholders() {
        return Arrays.as("Test1","Test2");//此处Placeholder调用方式为 %sx_Test1% %sx_Test2%
    }

    @Override
    public boolean loadAttribute(String lore) {
        if (lore.contains(设定好的检测字符串1)) {
            getAttributes()[0] += Double.valueOf(getNumber(lore));
        }
        else if (lore.contains(设定好的检测字符串2)) {
            getAttributes()[1] += Double.valueOf(getNumber(lore));
        }
        else {
            return false;
        }
        return true;
    }

    @Override
    public double getValue() {
        return getAttributes()[0] * (设定好的转换值1)
                + getAttributes()[1] * (设定好的转换值2);
    }
    
}
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.Listener;

public class Plugin extends JavaPlugin implements Listener{
    
    // 只允许在插件的onLoad方法中注册及调整属性
    @Override
    public void onLoad() {
        // 实例化一个属性并注册
        new TestAttribute().registerAttribute(this);
    }
    
}

具体使用方法,可参考SX属性源码: Attribute