API

Want to hook into DrugMeUp? Here's how:

DrugMeUp uses static method API calls to access certain parts that may be useful in custom plugins.

The two main classes accessible with DrugMeUp are:

  • DrugHandler
    • getDrug(ItemStack) - return a Drug object via an ItemStack reference
    • getDrug(Material, short) - return a Drug object via Material and Durability reference
    • getDrug(String) - return a Drug object via name reference (NOTE: Colors need to be included, if any)
    • getDrugs() - return a list of all Drug objects
    • isDrug(ItemStack) - Check if the ItemStack is a Drug type
    • isDrug(Material, short) - Check if the Material and durability combination is a drug type
    • gatherDrugs() - Gather all drugs from config to #getDrugs() (returns the amount gathered)
    • clearDrugs() - Clear the list of drugs (#getDrugs())
  • PlayerHandler
    • getDrunk() - return a list of player's names that are currently drunk (scrambled text)
    • getOnDrugs() - return a HashMap<String, Integer> of everyone on drugs. (<Players Names, Time until drug runs out>)
    • getIsJump() - return a list of player's names that are currently high jumping
    • getNoPlace() - return a list of player's names that are currently not allowed to place blocks (block drugs)

An example call would look like this:

public class MyClass implements Listener {
  
  @EventHandler
  public void onItemPickup(PlayerPickupItemEvent event) {
    ItemStack itemStack = event.getItem().getItemStack();
    Player player = event.getPlayer();
    if (DrugMeUp.getDrugHandler().isDrug(itemStack)) {
      Drug drug = DrugMeUp.getDrugHandler().getDrug(itemStack);
      ItemMeta meta = itemStack.getItemMeta();
      meta.setDisplayName(drug.getName());
      itemStack.setItemMeta(meta);
    }
  }

}

The code above would rename a picked up item into the name of the drug type that was picked up

Custom Events

I have 3 custom events in DrugMeUp -

  • DrugTakenEvent - This event is fired after the player takes the drug, allowing for drug effect information to be given.
  • PreDrugTakenEvent - This event is fired before the player takes a drug, allowing it to be cancelled, or change the drug type
  • DMUConfigReloadEvent - This event is fired when the drug me up config is reloaded (allowing for a re-gathering of drugs)

These events can be listened for by your plugin in the same way you would normally listen for events.

Here's an example:

public class MyClass implements Listener {
  
  @EventHandler
  public void onPreDrugTaken(PreDrugTakenEvent event) {
    Drug drug = event.getDrug();
    Player player = event.getPlayer();
    if (drug.getItemStack().getType() == Material.RED_MUSHROOM) {
      if (!player.hasPermission("AllowedDrugs.RedMushroom")) {
        event.setCancelled(true);
      }
    }
  }

}

The above code would only allow the use of a red mushroom with the permission "AllowedDrugs.RedMushroom"


Comments

Posts Quoted:
Reply
Clear All Quotes