Ir para conteúdo

Ajuda com ActionBar


Tiozol

Posts Recomendados

Estou tentando colocar uma ActionBar de EntityDamageByEntityEvent mas não to conseguindo e não acho nada na internet, se alguém puder ajudar

 

o código:

@EventHandler
	public void danostaff(EntityDamageByEntityEvent e) {
		org.bukkit.entity.Entity damager = e.getDamager();
		Player p = (Player) damager;
		
	    if (damager instanceof Player && e.getEntity().hasPermission("plugin.imortal")) {
	        if (!p.hasPermission("naruto.imortal")) {	        
	        	p.sendMessage(ChatColor.RED+"Você não pode ferir um Staff.");
	        	e.setCancelled(true);
				ActionBarAPI.sendActionBar(p, ChatColor.RED+"Você não pode ferir um Staff.", 20);
	        }
		} else {
			e.setCancelled(false);
		}
	}

 

Link para o comentário
Compartilhar em outros sites

// crie uma classe ActionBar e cole isso nela (lembre de adicionar sua packaxe e substituir a public class)

import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer;
import net.minecraft.server.v1_8_R3.PacketPlayOutChat;

import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;

import org.bukkit.entity.Player;

public class ActionBar {
   
    private PacketPlayOutChat packet;

    public ActionBar(String text) {
        PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);
        this.packet = packet;
    }
   
    public void sendToPlayer(Player p) {
        ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
    }
   
}

// va em sua classe de eventos e use

 @EventHandler
  public void onDamage(EntityDamageByEntityEvent e) {
   org.bukkit.entity.Entity damager = e.getDamager();
   Player p = (Player) damager;

   ActionBar ac = new ActionBar("Você bateu em uma entidade");
   ac.sendToPlayer(p);
 }

Código pra você criar suas ActionBar, faça bom uso.

Editado por iHuck
Link para o comentário
Compartilhar em outros sites

10 minutos atrás, iHuck disse:

// crie uma classe ActionBar e cole isso nela (lembre de adicionar sua packaxe e substituir a public class)

import net.minecraft.server.v1_8_R3.IChatBaseComponent.ChatSerializer;
import net.minecraft.server.v1_8_R3.PacketPlayOutChat;

import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;

import org.bukkit.entity.Player;

public class ActionBar {
   
    private PacketPlayOutChat packet;

    public ActionBar(String text) {
        PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);
        this.packet = packet;
    }
   
    public void sendToPlayer(Player p) {
        ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
    }
   
}

// va em sua classe de eventos e use

 @EventHandler
  public void onDamage(EntityDamageByEntityEvent e) {
   org.bukkit.entity.Entity damager = e.getDamager();
   Player p = (Player) damager;

   ActionBar ac = new ActionBar("Você bateu em uma entidade");
   ac.sendToPlayer(p);
 }

Código pra você criar suas ActionBar, faça bom uso.

Fiz as substituições necessárias, no script não tem erro algum, mas quando vou salvar da isso ai

https://prnt.sc/qrjo3k

os códigos

ActionBar

package net.j_dev.naruto;

import net.minecraft.server.v1_9_R1.IChatBaseComponent.ChatSerializer;
import net.minecraft.server.v1_9_R1.PacketPlayOutChat;

import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;

import org.bukkit.entity.Player;

public class ActionBar {
   
	private PacketPlayOutChat packet;

    public ActionBar(String text) {
        PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);
        this.packet = packet;
    }
   
    public void sendToPlayer(Player p) {
        ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
    }
}

Na class do evento

@EventHandler
	public void danostaff(EntityDamageByEntityEvent e) {
		org.bukkit.entity.Entity damager = e.getDamager();
		Player p = (Player) damager;
		
	    if (damager instanceof Player && e.getEntity().hasPermission("naruto.imortal")) {
	        if (!p.hasPermission("plugin.imortal")) {	        
	        	e.setCancelled(true);
	        	ActionBar ac = new ActionBar(ChatColor.RED+"Você não pode ferir um Staff.");
	        	ac.sendToPlayer(p);
	        }
		} else {
			e.setCancelled(false);
		}
	}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...