Burn core
This commit is contained in:
parent
27098d9720
commit
f53241c6ba
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,8 @@ public abstract class Core {
|
||||
TEMPLE,
|
||||
HEADS,
|
||||
RANDOM_SOUND,
|
||||
RANDOM_EXPLOSION;
|
||||
RANDOM_EXPLOSION,
|
||||
BURN;
|
||||
|
||||
}
|
||||
public enum AppearType{
|
||||
|
20
src/org/jakub1221/herobrineai/AI/cores/Burn.java
Normal file
20
src/org/jakub1221/herobrineai/AI/cores/Burn.java
Normal 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!");
|
||||
}
|
||||
|
||||
}
|
39
src/org/jakub1221/herobrineai/AI/cores/RandomExplosion.java
Normal file
39
src/org/jakub1221/herobrineai/AI/cores/RandomExplosion.java
Normal 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!");
|
||||
}
|
||||
|
||||
}
|
36
src/org/jakub1221/herobrineai/AI/cores/RandomSound.java
Normal file
36
src/org/jakub1221/herobrineai/AI/cores/RandomSound.java
Normal 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!");
|
||||
}
|
||||
|
||||
}
|
@ -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")){
|
||||
|
||||
|
64
src/org/jakub1221/herobrineai/entity/CustomSkeleton.java
Normal file
64
src/org/jakub1221/herobrineai/entity/CustomSkeleton.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user