Burn core

This commit is contained in:
Jakub1221 2013-03-31 14:12:44 +02:00
parent 27098d9720
commit f53241c6ba
7 changed files with 205 additions and 5 deletions

View File

@ -16,6 +16,7 @@ import org.jakub1221.herobrineai.AI.Core.CoreType;
import org.jakub1221.herobrineai.AI.cores.Attack;
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.DestroyTorches;
import org.jakub1221.herobrineai.AI.cores.Graveyard;
@ -90,6 +91,7 @@ public class AICore {
AllCores.add(new Heads());
AllCores.add(new RandomSound());
AllCores.add(new RandomExplosion());
AllCores.add(new Burn());
plugin = HerobrineAI.getPluginCore();
log.info("[HerobrineAI] Debug mode enabled!");
@ -121,7 +123,9 @@ public CoreType getCoreTypeNow(){return CoreNow;}
}else if (chance<50){
setHauntTarget(player);
}else{
if (HerobrineAI.getPluginCore().getConfigDB().UseNPC_Demon){
HerobrineAI.getPluginCore().getEntityManager().spawnCustomSkeleton(player.getLocation(), MobType.DEMON);
}
}
}
@ -404,11 +408,16 @@ private void BuildCave(){
if (AllOnPlayers[player_rolled].getEntityId()!=HerobrineAI.HerobrineEntityID){
if (HerobrineAI.getPluginCore().getConfigDB().useWorlds.contains(AllOnPlayers[player_rolled].getLocation().getWorld().getName())){
if (new Random().nextBoolean()){
Object[] data = {AllOnPlayers[player_rolled]};
Object[] data = {AllOnPlayers[player_rolled]};
if (new Random().nextInt(100)<30){
getCore(CoreType.RANDOM_SOUND).RunCore(data);
}else{
Object[] data = {AllOnPlayers[player_rolled]};
}else if (new Random().nextInt(100)<60){
getCore(CoreType.BURN).RunCore(data);
}else{
getCore(CoreType.RANDOM_EXPLOSION).RunCore(data);
}
}

View File

@ -51,7 +51,8 @@ public abstract class Core {
TEMPLE,
HEADS,
RANDOM_SOUND,
RANDOM_EXPLOSION;
RANDOM_EXPLOSION,
BURN;
}
public enum AppearType{

View File

@ -0,0 +1,20 @@
package org.jakub1221.herobrineai.AI.cores;
import org.bukkit.entity.Player;
import org.jakub1221.herobrineai.AI.Core;
import org.jakub1221.herobrineai.AI.CoreResult;
public class Burn extends Core {
public Burn() {
super(CoreType.BURN, AppearType.NORMAL);
}
@Override
public CoreResult CallCore(Object[] data) {
Player player = (Player) data[0];
player.setFireTicks(800);
return new CoreResult(true,"Burn player!");
}
}

View File

@ -0,0 +1,39 @@
package org.jakub1221.herobrineai.AI.cores;
import java.util.Random;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jakub1221.herobrineai.HerobrineAI;
import org.jakub1221.herobrineai.AI.Core;
import org.jakub1221.herobrineai.AI.CoreResult;
public class RandomExplosion extends Core {
public RandomExplosion() {
super(CoreType.RANDOM_EXPLOSION,AppearType.NORMAL);
}
@Override
public CoreResult CallCore(Object[] data) {
Player player = (Player) data[0];
if (HerobrineAI.getPluginCore().getConfigDB().Explosions){
if (HerobrineAI.getPluginCore().getSupport().checkBuild(player.getLocation())){
Location loc = player.getLocation();
int x=loc.getBlockX()+(new Random().nextInt(16)-8);
int y=loc.getBlockY();
int z=loc.getBlockZ()+(new Random().nextInt(16)-8);
loc.getWorld().createExplosion(new Location(loc.getWorld(),x,y,z), 1.0f);
}else{
return new CoreResult(true,"Player is in secure area!");
}
}else{
return new CoreResult(true,"Explosions are not allowed!");
}
return new CoreResult(true,"Explosion near the player!");
}
}

View File

@ -0,0 +1,36 @@
package org.jakub1221.herobrineai.AI.cores;
import org.bukkit.Bukkit;
import org.jakub1221.herobrineai.HerobrineAI;
import org.jakub1221.herobrineai.AI.Core;
import org.jakub1221.herobrineai.AI.CoreResult;
public class RandomSound extends Core {
public RandomSound() {
super(CoreType.RANDOM_SOUND, AppearType.NORMAL);
}
@Override
public CoreResult CallCore(final Object[] data) {
int multip=1;
while(multip!=7){
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(HerobrineAI.getPluginCore(), new Runnable(){
@Override
public void run() {
HerobrineAI.getPluginCore().getAICore().getCore(CoreType.SOUNDF).RunCore(data);
}
},multip*30L);
multip++;
}
return new CoreResult(true,"Starting sound play to target!");
}
}

View File

@ -105,6 +105,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 cave <player name>");}
}else if (args[0].equalsIgnoreCase("burn")){
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.BURN).RunCore(data).getResultString());
}else{player.sendMessage(ChatColor.RED+"[HerobrineAI] Player is offline.");}
}else{player.sendMessage(ChatColor.RED+"Usage: "+ChatColor.GREEN+"/hb-ai burn <player name>");}
}
else if (args[0].equalsIgnoreCase("graveyard")){
if (args.length>1){
@ -160,6 +169,7 @@ public class CmdExecutor implements CommandExecutor{
player.sendMessage(ChatColor.GREEN+"/hb-ai temple <player name> - build temple near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai heads <player name> - place heads near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai cave <player name> - create cave near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai burn <player name> - burn player");
}else if (args[0].equalsIgnoreCase("position")){
@ -251,6 +261,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 cave <player name>");}
}else if (args[0].equalsIgnoreCase("burn")){
if (args.length>1){
if (player.hasPermission("hb-ai.burn")){
if (Bukkit.getServer().getPlayer(args[1])!=null){
Object[] data = {Bukkit.getServer().getPlayer(args[1])};
player.sendMessage(ChatColor.RED+"[HerobrineAI] "+P_Core.getAICore().getCore(CoreType.BURN).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 burn <player name>");}
}else if (args[0].equalsIgnoreCase("heads")){
if (args.length>1){
if (player.hasPermission("hb-ai.heads")){
@ -321,6 +341,7 @@ public class CmdExecutor implements CommandExecutor{
player.sendMessage(ChatColor.GREEN+"/hb-ai temple <player name> - build temple near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai heads <player name> - place heads near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai cave <player name> - create cave near the player");
player.sendMessage(ChatColor.GREEN+"/hb-ai burn <player name> - burn player");
}else{player.sendMessage(ChatColor.RED+"You don´t have permissions to do that.");}
}else if (args[0].equalsIgnoreCase("position")){
@ -405,6 +426,15 @@ public class CmdExecutor implements CommandExecutor{
}else{log.info(ChatColor.RED+"[HerobrineAI] Player is offline.");}
}else{log.info("Usage: /hb-ai cave <player name>");}
}else if (args[0].equalsIgnoreCase("burn")){
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.BURN).RunCore(data).getResultString());
}else{log.info("[HerobrineAI] Player is offline.");}
}else{log.info("Usage: /hb-ai burn <player name>");}
}else if (args[0].equalsIgnoreCase("heads")){
if (args.length>1){
@ -469,6 +499,7 @@ public class CmdExecutor implements CommandExecutor{
log.info("/hb-ai temple <player name> - build temple near the player");
log.info("/hb-ai heads <player name> - place heads near the player");
log.info("/hb-ai cave <player name> - create cave near the player");
log.info("/hb-ai burn <player name> - burn player");
}else if (args[0].equalsIgnoreCase("position")){

View File

@ -0,0 +1,64 @@
package org.jakub1221.herobrineai.entity;
import java.util.Random;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Skeleton;
import org.bukkit.inventory.ItemStack;
import org.bukkit.Color;
import org.jakub1221.herobrineai.HerobrineAI;
import org.jakub1221.herobrineai.misc.ItemName;
import net.minecraft.server.v1_5_R2.World;
public class CustomSkeleton extends net.minecraft.server.v1_5_R2.EntitySkeleton implements CustomEntity{
private MobType mobType=null;
public CustomSkeleton(World world,Location loc,MobType mbt) {
super(world);
this.mobType=mbt;
if (mbt==MobType.DEMON){
spawnDemon(loc);
}
}
public void spawnDemon(Location loc){
this.health=HerobrineAI.getPluginCore().getConfigDB().npc.getInt("npc.Demon.HP");
this.setCustomName("Demon");
this.maxHealth=HerobrineAI.getPluginCore().getConfigDB().npc.getInt("npc.Demon.HP");
((Skeleton)this.getBukkitEntity()).getEquipment().setItemInHand(new ItemStack(Material.GOLDEN_APPLE,1));
((Skeleton)this.getBukkitEntity()).getEquipment().setHelmet(ItemName.colorLeatherArmor(new ItemStack(Material.LEATHER_HELMET,1), Color.RED));
((Skeleton)this.getBukkitEntity()).getEquipment().setChestplate(ItemName.colorLeatherArmor(new ItemStack(Material.LEATHER_CHESTPLATE,1), Color.RED));
((Skeleton)this.getBukkitEntity()).getEquipment().setLeggings(ItemName.colorLeatherArmor(new ItemStack(Material.LEATHER_LEGGINGS,1), Color.RED));
((Skeleton)this.getBukkitEntity()).getEquipment().setBoots(ItemName.colorLeatherArmor(new ItemStack(Material.LEATHER_BOOTS,1), Color.RED));
this.getBukkitEntity().teleport(loc);
}
public CustomSkeleton(World world) {
super(world);
}
@Override
public void Kill(){
for(int i=1;i<=2500;i++){
if (HerobrineAI.getPluginCore().getConfigDB().config.contains("npc.Demon.Drops."+Integer.toString(i))==true){
int chance=new Random().nextInt(100);
if (chance<=HerobrineAI.getPluginCore().getConfigDB().config.getInt("npc.Demon.Drops."+Integer.toString(i)+".Chance")){
this.getBukkitEntity().getLocation().getWorld().dropItemNaturally(this.getBukkitEntity().getLocation(), new ItemStack(Material.getMaterial(i),HerobrineAI.getPluginCore().getConfigDB().config.getInt("npc.Demon.Drops."+Integer.toString(i)+".Count")));
}
}
}
this.health=0;
}
@Override
public MobType getMobType() {
return this.mobType;
}
}