Skip to content

Civcraft/CivModCore

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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);
    }
}

About

Do not open issues here; open them on the maintained fork @ DevotedMC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%