Merged in FabioZumbi12/herobrine-for-bukkit-or-spigot (pull request #5)
Fix hero look for player and name on TabList
This commit is contained in:
commit
bf9e300bb7
@ -4,6 +4,9 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.server.v1_8_R3.EntityPlayer;
|
||||
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
|
||||
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
|
||||
import net.theprogrammersworld.herobrine.HerobrineAI;
|
||||
import net.theprogrammersworld.herobrine.Util;
|
||||
import net.theprogrammersworld.herobrine.AI.cores.Attack;
|
||||
@ -30,6 +33,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
@ -121,7 +125,7 @@ public class AICore {
|
||||
AICore.PlayerTarget = allOnPlayers[playerRolled];
|
||||
AICore.isTarget = true;
|
||||
setCoreTypeNow(Core.CoreType.START);
|
||||
startAI();
|
||||
startAI();
|
||||
} else {
|
||||
log.info("[HerobrineAI] Target is in the safe world! (" + allOnPlayers[playerRolled].getLocation().getWorld().getName() + ")");
|
||||
findPlayer();
|
||||
@ -139,7 +143,8 @@ public class AICore {
|
||||
}
|
||||
if (currentCore == Core.CoreType.HAUNT) {
|
||||
((Haunt) getCore(Core.CoreType.HAUNT)).StopHandler();
|
||||
}
|
||||
}
|
||||
removeHero(PlayerTarget);
|
||||
AICore._ticks = 0;
|
||||
AICore.isTarget = false;
|
||||
HerobrineAI.HerobrineHP = HerobrineAI.HerobrineMaxHP;
|
||||
@ -161,9 +166,11 @@ public class AICore {
|
||||
|
||||
public void startAI() {
|
||||
if (AICore.PlayerTarget.isOnline() && AICore.isTarget) {
|
||||
|
||||
if (!AICore.PlayerTarget.isDead()){
|
||||
final Object[] data = { AICore.PlayerTarget };
|
||||
final int chance = new Random().nextInt(100);
|
||||
final int chance = new Random().nextInt(100);
|
||||
showHero(PlayerTarget);
|
||||
if (chance <= 10) {
|
||||
if (HerobrineAI.getPluginCore().getConfigDB().UseGraveyardWorld) {
|
||||
AICore.log.info("[Herobrine] Teleporting " + PlayerTarget.getDisplayName() + " to Herobrine's Graveyard.");
|
||||
@ -183,17 +190,20 @@ public class AICore {
|
||||
}
|
||||
|
||||
public CoreResult setAttackTarget(final Player player) {
|
||||
final Object[] data = { player };
|
||||
final Object[] data = { player };
|
||||
showHero(player);
|
||||
return getCore(Core.CoreType.ATTACK).runCore(data);
|
||||
}
|
||||
|
||||
|
||||
public CoreResult setHauntTarget(final Player player) {
|
||||
final Object[] data = { player };
|
||||
showHero(player);
|
||||
return getCore(Core.CoreType.HAUNT).runCore(data);
|
||||
}
|
||||
|
||||
public void graveyardTeleport(final Player player) {
|
||||
if (player.isOnline()) {
|
||||
showHero(player);
|
||||
cancelTarget(Core.CoreType.ANY);
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(AICore.plugin, new Runnable() {
|
||||
@Override
|
||||
@ -205,6 +215,18 @@ public class AICore {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeHero(Player p){
|
||||
//make hero invisible
|
||||
EntityPlayer pcon = ((CraftPlayer) p).getHandle();
|
||||
pcon.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, HerobrineAI.herobrineNPC.getNMSEntity()));
|
||||
}
|
||||
|
||||
private void showHero(Player p){
|
||||
//make hero visible
|
||||
EntityPlayer pcon = ((CraftPlayer) p).getHandle();
|
||||
pcon.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, HerobrineAI.herobrineNPC.getNMSEntity()));
|
||||
}
|
||||
|
||||
public void playerCallTotem(final Player player) {
|
||||
final String playername = player.getName();
|
||||
final Location loc = player.getLocation();
|
||||
|
@ -3,9 +3,6 @@ package net.theprogrammersworld.herobrine.listeners;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.server.v1_8_R3.EntityPlayer;
|
||||
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
|
||||
import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerInfo;
|
||||
import net.theprogrammersworld.herobrine.HerobrineAI;
|
||||
import net.theprogrammersworld.herobrine.AI.AICore;
|
||||
import net.theprogrammersworld.herobrine.AI.Core;
|
||||
@ -16,7 +13,6 @@ import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Jukebox;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -27,7 +23,6 @@ import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerBedEnterEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerKickEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
@ -45,9 +40,9 @@ public class PlayerListener implements Listener {
|
||||
private boolean canUse = false;
|
||||
|
||||
public PlayerListener() {
|
||||
this.equalsLoreS.add("Herobrine´s artifact");
|
||||
this.equalsLoreS.add("Herobrine´s artifact");
|
||||
this.equalsLoreS.add("Sword of Lighting");
|
||||
this.equalsLoreA.add("Herobrine´s artifact");
|
||||
this.equalsLoreA.add("Herobrine´s artifact");
|
||||
this.equalsLoreA.add("Apple of Death");
|
||||
}
|
||||
|
||||
@ -181,27 +176,9 @@ public class PlayerListener implements Listener {
|
||||
HerobrineAI.getPluginCore().getAICore().cancelTarget(Core.CoreType.RANDOM_POSITION);
|
||||
HerobrineAI.herobrineNPC.moveTo(new Location(Bukkit.getServer().getWorlds().get(0), 0.0D, -20.0D, 0.0D));
|
||||
}
|
||||
} else {
|
||||
if (HerobrineAI.getPluginCore().getConfigDB().useWorlds.contains(event.getTo().getWorld().getName()) || HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName.equalsIgnoreCase(event.getTo().getWorld().getName())){
|
||||
addHerobrine(event.getPlayer());
|
||||
} else {
|
||||
delHerobrine(event.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addHerobrine(Player player){
|
||||
EntityPlayer p = ((CraftPlayer) player).getHandle();
|
||||
p.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, HerobrineAI.herobrineNPC.getNMSEntity()));
|
||||
}
|
||||
|
||||
private void delHerobrine(Player player){
|
||||
EntityPlayer p = ((CraftPlayer) player).getHandle();
|
||||
p.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, HerobrineAI.herobrineNPC.getNMSEntity()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommand(final PlayerCommandPreprocessEvent event) {
|
||||
if (event.getPlayer().getWorld() == Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName) && !event.getPlayer().hasPermission("hb-ai.cmdblockbypass")) {
|
||||
@ -228,17 +205,5 @@ public class PlayerListener implements Listener {
|
||||
player.teleport(new Location(Bukkit.getServer().getWorld(HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName), -2.49, 4.0, 10.69, -179.85f, 0.44999f));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJoin(PlayerJoinEvent event) {
|
||||
if (HerobrineAI.getPluginCore().getConfigDB().useWorlds.contains(event.getPlayer().getWorld().getName()) ||
|
||||
HerobrineAI.getPluginCore().getConfigDB().HerobrineWorldName.equalsIgnoreCase(event.getPlayer().getWorld().getName())){
|
||||
addHerobrine(event.getPlayer());
|
||||
}
|
||||
/*
|
||||
EntityPlayer player = ((CraftPlayer) event.getPlayer()).getHandle();
|
||||
player.playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, HerobrineAI.herobrineNPC.getNMSEntity()));
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -94,7 +94,7 @@ public class HumanNPC {
|
||||
if (newYaw > 0.0D || newYaw < 180.0D){
|
||||
((EntityPlayer) getNMSEntity()).yaw = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).pitch = (float) newPitch;
|
||||
((EntityPlayer) getNMSEntity()).aJ = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).aK = (float) (newYaw - 90.0);
|
||||
((EntityPlayer) getNMSEntity()).aI = (float) (newYaw - 90.0);
|
||||
}
|
||||
}
|
||||
|
@ -4,4 +4,5 @@ version: 1.2.2
|
||||
commands:
|
||||
herobrine:
|
||||
description: Main command.
|
||||
usage: /herobrine help
|
||||
usage: /herobrine help
|
||||
aliases: [hero, hb-ai]
|
Reference in New Issue
Block a user