diff --git a/src/org/jakub1221/herobrineai/AI/AICore.java b/src/org/jakub1221/herobrineai/AI/AICore.java index b381f01..d8f3aca 100644 --- a/src/org/jakub1221/herobrineai/AI/AICore.java +++ b/src/org/jakub1221/herobrineai/AI/AICore.java @@ -18,6 +18,7 @@ import org.jakub1221.herobrineai.AI.cores.Book; import org.jakub1221.herobrineai.AI.cores.BuildStuff; import org.jakub1221.herobrineai.AI.cores.Burn; import org.jakub1221.herobrineai.AI.cores.BuryPlayer; +import org.jakub1221.herobrineai.AI.cores.Curse; import org.jakub1221.herobrineai.AI.cores.DestroyTorches; import org.jakub1221.herobrineai.AI.cores.Graveyard; import org.jakub1221.herobrineai.AI.cores.Haunt; @@ -92,6 +93,7 @@ public class AICore { AllCores.add(new RandomSound()); AllCores.add(new RandomExplosion()); AllCores.add(new Burn()); + AllCores.add(new Curse()); plugin = HerobrineAI.getPluginCore(); log.info("[HerobrineAI] Debug mode enabled!"); @@ -414,9 +416,14 @@ private void BuildCave(){ getCore(CoreType.RANDOM_SOUND).RunCore(data); }else if (new Random().nextInt(100)<60){ - + if (HerobrineAI.getPluginCore().getConfigDB().Burn){ getCore(CoreType.BURN).RunCore(data); - }else{ + } + }else if (new Random().nextInt(100)<80){ + if (HerobrineAI.getPluginCore().getConfigDB().Curse){ + getCore(CoreType.CURSE).RunCore(data); + } + }else{ getCore(CoreType.RANDOM_EXPLOSION).RunCore(data); } diff --git a/src/org/jakub1221/herobrineai/AI/Core.java b/src/org/jakub1221/herobrineai/AI/Core.java index fbd7393..18cbd4f 100644 --- a/src/org/jakub1221/herobrineai/AI/Core.java +++ b/src/org/jakub1221/herobrineai/AI/Core.java @@ -52,7 +52,8 @@ public abstract class Core { HEADS, RANDOM_SOUND, RANDOM_EXPLOSION, - BURN; + BURN, + CURSE; } public enum AppearType{ diff --git a/src/org/jakub1221/herobrineai/AI/cores/Burn.java b/src/org/jakub1221/herobrineai/AI/cores/Burn.java index 11a0eea..a0daea4 100644 --- a/src/org/jakub1221/herobrineai/AI/cores/Burn.java +++ b/src/org/jakub1221/herobrineai/AI/cores/Burn.java @@ -14,7 +14,7 @@ public class Burn extends Core { public CoreResult CallCore(Object[] data) { Player player = (Player) data[0]; player.setFireTicks(800); - return new CoreResult(true,"Burn player!"); + return new CoreResult(true,"Player burned!"); } } diff --git a/src/org/jakub1221/herobrineai/AI/cores/Curse.java b/src/org/jakub1221/herobrineai/AI/cores/Curse.java new file mode 100644 index 0000000..c594bcf --- /dev/null +++ b/src/org/jakub1221/herobrineai/AI/cores/Curse.java @@ -0,0 +1,47 @@ +package org.jakub1221.herobrineai.AI.cores; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.jakub1221.herobrineai.HerobrineAI; +import org.jakub1221.herobrineai.AI.Core; +import org.jakub1221.herobrineai.AI.CoreResult; + +public class Curse extends Core { + + public Curse() { + super(CoreType.CURSE, AppearType.NORMAL); + } + + @Override + public CoreResult CallCore(Object[] data) { + + final Player player = (Player) data[0]; + + player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 1000, 1)); + player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1000, 1)); + player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 1000, 1)); + player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 50, 1)); + player.addPotionEffect(new PotionEffect(PotionEffectType.WEAKNESS, 1000, 1)); + + int i = 0; + while(i!=3){ + i++; + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(HerobrineAI.getPluginCore(), new Runnable(){ + + @Override + public void run() { + player.getLocation().getWorld().strikeLightning(new Location(player.getLocation().getWorld(),player.getLocation().getX(),player.getLocation().getY()+1,player.getLocation().getZ())); + player.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 50, 1)); + } + + }, i*150L); + } + + + return new CoreResult(true,"Player cursed!"); + } + +} diff --git a/src/org/jakub1221/herobrineai/ConfigDB.java b/src/org/jakub1221/herobrineai/ConfigDB.java index c21d962..278a403 100644 --- a/src/org/jakub1221/herobrineai/ConfigDB.java +++ b/src/org/jakub1221/herobrineai/ConfigDB.java @@ -72,6 +72,8 @@ public class ConfigDB { public CustomID ItemInHand=null; public ArrayList UseCustomItemsList = new ArrayList(); public boolean Explosions=true; + public boolean Burn=true; + public boolean Curse=true; public ConfigDB(Logger l){ this.log=l; @@ -222,6 +224,8 @@ public class ConfigDB { config.set("config.UseNPC.Demon", true); config.set("config.ItemInHand", "0"); config.set("config.Explosions", true); + config.set("config.Burn", true); + config.set("config.Curse", true); try { config.save(configF); @@ -445,6 +449,8 @@ public class ConfigDB { hasUpdated=true; config.set("config.UseNPC.Demon", true); + config.set("config.Burn", true); + config.set("config.Curse", true); } @@ -537,6 +543,8 @@ public class ConfigDB { UseNPC_Demon=config.getBoolean("config.UseNPC.Demon"); ItemInHand=new CustomID(config.getString("config.ItemInHand")); Explosions=config.getBoolean("config.Explosions"); + Burn=config.getBoolean("config.Burn"); + Curse=config.getBoolean("config.Curse"); HerobrineAI.HerobrineMaxHP=HerobrineHP; HerobrineAI.getPluginCore().getAICore().Stop_MAIN(); diff --git a/src/org/jakub1221/herobrineai/commands/CmdExecutor.java b/src/org/jakub1221/herobrineai/commands/CmdExecutor.java index 71b7c5d..0dc1cfe 100644 --- a/src/org/jakub1221/herobrineai/commands/CmdExecutor.java +++ b/src/org/jakub1221/herobrineai/commands/CmdExecutor.java @@ -114,6 +114,15 @@ public class CmdExecutor implements CommandExecutor{ }else{player.sendMessage(ChatColor.RED+"[HerobrineAI] Player is offline.");} }else{player.sendMessage(ChatColor.RED+"Usage: "+ChatColor.GREEN+"/hb-ai burn ");} + }else if (args[0].equalsIgnoreCase("curse")){ + if (args.length>1){ + + if (Bukkit.getServer().getPlayer(args[1])!=null){ + Object[] data = {Bukkit.getServer().getPlayer(args[1])}; + player.sendMessage(ChatColor.RED+"[HerobrineAI] "+P_Core.getAICore().getCore(CoreType.CURSE).RunCore(data).getResultString()); + }else{player.sendMessage(ChatColor.RED+"[HerobrineAI] Player is offline.");} + + }else{player.sendMessage(ChatColor.RED+"Usage: "+ChatColor.GREEN+"/hb-ai curse ");} } else if (args[0].equalsIgnoreCase("graveyard")){ if (args.length>1){ @@ -170,6 +179,7 @@ public class CmdExecutor implements CommandExecutor{ player.sendMessage(ChatColor.GREEN+"/hb-ai heads - place heads near the player"); player.sendMessage(ChatColor.GREEN+"/hb-ai cave - create cave near the player"); player.sendMessage(ChatColor.GREEN+"/hb-ai burn - burn player"); + player.sendMessage(ChatColor.GREEN+"/hb-ai curse - curse player"); }else if (args[0].equalsIgnoreCase("position")){ @@ -271,6 +281,16 @@ public class CmdExecutor implements CommandExecutor{ }else{player.sendMessage(ChatColor.RED+"[HerobrineAI] Player is offline.");} }else{player.sendMessage(ChatColor.RED+"You donīt have permissions to do that.");} }else{player.sendMessage(ChatColor.RED+"Usage: "+ChatColor.GREEN+"/hb-ai burn ");} + }else if (args[0].equalsIgnoreCase("curse")){ + if (args.length>1){ + if (player.hasPermission("hb-ai.curse")){ + + if (Bukkit.getServer().getPlayer(args[1])!=null){ + Object[] data = {Bukkit.getServer().getPlayer(args[1])}; + player.sendMessage(ChatColor.RED+"[HerobrineAI] "+P_Core.getAICore().getCore(CoreType.CURSE).RunCore(data).getResultString()); + }else{player.sendMessage(ChatColor.RED+"[HerobrineAI] Player is offline.");} + }else{player.sendMessage(ChatColor.RED+"You donīt have permissions to do that.");} + }else{player.sendMessage(ChatColor.RED+"Usage: "+ChatColor.GREEN+"/hb-ai curse ");} }else if (args[0].equalsIgnoreCase("heads")){ if (args.length>1){ if (player.hasPermission("hb-ai.heads")){ @@ -342,6 +362,7 @@ public class CmdExecutor implements CommandExecutor{ player.sendMessage(ChatColor.GREEN+"/hb-ai heads - place heads near the player"); player.sendMessage(ChatColor.GREEN+"/hb-ai cave - create cave near the player"); player.sendMessage(ChatColor.GREEN+"/hb-ai burn - burn player"); + player.sendMessage(ChatColor.GREEN+"/hb-ai cuse - burn player"); }else{player.sendMessage(ChatColor.RED+"You donīt have permissions to do that.");} }else if (args[0].equalsIgnoreCase("position")){ @@ -435,6 +456,15 @@ public class CmdExecutor implements CommandExecutor{ }else{log.info("[HerobrineAI] Player is offline.");} }else{log.info("Usage: /hb-ai burn ");} + }else if (args[0].equalsIgnoreCase("curse")){ + if (args.length>1){ + + if (Bukkit.getServer().getPlayer(args[1])!=null){ + Object[] data = {Bukkit.getServer().getPlayer(args[1])}; + log.info("[HerobrineAI] "+P_Core.getAICore().getCore(CoreType.CURSE).RunCore(data).getResultString()); + }else{log.info("[HerobrineAI] Player is offline.");} + + }else{log.info("Usage: /hb-ai curse ");} }else if (args[0].equalsIgnoreCase("heads")){ if (args.length>1){ @@ -500,6 +530,7 @@ public class CmdExecutor implements CommandExecutor{ log.info("/hb-ai heads - place heads near the player"); log.info("/hb-ai cave - create cave near the player"); log.info("/hb-ai burn - burn player"); + log.info("/hb-ai curse - burn player"); }else if (args[0].equalsIgnoreCase("position")){