class DurabilityMechanic extends Mechanic {
private int itemDurability;
public DurabilityMechanic(MechanicFactory mechanicFactory,
ConfigurationSection section) {
/* We give:
- an instance of the Factory which created the mechanic
- the section used to configure the mechanic
- the item modifier(s)
*/
super(mechanicFactory, section, item ->
item.setCustomTag(NAMESPACED_KEY,
PersistentDataType.INTEGER, section.getInt("value")));
this.itemDurability = section.getInt("value");
}
public int getItemMaxDurability() {
return itemDurability;
}
}
class DurabilityMechanicFactory extends MechanicFactory {
public DurabilityMechanicFactory(ConfigurationSection section) {
super(section);
}
@Override
public Mechanic parse(ConfigurationSection itemMechanicConfiguration) {
return null;
}
}
public class DurabilityMechanicFactory extends MechanicFactory {
public DurabilityMechanicFactory(ConfigurationSection section) {
super(section);
}
@Override
public Mechanic parse(ConfigurationSection itemMechanicConfiguration) {
Mechanic mechanic = new DurabilityMechanic(this, itemMechanicConfiguration);
addToImplemented(mechanic);
return mechanic;
}
}
public class DurabilityMechanicFactory extends MechanicFactory {
public DurabilityMechanicFactory(ConfigurationSection section) {
super(section);
MechanicsManager.registerListeners(OraxenPlugin.get(),
new DurabilityMechanicsManager(this));
}
@Override
public Mechanic parse(ConfigurationSection itemMechanicConfiguration) {
Mechanic mechanic = new DurabilityMechanic(this, itemMechanicConfiguration);
addToImplemented(mechanic);
return mechanic;
}
}