Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 07/18/20 uwzględniając wszystkie działy

  1. @kerpson Widziałem już jak ludzie robią pluginy którę wysyłają/odbierają dane do serwerów przez mysql, większość z nich laguje serwer bo otwierają/zamykają połączenie co chwila. Lepszą opcją tak jak napisałeś będą kanały, wysyłamy treść a ona natychmiastowo jest odbierana następnie ją cachujemy. Już tłumaczę jak to dokładnie zrobić. Plugin bungee: 1. Rejestrujesz kanał np.: "namespace:getinfo" 2. Tworzysz event (PluginMessageEvent) a w nim - Sprawdzasz czy event.geTag to twój kanał. - Następnie pobierasz akcje i wiadomości, możesz to zrobić w ten sposób: String action = null; ArrayList<String> received = new ArrayList<>(); DataInputStream dataInputStream = new DataInputStream(new ByteArrayInputStream(event.getData())); try { action = dataInputStream.readUTF(); while (dataInputStream.available() > 0){ received.add(dataInputStream.readUTF()); } }catch (Exception exeption){ exeption.printStackTrace(); } - Sprawdzasz czy akcja to getRank z received[0] pobierasz nazwe serwera z received[1] pobierasz nick gracza Następnie wysyłasz wiadomość do serwera bukkit ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream); try { dataOutputStream.writeUTF("get"); dataOutputStream.writeUTF(received.get(1)); //Tutaj już mysle ze wiadomo o co chodzi pobierasz usera z nicku a nastepnie pobierasz jego range dataOutputStream.writeUTF(UserManager(received.get(1)).getRank()); //Tutaj wyslyasz wiadomosc od serwera z received[0] getProxy().getServerInfo(received.get(0)).sendData("namespace:getinfo", byteArrayOutputStream.toByteArray()); } catch (IOException e) { e.printStackTrace(); } 3. Rejestrujesz listenery Bukkit 1. Rejestrujesz kanały. getServer().getMessenger().registerOutgoingPluginChannel( this, "namespace:getinfo"); getServer().getMessenger().registerIncomingPluginChannel( this, "namespace:getinfo", this); 2. Tworzysz mape w której bedziesz przechowywał 2 ciągi: Nick oraz range gracza 3. Implementujesz klase do PluginMessageListener. 4. Następnie uzupełniasz onPluginMessageReceived @Override public void onPluginMessageReceived(String s, Player player, byte[] bytes) { if(s.equalsIgnoreCase("namespace:getinfo")){ String action = null; ArrayList<String> received = new ArrayList<>(); DataInputStream dataInputStream = new DataInputStream(new ByteArrayInputStream(bytes)); try { action = dataInputStream.readUTF(); while (dataInputStream.available() > 0){ received.add(dataInputStream.readUTF()); } }catch (Exception exeption){ exeption.printStackTrace(); } if(action.equalsIgnoreCase("get")){ String playername = received.get(0); String rank = received.get(1); map.put(playername, rank); } } } Następnie możesz zrobić taska który aktualzuję mape: ByteArrayDataOutput out = ByteStreams.newDataOutput(); out.writeUTF("getRank"); out.writeUTF("main"); //TUTAJ DAJESZ NAZWE SWOJEGO SERWERA out.writeUTF(player.getName()); player.sendPluginMessage(this, "namespace:getinfo", out.toByteArray()); Jest to chyba najlepsza i najbardziej optymalna opcja!
    1 punkt
  2. Prościej będzie pobrać przez bazę danych ale ewentualnie możesz zrobić własny channel, ale to troche trudniejsza sprawa https://www.spigotmc.org/wiki/sending-a-custom-plugin-message-from-bungeecord/
    1 punkt
  3. krzysek

    Wylaczenie obrazen od upadku

    On damage: if damage cause is fall: set damage to 0 stop Wytabowane
    1 punkt
  4. Witam Mam pytanie ma ktoś scrypt na blokowanie /pl /plugins /bukkit:pl /bukkit:plugins ????
    0 punktów
  5. Jan kk

    Skript na wyrzutnie graczy

    Skript to plugin. A skrypt do skrypt. Nauczcie się... //Dostajesz mase ciastek! ~ :piesek: //To może byś dał tego warna a nie że ja muszę? :u ~Tropereks
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Quexsu
    Quexsu
    6 postów
    Nicku
    Nicku
    1 post
    mervi_X
    mervi_X
    1 post
    Fendi
    Fendi
    1 post
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
  • Najwięcej tematów w tygodniu

    Quexsu
    Quexsu
    1 temat
    mervi_X
    mervi_X
    1 temat
    bug128
    bug128
    1 temat
  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

×
×
  • Dodaj nową pozycję...