From b62366cb67f1021b8b13390cf5e4fd8db00c22d2 Mon Sep 17 00:00:00 2001 From: MistPhizzle Date: Thu, 12 Jun 2014 19:39:28 -0400 Subject: [PATCH] Enflamed Created by orion304, a Firebending utility class. --- .../ProjectKorra/firebending/Enflamed.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/com/projectkorra/ProjectKorra/firebending/Enflamed.java diff --git a/src/com/projectkorra/ProjectKorra/firebending/Enflamed.java b/src/com/projectkorra/ProjectKorra/firebending/Enflamed.java new file mode 100644 index 00000000..95cfdc99 --- /dev/null +++ b/src/com/projectkorra/ProjectKorra/firebending/Enflamed.java @@ -0,0 +1,67 @@ +package com.projectkorra.ProjectKorra.firebending; + +import java.util.concurrent.ConcurrentHashMap; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +public class Enflamed { + + private static ConcurrentHashMap instances = new ConcurrentHashMap(); + private static ConcurrentHashMap times = new ConcurrentHashMap(); + + private static final int damage = 1; + private static final int max = 90; + private static final long buffer = 30; + + public Enflamed(Entity entity, Player source) { + if (entity.getEntityId() == source.getEntityId()) + return; + if (instances.containsKey(entity)) { + instances.replace(entity, source); + } else { + instances.put(entity, source); + } + } + + public static boolean isEnflamed(Entity entity) { + // return false; + if (instances.containsKey(entity)) { + if (times.containsKey(entity)) { + long time = times.get(entity); + if (System.currentTimeMillis() < time + buffer) { + return false; + } + } + times.put(entity, System.currentTimeMillis()); + return true; + } else { + return false; + } + } + + public static void dealFlameDamage(Entity entity) { + if (instances.containsKey(entity) && entity instanceof LivingEntity) { +// if (entity instanceof Player) { +// if (!Extinguish.canBurn((Player) entity)) { +// return; +// } +// } + LivingEntity Lentity = (LivingEntity) entity; + Player source = instances.get(entity); + Lentity.damage(damage, source); + if (entity.getFireTicks() > max) + entity.setFireTicks(max); + } + } + + public static void handleFlames() { + for (Entity entity : instances.keySet()) { + if (entity.getFireTicks() <= 0) { + instances.remove(entity); + } + } + } + +} \ No newline at end of file