Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

PacketPlayOutPlayerInfo 1.11.2 Tablista


vezekQ

Rekomendowane odpowiedzi

Opublikowano

 Witam wszystkich! Od dzisiaj zmagam się z jak na moje umiejętności dość trudną rzeczą. Próbuję napisać plugin na tzw. tablistę. Za pomocą pakietu PacketPlayOutPlayerInfo (bez ProtocoLiba) tworzę nowy pakiet 80 razy. Jego gameprofil to randomowe uuid oraz !@#AAAAAAAAAAA + literki po kolei z alfabetu generowane przez nalezioną przezemnie metodę w internecie, która wygląda następująco:

 

 

@SuppressWarnings("MagicNumber")
    private String getCharId(final int id)
    {
        if (id < 20)
        {
            return "A" + alphabet[id];
        }
        if (id < 40)
        {
            return "B" + alphabet[id - 20];
        }
        if (id < 60)
        {
            return "C" + alphabet[id - 40];
        }
        if (id < 80)
        {
            return "D" + alphabet[id - 60];
        }
        return "";
    }

 

 

 

wysyłam ten pakiet do gracza 80 razy i uzyskuje następujący efekt:

 

 

 

 

6913614927118221555227.png

 

 

 

niestety niezbyt mnie to zadowala bo alfabet powinien byc po kolei od a do z a potem sie duplikowac itd, ale zamiast tego wszedzie jest "DT". Wie ktos jak to naprawic?

 

Opublikowano

 

 

///// urwany kod
for (int i = 0; i < 80; i++)
gameProfile = new GameProfile(UUID.randomUUID(), "!@#AAAAAAAAAAA" + this.getCharId(i));

public void add() {
		PacketPlayOutPlayerInfo packetPlayOutPlayerInfo = new PacketPlayOutPlayerInfo();
		PacketPlayOutPlayerInfo.PlayerInfoData data = packetPlayOutPlayerInfo.new PlayerInfoData(gameProfile, 0,
				EnumGamemode.NOT_SET, CraftChatMessage.fromString(gameProfile.getName())[0]);
		@SuppressWarnings("unchecked")
		List<PacketPlayOutPlayerInfo.PlayerInfoData> players = (List<PacketPlayOutPlayerInfo.PlayerInfoData>) getValue(
				packetPlayOutPlayerInfo, "b");
		players.add(data);

		setValue(packetPlayOutPlayerInfo, "a", PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER);
		setValue(packetPlayOutPlayerInfo, "b", players);

		sendPacket(packetPlayOutPlayerInfo);

///// urwany kod
	 

 

 

Opublikowano

No kolego z całym szacunkiem, ale to tylko i wyłącznie Twój problem. Zapytałbym z czego konkretnie gówno rozumiesz, to bym wytłumaczył, ale może inni mają więcej cierpliwości...

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Opublikowano

 

No kolego z całym szacunkiem, ale to tylko i wyłącznie Twój problem. Zapytałbym z czego konkretnie gówno rozumiesz, to bym wytłumaczył, ale może inni mają więcej cierpliwości...

 

"! Od dzisiaj zmagam się z jak na moje umiejętności dość trudną rzeczą" 

 

Czyłi według mnie dość logiczne, że z twojego kodu nic nie zrozumiem. Ja dopiero zaczynam, napisałem coś swojego, lecz nie działa. Liczę na jakieś porady jak to naprawić albo zrobić inaczej gotowy kod napisany przez dość obeznana już z javą osobą nic mi nie da, bo ja nic nie zrozumiem, a dodatkowo zamiast postarać zrobić coś sam wkleje gotowy kod.

Opublikowano

Siedź i analizuj mój kod, to Java a nie malbolge. Postaraj się czasem trochę grzeczniej podejść do użytkowników którzy chcą Ci pomóc.

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...