Added some chi changes

Created a ChiblockingManager and also made it so HealingWaters cannot
heal the blindness from Smokescreen
This commit is contained in:
AlexTheCoder 2014-08-27 20:20:04 -04:00
parent e0d12c3ca6
commit 65daa0c840
6 changed files with 52 additions and 9 deletions

View file

@ -88,7 +88,6 @@ public class BendingManager implements Runnable {
ProjectKorra.time_step = interval;
AvatarState.manageAvatarStates();
ChiPassive.handlePassive();
TempPotionEffect.progressAll();
handleDayNight();
Flight.handle();

View file

@ -10,6 +10,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import com.projectkorra.ProjectKorra.Ability.AbilityModuleManager;
import com.projectkorra.ProjectKorra.Utilities.CraftingRecipes;
import com.projectkorra.ProjectKorra.airbending.AirbendingManager;
import com.projectkorra.ProjectKorra.chiblocking.ChiblockingManager;
import com.projectkorra.ProjectKorra.earthbending.EarthbendingManager;
import com.projectkorra.ProjectKorra.firebending.FirebendingManager;
import com.projectkorra.ProjectKorra.waterbending.WaterbendingManager;
@ -43,6 +44,7 @@ public class ProjectKorra extends JavaPlugin {
getServer().getScheduler().scheduleSyncRepeatingTask(this, new WaterbendingManager(this), 0, 1);
getServer().getScheduler().scheduleSyncRepeatingTask(this, new EarthbendingManager(this), 0, 1);
getServer().getScheduler().scheduleSyncRepeatingTask(this, new FirebendingManager(this), 0, 1);
getServer().getScheduler().scheduleSyncRepeatingTask(this, new ChiblockingManager(this), 0, 1);
DBConnection.init();
for (Player player: Bukkit.getOnlinePlayers()) {

View file

@ -0,0 +1,24 @@
package com.projectkorra.ProjectKorra.chiblocking;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import com.projectkorra.ProjectKorra.ProjectKorra;
public class ChiblockingManager implements Runnable {
public ProjectKorra plugin;
public ChiblockingManager(ProjectKorra plugin) {
this.plugin = plugin;
}
@Override
public void run() {
for(Player player : Bukkit.getOnlinePlayers()) {
ChiPassive.handlePassive();
Smokescreen.removeFromHashMap(player);
}
}
}

View file

@ -18,6 +18,7 @@ public class Smokescreen {
public static HashMap<String, Long> cooldowns = new HashMap<String, Long>();
public static List<Integer> snowballs = new ArrayList<Integer>();
public static HashMap<String, Long> blinded = new HashMap<String, Long>();
/*
* TODO: Make stuff configurable
*/
@ -69,6 +70,18 @@ public class Smokescreen {
if (entity instanceof Player) {
Player p = (Player) entity;
p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, duration * 20, 2));
blinded.put(p.getName(), System.currentTimeMillis());
}
}
public static void removeFromHashMap(Entity entity) {
if (entity instanceof Player) {
Player p = (Player) entity;
if(blinded.containsKey(p.getName())) {
if(blinded.get(p.getName()) + duration >= System.currentTimeMillis()) {
blinded.remove(p.getName());
}
}
}
}
}

View file

@ -13,6 +13,7 @@ import org.bukkit.potion.PotionEffectType;
import com.projectkorra.ProjectKorra.Methods;
import com.projectkorra.ProjectKorra.ProjectKorra;
import com.projectkorra.ProjectKorra.TempBlock;
import com.projectkorra.ProjectKorra.chiblocking.Smokescreen;
public class HealingWaters {
@ -64,6 +65,9 @@ public class HealingWaters {
}
for(PotionEffect effect : player.getActivePotionEffects()) {
if(Methods.isNegativeEffect(effect.getType())) {
if((effect.getType() == PotionEffectType.BLINDNESS) && Smokescreen.blinded.containsKey(player.getName())) {
return;
}
player.removePotionEffect(effect.getType());
}
}

View file

@ -302,6 +302,7 @@ public class WaterManipulation {
double radius = FireBlast.affectingradius;
Player source = player;
if(!(location == null)) {
if (EarthBlast.annihilateBlasts(location, radius, source)
|| WaterManipulation.annihilateBlasts(location, radius, source)
|| FireBlast.annihilateBlasts(location, radius, source)) {
@ -309,8 +310,8 @@ public class WaterManipulation {
new WaterReturn(player, sourceblock);
return false;
}
Combustion.removeAroundPoint(location, radius);
}
location = location.clone().add(direction);