/CivModCore

Common Plugin Core derived from Humbug

Primary LanguageJavaBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

CivModCore

Common Plugin Core derived from Humbug

To use CivModCore, your Main Plugin class must extend ACivMod:

public class MyNewPlugin extends ACivMod
{

}

In addition to that, you must override getPluginName for log messages:

protected String getPluginName() {
    return "MyPluginsName";
}

CivModCore implements onEnable/onLoad, and as such an extending plugin must Override and call super:

https://github.com/Bergecraft/CivModCore/blob/master/src/vg/civcraft/mc/civmodcore/ACivMod.java#L108

@Override
public void onEnable()
{
    super.onEnable();
    //Do your stuff here that you need to do.
}

Then it is just a matter of adding CivConfigs and CivConfig Decorators on PUBLIC methods:

Types available are defined in vg.civcraft.mc.civmodcore.annotations.CivConfigType:

public enum CivConfigType {
     Bool,
     Double,
     Int,
     String
}

For Example, if you want to toggle a functionality on/off:

@CivConfig(name="mycapability", def="false", type = CivConfigType.Bool)
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerDamage(EntityDamageByEntityEvent event) {
    if (config_.get("mycapability").getBool())
    {
    
    }
}

since def="false", then by DEFAULT this capability will be disabled.

You can also have a group of CivConfig items on a single method:

@CivConfigs({
     @CivConfig(name="mycapability",      def="false", type = CivConfigType.Bool),
     @CivConfig(name="cooldown",          def="3000",  type = CivConfigType.Int),
     @CivConfig(name="mycapability2",     def="true",  type = CivConfigType.Bool),
     @CivConfig(name="damage_bonus",      def="0.66",  type = CivConfigType.Double),
     @CivConfig(name="mycapability3",     def="true",  type = CivConfigType.Bool),
	  @CivConfig(name="damage_multiplier", def="1.5",   type = CivConfigType.Double)
})
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerDamage(EntityDamageByEntityEvent event)
{
    if (config_.get("mycapability").getBool())
    {
    		//Make some cooldown
    }
    
    if (config_.get("mycapability2").getBool())
    {
        double newDamage = event.getDamage() + config_.get("damage_bonus").getDouble();
        event.setDamage(newDamage);
    }
    
    if (config_.get("mycapability3").getBool())
    {
        double newDamage = event.getDamage() * config_.get("damage_multiplier").getDouble();
        event.setDamage(newDamage);
    }
}