Skocz do zawartości

Jak zrobić automatyczne wiadomości w ActionBarze?

Polecane posty

Witam próbuje zrobić plugin na automatyczne wiadomości w ActionBarze ale w API mam błąd tej linijki:

 

Spoiler

            PacketPlayOutChat bar = new PacketPlayOutChat(icbc, (byte)2);

 

Z góry dzięki

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia

17 minut temu, MarmarukHD napisał:

Mam dzialajacy skrypt na to jezeli chcesz;)

 

Wołałbym jednak żeby ktoś mi z pluginem pomógł ale jeśli nikt się taki nie znajdzie to chętnie ;) 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia

Mam u siebie gotową już klasę na actionbara:

 

ActionBar.java

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

import org.bukkit.Bukkit;
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);
    }
    
    public void sendToAll() {
        for (Player p : Bukkit.getServer().getOnlinePlayers()) {
            ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);;
        }
    }
}

 

 

Żeby wyświetlić wiadomość na actionbarze u każdego gracza wystarczy:

String message = "Wiadomosc do wyswietlenia";

ActionBar actionBar = new ActionBar(message);
actionBar.sendToAll();

 

Mam nadzieję, że z resztą sobie sam poradzisz :14_relaxed:.

Edytowano przez blinkz8

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Spoiler

            PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);

 

Nadal to samo :/

 

Nwm czy coś to zmieni ale to jest wersja 1.13

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
1 godzinę temu, Matis55 napisał:
  Ukryj treść

            PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);

 

Nadal to samo :/

 

Nwm czy coś to zmieni ale to jest wersja 1.13

Jaki błąd jest wyświetlany?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia

Zamień

PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"), (byte) 2);

na:

PacketPlayOutChat packet = new PacketPlayOutChat(ChatSerializer.a("{\"text\":\"" + text + "\"}"));

 

Możesz też użyć ActionBar API.

 

Edytowano przez blinkz8

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wgrywasz ActionBarAPI na serwer, dodajesz też .jar do swoich bibliotek w Eclipse i używasz jednej z dwóch metod niżej.

Przechwytywanie.JPG

 

 

np.:

Player p = Bukkit.getServer().getPlayer("blinkz8");
String message = ChatColor.translateAlternateColorCodes("&", "&a[AUTOMSG] &7Wiadomosc");
int duration = 20*5; //20ticks = 1sec

ActionBarAPI.sendActionBar(p, message, duration);

 

Minusem tego rozwiązania jest konieczność wgrywania ActionBarAPI.jar na serwer, ale jednak dużo łatwiej tworzy się actionbara :).

 

Edytowano przez blinkz8

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Pani Kasia

Nie działa :/ Co robię źle? 

Mam wgranego ActionBara do pluginu i na serwer

 

 

VKnyzZJ.png

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
38 minut temu, Matis55 napisał:

Nie działa :/ Co robię źle? 

Mam wgranego ActionBara do pluginu i na serwer

 

 

VKnyzZJ.png

 

Zapomniałeś o "@EventHandler" i nie wiem czym dokładnie jest u ciebie klasa Messages, powinieneś zarejestrować tą klasę:

public void onEnable() {
  getServer().getPluginManager().registerEvents(this, this); /* nie wiem czym u ciebie jest Messages ale powinienes zarejestrowac rowniez ten listener :) */
}

@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {}

Jak tak dalej pójdzie to wyjdzie na to że oboje będziemy autorami tego pluginu :D.

Edytowano przez blinkz8

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
Okienko zamknie się za 5 sekund...